애플리케이션 계층 공격 - DDoS 복원성에 대한 AWS 모범 사례

애플리케이션 계층 공격

공격자는 계층 7 또는 애플리케이션 계층 공격을 사용하여 애플리케이션 자체를 대상으로 지정할 수 있습니다. 이러한 공격에서는 SYN flood 인프라 공격과 마찬가지로, 공격자가 애플리케이션의 특정 함수에 오버로드하여 애플리케이션을 사용할 수 없게 하거나 합법적인 사용자가 응답하지 않도록 합니다. 때때로 소량의 네트워크 트래픽만 생성하는 매우 낮은 요청 볼륨으로 이를 달성할 수 있습니다. 이로 인해 공격을 감지하고 완화하기가 어려울 수 있습니다. 애플리케이션 계층 공격의 예로는 HTTP flood, 캐시 버스팅 공격 및 WordPress XML-RPC flood가 있습니다.

HTTP flood 공격에서 공격자는 웹 애플리케이션의 유효한 사용자가 보낸 것처럼 보이는 HTTP 요청을 보냅니다. 일부 HTTP flood는 특정 리소스를 대상으로 하는 반면 더 복잡한 HTTP flood는 애플리케이션과 인간의 상호 작용을 에뮬레이트하려고 시도합니다. 이로 인해 요청 속도 제한과 같은 일반적인 완화 기술을 사용하는 데 어려움이 증가될 수 있습니다.

캐시 버스팅 공격은 쿼리 문자열의 변형을 사용하여 콘텐츠 전송 네트워크(CDN) 캐싱을 우회하는 HTTP flood 유형입니다. 캐시된 결과를 반환할 수 있는 대신 CDN은 모든 페이지 요청에 대해 원본 서버에 연결해야 하며 이러한 원본 가져오기는 애플리케이션 웹 서버에 추가적인 부담을 줍니다.

WordPress 핑백 flood라고도 하는 WordPress XML-RPC flood 공격에서는 공격자가 WordPress 콘텐츠 관리 소프트웨어에서 호스팅되는 웹 사이트를 대상으로 지정합니다. 공격자는 XML-RPC API 함수를 오용하여 대량의 HTTP 요청을 생성합니다. 핑백 기능을 사용하면 WordPress(사이트 A)에서 호스팅되는 웹 사이트가 사이트 A가 사이트 B에 대해 생성한 링크를 통해 다른 WordPress 사이트(사이트 B)에 알릴 수 있습니다. 그런 다음 사이트 B는 사이트 A를 가져와 링크가 있는지 확인합니다. 핑백 flood에서 공격자는 이 기능을 오용하여 사이트 B가 사이트 A를 공격하도록 합니다. 이러한 유형의 공격에는 명확한 서명이 있습니다. WordPress는 일반적으로 HTTP 요청 헤더의 User-Agent에 있습니다.

다른 형태의 악성 트래픽이 애플리케이션의 가용성에 영향을 줄 수도 있습니다. 스크레이퍼 봇은 콘텐츠를 훔치거나 가격과 같은 경쟁 정보를 기록하기 위해 웹 애플리케이션에 액세스하려는 시도를 자동화합니다. 무차별 대입 공격크리덴셜 스터핑 공격은 애플리케이션의 보안 영역에 대한 무단 액세스를 얻기 위해 프로그래밍되는 작업입니다. 이는 엄밀히 말하면 DDoS 공격이 아닙니다. 그러나 자동화된 특성은 DDoS 공격과 유사하게 보일 수 있으며 본 백서에서 다룰 동일한 모범 사례를 구현하여 완화할 수 있습니다.

애플리케이션 계층 공격은 도메인 이름 시스템(DNS) 서비스도 대상으로 할 수 있습니다. 이러한 공격 중 가장 일반적인 것은 공격자가 잘 구성된 DNS 쿼리를 많이 사용하여 DNS 서버의 리소스를 고갈시키는 DNS 쿼리 flood입니다. 이러한 공격에는 공격자가 하위 도메인 문자열을 무작위로 지정하여 지정된 확인자의 로컬 DNS 캐시를 우회하는 캐시 버스트 구성 요소도 포함될 수 있습니다. 결과적으로 확인자는 캐시된 도메인 쿼리를 활용할 수 없으며 대신 권한 있는 DNS 서버에 반복적으로 연결해야 하므로 공격이 증폭됩니다.

웹 애플리케이션이 전송 계층 보안(TLS)을 통해 전달되는 경우 공격자는 TLS 협상 프로세스를 공격하도록 선택할 수도 있습니다. TLS는 계산 비용이 많이 들기 때문에 공격자는 읽을 수 없는 데이터(또는 이해할 수 없는(암호문))를 합법적인 핸드셰이크로 처리하기 위해 서버에 추가 워크로드를 생성하여 서버의 가용성을 줄일 수 있습니다. 이 공격의 변형에서 공격자는 TLS 핸드셰이크를 완료하지만 암호화 방법을 영구적으로 재협상합니다. 공격자는 대안으로 여러 TLS 세션을 열고 닫아 서버 리소스를 고갈시키려고 시도할 수 있습니다.