4.3.14. DDoS 공격에 대해 memcached 보안


Memcached 는 오픈 소스 고성능 분산 메모리 개체 캐싱 시스템입니다. 대부분의 경우 데이터베이스 로드를 줄여 동적 웹 애플리케이션의 성능을 개선하는 데 주로 사용됩니다.
Memcached는 데이터베이스 호출, API 호출 또는 페이지 렌더링 결과에서 문자열 및 오브젝트와 같은 임의의 데이터의 작은 청크를 위한 메모리 내 키-값 저장소입니다. Memcached를 사용하면 애플리케이션이 필요한 것보다 더 많은 시스템이 있는 시스템의 일부에서 메모리를 가져와 애플리케이션이 필요한 것보다 적은 영역에서 액세스할 수 있도록 합니다.

Memcached Vulnerabilities

2018년, 공개 인터넷에 노출된 memcached 서버를 악용하여 DDoS 개정 공격 취약점을 발견했습니다. 이러한 공격은 전송에 UDP 프로토콜을 사용하여 memcached 통신을 활용합니다. 이 공격은 높은 진폭 비율로 인해 효과가 있습니다 - 몇 백 바이트 크기의 요청이 몇 메가바이트 또는 수백 메가바이트 크기의 응답을 생성할 수 있습니다. 이 문제는 CVE-2018-1000115 로 지정되어 있습니다.
대부분의 경우 memcached 서비스를 공용 인터넷에 노출할 필요가 없습니다. 이러한 노출에는 원격 공격자가 memcached에 저장된 정보를 유출하거나 수정할 수 있는 자체 보안 문제가 있을 수 있습니다.

memcached 강화

보안 위험을 완화하려면 구성에 적용 가능한 다음 단계의 수를 수행합니다.
  • LAN에서 방화벽을 구성합니다. 로컬 네트워크 내에서만 memcached 서버에 액세스할 수 있어야 하는 경우 memcached에서 사용하는 포트에 대한 외부 트래픽을 허용하지 마십시오. 예를 들어 memcached에서 기본적으로 사용되는 포트 11211을 허용된 포트 목록에서 제거합니다.
    ~]# firewall-cmd --remove-port=11211/udp
    ~]# firewall-cmd --runtime-to-permanent
    특정 IP 범위가 포트 11211을 사용하도록 허용하는 firewalld 명령은 5.8절. “Zone을 사용하여 소스에 따라 트래픽 관리” 를 참조하십시오.
  • 클라이언트에 이 프로토콜이 필요하지 않는 한 /etc/sysconfig/memcached 파일의 OPTIONS 변수에 -U 0 -p 11211 값을 추가하여 UDP를 비활성화합니다.
    OPTIONS="-U 0 -p 11211"
  • 애플리케이션과 동일한 시스템에서 단일 memcached 서버만 사용하는 경우 memcached를 설정하여 localhost 트래픽만 수신 대기합니다. -l 127.0.0.1,::1 값을 /etc/sysconfig/memcached 의 OPTIONS 에 추가합니다.
    OPTIONS="-l 127.0.0.1,::1"
  • 인증을 변경할 수 있는 경우 SASL(Simple Authentication and Security Layer) 인증을 활성화합니다.
    1. /etc/sasl2/memcached.conf 파일에 수정하거나 추가합니다.
      sasldb_path: /path.to/memcached.sasldb
    2. SASL 데이터베이스에 계정을 추가합니다.
      ~]# saslpasswd2 -a memcached -c cacheuser -f /path.to/memcached.sasldb
    3. memcached 사용자 및 그룹에 대한 데이터베이스에 액세스할 수 있는지 확인합니다.
      ~]# chown memcached:memcached /path.to/memcached.sasldb
    4. OPTIONS 에 -S 값을 /etc/sysconfig/memcached 에 추가하여 memcached에서 SASL 지원을 활성화합니다.
      OPTIONS="-S"
    5. memcached 서버를 다시 시작하여 변경 사항을 적용합니다.
    6. SASL 데이터베이스에서 생성된 사용자 이름과 암호를 애플리케이션의 memcached 클라이언트 구성에 추가합니다.
  • stunnel 을 사용하여 memcached 클라이언트와 서버 간 통신을 암호화합니다. memcached에서 TLS를 지원하지 않으므로 해결방법은 memcached 프로토콜 상단에 TLS를 제공하는 stunnel 과 같은 프록시를 사용하는 것입니다.
    PSK (Pre Shared Keys)를 사용하도록 stunnel 을 구성하거나 사용자 인증서를 사용하는 것이 더 좋습니다. 인증서를 사용하는 경우 인증된 사용자만 memcached 서버에 연결할 수 있으며 트래픽이 암호화됩니다.
    중요
    터널을 사용하여 memcached에 액세스하는 경우 서비스가 localhost에서만 수신 대기 중이거나 방화벽이 네트워크에서 memcached 포트에 대한 액세스를 허용하지 않는지 확인합니다.
    자세한 내용은 4.8절. “stunnel 사용”를 참조하십시오.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동