F5 NGINX App Protect DoS에서 eBPF를 활용한 DDoS 완화 가속화

NGINX | 2023년 4월 05일

DDoS 공격과의 전쟁은 계속해서 변화하고 있습니다. 2023년 DDoS 공격 동향 보고서에서 F5 Labs는 최근 3년간의 분산 서비스 거부(DDoS) 공격 데이터를 분석한 결과, 공격자들이 여전히 복잡한 다중 벡터 DDoS 공격을 사용하면서도 순수한 애플리케이션 계층(Layer 7) 공격을 더 많이 감행하는 방향으로 전환하고 있음을 확인했습니다. 2022년 한 해에만 Layer 7 공격의 비중이 165% 증가했습니다.

2020년부터 2022년까지 DDoS 공격 유형(볼륨 기반, 프로토콜, 애플리케이션 및 다중 벡터)별 건수를 보여주는 다이어그램
DDoS 공격 유형별 건수(2020~2022년). 애플리케이션 공격이 크게 증가한 반면, 볼류메트릭 공격과 다중 벡터 공격은 그에 상응해 감소한 것으로 나타났습니다.

일반적으로 공격자는 웹사이트 운영을 방해하거나 대상을 갈취하는 등 목표를 달성하기 위해 가장 쉬운 방법을 택합니다. 이러한 레이어 7 공격의 증가는 볼륨 기반 또는 프로토콜 전략만으로 DDoS 공격을 감행하기가 점점 더 어려워지고 있으며, 애플리케이션 계층 공격이 더 효과적인 것으로 입증되고 있음을 시사할 수 있습니다.

eBF와 XDP로 최신 앱 보호하기

DDoS 공격으로부터 애플리케이션을 보호할 때는 애플리케이션의 가용성을 유지하고 사용자의 만족도를 높일 가능성을 극대화하기 위해 가능한 모든 기술 발전을 활용하는 것이 중요합니다. 확장 버클리 패킷 필터(eBPF)와 익스프레스 데이터 경로(XDP) 기술은 2014년부터 존재해 왔지만, 마이크로서비스와 클라우드 네이티브 아키텍처의 도입이 늘어나면서 현재 개발자, SRE 및 운영 커뮤니티에서 빠르게 인기를 얻고 있습니다.

eBPF

eBPF는 Linux 커널의 데이터 링크 계층 가상 머신(VM)으로, 사용자가 프로그램을 안전하고 효율적으로 실행할 수 있도록 합니다. 또한 커널 소스 코드를 변경하거나 커널 모듈을 추가하지 않고도 런타임에 커널의 기능을 확장합니다. eBPF는 이벤트 기반으로 작동하며, Linux 호스트에서 특정 활동을 감지해 그에 맞는 작업을 수행합니다. 이 기술은 마이크로서비스와 최종 사용자 간의 연결 및 트랜잭션을 추적할 수 있어 앱과 앱 서비스의 전체 스택에 대한 가시성을 제공합니다. 활용할 수 있는 데이터의 범위도 매우 광범위합니다. 이를 통해 정밀한 관측 가능성을 확보하고, 네트워크 트래픽 관리 및 런타임 보안 요구 사항을 분석하며, 본질적으로 효율적인 설계를 활용해 컴퓨팅 비용을 절감할 수 있습니다.

eBPF 기술을 간략히 알아보려면 F5 DevCentral의 동영상 ‘eBPF란 무엇인가요?’를 확인해 보세요.

XDP

XDP는 고성능 네트워킹이라는 이점을 제공합니다. 사용자 공간 프로그램이 네트워크 패킷 데이터를 직접 읽고 쓰며, 패킷이 커널 수준에 도달하기 전에 처리 방법을 결정할 수 있도록 합니다. 이 기술을 사용하면 개발자는 Linux 커널 내의 네트워크 장치 드라이버에 구현된 저수준 훅에 eBPF 프로그램을 연결할 수 있습니다.

NGINX App Protect DoS는 eBPF를 어떻게 사용하나요?

