애플리케이션 계층 DDoS 공격, 및 이를 완화하는 방법

DDoS (분산 서비스 거부) 및 DoS (서비스 거부) 공격은 OSI 모델의 계층에 따라 세 가지 범주로 널리 분류될 수 있습니다.: 네트워크 계층 (계층 3), 전송 계층 (계층 4), 및 애플리케이션 계층 (계층 7).
계층 3 및 레이어 4 공격은 일반적으로 덜 복잡합니다.–비록 완화하기 매우 어려울 수 있지만–네트워크와 전송 계층에 트래픽을 플러딩하는 것을 포함합니다., 대상 시스템의 자원을 과부하시키고 합법적인 사용자에게 사용할 수 없게 만듭니다.. 이러한 유형의 공격은 ICMP 플러드와 같은 다양한 기술을 사용하여 시작할 수 있습니다., TCP SYN 플러드, 또는 UDP 플러드.
예를 들어 ICMP 플러드는, 계층 공격으로, 많은 수의 ICMP 패킷이 대상 시스템으로 플러딩됩니다. 3 이로 인해 시스템이 응답하지 않게 됩니다., TCP SYN 플러드. TCP SYN 플러드, 반면에, 계층입니다 4 TCP 연결이 설정되는 방식을 이용하는 공격입니다.
SYN 플러드 공격에서, 공격자는 대상 시스템에 많은 SYN 패킷을 보냅니다, 그러나 연결을 완료하기 위해 ACK 패킷을 보내지 않습니다. 이로 인해 시스템은 각 연결 시도에 대해 자원을 할당하게 되어 결국 시스템이 과부하되어 정당한 사용자에게 사용할 수 없게 됩니다. UDP 플러드는 대상 시스템에 많은 UDP 패킷을 전송합니다, 자원을 소모하고 응답하지 않게 만듭니다.
애플리케이션 계층 DDoS 공격
애플리케이션 계층 공격은 계층보다 더 복잡하고 완화하기 어렵습니다 3 및 계층 4 공격입니다. 이러한 공격은 애플리케이션 계층을 목표로 합니다 (계층 7) 대상 시스템의 애플리케이션 자체의 취약점을 이용합니다. 계층 7 공격은 애플리케이션과 기본 인프라에 직접적인 영향을 미칠 수 있기 때문에 더 큰 피해를 줄 수 있습니다. 계층으로 DDoS 공격을 완화할 수 없습니다 7 계층 3 또는 계층 4 네트워크 방화벽과 같은 도구로는.
HTTP 플러드, 슬로울로리스 공격, 및 DNS 증폭 공격은 레이어 7 서비스 거부 공격입니다. 이러한 공격은 애플리케이션 계층 방화벽과 같은 더 정교한 방어가 필요합니다, 침입 방지 시스템, 및 CDN (콘텐츠 전송 네트워크).
HTTP 플러드
HTTP 플러드 공격은 GET 또는 POST 요청을 사용하여 대상 서버를 압도합니다. GET 요청을 사용하는 플러드 공격은 일반적으로 더 간단하고 리소스가 적게 필요합니다. 서버에서 정보만 요청하기 때문입니다. POST 요청, 반면에, 일반적으로 대량의 데이터를 전송해야 합니다.
HTTP 플러드 공격을 완화하기 어려운 이유 중 하나는 종종 많은 출처에서 시작되기 때문입니다, 모든 악성 트래픽을 식별하고 차단하기 어렵게 만듭니다. 또한, 공격자는 IP 스푸핑과 같은 기술을 사용하여 자신의 진짜 신원을 숨기고 공격 출처를 추적하기 더욱 어렵게 만들 수 있습니다.
HTTP 플러드 공격에 대한 방어는 복잡할 수 있습니다. 다양한 유형의 공격은 다양한 완화 전략이 필요합니다. HTTP 플러드 공격에 대한 일반적인 방어에는 속도 제한, 블랙리스트, 및 웹 애플리케이션 방화벽이 포함됩니다. 그러나, 이러한 기술은 자원을 많이 소모할 수 있으며, 더 정교한 공격을 저지하기에는 충분하지 않을 수 있습니다.
슬로울로리스 공격
슬로울로리스(Slowloris)는 웹 서버가 클라이언트 연결을 처리하는 방식을 목표로 하는 일종의 플러딩 공격입니다. 이 공격은 서버에 많은 수의 연결을 여는 방식으로 작동합니다, 그러나 요청을 느린 속도로 전송합니다, 각 연결을 가능한 한 오랫동안 열어 둡니다. 이러한 유형의 공격은 서버의 모든 가용 자원을 소모할 수 있으며, 공격자가 CPU를 소모할 수 있게 합니다, 메모리, 또는 네트워크 대역폭, 등. 일반적인 속도 제한을 유발하지 않고도 다른 유형의 DDoS 공격을 탐지하고 차단하는 데 일반적으로 사용되는 트래픽 필터링 메커니즘을 트리거하지 않습니다.
슬로울로리스 공격을 수행하기 위해, 공격자는 일반적으로 서버에 HTTP 요청을 전송하는 스크립트나 도구를 사용합니다, 그러나 후속 요청을 전송하는 것을 의도적으로 지연시킵니다. 요청은 합법적인 요청처럼 보이도록 설계되었습니다, 그러나 연결을 무한정 열어 두는 불완전한 헤더를 가지고 있습니다. 시간이 지남에 따라, 서버는 클라이언트로부터 추가 데이터를 기다리는 많은 열린 연결을 가지게 됩니다, 이로 인해 서버는 합법적인 트래픽에 응답하지 않게 됩니다.
슬로울로리스 공격은 은밀한 설계와 상대적으로 낮은 대역폭으로 인해 탐지하기 어려울 수 있습니다. 이는 공격자가 경고를 유발하거나 의심을 불러일으키지 않고 서버를 방해하고자 할 때 효과적인 도구가 됩니다. 슬로울로리스 공격에 대한 방어를 위해, 웹 서버는 여러 가지 대응책을 구현할 수 있습니다.. 예를 들어, 단일 IP 주소에서 설정할 수 있는 연결 수를 제한하거나 미완료 요청에 대한 타임아웃을 설정합니다.. 일부 웹 애플리케이션 방화벽 및 DDoS 완화 서비스는 Slowloris 공격에 대한 내장 보호 기능을 가지고 있습니다., 이러한 트래픽을 실시간으로 감지하고 차단할 수 있는 알고리즘을 사용합니다..
계층 7 DDoS 완화
속도 제한
속도 제한은 특정 기간 동안 특정 IP 주소 또는 사용자 에이전트에서 발생할 수 있는 요청 수에 대한 임계값을 설정하는 것입니다.. 이 개념은 레이어에서의 속도 제한과 매우 유사합니다. 3 그러나 레이어에서 구현해야 합니다. 7.
속도 제한의 목적은 공격자가 웹 애플리케이션을 대량의 요청으로 과부하시키는 것을 방지하는 것입니다., 서버 중단을 초래합니다.. 속도 제한은 웹 애플리케이션 아키텍처의 다양한 레이어에서 구현할 수 있습니다., 웹 서버에서, 로드 밸런서, 또는 애플리케이션 방화벽에서. 구현은 일반적으로 특정 IP 주소 또는 사용자 에이전트가 만든 요청 수를 추적하고 미리 정의된 임계값에 도달했을 때 추가 요청을 차단하는 것을 포함합니다..
웹 애플리케이션에서 속도 제한을 구현하는 일반적인 접근 방식은 각 클라이언트가 만든 요청 수를 추적하고 임계값을 초과할 때 추가 요청을 차단하는 미들웨어 또는 플러그인을 사용하는 것입니다.. 이러한 플러그인은 요청 유형과 같은 요소에 따라 다양한 속도 제한 정책을 적용하도록 구성할 수 있습니다., 사용자 에이전트, 또는 클라이언트 IP 주소.
예를 들어, 간단한 속도 제한 정책은 단일 IP 주소에서 최대 요청 수를 제한할 수 있습니다. 10 분당 요청 수. 클라이언트가 이 임계값을 초과하면, 이후 요청은 기간이 만료될 때까지 차단됩니다..
애플리케이션 계층 속도 제한 제품은 인기 있는 웹 서버와 클라우드 서비스에 사용할 수 있습니다., 포함하여:
아파치
아파치는 속도 제한에 사용할 수 있는 여러 모듈을 가지고 있습니다., 예를 들어 mod_limitipconn, 주어진 IP 주소에서의 동시 연결 수를 제한합니다., 그리고 mod_qos, 속도 제한을 포함한 다양한 서비스 품질 제어를 제공합니다..
게다가, ModSecurity 웹 애플리케이션 방화벽 정의된 임계값을 초과하는 클라이언트를 차단할 수 있는 속도 제한 기능이 있습니다.. 위에서 언급한 모듈 외에도, 아파치는 mod_evasive도 제공합니다.. 이는 정의된 임계값을 초과하는 클라이언트를 속도 제한하고 차단하는 데 사용할 수 있는 모듈입니다.. 다양한 기술을 사용하여 악성 클라이언트를 감지하고 차단합니다., IP 및 사용자 에이전트 추적 포함.
Nginx
Nginx는 제공한다 ngx_http_limit_req 모듈. 이는 특정 클라이언트의 요청 속도를 IP 주소 또는 기타 요소에 따라 제한하는 데 사용할 수 있다. 이 모듈은 토큰 버킷 알고리즘을 사용하여 속도 제한 정책에 따라 각 클라이언트에 토큰을 할당한다. ngx_http_limit_req 모듈 외에도, Nginx는 ngx_http_limit_conn 모듈도 제공한다. 이는 특정 클라이언트 또는 IP 주소의 연결 수를 제한하는 데 사용할 수 있다. 이 모듈은 속도 제한 정책에 따라 토큰을 할당하기 위해 토큰 버킷 알고리즘을 사용한다.
IIS
마이크로소프트의 인터넷 정보 서비스 (IIS) 포함한다 동적 IP 제한 모듈 이는 속도 제한에 사용할 수 있다. 이 모듈은 미리 정의된 임계값을 초과하는 IP 주소의 요청을 차단하도록 구성할 수 있으며 모니터링을 위한 경고 및 로그도 제공할 수 있다. 동적 IP 제한 모듈 외에도, IIS는 IP 주소와 같은 다양한 기준에 따라 특정 클라이언트의 요청 속도를 제한하는 데 사용할 수 있는 요청 필터링 모듈도 제공한다, 사용자 에이전트, 및 요청 방법.
AWS
아마존 웹 서비스 (AWS) 여러 서비스를 제공하여 속도 제한에 사용할 수 있습니다, 포함하여 속도 제한 기능이 있는 AWS WAF.
AWS Shield는 특정 임계값을 초과하는 IP 주소의 요청을 차단할 수 있는 속도 기반 규칙을 포함한 DDoS 보호를 제공합니다. AWS WAF 및 AWS Shield 외에도, AWS는 또한 제공합니다 AWS Elastic Load Balancer. 미리 정의된 임계값을 초과하는 클라이언트를 차단하도록 구성할 수 있는 다양한 속도 제한 정책이 포함되어 있습니다.
Azure
Microsoft Azure는 속도 제한에 사용할 수 있는 여러 서비스를 제공합니다, Azure Application Gateways를 포함하여. 들어오는 요청의 속도를 제한하도록 구성할 수 있는 웹 애플리케이션 방화벽이 포함되어 있습니다. 또한, Azure Front Door는 속도 제한 기능을 제공합니다 미리 정의된 임계값을 초과하는 IP 주소의 요청을 차단할 수 있습니다. Azure Application Gateway 및 Azure Front Door 외에도, Azure는 Azure Firewall도 제공합니다. 이는 정의된 임계값을 초과하는 클라이언트를 속도 제한하고 차단하는 데 사용할 수 있습니다.
GCP
Google Cloud Platform (GCP) Cloud Armor를 제공합니다, 정의된 임계값을 초과하는 클라이언트의 요청을 차단할 수 있는 속도 제한 기능이 있는 웹 애플리케이션 방화벽.
이러한 애플리케이션 계층 속도 제한 제품은 악성 클라이언트의 요청 수를 제한하여 HTTP 플러드 공격을 효과적으로 완화할 수 있습니다. 그러나, 합법적인 트래픽이 차단되지 않도록 적절하게 구성되고 방화벽 및 DDoS 완화 서비스와 함께 사용되어 DDoS 공격에 대한 포괄적인 보호를 제공하는 것이 중요합니다.
미완료 요청에 대한 타임아웃
아래는 Apache에 대한 Slowloris 애플리케이션 계층 완화 방법입니다, Nginx, 및 IIS 웹 서버, 및 로드 밸런서와 AWS에 대한 추가 기능, Azure, 및 GCP 서비스:
아파치
위에서 언급한 모듈 외에도, Apache는 또한 모듈을 제공합니다, mod_reqtimeout, 들어오는 요청에 대한 타임아웃을 설정하는 데 사용할 수 있습니다. 클라이언트가 지정된 타임아웃보다 더 오래 걸리는 요청을 보내면, 서버는 연결을 종료합니다. 이는 Slowloris 공격을 방지합니다.
Nginx
ngx_http_limit_conn 모듈 및 ngx_http_limit_req 모듈 외에도, Nginx는 ngx_http_request 모듈도 제공합니다. 이는 업스트림 서버가 요청을 처리하는 데 걸리는 시간을 제한하는 데 사용할 수 있습니다. 업스트림 서버가 지정된 타임아웃보다 더 오래 걸리면, Nginx는 연결을 종료합니다.
IIS
동적 IP 제한 및 요청 필터링 모듈에 추가하여, IIS는 커널 모드 드라이버도 제공합니다 HTTP.sys. 이를 통해 들어오는 요청에 대한 타임아웃을 설정할 수 있습니다. 클라이언트가 지정된 타임아웃보다 더 오래 걸리는 요청을 보내면, 서버는 연결을 종료합니다.
AWS
AWS WAF 및 AWS Shield 외에도, AWS는 Elastic Load Balancer를 추가로 제공합니다, 이는 미리 정의된 임계값보다 오래 걸리는 연결을 종료하도록 구성할 수 있는 여러 연결 타임아웃 규칙을 포함합니다.
Azure
Azure Application Gateway 및 Azure Front Door 외에도, Azure는 Azure Load Balancer도 제공합니다, 이는 미리 정의된 기간 동안 유휴 상태인 연결을 종료하는 데 사용할 수 있는 구성 가능한 유휴 타임아웃 기능을 포함합니다.
GCP
Google Cloud Platform (GCP) 서비스에 대한 여러 연결 타임아웃 옵션을 제공합니다, 여기에는 Cloud Load Balancing이 포함됩니다, 이는 미리 정의된 임계값보다 오래 걸리는 연결을 종료하는 데 사용할 수 있는 구성 가능한 타임아웃 기능을 포함합니다.
결론
결론적으로, DDoS 및 DoS 공격은 OSI 모델의 어떤 계층을 목표로 하는지에 따라 분류할 수 있습니다, 예를 들어 네트워크 계층 (계층 3), 전송 계층 (계층 4), 및 애플리케이션 계층 (계층 7).
계층 공격은 네트워크 및 전송 계층에 트래픽을 집중시킵니다 3 및 계층 4 공격은 더 복잡하며 애플리케이션 자체의 취약점을 악용합니다, 계층 7 HTTP 플러드 및 Slowloris 공격은 계층 공격의 예입니다. 이러한 공격에 대한 대응책에는 속도 제한이 포함됩니다 7 서비스 거부 공격입니다. 실시간으로 공격을 식별하고 차단하려면 포괄적인, 블랙리스트, 및 웹 애플리케이션 방화벽이 포함됩니다. 실시간으로 공격을 식별하고 차단하려면 포괄적인, 다층 방어 전략으로 모니터링을 포함합니다, 탐지, 및 대응 능력.
또한, 공격자는 자신의 기술을 맞춤화하고 탐지를 피하고 보안 조치를 회피하기 위해 공격을 조정할 수 있습니다. 따라서, 조직이 포괄적인, 다층 방어 전략으로 모니터링을 포함합니다, 탐지, 및 대응 능력을 구현하여 실시간으로 공격을 신속하게 식별하고 차단하는 것이 필수적입니다. 여기에는 악성 트래픽 패턴을 탐지하고 차단하기 위해 고급 기계 학습 알고리즘과 행동 분석을 사용하는 것이 포함될 수 있습니다.
More from me
포스트 면책 조항
견해, 정보, 또는 표현된 의견은 전적으로 작성자의 개인 의견이며, 반드시 작성자의 고용주 또는 그가 속한 조직의 의견을 나타내는 것은 아닙니다..
이 게시물에 포함된 정보는 일반적인 정보 제공 목적으로만 사용됩니다.. 정보는 파르하드 모피디가 제공했으며, 그는 정보를 최신 및 정확성 유지하기 위해 노력하지만, 어떠한 진술이나 보증도 하지 않습니다, 명시적이든 암시적이든, 완전성, 정확성, 신뢰성, 웹사이트의 적합성 또는 가용성. 파르하드는 어떠한 진술이나 보증도 하지 않습니다. 또는 어떠한 정보, 어떤 목적을 위한 게시물에 포함된 제품 또는 관련 그래픽.
또한, AI는 제안을 제공하고 일부 내용이나 문장을 개선하는 도구로 사용될 수 있다. 아이디어, 생각, 의견, 최종 제품은 원본이며 저자가 만든 인간 제작물입니다.





