
Bro로 slowloris와 같은 HTTP 스톨링 공격 탐지
HTTP 스톨링 DoS 공격은 웹 서버가 원격 클라이언트가 단순히 느린 링크로 연결된 것인지, 아니면 원격 클라이언트가 웹 서버가 타임아웃을 수행하고 로컬 시스템 리소스를 보존하기 위해 연결을 종료하는 것을 피하려고 의도적으로 데이터를 매우 느리게 보내는 것인지 판단할 수 없는 점을 악용합니다. 공격자에게서 일반적으로 나타나는 행동은 많은 연결을 열고 웹 서버가 연결을 타임아웃시키지 못하도록 데이터를 천천히 흘려보내는 것입니다. 웹 서버가 비교적 작은 작업자 풀을 사용하는 경우, 이러한 리소스 고갈 상태에 쉽게 도달할 수 있습니다.
많은 최신 웹 서버는 이러한 유형의 리소스 고갈 공격에 대해 더욱 방어적으로 변했지만, 여전히 공격을 감시하는 것이 신중하며, 취약한 웹 서버 다수가 프로덕션 네트워크에 여전히 존재할 가능성이 매우 높습니다. 또한 웹 서버가 한 형태의 공격에는 저항력이 있으면서 다른 형태에는 여전히 취약할 수도 있습니다. 예를 들어, 웹 서버가 POST 본문에서 데이터가 느리게 전송되는 것에는 저항력이 있지만 단일 HTTP 헤더 또는 여러 HTTP 헤더에서 데이터가 느리게 전송되는 것에는 취약할 수 있습니다. 이 스크립트는 클라이언트 요청의 어느 부분에서든 데이터가 너무 느리게 전송되는 전반적인 개념을 포착하기 위한 것이며, 이러한 공격 스타일을 모두 탐지해야 합니다.
이것은 Bro 패키지 관리자를 통해 설치하는 것이 가장 쉽습니다::
bro-pkg refresh
bro-pkg install bro/corelight/http-stalling-detector
이 스크립트의 출력은 두 가지 노티스입니다:
HTTPStalling::Attacker - HTTP 스톨링 공격을 수행하는 공격자가 감지되었음을 나타냅니다.
HTTPStalling::Victim - 특정 호스트가 하나 이상의 공격자로부터 표적이 되었음을 나타냅니다.
노티스가 이렇게 두 가지로 나뉘는 이유는, 프록시를 사용하여 공격자를 여러 출발지 IP 주소에 분산시킬 수 있는 일부 공격 소프트웨어가 있기 때문입니다. 우려되는 점은 IP 주소에서 단일 요청만 들어올 경우 공격이 결코 감지되지 않을 수 있다는 것입니다. 공격자와 피해자로 나누면, 이러한 유형의 난독화 시도가 있더라도 피해자가 매우 명확하게 드러납니다.
작성자: Seth Hall [email protected]