NGINX App Protect DoS는 NGINX Plus 및 NGINX Ingress Controller에서 실행되는 고급 행동 기반 레이어 7 DDoS 완화 솔루션으로, HTTP 및 HTTP/2 앱을 Slowloris 및 HTTP Flood와 같은 공격으로부터 보호합니다. 즉, NGINX App Protect DoS는 단순한 네트워크 DDoS 솔루션으로는 탐지할 수 없는 애플리케이션 계층 공격을 방어합니다.

NGINX App Protect DoS가 방어하는 공격 유형을 보여주는 다이어그램
NGINX App Protect DoS는 로드 밸런서 또는 API 게이트웨이의 NGINX Plus에 배포하거나, NGINX Ingress Controller 또는 클러스터 내부에 포드별 또는 서비스별 프록시로 배포할 수 있습니다. 또한 애자일 DevOps를 위한 CI/CD 파이프라인에 ‘코드형 보안’으로 손쉽게 통합할 수 있습니다.

NGINX App Protect DoS와 함께 사용할 경우 eBPF는 DDoS 공격 흡수 용량을 크게 향상할 수 있습니다. NGINX App Protect DoS는 소스 IP 주소만으로 또는 TLS 핑거프린팅과 결합하여 식별된 악성 행위자의 트래픽을 차단함으로써 완화 성능을 높이는 다계층 솔루션의 일부로 eBPF(NGINX Ingress Controller 자체에서는 사용할 수 없음)를 사용합니다.

다음으로 NGINX App Protect DoS가 세 단계에 걸쳐 작동하는 기본 메커니즘을 살펴보겠습니다. 세 단계는 이상 징후 탐지, 동적 규칙 생성 및 적응형 학습, 그리고 규칙 적용입니다.

이상 탐지

NGINX App Protect DoS는 보호 대상 애플리케이션을 지속적으로 모니터링하고 머신 러닝을 사용하여 애플리케이션 및 클라이언트 동작에 대한 통계적 사이트 모델을 구축합니다. 트래픽을 실시간으로 관찰하고 300개가 넘는 HTTP 요청 메트릭을 추적하여 활동 및 성능에 대한 포괄적인 기준선을 지속적으로 업데이트합니다. NGINX App Protect DoS는 애플리케이션 트래픽을 수동적으로 모니터링할 뿐만 아니라 능동적인 애플리케이션 상태 점검을 수행하고 응답 시간 및 삭제된 요청과 같은 메트릭도 모니터링합니다.

애플리케이션이 계층 7 DDoS 공격을 받으면 애플리케이션 응답 시간(또는 오류율)이 학습된 모델에서 벗어나 애플리케이션 보호 시스템이 작동합니다.

동적 규칙 생성 및 적응형 학습

이상 징후가 감지되면 NGINX App Protect DoS는 악성 트래픽을 식별하고 차단하기 위한 규칙을 동적으로 생성합니다. 악의적인 공격자는 차단하면서 정상 사용자는 애플리케이션에 액세스할 수 있도록 클라이언트 행동을 통계적으로 분석하여 공격에 가담하는 사용자와 그렇지 않은 사용자를 식별합니다.

공격을 차단하기 위해 동적 시그니처를 배포하는 것 외에도 NGINX App Protect DoS는 완화 효과를 지속적으로 측정하고 적응형 학습을 적용하여 애플리케이션 보안을 항상 강력하게 유지하고 제로데이 공격을 차단합니다. 공격을 유발하는 클라이언트와 요청이 식별되면 해당 트래픽을 거부하는 규칙을 생성합니다.

NGINX App Protect DoS는 다음을 포함하는 다계층 방어 전략을 구현합니다:

  • IP 주소 또는 TLS 지문을 기반으로 악성 행위자 차단
  • 공격 시그니처가 포함된 악성 요청 차단
  • 전역 속도 제한 적용

이 세 가지 완화 조치는 정상 사용자에게 영향을 주지 않으면서 공격자를 최대한 차단할 수 있도록 단계적으로 적용됩니다. 그러나 대부분의 차단 작업은 초기 단계인 IP 주소와 TLS 지문을 조합한 차단 또는 IP 주소만을 사용한 차단에서 이루어지는 경우가 많습니다. 다행히도 이러한 규칙 유형은 eBPF 프로그램으로 효과적으로 적용할 수 있습니다.

