Slowloris 공격 취약점

The Dice·2021년 8월 12일

개요

정보보호팀에서 Slowloris 공격에 취약하다고 연락이 왔다.

여러 자료를 통해 확인해보니 Apache 웹 서버에서 주로 확인되는 취약점이라고 한다.
공격 원리는 다음과 같다.

  1. 공격자는 HTTP 헤더나 본문을 천천히 주기적으로 전송한다.
  2. 웹 서버는 종료 문자(Carriage Return)가 오지 않아 연결을 계속 유지 한다.
  3. 웹 서버는 연결이 쌓여 새로운 연결을 만들 수 없게 된다.
  4. 일반 사용자들은 접속 불가를 경험하게 된다. (Denial Of Service)

해결법

우선 Apache 웹 서버 연결 설정을 매우 짧게 하면 이런 공격을 예방할 수 있다고 하던데...

밑도 끝도 없이 서버 Capacity 보다 큰 공격이 오면 아무 의미가 없더라.
또한 네트워크가 느린 정상적인 사용자까지 차단 당할 수 있어서 적절한 값을 찾는건 실무적으로 많은 연구가 필요해 보인다.

혹은 웹 방화벽을 이용하여 black-list를 만들어 차단하거나 Slowloris 공격이 보이는 패턴을 이용하여 차단할 수 있다고 한다. (웹 방화벽 담당이 아니라 잘 모르겠다)

직접 해보자

직접 Slowloris 공격을 해봐야 어떻게 대응할지 알 수 있을거 같다.
이거 다운 받아서 실행 해보자.
https://github.com/gkbrk/slowloris

당연히 Naver 나 Kakao는 이런 공격이 아무 소용 없다.

영세 업체의 홈페이지는 이런 종류 공격에 속수무책이라는 점도 확인했다.
대부분의 페이지가 공격 시작 1초만에 다운되었다.
(공격을 중단하면 연결이 해제되면서 바로 다시 복구된다)

회사 개발 서버에 MaxRequestWorkers 설정의 2배수로 실행하니 속절 없이 다운 된다.

결론

Slowloris 공격을 개발 서버에 실행하면서 Apache 웹 서버 RequestReadTimeout 설정을 이것 저것 바꾸어 보았다. 하지만 적절한 값을 찾을 수 없었다.

profile
건설회사 전산실 근무

0개의 댓글