일상생활의 점점 더 많은 부분이 온라인으로 옮겨감에 따라, 사이버 공격자들도 우리가 의존하는 앱의 서비스 수준을 저하시키려는 시도를 강화하고 있습니다. 이들의 동기는 복수에서부터 피해 기업의 주가에 영향을 미치려는 목적, 보안팀의 주의를 데이터 유출 사고에서 돌리기 위한 연막 조성에 이르기까지 다양합니다.
In a 이전 블로그에서는 과거 보안팀이 TCP/UDP 연결 요청을 대량으로 보내 서버의 가용 대역폭을 고갈시키는 네트워크 및 전송 계층(계층 3 및 4)의 대규모 서비스 거부(DoS) 및 분산 서비스 거부(DDoS) 공격에 대응하기 위해 새로운 방어 체계를 지속적으로 개발해야 했던 과정을 설명했습니다. 이제 공격자들은 HTTP 요청이나 API 호출을 사용해 애플리케이션 계층(계층 7)의 리소스를 고갈시키는 DoS 및 DDoS 공격이라는 새로운 수단을 무기고에 추가했습니다.
네트워크 및 대용량 공격을 방어하는 기존 DoS 보호 기능은 애플리케이션 수준에서 악성 요청과 정상 요청을 구분하기 어려운 경우가 많기 때문에 레이어 7 공격에는 효과적이지 않습니다. 또한 레이어 7의 HTTP 공격은 네트워크 수준 공격보다 훨씬 낮은 요청 빈도와 적은 요청량으로도 피해를 줄 수 있습니다. 따라서 완전히 새로운 요구 사항에 대응하려면 레이어 7 DoS 보호 기능이 더욱 민감하게 작동해야 합니다:
- 공격과 정상적인 트래픽 패턴 구분
- 부하 상태에서 서버 상태 평가
- 공격이 언제 시작되었으며 종료되었는지 확인
- 정상 사용자에게 영향을 주지 않으면서 공격 완화
- 앱 동작의 변화가 공격 때문인지 아니면 앱 기능 업데이트 때문인지 판단
- 탐지 효율을 잃지 않고 장기간의 공격을 견뎌내기
NGINX App Protect 서비스 거부 공격 방어 (DoS)는 이러한 모든 과제를 해결하여 간소화되고 구현이 쉬운 제로데이 보호를 보장하며, 적응형 제로터치 정책 구성을 제공합니다.
NGINX App Protect DoS가 자동으로 적응하여 공격을 차단하는 방법
NGINX App Protect DoS는 다단계 프로세스를 사용하여 레이어 7 DoS 공격을 탐지하고 완화합니다:
통계적 사이트 모델로 일반적인 동작 포착
이 프로세스의 첫 번째 단계는 사이트가 공격받고 있지 않다는 것을 알고 있는 기간에 사용자 및 애플리케이션의 동작을 수집하여 일반적인 동작의 기준선을 포착하는 통계적 사이트 모델을 만드는 것입니다. NGINX App Protect DoS는 앱 배포 환경을 종합적으로 파악할 수 있도록 320개의 사용자 및 앱 메트릭을 추적합니다. 또한 트래픽을 관찰하면서 통계적 사이트 모델을 동적으로 업데이트합니다. 따라서 시스템 임계값을 수동으로 조정할 필요가 없으며, NGINX App Protect DoS가 시간이 지남에 따라 필연적으로 발생하는 트래픽 패턴의 변화도 고려하도록 보장합니다.
추적되는 메트릭 중 한 범주는 HTTP 요청의 특성, 즉 HTTP 메서드, User-Agent 헤더 값 및 그림에 표시된 기타 특성과 관련이 있습니다.

