반응형

개요

 

이번에는 서비스 거부(DOS) 공격에 대해서 알아보도록 하겠습니다.

 


서비스 거부(DOS) 공격

 

서비스 거부(DOS) 공격이란 일종의 훼방과 같습니다.

방해를 받기 때문에 서비스를 제공하고 싶어도 제공하지 못하게 하는 것이 Dos 공격이라고 하는데 그 공격에 대해서 알아보겠습니다.

 


취약점 공격형


Boink, Bonk, TearDrop 공격


TCP의 신뢰성 있는 연결을 위한 기능
패킷의 순서가 올바른지 확인
중간에 손실된 패킷은 없는지 확인
손실된 패킷의 재전송 요구


프로토콜은 이러한 사항이 확인되지 않는 데이터 전송에 대해 신뢰도를 확보하기 위해 반복적인 재요청과 
수정을 합니다. 
Boink, Bonk, TearDrop은 모두 이러한 반복적인 재요청과 수정을 공격 대상이 계속하게 함으로써 
시스템의 자원을 고갈시키는 공격입니다.
TCP 패킷 안에는 각 패킷이 데이터의 어느 부분을 포함하고 있는지를 표시하기 위하여 시퀀스 넘버가 기록
되어 있는데, 이러한 공격들은 시스템의 패킷 재전송과 재조합(Reassembling)에 과부하가 걸리도록 이 시퀀
스 넘버를 속입니다.
시퀀스 넘버가 조작된 패킷의 흐름은 공격 대상에게 절대로 풀 수 없는 퍼즐을 던져주는 것과 같은데. 이러한 
취약점은 패치를 통해서 제거되어 옵니다.

과부하가 걸리거나 계속 반복되는 패킷은 무시하고 버리도록 처리합니다.

 

 

TearDrop 공격 시 패킷의 배치

 

 

패킷 번호 정상 패킷의 시퀀스 넘버 공격을 위한 패킷의 시퀀스 넘버
1 1~100 1~100
2 101~200 81~181
3 201~300 221~321
4 301~400 251~351

TearDrop 공격 시 패킷의 시퀀스 넘버

 


Land 공격


패킷을 전송할 때 출발지 IP 주소와 목적지 IP 주소 값을 똑같이 만들어서 공격 대상에게 보내는 공격. 
이때  조작된 IP 주소 값은 공격 대상의 IP 주소여야 합니다.
Land 공격에 대한 보안 대책은 주로 운영체제의 패치 관리를 통해 마련하거나, 방화벽과 같은 보안 설루션을 
이용하면 됩니다.

 


자원 고갈 공격형


Ping of Death 공격


네트워크에서는 패킷을 전송하기 적당한 크기로 잘라서 보내는데, Ping of Death는 네트워크의 이런 특성을 
이용한 것입니다.

네트워크의 연결 상태를 점검하기 위한 ping 명령을 보낼 때, 패킷을 최대한 길게 하여(최대 65,500바이트) 
공격 대상에게 보내면 패킷은 네트워크에서 수백 개의 패킷으로 잘게 쪼개져 보내집니다.

 


SYN Flooding 공격


네트워크에서 서비스를 제공하는 시스템에는 동시 사용자 수에 대한 제한이 있습니다. 
SYN Flooding은 존재하지 않는 클라이언트가 서버별로 한정되어 있는 접속 가능한 공간에 접속한 것처럼 속여 다른 사용자가 서버의 서비스를 제공받지 못하게 하는 공격입니다. 

 

서버는 클라이언트가 ACK패킷을 보내올 때까지 SYN Received 상태로 일정 시간을 기다려야 하고, 그동안

  공격자는 가상의 클라이언트로 위조한 SYN 패킷을 수없이 만들어 서버에 보냄으로써 서버의 가용 동시 접속

  자 수를 모두 SYN Received 상태로 만들 수 있습니다.

SYN Flooding 공격 시 3-웨이 핸드셰이킹

 

이 공격은 SYN Received의 대기 시간을 줄이는 방법으로 쉽게 해결할 수 있습니다. 
침입 방지 시스템(IPS)과 같은 보안 시스템을 통해서도 이러한 공격을 쉽게 차단할 수 있습니다.

 


Smurf 공격

 

Smurf(스머프) 공격은 ICMP 패킷과 네트워크에 존재하는 임의의 시스템들을 이용하여 패킷을 확장시켜서 
서비스 거부 공격을 수행하는 방법입니다. 
Smurf 공격은 네트워크를 공격할 때 많이 사용됩니다.

 

