ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [DRDOS] 시뮬레이션 과 분석
    Security 2015. 12. 28. 22:48
    반응형

    [현 블로그에서 기술하는 모든 내용은 순수한 학문의 목적입니다. 

    기술을 다른용도로 사용한 모든 법적인 책임은 해당 사용자에게 있음을 알려드립니다. 

    또한 현 블로그는 책임이 없음을 말합니다.]

    *본 블로그는 학문을 목적으로 직접 툴을 제작하여 내부망에서 시뮬레이션 과정을 진행합니다.*

    *블로그의 잘못설명된 설명은 댓글로 알려주시면 감사하겠습니다...(^.^)(_._)꾸벅 -Carlos & Been-


    1. Denial of Service

    2. Distributed Denial of Service

    3. Distributed Reflector Denial of Service


    1. DOS

    1-1. DOS 정의

    DOS는 Denial of Service의 약자이며 DDOS의 기초적으로 시작된 부분으로 해커들이 특정 컴퓨터에 침투해 자료를 삭제하거나 훔쳐가는 것이 아닌 대량의 접속을 유발해 해당 컴퓨터를 마비시키는 기술입니다. 이것은 정보보안의 3대요소(기밀성(Confidentiality),무결성(Integrity),가용성(Availability))에서 가용성을 침해하는 것으로 공격자는 대량의 트랙픽을 유발시켜 사용자가 원할때 언제든지 서비스를 할 수 있는 서버의 역할을 방해합니다.


    1-2. DOS 설명

    1대의 PC다른 피해자 서버에 공격을 하거나 서버의 특정취약점을 이용하여 서비스거부를 유발하는 공격유형입니다.


    2. DDOS

    2-1. DDOS 정의

    DDOSDistributed Denial of Service의 약자이며 DOS공격의 발전형으로 분산 서비스 거부 공격입니다. 

    정의 : 다수의 PC분산적으로 배치동시에 특정 시스템으로 대량의 유해 트래픽전송함으로써 해당 시스템을 공격합니다. 


    2-2. DDOS 설명

    Distributed Denial of Service의 공격유형에는 크게 두가지 유형이 존재합니다.

    ①유형은 악성봇(이하 좀비에이전트)를 이용하여 공격

    ②유형은 명령 및 제어서버의 접속 없이 악성코드에 감염된 컴퓨터를 실행하면 자동으로 해커가 지정한 서버공격을 하는 유형

    해커는 먼저 특정 서버 또는 취약점이 존재하는 서버를 대상으로 마스터서버를 확보 한 후, 악성코드를 제작 및 유포하여 좀비에이전트를 보유하게됩니다. 여기서 마스터서버는 각각의 좀비에이전트들을 관리하고 해커는 어느시점에서 마스터서버에게 동시에 명령을 내리면 마스터서버는 에어전트에게 명령을 전달합니다.

    요약 : Hacker -> Master Server -> Zombie Agent



    3. DRDOS

    3-1. DRDOS 정의

    DRDOS는 Distributed Reflector Denial of Service 의 약자로 분산반사서비스거부 라고 불리며 DDOS의 발전형 공격기술입니다. 사용자의 요청에 대한 서버의 응답을 특정 서버로 대량의 트래픽을 유발하여 서버의 가용성을 위협하는 공격기술입니다. 특히 비연결지향성이 많은 서버일 경우 그 공격이 더욱 위협이 커지게된다. 여기서 비연결지향은 UDP,SMTP,DNS 등과 같은 서비스를 말합니다. 

    3-2.DRDOS 설명

    DRDOS의 필수요소 중 가장 중요한 것은 IP Spoofing 입니다. 공격자는 자신을 숨기고 피해자로 위장하여 정상적인 메세지 보다 큰 응답을 정상서버에게 요청을 보냅니다. 응답을 받은 정상적인 서버는 보낸사용자가 정상적인 사용자인지 인증할 방법이 존재하지 않기 때문에 요청을 받은 아이피 대로 응답을 해당 아이피로 전송을 하게됩니다. 피해자는 자신이 요청을 보낸적이 없어도 정상적인 서버로 부터 계속적인 응답요청을 받아 대역폭 병목현상 및 자원낭비를 하게됩니다.

    또한 DRDOS는 Zombie Agent가 없어도 전세계에 무수히 많은 성능 좋은 정상적인 서버를 이용하여 공격이 가능 하기에 그 에 대한 파급격이 더 크게됩니다. 하지만 단점으로는 구현하기에 복잡성과 정상적인 응답이 돌아오는 서버를 공격자가 정기적으로 체크해야하며 확보하고 또 요청을 보내어도 무조건 응답이 온다는 보장이 없습니다. 

    3-3. DRDOS 시뮬레이션

    DRDOS의 필수요소중 IP Spoofing을 하기 위해서는 Raw Socket Programming을 해야합니다. 

    하지만 윈도우에서는 Windows XP Service Pack 2 부터 Raw Socket을 사용한 IP Spoofing이 Kernel에서 차단되고 있습니다. 

    Kernel에서 차단이 되었기 때문에 직접 네트워크 장치에 접근을 하여 패킷을 조립,전송 과정을 통해 테스트를 하도록 하겠습니다.


    *언어 : C++ , MFC

    *라이브러리 : Winpcap 4.1.2


    [그림 1. 요청]

    [그림 1] 을 보면 GUI 툴에서 IP Spoofing 으로 패킷을 변조하여 DNS 요청을 정상적인 DNS 서버에게 요청을 보내는 과정을 네트워크 분석툴(와이어샤크)를 통해 확인을 합니다. 해당 패킷을 분석하면 아이피를 피해자PC(192.168.35.99)로 변조, 74바이트로 구성되며 요청에 대한 응답을 ANY, 즉 DNS 서버에 존재하는 해당 도메인(www.google.com)의 모든 데이터를 요청을 합니다. (해당 [그림1]은 공격자관점 입니다.)


    [그림 2. 피해자 PC]


    [그림 2]는 피해자 PC에서 네트워크 분석툴(이하 와이어샤크)로 분석하는 내용입니다. 

    피해자 PC에서는 해당 DNS 서버에게 요청을 보낸적이 없음에도 대량의 트래픽을 전송받고 있습니다. 피해자 관점에서 언듯 보면 정상적인 DNS 서버에서 DDOS를 수행하는것 처럼 보입니다. 정상적인 DNS 서버가 해킹된것일까요?? 아닙니다. 공격자는 IP Spoofing을 통해 피해자의 pc로 위장하였기 때문에 정상적인 DNS서버에서는 요청을 받은 아이피 그대로 응답을 보낸것으로 정상적인 DNS 서버 관점에서면 지극히 정상적인 요청에대한 응답인 것뿐입니다. 이것으로 피해자 pc에서는 330byte값으로 지속적으로 응답받고 있습니다.

    또 앞서 [그림 1]에서 공격자 관점을 다시보면 분명 요청은 74Byte임에도 피해자 pc에서 응답을 받을때는 330byte로 값이 커진것을 확인이 가능합니다.

    이것으로 DRDOS를 간단하게 정리하면 작은 요청으로 큰 응답을 만들어 내는 것으로 충분한 DDOS 효과를 낼 수 있습니다. 저러한 요청을 계속적으로 다양한 서버에서 응답을 받으면 해당 대역폭이 고갈되어 정상적인 요청을 있을 경우 정상적인 서비스를 할 수 없습니다.

    *요약 : Hacker(Victim IP Spoofing) --- 74 Byte Request --> DNS Server ---330Byte Respowns---> Victim PC

    ** 네트워크 테스트 용도로 툴을 공개합니다. 

    본 툴의 사용에 대한 모든 책임은 사용자 본인에게 있습니다. **

    Ctrl + A


    password : http://carlos-and-graysecurity.tistory.com



    DRDOS_Release.zip






    반응형

    'Security' 카테고리의 다른 글

    SamKEY Crack  (9) 2020.11.24
Designed by Tistory.