서비스 상태 확인
많은 레이어 7 DoS 완화 도구는 클라이언트 트래픽 패턴에만 주목합니다. 공격을 더욱 정확하게 탐지하려면 NGINX App Protect DoS가 서비스 상태도 능동적으로 확인하도록 구성할 수 있습니다. 이 도구는 응답 시간, 삭제된 요청의 비율 등 여러 서버 성능 지표를 추적합니다. 이러한 지표의 값이 악화되면 애플리케이션이 공격 등의 원인으로 인해 “부하를 받고 있음”을 나타냅니다. 서버 지표를 추적하면 또 다른 이점도 있습니다. NGINX App Protect DoS가 공격이 진행 중이라고 판단하면 상태 확인에 대한 응답 패턴을 통해 공격이 시작된 시점을 파악할 수 있습니다.
이상 징후 탐지
NGINX App Protect DoS가 사이트 통계 모델의 편차와 서버 응답의 변화(구성된 경우)를 바탕으로 공격이 진행 중이라고 판단하면, 사이트 통계 모델 업데이트를 중단하고 현재 메트릭 값이 설정된 기준선과 어떻게 다른지 분석합니다. 이러한 차이는 전역 이상 징후를 나타낼 가능성이 높습니다.
악의적 행위자 및 요청 패턴 식별
NGINX App Protect DoS는 이어서 병렬로 실행되는 두 가지 절차를 시작합니다:
- 이상 현상을 일으켰거나 이상 현상에 영향을 준 사용자를 탐지하기 위해 개별 사용자의 행동을 분석합니다. NGINX App Protect는 처음에는 모든 사용자를 의심 대상으로 간주하고 이들의 행동을 분석합니다. 모든 사용자가 공격자일 가능성은 낮지만, 모든 사용자의 행동을 측정하면 NGINX App Protect가 공격에 영향을 준 사용자와 그렇지 않은 사용자를 식별할 수 있는 통계적 패턴을 생성할 수 있습니다. 탐지된 악의적 행위자는 해당 IP 주소 또는 요청의
X-Forwarded-For헤더를 사용하여 식별됩니다. - 정상 사용자를 차단하지 않으면서 공격 트래픽을 설명하는 규칙 목록을 생성합니다. 이는 제로데이 공격 방어를 위한 실시간 시그니처입니다. 이전 공격 중에 생성된 시그니처는 재사용할 수 있습니다. 생성된 시그니처는 다음 예와 같이 공격과 관련된 HTTP 속성을 식별합니다:
http.request.method eq GET and http.user_agent contains Chrome and http.uri_parameters eq 6 and http.accept_header_exists eq false and
http.headers_count eq 7다계층 방어를 통한 공격 완화
레이어 7 공격을 방어할 때 가장 중요한 목표는 피해가 발생하기 전에 공격을 탐지하는 것입니다.
다음 다이어그램과 같이 보수적 완화 전략 또는 표준 완화 전략을 구성할 수 있습니다. 두 전략 모두에서 첫 번째 방어 계층은 이전 단계에서 IP 주소와 X-Forwarded-For 헤더를 통해 식별된 악의적 행위자의 요청을 차단합니다. 다음 방어 계층은 이전 단계에서 생성된 시그니처와 일치하는 요청을 차단합니다.
마지막으로 표준 완화 전략을 구성한 경우, NGINX App Protect DoS가 처음 두 방어 계층만으로는 충분하지 않다고 판단하면 짧은 시간 동안 전역 속도 제한을 적용합니다.

