공시 한 판

정보보호론 개념서 · 네트워크 공격

DoS 공격과 SYN 플러딩

설명 영상 DoS 공격과 SYN 플러딩 · 2:21

핵심 정리

서비스 거부(DoS, Denial of Service) 공격은 서버의 성능을 떨어뜨리거나 정지시켜 정상 작동을 방해하는 공격이다. DoS 공격은 자원을 소진시키거나 시스템을 마비시켜 가용성을 위협한다. 기밀성이나 무결성을 노리는 공격과 달리 목표는 정상 사용자가 서비스를 받지 못하게 만드는 데 있으므로, 침입 여부보다 서비스 중단 여부로 판단해야 한다. 자원 고갈과 시스템 마비

서비스 거부 공격의 기본 형태는 대량의 트래픽을 보내 서비스를 중단시키는 것이다. 대상이 처리할 수 없을 만큼 많은 요청이나 패킷이 몰리면 정상 요청은 처리 자원을 얻지 못한다. 발신지와 목적지 IP 주소를 같게 만든 패킷을 보내 시스템을 마비시키는 것도 같은 범주에 든다. 공격 방식은 패킷의 형태와 프로토콜에 따라 여러 갈래로 나뉘며, SYN 플러딩은 그중 TCP 연결 설정 절차를 노리는 대표 공격이다.

SYN 플러딩은 TCP 3-way 핸드셰이크 절차를 악용하는 서비스 거부 공격이다. 정상적인 TCP 연결은 세 단계 절차가 끝나야 완성되는데, SYN 플러딩은 그 중간에서 연결을 완료하지 않은 채 서버 자원을 붙잡아 둔다. 그래서 서버는 반쯤 열린 연결을 여러 개 쌓아 두게 되고, 정상 접속 요청을 받을 자원이 부족해진다. 반쯤 열린 연결 큐

대응책으로는 방화벽 및 침입 탐지 시스템으로 비정상 트래픽을 차단하고 탐지하는 것이 대표적이다. DoS는 가용성을 노리는 공격이므로 기밀성 공격과 구별해 읽어야 한다. 도청(Eavesdropping)은 통신 내용을 몰래 엿듣는 기밀성 공격이며 서비스 거부 공격이 아니다.

자세히

서비스 거부 공격의 정의

서비스 거부 공격은 특정 기법의 이름이라기보다 가용성을 노리는 공격 전체를 묶는 범주로 읽는 것이 정확하다. 반복적인 요구와 수정으로 시스템 자원을 고갈시키는 공격도 서비스 거부(DoS) 공격이다. 패킷을 대량으로 쏟아붓는 방식만 DoS인 것이 아니라, 자원을 조금씩 갉아먹는 방식도 같은 범주에 든다. 패킷 범람은 대량의 패킷으로 서버 자원을 소진시켜 정상 서비스를 중단시키는 DoS 공격으로서 가용성을 직접 위협한다. 같은 보안 용어라도 범주가 다른 것은 따로 구별해야 한다. Race Condition은 DoS 공격 유형이 아니며 공유 자원에 동시 접근할 때 생기는 경쟁 상태이다. Land 공격은 DoS 공격 유형의 하나이다.

DDoS의 구조와 도구

DDoS 공격은 네트워크 대역폭이나 컴퓨터 시스템 자원을 공격 대상으로 한다. 공격 대상의 가용성을 공격한다는 점에서는 DoS와 목표가 같다. 규모를 키우기 위해 공격자는 봇넷을 주로 활용하며, 공격을 증폭시키는 중간자를 사용하는 기법도 일반적이다. 대표적인 도구로는 Trin00, TFN, Stacheldraht가 있다. Trin00은 분산된 다수의 시스템을 이용해 대상을 공격하는 DDoS 공격 도구다. TFN은 ICMP flood, SYN flood, UDP flood 등 다양한 DDoS 공격을 수행하는 프로그램 세트다. Stacheldraht는 ping flood, TCP SYN flood 등을 사용하는 대표적인 DDoS 도구다. 도구 이름과 공격 방식을 짝지어 익혀야 한다. 봇넷 기반 분산 공격

SYN 플러딩의 동작 원리

SYN 플러딩 공격은 TCP 연결 설정 과정의 취약점을 이용한 공격이다. 정상 연결은 클라이언트의 SYN, 서버의 SYN-ACK, 클라이언트의 ACK 순서로 완성되는데, 공격자는 마지막 ACK를 보내지 않은 채 SYN만 대량으로 보낸다. 서버는 각 SYN을 접속 요청으로 받아 반쯤 열린 연결 항목을 만들고 응답을 기다리며, 공격자가 송신자 주소를 위조하는 경우가 많아 돌아올 응답이 없는 항목을 계속 붙잡게 된다. SYN 플러드 공격은 SYN만 대량으로 보내 서버의 반쯤 열린 연결 큐를 채우는 DoS 공격이다. SYN 플러딩은 연결을 완료하지 않은 SYN 패킷을 대량 전송해 서버 자원을 고갈시키는 DoS 공격이다.

세션 하이재킹과 비교하면 목적과 수법이 다르다. SYN 플러딩은 반쯤 열린 TCP 연결을 쌓아 서버 자원을 고갈시키고, 세션 하이재킹은 TCP 연결의 시퀀스 번호를 조작하고 RST를 보내 연결을 가로챈다.

HTTP GET·UDP·핑 플러딩

HTTP GET 플러딩은 웹 서버가 처리할 수 없는 과도한 GET 요청을 보내 자원을 고갈시키는 공격이다. 이 공격은 정상적인 TCP 세션으로 과도한 GET 요청을 보내 웹 서버에 과부하를 일으킨다. SYN 플러딩이 연결 설정 절차를 노린다면, HTTP GET 플러딩은 연결이 맺어진 뒤의 요청 처리량을 공격한다는 점에서 구별된다. 정상 TCP 세션 위의 GET 요청

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 절 읽기