○ DNS 증폭공격
- IP 스푸핑 공격기법, 출발지 IP를 희생자 IP로 위조한 후 다수의 DNS 쿼리를 발생시킨다.
- 출발지 IP를 희생자의 IP로 위조하여 다수의 DNS 쿼리에 대한 응답이 희생자 쪽으로 향하도록 함
- any type 또는 txt type이 사용된다.
- 질의 요청 대비 응답이 매우 크기 때문에 증폭 반사공격을 효과적으로 할 수 있다.
○ SYN Flooding 공격
- TCP의 3-way handshake 약점을 이용하는 공격으로 소스 IP를 존재하지 않는 IP주소로 위조하여 대량의 SYN 패킷을 발송하여 해당 시스템의 백로그 큐를 가득 채워 서비스 거부를 하도록 하는 공격
- 동작방식 : 백 로그 큐는 TCP 클라이언트의 연결요청을 담아두기 위한 큐를 의미한다. 큐는 제한된 자원으로 클라이언트의 연결요청이 완료될 때까지 요청정보를 담아두게 되는데, SYN Flooding 공격은 대량의 연결요청을 완료하지 않은 상태(half-open)로 두기 때문에 큐가 가득차서 정상적인 요청을 더 이상 받아들일 수 없는 상태가 된다.
- 예상결과 : 공격당한 서버쪽에서 netstat -an 명령어를 쳐보면 State에 SYN_RECV 중 존재하지 않는 IP들이 수없이 보인다. (3-way handshaking의 취약점을 이용, syn 패킷만 발송하고 마지막 ack 패킷을 발송하지 않아 연결이 완료되지 않음). 공격을 당한 서버는 리소스 부족으로 더 이상 정상적인 서비스 요청을 받아들일 수 없는 상태가 된다.
- 대비책
1. TCP 연결 타임아웃을 짧게 하여 연결요청 대기시간을 줄인다.
2. 백로그 큐를 늘려준다. e.g.) sysctl -w net.ipy4.tcp_max_syn_backlog=1024
3. Syncookies 기능을 활성화한다. e.g.) sysctl -w net.ipy4.tcp_syncookies=1
4. anti-ddos 장비, firewall 등 보안장비를 통해 침입 탐지 및 차단을 수행한다.
○ HTTP GET Flooding with Cache-Control(CC Attack) 공격
- 웹서버의 부하를 감소시키기 위해 캐싱 서버를 운영하여 요청받는 데이터는 웹서버가 아닌 캐싱 서버를 통해 응답하도록 구축하는 경우 공격자는 HTTP 캐시옵션(Cache-Control)을 조작하여 캐싱서버가 아닌 웹서버가 직접 처리하도록 유도하여 웹서버의 자원을 소진시키는 서비스 거부 공격
- 트래픽을 살펴보면 HTTP헤더의 Cache-Control 값이 no-store, must-revalidate로 설정되어 있음
- Referer : 링크를 통해 페이지에 접근할 경우 해당 링크를 가지고 있는 페이지의 URL을 의미한다. A라는 페이지에서 링크를 클릭해서 B라는 페이지에 접근하게 되면 A라는 페이지가 Referer가 된다.
- no-store(캐시저장금지) : 클라이언트로부터 요청받은 데이터를 디스크나 메모리, 별도의 시스템(캐싱서버)에 저장 금지
- must-revalidate(캐시검증) : 웹서버와 별도로 캐싱서버를 운영하는 경우 웹서버는 캐싱서버에 저장된 캐시 데이터에 대한 검증 요구
- Cache-Control : no-cache : 웹서버 요청 시 Cache-Control 헤더에 no-cache 지시자를 지정하면 캐시서버에 캐시된 entry가 fresh한 상태라하더라도 원본서버로부터 무조건 다시 읽어서 응답하라는 의미이다. max-age=0의 경우에는 동일한 유무에 대해서만 매번 체크하지만 no-cache의 경우에는 무조건 원본서버에서 읽어 응답한다는 차이점이 있다.
○ Slow HTTP POST DoS(RUDY) 공격
- HTTP POST 메소드를 이용하여 서버로 전달할 대량의 데이터를 장시간에 걸쳐 분할 전송, 서버는 POST 데이터를 모두 수신하지 않았다고 판단하여 연결을 장시간 유지함으로써 가용량을 소비하게 되어 다른 클라이언트의 정상적인 서비스를 방해하는 서비스 거부 공격
- Content-Length : 1000000byte로 설정하여 1byte씩 전송
○ Slow HTTP Header DoS(Slowloris) 공격 = 개행문자(CRLF, 0d0a)
- 서버로 전달할 HTTP Header 정보를 비정상적으로 조작하여 웹서버가 헤더 정보를 완전히 수신할 때까지 연결을 유지하도록 하여 가용성을 소비시킴으로써 다른 클라이언트의 정상적인 서비스를 방해하는 서비스 거부 공격
- 정상적인 트래픽 0d0a 0d0a (2번) \r\n\r\n으로 종료 → 비정상적인 트래픽 0d0a (1번) \r\n으로 종료
○ Slow HTTP Read DoS 공격(Window Size = 0, W=0, Wnd=0)
- TCP 윈도우 크기와 데이터 처리율을 감소시킨 상태에서 다수의 HTTP 패킷을 송신하여 웹서버가 정상적으로 응답하지 못하도록 하는 서비스 공격. TCP 윈도우는 TCP 헤더의 구성요소로써 수신자 측의 수신 가능한 데이터 버퍼용량을 의미하고, 데이터 처리율은 클라이언트가 수신한 데이터를 읽어 들이는 단위시간당 처리능력을 말한다.
- 정상 트래픽은 Window 크기가 가변적임에 반해 비정상트래픽을 보면 윈도우 크기가 0임을 알 수 있다. 매우 작은 윈도우 크기로 서버에 응답을 보내면 서버는 더 이상 데이터를 전송하지 못하고 연결을 유지한 상태로 대기상태에 빠지게 된다.
※ 함께 보면 좋은 글
'정보보안기사' 카테고리의 다른 글
[정보보안기사] 실기대비 요약 #9(침해사고 분석 및 대응) (0) | 2022.04.10 |
---|---|
[정보보안기사] 실기대비 요약 #8(어플리케이션 보안) (0) | 2022.04.09 |
[정보보안기사] 실기대비 요약 #6(네트워크 보안) (0) | 2022.04.08 |
[정보보안기사] 실기대비 요약 #5(네트워크 보안) (0) | 2022.04.07 |
[정보보안기사] 실기대비 요약 #4(네트워크 보안) (0) | 2022.04.07 |