NGINX App Protect 서비스 거부 방지 기능으로 애플리케이션 계층 DoS 공격 차단

NGINX | 2021년 7월 06일

디지털 트랜스포메이션이 비즈니스의 잠재력을 빠르게 확대하는 한편, 안타깝게도 위협 환경도 넓히고 있습니다. 보안 팀이 확대되는 업무 범위와 책임에 대응하느라 분주한 틈을 타, 공격자들은 금전적 이득을 위해 애플리케이션을 악용하는 수법을 그 어느 때보다 정교하게 발전시키고 있습니다. 기존의 네트워크 수준 서비스 거부(DoS) 공격과 비교하면, 애플리케이션 수준(레이어 7) DoS 공격이 급증하고 있습니다. 이는 주로 최신 애플리케이션 아키텍처에 맞게 설계되지 않은 기존 방어 체계를 우회할 수 있기 때문입니다.

공격자의 관점에서 볼 때, 레이어 7 DoS 공격에는 두 가지 유용한 특징이 있습니다. 매우 적은 리소스만으로도 심각한 장애를 일으킬 수 있으며 탐지하기도 어렵다는 점입니다. 정교한 도구와 정밀하게 표적화된 요청을 이용해 생성되는 이러한 공격은 애플리케이션 서버와 API가 정상적인 요청을 처리하지 못하게 하여 서비스 장애를 유발합니다. 서버가 처리할 수 있는 양보다 많은 요청을 받으면 정상적인 요청을 누락하거나 응답하지 않게 되며, 심지어 작동이 중단될 수도 있습니다.

기존의 DoS 완화 솔루션은 최신 앱에 효과적이지 않습니다. 이러한 솔루션은 정적인 규칙 기반 보안을 제공하므로, 빠르게 변화하고 업데이트되는 최신 앱 환경에 발맞추려면 지속적인 유지 관리가 필요합니다.

NGINX App Protect DoS 소개

NGINX App Protect 서비스 거부 공격 방어 (DoS)는 가장 정교한 애플리케이션 DoS 공격으로부터 최신 애플리케이션을 보호하도록 설계된 NGINX Plus용 경량 동적 모듈입니다. NGINX App Protect DoS는 애플리케이션을 중단시키고 손상하려는 공격을 완화하여 지속적인 성능과 수익 창출을 보장하고, 경쟁이 치열한 디지털 환경에서 고객 충성도와 브랜드 가치를 지켜 줍니다.

NGINX App Protect DoS는 Kubernetes 클러스터를 비롯한 모든 플랫폼, 아키텍처 또는 환경에서 애플리케이션 및 마이크로서비스와 가까운 위치에 배포할 수 있습니다. 애플리케이션과 함께 확장되며 항상 높은 보안 효과를 유지합니다.

NGINX App Protect DoS 실제 작동 모습

배포 사용 사례

NGINX App Protect DoS는 애플리케이션 서비스를 보호하기 위해 다양한 위치에 배포할 수 있습니다:

  • 에지 – 외부 로드 밸런서 및 프록시
  • 인그레스 컨트롤러 – Kubernetes로 들어가는 진입점
  • 서비스별 프록시 – 내부 서비스 프록시 계층
  • Pod별 프록시 – Pod에 내장된 프록시
  • API 게이트웨이 – 마이크로서비스로 진입하는 지점

완화된 공격 유형

NGINX App Protect DoS는 여러 정교한 공격 유형에 대한 보호 기능을 제공합니다:

  • GET 및 POST 플러드 공격 – (HTTP 및 HTTPS 모두 해당) 공격자는 대량의 요청을 보내 서버 또는 API를 과부하 상태로 만들어 실제 사용자의 요청에 응답하지 못하게 합니다.
  • “저속” 공격 – (HTTP 및 HTTPS 모두 해당) “저속·소량” 공격은 서버 리소스를 점유하여 실제 사용자의 요청을 처리할 수 없게 만듭니다. 이러한 공격을 방어하기 어려운 데에는 두 가지 요인이 있습니다. 저속 공격에는 크게 세 가지 유형이 있습니다:
    • 네트워크 DDoS 공격과 달리 광범위한 대역폭을 사용하지 않기 때문에 정상 트래픽과 구분하기 어렵습니다.
    • 공격을 실행하는 데 많은 리소스가 필요하지 않으므로, 정교한 자동화 도구를 사용하면 단일 컴퓨터에서도 수천 건의 요청을 보낼 수 있습니다.
    • Slowloris – 공격자는 서버에 연결한 후 불완전한 요청 헤더를 천천히 전송합니다. 서버는 나머지 헤더를 기다리는 동안 연결을 계속 열어 두므로, 실제 사용자가 이용할 수 있는 연결 풀이 고갈됩니다.
    • 슬로 리드 – 공격자는 올바른 형식의 HTTP 요청을 전송하지만, 이후 응답을 매우 느리게 읽거나 아예 읽지 않습니다. 이로 인해 서버 리소스가 지속적으로 소모되어 정상적인 요청이 처리되지 못합니다.
    • 느린 POST – 공격자는 뒤이어 전송할 메시지 본문의 크기를 정확히 명시한 정상적인 HTTP POST 헤더를 서버로 전송합니다. 그런 다음 메시지 본문을 매우 느리게 전송합니다. 메시지가 유효한 것처럼 보이기 때문에 서버는 전체 본문이 도착할 때까지 연결을 열린 상태로 유지합니다. 느린 POST 공격이 대량으로 발생하면 실제 사용자가 이용할 수 있는 연결 풀이 고갈됩니다.
  • 앞서 설명한 공격의 분산형 변종 – 여러 대의 컴퓨터를 동원하면 더 많은 공격을 동시에 실행하기가 쉬워집니다. 또한 각 컴퓨터에서 발생하는 트래픽 양을 비교적 적게 유지하여 일반 사용자의 트래픽처럼 보이게 할 수 있습니다. 컴퓨터가 공격 풀에서 이탈했다가 다시 합류할 수도 있어 소스 IP 주소 집합이 계속 바뀝니다. 이러한 트래픽 특성으로 인해 속도 제한이나 지역 차단과 같은 기존의 완화 기법은 효과가 떨어집니다.
  • Challenge Collapsar 공격/무작위 URI – Challenge Collapsar(CC) 공격에서는 공격자가 정상적인 요청을 빈번하게 전송하지만, 요청된 URI가 복잡하고 시간이 많이 소요되는 알고리즘이나 데이터베이스 작업을 실행하도록 요구하므로 대상 서버의 리소스가 고갈될 수 있습니다. 또한 공격자는 정적 규칙과 같은 기존 완화 도구를 무력화하는 방식으로 URI와 기타 HTTP 매개변수를 무작위화할 수 있습니다. 반면 NGINX App Protect DoS는 효과를 크게 높이고 오탐을 줄이는 고급 머신 러닝 알고리즘을 사용합니다.

