45
Kim mi jin Kim mi jin 정정 정정 정정정 정정 네네네네 네네네 네네 네네네네 네네네 네네 4 4 네네네네 네네 네네네네 네네 Chapter 11. DOS 네 DDOS 네네

정보 보안 개론과 실습 네트워크 해킹과 보안

  • Upload
    bryant

  • View
    273

  • Download
    0

Embed Size (px)

DESCRIPTION

정보 보안 개론과 실습 네트워크 해킹과 보안. 4 부 네트워크 해킹 Chapter 11. DOS 와 DDOS 공격. Contents. 1. 공유 자원 목록화. 2. 사용자 그룹 목록화. 3. 응용 프로그램 목록화. 1. DoS 공격의 이해. DoS(Denial of Service) 공격은 다른 해킹에 비하여 비교적 간단하다 . 공격대상이 수용할 수 있는 능력 이상의 정보나 사용자 또는 네트워크의 용량을 초과 시켜 정상적으로 작동하지 못하게 한다. - PowerPoint PPT Presentation

Citation preview

Page 1: 정보 보안 개론과 실습 네트워크 해킹과 보안

Kim mi jinKim mi jin

정보 보안 개론과 실습

네트워크 해킹과 보안네트워크 해킹과 보안

44 부 네트워크 해킹부 네트워크 해킹

Chapter 11. DOS 와 DDOS 공격

Page 2: 정보 보안 개론과 실습 네트워크 해킹과 보안

네트워크 해킹과 보안 - 김미진 2

Contents

공유 자원 목록화1

사용자 그룹 목록화2

응용 프로그램 목록화3

Page 3: 정보 보안 개론과 실습 네트워크 해킹과 보안

1. DoS 1. DoS 공격의 이해공격의 이해

DoS(Denial of Service) 공격은 다른 해킹에 비하여 비교적 간단하다 . 공격대상이 수용할 수 있는 능력 이상의 정보나 사용자 또는 네트워크의 용량을 초과 시켜 정상적으로 작동하지 못하게 한다 .

DoS 공격은 크게 다음과 같은 세가지로 생각할 수 있다 .

1. 파괴 공격 : 디스크나 데이터 , 시스템의 파괴

2. 시스템 자원의 고갈 : CPU, 메모리 , 디스크의 사용에 과다한 부하를 가중시킴

3. 네트워크 자원의 고갈 : 쓰레기 데이터로 네트워크의 대역폭을 고갈시킴

3 네트워크 해킹과 보안 - 김미진

Page 4: 정보 보안 개론과 실습 네트워크 해킹과 보안

2. DoS 2. DoS 공격공격

1. Ping of Death

공격의 기본은 Ping 을 이용하여 ICMP 패킷을 정상적인 크기보다 아주 크게 만드는 것이다 . 이렇게 , 크게 만들어진 패킷은 네트워크를 통해 라우팅 (Routing) 되어 공격 네트워크에 도달하는 동안 아주 작은 조각(Fragment) 이 된다 . 공격대상 시스템은 이렇게 작게 조각화된 패킷을 모두 처리해야 하므로 정상적인 Ping 의 경우보다 훨씬 많은 부하가

걸린다 .

4 네트워크 해킹과 보안 - 김미진

Page 5: 정보 보안 개론과 실습 네트워크 해킹과 보안

Ping of death 실습

실행명령 C:\>ping -n 100 -l 65500 172.16.0.3

공격대상에서의 TCPDump

5 네트워크 해킹과 보안 - 김미진

Page 6: 정보 보안 개론과 실습 네트워크 해킹과 보안

2. Syn Flooding

Syn Flooding 은 서버별 한정되어 있는 동시 사용자 수를 존재하지 않는 클라이언트가 접속한 것처럼 속여 다른 사용자가 서버에서 제공하는 서비스를 받지 못하게 하는 것이다 .

6 네트워크 해킹과 보안 - 김미진

Page 7: 정보 보안 개론과 실습 네트워크 해킹과 보안

TCP 3Way 핸드쉐이킹

정상적인 3Way 핸드쉐이킹

7 네트워크 해킹과 보안 - 김미진