디렉트 브로드캐스트(Direct Broadcast)의 이해

기본적인 브로드캐스트는 255.255.255.255의 목적지 IP 주소를 가지고 네트워크의 임의의 시스템에 패킷을 보내는 것으로, 3 계층 장비(라우터)를 넘어가지 못합니다. 
172.16.0.255와 같이 네트워크 부분(172.16.0)에 정상적인 IP를 적어주고, 해당 네트워크에 있는 클라이언트의 IP 주소 부분에 255, 즉 브로드캐스트 주소로 채워서 원격지의 네트워크에 브로드캐스트를 할 수 있는데 이를 디렉트 브로드캐스트라고 합니다.
공격자가 172.16.0.255로 다이렉트 브로드캐스트를 하면 패킷이 다음과 같이 전달됩니다.

 

공격자에 의한 에이전트로의 브로드캐스트

 

ICMP Request를 받은 172.16.0.0 네트워크는 ICMP Request 패킷의 위조된 시작 IP 주소로 ICMP Reply를 다시 보냅니다. 
결국 공격 대상은 수많은 ICMP Reply를 받게 되고 Ping of Death처럼 수많은 패킷이 시스템을 과부하 상태로 만들게 됩니다.
 

에이전트에 의한 스머프 공격의 실행

 


Mail Bomb 공격


흔히 폭탄 메일이라고 하며, 스팸 메일도 여기에 해당됩니다. 
메일 서버는 각 사용자에게 일정한 양의 디스크 공간을 할당하는데, 메일이 폭주하여 디스크 공간을 가득 채
우면 정작 받아야 하는 메일을 받을 수 없습니다. 즉 스팸 메일도 서비스 거부 공격이 될 수 있습니다.

 


분산 서비스 거부(DDoS) 공격

 

1999년 8월 17일 미네소타 대학에서 발생한 것으로 알려져 있습니다. 
야후, NBC, CNN 서버의 서비스를 중지시켰으며, 피해가 상당히 심각합니다. 이에 대한 확실한 대책 역시 없고 공격자의 위치와 구체적인 발원지를 파악하는 것도 거의 불가능에 가까운데, 
특성상 대부분의 공격이 자동화된 툴을 이용합니다. 
공격의 범위가 방대하며 DDoS 공격을 하려면 최종 공격 대상 이외에도 공격을 증폭시켜주는 중간자가 필요합니다. 
분산 서비스 거부 공격에 사용되는 구성


공격자(Attacker) : 공격을 주도하는 해커의 컴퓨터
마스터(Master) : 공격자에게 직접 명령을 받는 시스템으로 여러 대의 에이전트를 관리함
핸들러(Handler) 프로그램 : 마스터 시스템의 역할을 수행하는 프로그램
에이전트(Agent) : 공격 대상에 직접 공격을 가하는 시스템
데몬(Daemon) 프로그램 : 에이전트 시스템의 역할을 수행하는 프로그램

 

분산 서비스 거부 공격도

 

최근의 분산 서비스 거부 공격은 악성코드와 결합하는 형태


PC에서 전파가 가능한 형태의 악성코드를 작성합니다.
분산 서비스 거부 공격을 위해 사전에 공격 대상과 스케줄을 정한 뒤 이를 작성한 악성코드에 코딩합니다.


악성코드(분산 서비스 거부 공격에 사용되는 악성코드를 봇(Bot)이라고 한다.)가 인터넷을 통해 전파되도록 합니다.
전파 과정에서는 별다른 공격이 이뤄지지 않도록 잠복하며,  
악성코드에 감염된 PC를 좀비 PC라고 부릅니다, 좀비 PC끼리 형성된 네트워크를 ‘봇넷(Botnet)’이라고 부르기도 합니다.


공격자가 명령을 내리거나 정해진 공격 스케줄에 따라 봇넷으로 형성된 좀비 PC들이 일제히 공격 명령을 수
행하여 대규모의 분산 서비스 거부 공격이 가능해집니다.

 

악성코드(봇)에 의한 분산 서비스 거부 공격 에이전트 전파

 

좀비 PC에 의한 분산 서비스 거부 공격 수행

 


이렇게 무선 네트워크 공격 중 하나인 서비스 거부(DOS) 공격에 대해서 알아보았습니다.

 


 

반응형

+ Recent posts