​

  • NAT 뒤에 숨기 – 공격자는 탐지를 피하기 위해 암호화 또는 네트워크 주소 변환(NAT)을 사용합니다. 소스 IP 주소만 추적하여 공격을 탐지하려는 방식은 단 한 명의 사용자만 공격하더라도 모든 NAT 사용자를 공격자로 간주하므로 효과적이지 않습니다. NGINX App Protect DoS는 IPv4 핑거프린팅을 사용하여 NAT 뒤에 숨은 악의적 행위자를 정확하게 탐지합니다. 대부분의 트래픽은 SSL/TLS를 사용해 암호화되므로, 행위자를 식별하는 키를 단순한 IP 주소에서 IP 주소와 TLS 핑거프린트의 조합으로 확장할 수 있습니다(TLS 핑거프린트는 TLS hello 메시지를 기반으로 함).
  • 표적형 SSL/TLS 공격 – 공격자는 SSL/TLS 핸드셰이크 프로토콜을 악용합니다. 널리 사용되는 방법 중 하나는 대상 SSL/TLS 서버에 무의미한 데이터를 전송하는 것입니다. 유효하지 않은 메시지를 처리하는 데도 정상적인 메시지를 처리할 때와 동일한 수준의 컴퓨팅 리소스가 필요하지만, 유용한 결과는 얻을 수 없습니다. 대부분의 방화벽은 유효한 SSL/TLS 핸드셰이크 패킷과 유효하지 않은 패킷을 구분할 수 없으며, 방화벽에 복호화 기능을 구현하려면 지나치게 많은 비용이 들기 때문에 이 경우에는 도움이 되지 않습니다. NGINX App Protect DoS는 SSL/TLS 서명 메커니즘을 사용하여 암호화되지 않은 상태로 SSL/TLS 핸드셰이크 프로세스 초기에 전달되는 CLIENT HELLO 메시지를 기반으로 이상 징후를 탐지하고 완화함으로써 높은 복호화 비용을 없앱니다. 또한 SSL/TLS 서명과 서버 상태 모니터링 메커니즘을 함께 사용하면 SSL/TLS를 종료하지 않고도 DoS 공격을 방어하고 완화할 수 있습니다.

요약

DoS 공격이 네트워크가 아닌 애플리케이션을 표적으로 삼는 사례가 점점 더 흔해지고 있습니다. 이러한 레이어 7 DoS 공격 중 상당수는 정상적인 트래픽처럼 보이기 때문에 기존 WAF 방어 체계로는 효과적으로 탐지할 수 없습니다.

또한 공격자들은 머신 러닝과 AI 같은 신기술을 계속 활용해 레이어 7 DoS 공격을 감행하고 있어, 단순한 규칙과 정적 시그니처의 효과가 떨어지고 있습니다. 레이어 7 DoS 완화 기술 역시 발전해야 하며, NGINX App Protect DoS는 적응형 동적 방어에 적합한 기술을 제공합니다.

DoS 보호를 보장하는 방법에 대해 자세히 알아보려면 솔루션 개요를 확인하세요. 다음 관련 블로그도 참조하세요:

NGINX App Protect DoS를 직접 사용해 보세요. 지금 30일 무료 평가판을 시작하거나 문의하여 사용 사례를 상담해 보세요.


공유

작성자 소개

관련 블로그 게시물

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
NGINX | 2023. 11. 30.

시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric

이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
NGINX | 2023. 03. 23.

F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법

앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
NGINX | 2021. 09. 27.

Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션

개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX | 2021. 07. 06.

진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법

NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX | 2021. 06. 30.

NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리

NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
NGINX | 2015. 03. 25.

Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유

Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.