Page 8: 정보 보안 개론과 실습 네트워크 해킹과 보안

Syn Flooding 공격 시 3Way 핸드쉐이킹

8 네트워크 해킹과 보안 - 김미진

Page 9: 정보 보안 개론과 실습 네트워크 해킹과 보안

Syn Flooding 공격

컴파일 : gcc -o synk synk.c

공격 실행 : root# ./synk 0 172.16.0.3 80 80

9 네트워크 해킹과 보안 - 김미진

Page 10: 정보 보안 개론과 실습 네트워크 해킹과 보안

Syn Flooding 공격의 TCP Dump

Root# tcpdump eth0

10 네트워크 해킹과 보안 - 김미진

Page 11: 정보 보안 개론과 실습 네트워크 해킹과 보안

Syn Flooding 공격 시 서버측의 ‘netstat –an’ 결과

Root# netstat -an

11 네트워크 해킹과 보안 - 김미진

Page 12: 정보 보안 개론과 실습 네트워크 해킹과 보안

3. Boink, Bonk, Teardrop

여러 가지 프로토콜은 기본적으로 신뢰성을 높이고자 하는 목적을 가지고 있다 . 신뢰성은 다음의 세가지로 크게 생각할 수 있다 .

1. 패킷의 순서가 올바른가 ?

2. 중간에 손실된 패킷은 없는가 ?

3. 손실된 패킷의 재전송 요구

Boink, Bonk, TearDrop 은 위의 사항을

위반함으로써 공격 대상 시스템에

DoS 공격을 가하게 된다 .

12 네트워크 해킹과 보안 - 김미진

Page 13: 정보 보안 개론과 실습 네트워크 해킹과 보안

Syn Flooding 보안 대책

이처럼 아직도 매우 효과적인 Syn Flooding 공격을 막는 방법은 보안 패치로서 대기 시간을 줄이는 것이다 . 하지만 시스템의 특성상 무조건 대기 시간을 줄일 수 없는 경우가 있다 .

또한 방화벽에서도 정상적인 접속의 시도와 비정상적인 Syn Flooding

공격의 시도를 구분할 수 있는 방법이 없기 때문에 직접적인 차단은 불가능하다 . 예방할 수 있는 방법은 일차적으로 시스템에 패치를 하는 것이며 , 그 다음으로는 IDS 의 설치다 .

공격대상의 TCP Dump 에서 볼 수 있듯이 이 공격은 일정 시간 내에 동시 접속자 수를 점유해야 하므로 아주 짧은 시간 안에 똑같은 형태의 패킷을 보내게 된다 . 이는 매우 정형화된 형태로 네트워크에서 쉽게 인지가 가능하며 해당 ISP 업체에 연락하여 그에 해당하는 IP 대역을 접속 금지시키거나 확인한 후 방화벽 , 또는 라우터에서 해당 접속을 금지시킴으로서 시스템의 서비스 중지를 막을 수 있다 .

13 네트워크 해킹과 보안 - 김미진

Page 14: 정보 보안 개론과 실습 네트워크 해킹과 보안

Boink, BonkBonk 는 처음 패킷을 1 번으로 보낸 후 두번째 , 세번째 패킷 모두 시퀀스 넘버를 1 번으로 조작해서 보낸다 . Bonk 를 수정한 Boink 공격은 처음 패킷을 1 번으로 보낸 후 두번째 패킷은 101 번 , 세번째 패킷은 201

번으로 정상적으로 보내다가 중간에서 일정한 시퀀스 넘버로 보낸다 .

열번째 패킷은 1001 번 , 열한번째 패킷도 100 번 , 열두번째 패킷도 1001

번으로 보내는 것이다 .

TearDrop

TearDrop 은 패킷을 겹치게 또는 일정한 간격의 데이터가 빠지게 전송한다 .

14 네트워크 해킹과 보안 - 김미진

Page 15: 정보 보안 개론과 실습 네트워크 해킹과 보안

New TearDrop 공격 시 서버측의 TCP Dump 결과

Root# tcpdump eth0

15 네트워크 해킹과 보안 - 김미진

Page 16: 정보 보안 개론과 실습 네트워크 해킹과 보안

New Tear Drop 공격

