기억해 두면 좋은 IT 지식 3 - 서비스 거부 공격(DoS)
서비스 거부(Dos) 공격 개념
서비스 거부 공격이란 표적이 되는 서버의 자원을 고갈시킬 목적으로 다수의 공격자 또는 시스템에서 대량의 데이터를 한 곳의 서버에 집중적으로 전송함으로써 표적이 되는 서버의 정상적인 기능을 방해하는 것을 말한다.
종류에는 Ping of Death, SMURFING, SYN Flooding, TearDrop, Land, DDoS 등이 있다.
Ping of Death : Ping명령을 전송할 때 패킷의 크기를 허용범위(65,536바이트)를 넘게 전송하여 공격 대상의 네트워크를 마비시키는 공격 방법이다. 큰 패킷을 수백 개의 패킷으로 나누어 보내게 되면, 재조립하는데 부담이 있다. ICMP Ping메시지에 대한 응답하게 만들어서 시스템을 다운시킨다. 지금은 애초에 방화벽에서 차단하는 기술 개발되었다.
ICMP Ping메시지 : 특정 IP로 패킷이 전송될 때 해당 IP 노드가 현재 운영 중인지 확인을 요청하는 메시지를 보내서, 운영 중이라면 에코 응답 메시지를 전송하게 만든다.
SMURFING : IP, ICMP 특성을 악용해서, 엄청난 양의 데이터를 한 사이트에 소나기처럼 집중적으로 보낸다. 네트워크를 이용 불가능한 상태로 만들어서, 공격자는 송신 주소를 수신 주소 IP로 위장하고, 해당 네트워크 라우터의 브로드캐스트 주소를 수신지로 해서 패킷을 전송한다. 그러면 해당 네트워크의 모든 컴퓨터로 발송되고, 모든 컴퓨터들은 응답 메시지를 송신 주소로 보내게 되며, 이로 인해 과부하가 걸려버린다. 무력화 방법은 네트워크 라우터에서 브로드캐스트 주소를 사용할 수 없게 미리 설정하는 것이다.
SYN Flooding : TCP는 신뢰성 있는 전송을 위해 3-way-handshake를 거친 후 전송하게 되는데, 공격자가 이것을 일부러 중단시킨다. 서버가 대기상태에 놓이게 만들어서 정상 서비스 수행 못하도록 방해하는 것을 말한다.
사용할 수 없는 IP주소를 이용해 가상의 클라이언트로 위장해서 공격한다. SYN을 수신지에 보내는 것으로 시작, 공격 대상지는 SYN에 대한 응답으로 SYN+ACK 신호를 보낸다. 그러나 송신지는 앞서 말한 것처럼 없는 주소다. 그래서 반응이 없을 무이다. 마지막으로 송신지에서 ACK를 보내야 수신하는데, 이를 보내지도 받지도 못하니 메모리 공간 확보해놓고 대기해야 한다. 이 점을 이용해 계속해서 그 과정을 요청해서 정상적인 서비스 수행을 방해하는 것이다.
대응방법 : 수신지의 SYN 수신대기 시간을 줄이거나 침입차단시스템을 활용한다.
TearDrop : 패킷이 크면 여러 개로 분할되어 전송하는데, 그 분할된 순서를 알려주는 것을 Fragment Offset값이라 부른다. TearDrop은 이 값을 변형시켜서 재조립할 때 오류가 발생하게 만들어 과부하를 일으킨다. 대비 방법은 Fragment Offset값이 잘못된 경우 해당 패킷을 버려버리는 것이다.
Land : 송신 IP주소와 수신 IP주소를 모두 공격 대상의 IP로 설정, 자기 자신에게 응답하게 만든다. 계속 전송할 경우 자기 자신에게 무한히 응답하게 되는 무한 루프를 한다. 대비책은 송신 IP, 수신 IP주소의 적절성을 주기적으로 검사한다.
DDoS : 분산된 공격 지점에서 한 곳에 분산 서비스 공격을 수행, 네트워크에서 취약점이 있는 호스트들을 탐색하고 이들을 분산 서비스 공격용 툴을 설치하여 에이전트로 만들고 이용하는 것이다. 공격 범위 확대를 위해 일부 호스트에 다수 에이전트를 관리할 수 있는 핸들러 프로그램을 설치하여 마스터로 지정하고 공격에 이용한다.
분산 서비스 공격용 툴을 악마 같아서 '데몬'이라고도 부른다.
Trin00 : 가장 초기, UDP Flooding 공격 수행한다.
TFN(Tribe Flooding Network) : UDP Flooding + TCP SYN Flooding, ICMP, SMUFING이 이 계열사 친구들이다.
TFN2 K : TFN 확장판이다.
Stacheldraht : 이전 툴들의 기능을 유지하면서 공격자, 마스터, 에이전트가 쉽게 노출되지 않도록 암호화된 통신을 수행, 툴이 자동 업데이트되도록 한다.
SSL(Secure Socket Layer) : 데이터를 송/수신하는 두 컴퓨터 사이, 즉 TCP/IP계층과 애플리케이션 계층이다.
(HTTP, TELNET, FTP) 사이에 위치하여 인증, 암호화, 무결성을 보장하는 업계 표준 프로토콜
NAC(Network Access Control)
네트워크에 접속하는 내부 PC의 MAC 주소를 IP 관리 시스템에 등록한 후 일관된 보안 관리 기능을 제공하는 보안 설루션이다. 내부 PC의 소프트웨어 사용 현황을 관리하여 불법적인 소프트웨어 설치를 방지한다. 일괄적인 배포관리 기능을 이용해 백신이나 보안패치 등의 설치 및 업그레이드를 수행한다. 네트워크에 접속한 비인가 시스템을 자동으로 검출하여 자산을 관리한다.
ESM (Enterprise Security Management)
다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 설루션이다.
방화벽, 웹 방화벽, IPS, IDS, VPN 등에서 발생한 로그 및 보안 이벤트를 통합하여 관리함으로써, 비용 및 자원을 절약할 수 있다. 보안 설루션 간의 상호 연동을 통해 종합 보안 관리 체계를 수립할 수 있다.