공격 완화 중 오탐 최소화
NGINX App Protect DoS가 전역 속도 제한을 적용하면 정상 사용자의 요청이 차단되는 오탐이 발생할 수 있습니다. NGINX App Protect DoS는 일반적인 DoS 공격이 사람이 직접 수행하는 것이 아니라 봇넷 컨트롤러(감염된 컴퓨터의 악성 코드)가 실행하는 스크립트를 통해 이루어진다는 점을 바탕으로 오탐을 줄일 수 있습니다. 웹 브라우저와 달리 이러한 단순한 스크립트 중 상당수는 HTTP 리디렉션을 제대로 처리하지 못하며, JavaScript를 처리할 수 있는 스크립트는 더욱 적습니다. NGINX App Protect DoS는 스크립트와 브라우저 간의 이러한 기능 차이를 활용하여 의심스러운 트래픽을 생성하는 쪽을 식별합니다.
따라서 모든 클라이언트의 요청에 속도 제한을 적용하는 대신, NGINX App Protect DoS는 먼저 HTTP 리디렉션을 전송한 다음 처리할 JavaScript 코드 조각을 전송합니다. 스크립트로 작동하는 봇은 이에 정상적으로 응답할 수 없지만 브라우저는 응답할 수 있으므로, NGINX App Protect DoS는 스크립트에서 발생하는 트래픽은 차단하고 브라우저 트래픽은 통과시킬 수 있습니다.
일부 사용자는 오탐이 대량으로 발생할 가능성 때문에 적응형 학습에 의존하는 것을 불편하게 여긴다는 점을 알고 있습니다. 하지만 적응형 학습은 레이어 7 DoS 공격을 완화하는 가장 효과적인 방법입니다. NGINX App Protect DoS는 사용자 행동 분석, 서비스 상태 확인, 완화 전략의 효과 측정 등 여러 접근 방식을 결합하여 오탐을 줄입니다. 이 세 가지 접근 방식을 함께 사용하면 공격에 대응하기 위해 구성을 수동으로 변경할 필요 없이 포괄적인 가시성과 보호 기능을 확보할 수 있습니다.

이미 WAF가 있는데도 레이어 7 DoS 보호가 필요한 이유는 무엇인가요?
WAF가 이미 봇을 차단하고 있는데도 왜 레이어 7 DoS 보호가 필요한지 의문이 들 수 있습니다. 레이어 7 DDoS 공격이 일반적으로 봇에 의해 실행되는 것은 사실이지만, 그 목적은 다른 봇 활동과 다릅니다. 일반적인 봇은 서비스를 방해하지 않으면서 정보를 수집하려 하지만, 레이어 7 DoS 및 DDoS 공격은 서비스 중단 자체를 목표로 합니다.
또 다른 차이점은 일반적인 안티봇 도구가 ‘좋은 봇’과 ‘나쁜 봇’을 구분하려 한다는 것입니다. 이는 오탐을 방지하기 위해 대개 사람의 감독이 필요한 까다로운 작업입니다. 반면 NGINX App Protect DoS는 트래픽이 봇에 의해 생성되었는지 아니면 다른 메커니즘에 의해 생성되었는지에 구애받지 않고, 행동을 기준으로 공격자와 정상 사용자를 구분하는 데 집중합니다. NGINX App Protect DoS는 봇이 계층 7 DoS 공격에 가담하고 있다고 판단한 경우에만 안티봇 기술을 사용하므로, 일반적인 안티봇 소프트웨어보다 오탐이 훨씬 적습니다. 또한 NGINX App Protect DoS의 완화 방식은 CPU 효율성이 뛰어나 계층 DoS 공격이 지속되는 동안에도 애플리케이션을 계속 보호할 수 있습니다.
결론
NGINX App Protect DoS는 사용자 및 앱 동작과 관련된 320개 이상의 메트릭을 추적하여 가능한 한 가장 정확한 보호를 제공하는 다요인 통계 모델을 구축합니다. 고유한 알고리즘을 통해 오탐을 크게 줄입니다. 이러한 기능을 바탕으로 NGINX App Protect DoS는 각각의 공격 요청이 완전히 정상적인 것처럼 보이고 개별 공격자가 생성하는 트래픽이 평균적인 정상 사용자보다 적을 수도 있는 고도로 분산된 DoS 공격을 완화할 수 있습니다. NGINX App Protect DoS는 적응형 기술을 통해 최신 인프라를 현재의 공격뿐만 아니라 향후 진화할 공격으로부터도 보호합니다.
DoS 보호를 보장하는 방법에 대해 자세히 알아보려면 솔루션 개요서를 확인하세요. 다음 관련 블로그도 참조하세요:
NGINX App Protect DoS를 직접 사용해 보세요. 지금 30일 무료 평가판을 시작하거나 문의하여 사용 사례를 상담해 보세요.
관련 블로그 게시물
시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.
F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.
Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.
진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.
NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.
Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.