컴파일 : gcc -o newtear newtear.c

공격 실행 : root# ./newtear 222.222.222.222 172.16.0.3 –t 80 –n 180

16 네트워크 해킹과 보안 - 김미진

Page 17: 정보 보안 개론과 실습 네트워크 해킹과 보안

4. LAND패킷을 전송할 때 출발지 IP 주소와 목적지 IP 주소 값을 공격자의 IP

주소 값으로 똑같이 만들어서 공격대상에게 보낸다 .

시스템은 처음 시도된 Syn 에 대한 Reply 패킷을 출발지 IP 주소 값을 참조하여 그 값을 목적지 IP 주소 값으로 설정하여 패킷을 보낸다 . 하지만 이 값은 자기자신의 IP 주소 값이므로 네트워크 밖으로 나가지 않고 자신에게 다시 돌아온다 . 이 공격법은 Syn Flooding

처럼 동시 사용자 수를 점유해버리며 , CPU 부하까지 올리게 된다 .

17 네트워크 해킹과 보안 - 김미진

Page 18: 정보 보안 개론과 실습 네트워크 해킹과 보안

LAND 공격

컴파일 : gcc -o land land.c

공격 실행 : root#  ./land 172.16.0.3 172.16.0.3 80 80

18 네트워크 해킹과 보안 - 김미진

Page 19: 정보 보안 개론과 실습 네트워크 해킹과 보안

5. Win Nuke(OOB)

먼저 상대방 시스템에 139 번 포트를 스캔하여 열려 있는지 확인한다 .

그리고 NetBIOS 패킷에 URG(Urgent) 를 On 상태로 하여 패킷을 전송한다 . URG 가 On 상태는 송수신 중간에 발생할 수 있는 비정상적인 상태를 의미한다 . 서비스 중 ‘Ctrl + Break’ 또는 ‘Ctrl +

C’와 같은 역할을 한다 .

공격대상은 수많은 Urgent 패킷을 인식하고 모든 시스템의 세션을 닫은 뒤 재연결을 요구하게 된다 . 이때 CPU 에 과부하가 걸리게 된다 . 이 공격은 심한 경우 시스템을 망가지게 하기도 한다 .

19 네트워크 해킹과 보안 - 김미진

Page 20: 정보 보안 개론과 실습 네트워크 해킹과 보안

LAND 공격 시 서버측의 TCP Dump 결과

Root# tcpdump eth0

20 네트워크 해킹과 보안 - 김미진

Page 21: 정보 보안 개론과 실습 네트워크 해킹과 보안

WinNUKE 공격

21 네트워크 해킹과 보안 - 김미진

Page 22: 정보 보안 개론과 실습 네트워크 해킹과 보안

6. Smurf, Fraggle

공격자가 172.16.0.255 로 ICMP Request 패킷으로 Direct

브로드캐스트를 했을 경우 다음과 같이 패킷이 전달된다 .

22 네트워크 해킹과 보안 - 김미진

Page 23: 정보 보안 개론과 실습 네트워크 해킹과 보안

ICMP Requset 패킷을 전달받은 에이젼트들은 공격대상에게 ICMP

Replay 패킷을 보낸다 .

23 네트워크 해킹과 보안 - 김미진

Page 24: 정보 보안 개론과 실습 네트워크 해킹과 보안

Smurf 공격

컴파일 :  root#  gcc -o smurf smurf.c

공격 실행 : root#   ./smurf 172.16.0.3 bcast 0 5 512

24 네트워크 해킹과 보안 - 김미진

Page 25: 정보 보안 개론과 실습 네트워크 해킹과 보안

Smurf 공격의 TCP Dump

25 네트워크 해킹과 보안 - 김미진

Page 26: 정보 보안 개론과 실습 네트워크 해킹과 보안

7. Mail Bomb

Mail Bomb 는 흔히 폭탄 메일이라고 한다 . 스팸 메일도 이와 같은 종류다 . 메일 서버는 각 사용자에게 일정한 양의 디스크 공간을 할당하는데 , 메일이 폭주하여 디스크 공간을 가득 채우면 정작 받아야 하는 메일을 받을 수 없다 . 이 때문에 스팸 메일은 DoS 공격이 될 수도 있다 .