규칙 적용

NGINX App Protect DoS는 생성된 규칙을 수신 애플리케이션 트래픽에 적용하여 악성 요청을 차단합니다. 모든 애플리케이션 트래픽은 NGINX Plus 프록시를 통해 백엔드(또는 업스트림) 애플리케이션으로 프록시되므로, 차단 규칙과 일치하는 요청은 즉시 삭제되며 백엔드 애플리케이션으로 전달되지 않습니다.

NGINX Plus는 고성능 프록시이지만, 공격 및 완화 규칙으로 인해 발생하는 추가 워크로드가 NGINX가 실행되는 플랫폼의 가용 리소스를 초과할 가능성은 여전히 있습니다. 이때 eBPF가 필요합니다. 커널에서 IP 주소만을 기준으로 차단하거나 IP 주소와 TLS 지문을 함께 기준으로 차단하면 전송 계층(계층 4)에서 악성 트래픽을 조기에 평가하고 차단할 수 있습니다. 이는 사용자 공간에서 실행되는 NGINX가 처리하는 것보다 훨씬 효율적입니다.

지원되는 플랫폼에서 NGINX App Protect DoS가 소스 IP 주소 또는 TLS 지문을 기반으로 공격자를 차단하는 규칙을 생성하면, 해당 규칙은 네트워크 이벤트(훅이라고 함)가 발생할 때 커널에서 실행되는 eBPF 바이트코드 프로그램으로 컴파일됩니다. 특정 네트워크 이벤트가 규칙을 트리거하면 트래픽은 레이어 4에서 조기에 차단됩니다. 이를 통해 레이어 7에 도달하기 전에 DDoS 완화를 가속할 수 있습니다. 이 모든 작업은 커널에서 이루어지므로 매우 효율적이며, 사용자 공간에서 규칙을 구현할 때보다 리소스가 고갈되기 전에 더 많은 트래픽을 필터링할 수 있습니다.

NGINX App Protect DoS가 공격자를 차단하기 위해 커널에서 eBPF로 인코딩된 규칙을 호출하는 방식을 보여 주는 다이어그램
eBPF를 사용하는 NGINX App Protect DoS는 악성 트래픽이 사용자 공간에 도달하기 전에 커널에서 차단하여 DDoS 완화를 가속하고 컴퓨팅 비용을 절감합니다.

NGINX App Protect DoS에서 eBPF 가속 완화 활성화

NGINX App Protect DoS 가속 완화 기능은 다음 Linux 배포판에서 사용할 수 있습니다:

  • Alpine 3.15+
  • Debian 11+
  • RHEL 8+
  • Ubuntu 20.04+

가속화된 DDoS 완화를 활성화하려면 다음 단계를 따르세요:

  1. eBPF가 활성화된 NGINX App Protect DoS 패키지를 설치하고 필요한 추가 작업을 수행합니다. (자세한 내용은 설치 설명서를 참조하세요. 설치 후 작업은 배포판에 따라 다릅니다.)
  2. 구성 NGINX App Protect DoS를 평소와 같이 구성합니다.
  3. 다음 지시문을 NGINX Plus 구성의 http{} 블록에 추가합니다.
protect_dos_accelerated_mitigation on;
  1. NGINX 구성을 다시 로드합니다.
$ sudo nginx -t && nginx -s reload

요약

NGINX App Protect DoS의 적응형 학습 기능과 eBPF 커널 실행의 고효율 트래픽 처리 기능을 결합하면, 오늘날의 다중 벡터 및 애플리케이션 중심 DDoS 공격에 대한 대응 역량을 강화한 다계층 고속 Layer 7 DDoS 완화 전략을 구현할 수 있습니다. 또한 특정 DDoS 공격을 완화하는 데 필요한 리소스를 줄여 인프라 및 컴퓨팅 비용을 절감할 수 있습니다.

Test drive NGINX App Protect DoS for yourself with a 30일 무료 평가판을 통해 NGINX App Protect DoS를 직접 사용해 보거나, 사용 사례에 대해 논의하려면 문의해 주세요.

추가 리소스


공유

작성자 소개

관련 블로그 게시물

시청하기: 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에게서 알아보세요.