Redis Security

<< Redis-benchmark Redis Server Replication >>

Redis Security

레디스 서버 보안 취약점

레디스 서버도 보안을 강화하고 있다.   초기 버전에는 없던 Protected-mode, Bind, Password 기능을 추가되었다.   하지만 Protected-mode와 Bind는 보안이라기 보다는 네트워크 설정 기능으로 보아야 할 것이다.   그리고 Password 기능이 있지만, Password가 평문(plain text)으로 저장되어 있고, Password가 사용자 별로 부여되는 것이 아니고 레디스 서버에 부여되는 것이여서 password가 노출되면 보안에 문제가 된다.   또한 대부분의 DBMS에서 제공하는 User ID 기능이 없다.

센티널 보안 취약점

센티널은 AUTH 명령을 사용할 수 없다.   즉, Password 기능을 사용할 수 없다.   그러므로 password 없이 접속해서 운영중인 레디스 서버에 영향을 미칠 수도 있고, 센티널 자체를 shutdown할 수도 있다.   센티널에도 보안을 강화할 수 있는 조치가 필요하다.

REQUIREPASS password

redis.conf에 requirepass로 password를 설정할 수 있다.   하지만 이 password는 암호화되지 않은 평문(plain text)로 저장되어 있어 공격자가 redis.conf에 접근했다면 password가 바로 노출되므로 AUTH 기능도 무용지물이 된다.

레디스게이트 개발 보안 기능

Password 암호화, 로그인 기능, 클라이언트 접속 IP 통제(IP 기반의 접근 제어 목록 Access Control List) 기능에 대해서 알아보자.

Password 암호화

redis.conf에 requirepass에 password를 저장해서 사용할 수 있으나 평문(plain text)으로 보관되어 있기 때문에 공격자가 redis.conf 파일에 접근하면 password는 쉽게 노출된다.   Password를 암호화해서 저장하고 AUTH 명령으로 사용할 수 있도록 하는 기능을 추가했다.
이것에 관한 자세한 설명은 Auth Password Encryption을 보시기 바랍니다.

로그인 기능

이 기능은 사용자 ID와 Password를 부여해 로그인한 사용자만 레디스를 사용하게 하는 기능이다.  

  • 슈퍼유저 기능: 사용자를 슈퍼유저와 일반유저로 구분했다. 일반유저는 데이터를 저장하고 조회는 하지만 레디스 서버를 shutdown 한다든지, config 명령으로 설정을 변경할 수 없고, 이런 것은 슈퍼유저만이 할 수 있도록 했다.
  • Password는 암호화해 저장함으로써 공격자가 파일에 접근해도 password를 알 수 없도록 했다.

이것에 관한 자세한 설명은 로그인 기능을 보시기 바랍니다.

클라이언트 접속 IP 통제

이것은 접속하는 클라이언트의 IP를 체크해서 접속 허용 여부를 결정하는 기능이다.   Bind는 클라이언트가 서버 내에 IP 중에서 어느 IP로 들어오는지를 확인하는 기능인데 반해, 접속 IP 통제 기능은 클라이언트의 IP를 확인해서 접속 여부를 정한다.   접속할 수 있는 클라이언트 IP를 정하므로 해서 보안을 강화했다.  리눅스의 iptables와 비슷한 기능이다.
이것에 관한 자세한 설명은 접속 IP 통제(IP 기반의 접근 제어 목록 Access Control List)를 보시기 바랍니다.

참고 자료

레디스 보안과 protected mode에 대한 살바토르의 글과 사용자들의 의견이다.




<< Redis-benchmark Redis Security Redis Server Replication >>

질문하거나 댓글을 보려면 클릭하세요.  댓글수 :    조회수 :

Email 返事がかかってなれば、メールでお知らせします。