윈도우용 Mail Bomber Upyours

26 네트워크 해킹과 보안 - 김미진

Page 27: 정보 보안 개론과 실습 네트워크 해킹과 보안

Sendmail 을 이용한 메일 보내기

Sendmail 은 telnet 을 이용한다 . telnet 으로 로컬 IP 주소를 쓰고 있으며 , SMTP 포트 번호인 25 번을 뒤에 써주면 Sendmail 에 접속할 수 있다 . Sendmail 에 접속한 후 ‘mail from :' 뒤에 보내는 사람의 주소를 써준다 . 이메일은 어떤 주소를 써도 무방하다 .

27 네트워크 해킹과 보안 - 김미진

Page 28: 정보 보안 개론과 실습 네트워크 해킹과 보안

스팸 메일에 대한 보안 설정

SNMP Relay 기능을 정지 : /etc/mail/access 파일을 이용해서 해보자 . ‘access’ 파일에서는 IP 주소 , 이메일 주소 , 도메인별로 제한하거나 Relay 를 허락해줄 수 있다 .

28 네트워크 해킹과 보안 - 김미진

Page 29: 정보 보안 개론과 실습 네트워크 해킹과 보안

8. System Resource Exhaustion Attack

1. 가용 Disk 자원의 고갈

파일을 생성하고 생성한 파일에 1000 바이트씩 계속해서 써 나가는 프로그램이다 .

29 네트워크 해킹과 보안 - 김미진

Page 30: 정보 보안 개론과 실습 네트워크 해킹과 보안

공격 중 가용 디스크 공간의 확인

30 네트워크 해킹과 보안 - 김미진

Page 31: 정보 보안 개론과 실습 네트워크 해킹과 보안

프로세스 확인 및 제거

31 네트워크 해킹과 보안 - 김미진

Page 32: 정보 보안 개론과 실습 네트워크 해킹과 보안

2. 가용 Memory 자원의 고갈

다른 특별한 함수 없이 malloc 함수를 통해 메모리 할당만 계속적으로 수행하는 프로그램이다 . 디스크 고갈 공격보다 시스템 자원을 더 많이 차지하는 프로그램으로 터미널 창 하나만을 띄우는 데도 몇 분을 소모하게 만드는 공격이다 .

32 네트워크 해킹과 보안 - 김미진

Page 33: 정보 보안 개론과 실습 네트워크 해킹과 보안

3. 가용 Process 자원의 고갈

fork( ) 라는 프로세스 할당 함수만이 무한대로 쓰이고 있다

33 네트워크 해킹과 보안 - 김미진

Page 34: 정보 보안 개론과 실습 네트워크 해킹과 보안

Quota 설정

1. /etc/vfstab 파일을 vi 에디터로 연다 .

2. 쿼타를 설정하고자 하는 파티션의 뒷 부분에 usrquota 옵션을 더해준다 .

3. mount -o remount /home 명령을 통해 설정된 마운트를 적용할 수 있다 .

4. 적용된 마운트를 확인하기 위해 mount 를 실행시키면 usrquota

옵션이 들어가 있는 것을 확인할 수 있다 .

5. 이제 쿼타 적용을 위해 touch /home/quota.user 로 쿼타를 적용하고자 하는 파티션의 가장 상위 디렉토리에 quota.user 를 생성한다 . 권한을 600(rw- --- ---) 으로 주고 , quotacheck 를 하면 이제 quota.user 파일에 사용자별 쿼타 데이터베이스를 설정하고 적용할 수 있다 .

34 네트워크 해킹과 보안 - 김미진

Page 35: 정보 보안 개론과 실습 네트워크 해킹과 보안

Quota 설정

6. wishfree란 아이디에 quota 를 적용하기 위해서 edquota wishfree

명령어를 입력하면 다음과 같이 vi 에디터가 뜬다 . 소프트에 10MB,

하드에 15MB 를 지정하였다 . 15MB 이상은 절대로 쓸 수 없다 . 사용자는 10MB 이상을 쓸 수 있지만 , 1 주일동안 경고를 받게 되며 , 1 주일이 지난 다음에는 파일을 생성할 수 없다 . 이렇게 지정한 후 저장한 다음 quotaon /home 이라고 입력하면 /home 에 대한 쿼타가 적용되며 ,

