공격 시나리오
웹 서버의 접근이 불가능하다는 보고를 받았으니 침해사고를 파악하고, 보안 장비를 활용하여 적절한 조치를 취하는 실습입니다.
Slowloris Dos 공격은 HTTP 헤더의 끝내 불완전한 데이터를 포함시킨 패킷을 다량 전송하여 서버의 가용 자원을 모두 소진하는 DoS 공격입니다.
일반적인 HTTP 패킷의 헤더에는 헤더 종료 개행 문자 하나와 전체 헤더 종료 개행 문자 총 두개가 포함되어야하지만, 헤더의 마지막에 개행 문자를 하나만 전송하면, 웹 서버는 헤더가 모두 도착하지 않았다고 간주하고 대기 상태를 유지합니다. 서버 자원이 잠식되는 것입니다.
이번 포스팅에서는 위 시나리오 공격에 대한 다음과 같은 대처 방안을 실습합니다.
① 패킷 분석을 통해 과거 공격자의 IP를 확인
② IPS 차단 정책 수립
③ 방화벽을 활용하여 현재 웹 서버를 공격하는 IP 차단
패킷 분석을 통한 과거 공격자 IP 확인
Wireshark의 [Statistics] → [Conversations]에서 통신을 한 패킷을 확인할 수 있다. IPv4에 총 4개의 패킷 중 첫번째 패킷을 보면 '38.123.27.48'라는 IP에서 웹 서버(192.168.0.200)로 많은 패킷이 전송되는 것을 확인 가능합니다.
ip.src == 38.123.27.48로 필터링한 패킷을 확인하면 출발지 포트가 다른 패킷이 다량으로 웹 서버에 전송되는 것을 확인할 수 있습니다.
그 중에서도 PSH, ACK 플래그가 설정된 패킷을 확인합니다. HTTP 패킷의 header와 body가 구분되는 부분에 '0d 0a'가 한번만 포함되어 있는데, 이는 Referer이라는 HTTP 헤더의 '0d 0a'이므로 본문이 나오려면 하나가 더 있어야 한다. 즉, 완벽하지 못한 패킷입니다.
IPS 차단 정책 수립
먼저 AdminConsole 가상환경의 MF2를 실행한 후 [IPS/DDoS]의 동작 모드를 [차단 모드]로 변경합니다. 그 다음은 [보호 도메인 정책 추가], 마지막으로 [시그니처 추가] 과정을 수행합니다.
먼저 [보호 도메인 정책] 추가입니다.
다음은 [사용자 정의 시그니처] 추가입니다. [기본 설정]에서는 목적지를 WEB 서버, 프로토콜은 TCP, 포트번호는 80으로 설정합니다.
다음은 [고급 설정]입니다. Slowloris 룰셋을 적용하기 위해 차단할 content를 설정해줘야 합니다. '47 45 54'는 GET을 의미하고 패킷의 헤더 마지막에 '0d 0a 0d 0a'가 아닌 애들을 탐지하라는 룰셋을 적용합니다. (nocase는 대소문자를 가리지 않는다)
content:"|47 45 54|"; content:!"|0d 0a 0d 0a|"; nocase;
이제 생성한 시그니처를 사용해야겠죠? [프로파일별 보안 설정] → [default] → [Signatures] → [User Defined]에서 생성한 프로파일 '사용'을 체크하고 적용합니다.
차단 로그 확인 및 공격자 IP 차단
웹 서버를 재부팅 후 AdminConsole의 MF2을 실행합니다. [Monitoring]의 IPS/DDoS 로그를 확인하면 다음과 같이 차단 로그를 확인할 수 있습니다.
이제 출발지 IP를 차단하겠습니다. 방화벽 정책 설정에서 출발지 IP가 24.31.211.19인 패킷을 양방향 차단하도록 설정하고 적용합니다.
'보안 > 2023 KISA 정보보호 제품군 실습 훈련 - 중급' 카테고리의 다른 글
웹 해킹 시나리오 실습 (0) | 2023.02.19 |
---|---|
워터링 홀 공격 시나리오 실습(SSTI 취약점 차단 룰 설정) (0) | 2023.02.19 |
악성코드 감염 시나리오 실습(백도어 계정명 확인 & Eternalblue 공격 차단) (0) | 2023.02.19 |
인프라 구축 시나리오 실습 3(업무망 방화벽/NAT 정책 설정) (0) | 2023.02.18 |
인프라 구축 시나리오 실습 2(UTM, WAF 설정 및 정책 적용) (0) | 2023.02.18 |