quotaoff /home 이라고 입력하면 설정된 쿼타가 해제된다 .

35 네트워크 해킹과 보안 - 김미진

Page 36: 정보 보안 개론과 실습 네트워크 해킹과 보안

3. DDoS 3. DDoS 공격공격

DoS 공격이 짧은 시간에 여러 곳에서 일어나게 하는 공격으로 피해 양상이 상당히 심각하며 , 이에 대한 확실한 대책 역시 없다 . 또한 공격자의 위치와 구체적인 발원지를 파악하는 것 역시 거의 불가능에 가깝다 .

DDoS 공격은 특성상 대부분의 공격이 자동화된 툴을 이용하고 있다 . 공격의 범위가 방대하며 DDoS 공격을 하려면 최종 공격대상 이외에도 공격을 증폭시켜주는 중간자가 필요하다 .

36 네트워크 해킹과 보안 - 김미진

Page 37: 정보 보안 개론과 실습 네트워크 해킹과 보안

1. 공격자 (Attacker) :

공격을 주도하는 해커의 컴퓨터

2. 마스터 (Master) :

공격자에게서 직접 명령을 받는 시스템으로 여러 대의 에이전트(Agent) 를 관리하는 시스템

3. 에이전트 (Agent) :

공격대상 (Target) 에 직접적인 공격을 가하는 시스템

DDoS 공격의 구성 요소

37 네트워크 해킹과 보안 - 김미진

Page 38: 정보 보안 개론과 실습 네트워크 해킹과 보안

1. 많은 사용자가 사용하며 , 밴드와이드 (Bandwidth) 가 크다 .

관리자가 모든 시스템을 세세하게 관리할 수 없는 곳에 계정을 획득하여 스니핑이나 버퍼 오버플로우 등의 공격으로 설치 권한이나 루트 권한을 획득한다 .

2. 잠재적인 공격대상을 파악하기 위해 네트워크 블록 별로 스캐닝을 실시하여 , 원격지에서 버퍼 오버플로우를 일으킬 수 있는 취약한 서비스를 제공하는 서버를 파악한다 .

3. 취약한 시스템의 리스트를 확인한 뒤 , 실제 공격을 위한 Exploit 을 작성한다 .

4. 권한을 획득한 시스템에 침투하여 Exploit 을 컴파일하여 설치한다 .

5. 설치한 Exploit 로 공격을 시작한다 .

DDoS 공격의 일반적인 순서

38 네트워크 해킹과 보안 - 김미진

Page 39: 정보 보안 개론과 실습 네트워크 해킹과 보안

1. Trinoo

Trinoo 는 1999년 6월 말부터 7월 사이에 퍼지기 시작했으며 ,

미네소타 대학의 사고 주범이었다 . 원래 이름은 Trin00 이다 . 처음 솔라리스 2.x 시스템에서 발견되었으며 , 최소 227 개의 시스템이 공격에 쓰였던 것으로 알려져 있다 . UDP 를 기본으로 하는 공격을 시행하며 ‘statd, cmsd, ttdb 서버 d’ 데몬이 주 공격대상이다 .

주요 이용 포트

접속자 접속대상 프로토콜 포트 공격자 마스터 TCP 27665

마스터 에이전트 UDP 27444

에이전트 마스터 UDP 31335

에이전트 공격대상 UDP

39 네트워크 해킹과 보안 - 김미진

Page 40: 정보 보안 개론과 실습 네트워크 해킹과 보안

DDoS 공격에 대한 대책

각각의 DDoS 툴은 통신을 위해 특정 포트를 사용한다 . 때문에 특정 포트가 열려 있는지 검사하면 , 마스터나 데몬이 설치되어 있는 시스템을 찾아낼 수 있다 . 다양한 툴이 있으며 , rid-1.0, DDoS ping,

DDoS scan 등이 있다

40 네트워크 해킹과 보안 - 김미진

Page 41: 정보 보안 개론과 실습 네트워크 해킹과 보안

DDoS 공격에 대한 대책

TCP dump 로 네트워크의 패킷 중 마스터와 데몬의 통신 패킷을 찾는 것이다 . 27444, 32770 과 같이 특정한 포트를 알고 있으므로 평소에 TCP Dump 결과를 파일로 저장시켜둔 다음 , 알고 있는 포트가 있는지 체크해본다 .

41 네트워크 해킹과 보안 - 김미진

Page 42: 정보 보안 개론과 실습 네트워크 해킹과 보안

2. TFN, TFN 2K

TFN 은 Teletubby Flood Network 라고 불리기도 한다 . TFN 역시 Trinoo 와 마찬가지로 ‘statd, cmsd, ttdb' 데몬의 취약점을 공격한다 .

TFN 은 마스터에 클라이언트라는 용어를 쓰고 있다 . 클라이언트를 구동하면 패스워드가 사용되지 않고 , 클라이언트와 데몬간에는 ICMP Echo Request 패킷이 사용되며 , TCP, UDP 연결도 이루어지지 않는다 . 따라서 이를 모니터링하는 일은 쉽지 않다 .

클라이언트의 각 명령은 ICMP Echo Request 패킷에 16 비트 이진수로 데몬에 전송되며 , 시퀀스 넘버는 0x0000 으로 설정되어 있어 , TCP Dump 로 모니터링하면 ping 의 최초 패킷처럼 보이기 때문이다 .

TFN 은 공격자 시스템과 마스터 시스템간 연결이 암호문이 아닌 평문으로 전달되는 약점을 가지고 있다 . 이는 데이터가 다른 해커나 관리자에게 스니핑되거나 세션 하이재킹될 수 있으며 , 공격자를 노출시키는 등 치명적일 수 있다 .

42 네트워크 해킹과 보안 - 김미진

Page 43: 정보 보안 개론과 실습 네트워크 해킹과 보안

TFN 2K 의 특징

1. 통신에 특정 포트가 사용되지 않고 암호화되어 있으며 , 프로그램에 의해 UDP, TCP, ICMP 가 복합적으로 사용되며 포트 또한 임의로 결정된다 .

2. TCP Syn Flooding, UDP Flooding, ICMP Flooding, Smurf 공격을 쓰고 있다 .

3. 모든 명령은 CAST-256 알고리즘으로 암호화된다 .

4. 지정된 TCP 포트에 백도어를 실행시킬 수 있다 .

5. 데몬은 인스톨 시 자신의 프로세스 이름을 변경함으로써 , 프로세스 모니터링을 회피한다 .

6. UDP 패킷의 헤더가 실제 UDP 패킷보다 3 바이트만큼 더 크다 .

7. TCP 패킷의 헤더의 길이는 항상 0 이다 . 정상적인 패킷이라면 절대로 0

일 수 없다 .

43 네트워크 해킹과 보안 - 김미진

Page 44: 정보 보안 개론과 실습 네트워크 해킹과 보안

3. Stacheldraht

Stacheldraht 는 독일어로서 '철조망 ' 이라는 뜻이다 1999년 10월 처음 출현한 것으로 알려져 있으며 , TFN 을 발전시킨 형태다 .

Stacheldraht 역시 TFN2K 처럼 공격자와 마스터 , 에이전트 ,

데몬과의 통신에 암호화 기능이 추가되었다 . 공격자가 마스터에 접속하면 , 마스터는 현재 접속을 시도한 이가 올바른 공격자인지 확인하기 위해 패스워드 입력을 요구한다 . 이때 입력되는 패스워드는 최초 설치되기 전에 ‘Authentication‘의 ‘Passphrase’를 사용하여 암호화된 상태로 공격자에게서 핸들러로 보내진다 .

44 네트워크 해킹과 보안 - 김미진

Page 45: 정보 보안 개론과 실습 네트워크 해킹과 보안

4. DoS, DDoS 공격에 대한 대응책

1. 방화벽 설치와 운영

2. IDS 설치와 운영

3. 안정적인 네트워크의 설계

4. 시스템 패치

5. 스캐닝

6. 서비스별 대역폭 제한

45 네트워크 해킹과 보안 - 김미진