강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

네트워크취약성과대책 #2 : 스머프(Smurf) 공격의 인지

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

스머프 공격의 인지

 

언젠가 TV나 신문 등 뉴스를 보면 yahoo.com이나 microsoft.com, ebay.com등과 같은 유명한 사이트뿐만 아니라 최근에는 root DNS 서버까지 서비스거부(DoS)공격을 받아 짧게는 1-2시간에서 길게는 1-2일 동안 서비스가 제대로 되지 못하는 경우를 볼 수 있다.

 

막강한 인프라와 많은 보안 전문가들로 이루어졌을 대형 IT업체까지 이러한 분산 서비스거부 공격에 맥없이 주저 않게 만든 공격 방법은 도대체 무엇일까? 또한 이런 대형 업체도 공격의 대상이었다면 우리가 관리하는 서버라고 해서 예외일 수는 없을 텐데, 만약 공격을 당한다면 어떻게 공격을 인지하고 또 대응할 것인가? 라는 고민에 빠질 것이다.

 

따라서 이번에는 TCP/IP 자체의 취약성을 악용한 대표적인 서비스거부 공격으로서 스머프(smurf) 공격에 대해 알아보도록 하겠다. 스머프 공격은 앞에서 예로 든 여러 공격에 사용되기도 했었는데, 실제로 이 공격의 원리 및 작동방식 등에 대해서 소개된 바는 꽤 있었다.

 

최근에 스머프 공격은 거의 사라져 큰 의미는 없지만 한때 대표적인 ddos 공격이었던 만큼 작동 원리와 대응방안에 대해서 알고 있을 필요가 있다.

 

스머프 공격이 발생할 때 제일 먼저 인지할 수 있는 현상은 트래픽(bps)의 급격한 증가이다.

 

따라서 흔히 사용하는 mrtg등으로 트래픽을 모니터링하고 있다면 트래픽의 증가는 즉시 확인할 수 있을 것이다.

 

그러나 트래픽의 증가는 와레즈(warez)p2p등 여러 요인으로도 나타날 수 있는 현상이기 때문에 단순히 트래픽의 증가만으로 서비스거부공격이라고 판단할 수는 없으므로 먼저 아래와 같이 라우터의 input 인터페이스에서 access-list를 활용하여 트래픽의 특성을 파악하는 것이 좋다. (물론 뒤에서 설명할 flowscan을 설치하여 운영한다면 이런 과정 없이 좀 더 빠르고 직관적으로 판단이 가능할 것이다.

 

)

 

Router# conf t

Router(config)#access-list 169 permit icmp any any echo

Router(config)#access-list 169 permit icmp any any echo-reply

Router(config)#access-list 169 permit udp any any eq echo

Router(config)#access-list 169 permit udp any eq echo any

Router(config)#access-list 169 permit tcp any any established

Router(config)#access-list 169 permit tcp any any

Router(config)#access-list 169 permit ip any any

Router(config)#interface serial 0

Router(config-if)#ip access-group 169 out

 

mrtg 그래프를 보면 inboundoutbound에 대해 각각 모니터링 결과를 그래프로 보여주는데, 만약 내부 네트워크로 inbound되는 패킷이 아니라 외부로 outbound되는 패킷이 갑자기 증가하였다면 위의 access-listserial 0 인터페이스에서 나가는(outbound) 패킷에 대해 모든 것을 허용하는 extended access-list를 설정한 것이라고 할 수 있다.

 

“ip access-group 169 out”에서 out이 바로 나가는 패킷을 체크해 보겠다는 설정이다.

 

물론 위와 같이 serial 인터페이스가 아니라 내부의 ethernet 인터페이스에 설정하였다면 반대로 외부에서 들어오는 트래픽에 대한 측정값이 될 것이다.

 

 

이 설정을 함으로써 현재 라우터를 통과하는 패킷을 차단하지 않고 프로토콜에 따라 분류하게 된다.

 

(access-list에 대한 자세한 내용은 뒤에서 살펴보겠지만 access-list를 사용한다고 해서 모두 패킷을 필터링하는 것은 아니다.) 위와 같이 설정하여 약 10초나 또는 상황에 따라 20-30초 후 아래와 같이 입력하여 access-group 설정을 해제한다.

 

이때 트래픽이 많은 환경에서 오랫동안 트래픽을 모니터링 할 경우 라우터에 과부하를 유발할 수 있으므로 각별히 주의하기 바란다.

 

Router# conf t

Router(config)#interface serial 0

Router(config-if)#no ip access-group 169 out

Router(config-if)#^Z //Ctrl 키를 누른 상태에서 Z 키 입력

 

그리고 access-list 169번의 결과를 보기 위해 아래와 같이 “show access-list 169”를 실행한다.

 

 

Router# show access-list 169

 

Extended IP access list 169

permit icmp any any echo (2 matches)

permit icmp any any echo-reply (21374 matches)

permit udp any any eq echo

permit udp any eq echo any

permit tcp any any established (350 matches)

permit tcp any any (35 matches)

permit ip any any (44 matches)

 

결과를 보니 정상적인 상황과 달리 echo-reply 패킷이 매우 많음을 확인할 수 있다.

 

이번에는 netflow를 설정하여 다시 확인해 보기로 하자. netflow는 라우터나 스위치성능에 영향을 거의 주지 않으면서도 네트워크 내 트래픽의 실시간 IP주소, 전송 중인 패킷 개수 및 바이트, 포트 등 패킷의 상세한 흐름 정보를 제공해 주는 툴로서 네트워크 분석 및 문제 해결을 위해서 매우 유용하게 사용된다.

 

 

 

Router# conf t

Router(config)#interface serial 0

Router(config-if)# ip route-cache flow

Router(config-if)#^Z

 

위와 같이 serial 0 인터페이스에 netflow를 설정 한 후 결과를 확인해 보면 다음과 같다.

 

Router# show ip cache flow

 

Protocol Total Flows Packets Bytes Packets Active(Sec) Idle(Sec)

-------- Flows /Sec /Flow /Pkt /Sec /Flow /Flow

TCP-Telnet 60 0.0 8 141 0.0 7.0 9.9

TCP-FTP 42 0.0 3 51 0.0 0.3 5.7

TCP-FTPD 4 0.0 14 102 0.0 0.2 1.6

TCP-WWW 74 0.0 7 303 0.0 1.9 5.0

TCP-SMTP 26 0.0 3 56 0.0 0.3 4.4

TCP-other 92 0.0 8 215 0.0 2.6 10.1

UDP-DNS 15 0.0 1 111 0.0 0.0 15.5

UDP-other 56 0.0 4 624 0.0 1.1 15.4

ICMP 47968 0.0 28 21351 0.0 65.9 72.4

Total: 58104 0.0 9 852 0.0 3.2 8.1

 

SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Pkts

Fa0 211.47.64.20 Se0 137.217.111.24 01 0000 0000 17

Fa0 211.47.64.12 Se0 137.217.111.24 01 0000 0000 15

Fa0 211.47.64.16 Se0 137.217.111.24 01 0000 0000 22

Fa0 211.47.64.53 Se0 137.217.111.24 01 0000 0000 14

Fa0 211.47.64.97 Se0 137.217.111.24 01 0000 0000 17

Fa0 211.47.64.25 Se0 137.217.111.24 01 0000 0000 19

Fa0 211.47.64.2 Se0 137.217.111.24 01 0000 0000 12

..........

 

위의 결과를 통해 211.47.64.x 대역의 임의의 서버 또는 PC에서 137.217.111.24를 목적지로 하여 비정상적으로 많은 icmp 패킷이 전송되고 있음을 재확인 할 수 있다.

 

여기에서 Pr항목 값이 01, 1인 것은 icmp를 의미하며 SrcP 항목과 DstP 항목이 0000인 것은 icmp의 경우 포트(port)의 개념이 없이 typecode로 분류하기 때문이다.

 

여기에서 목적지 포트인 0000만 보면 되는데, 앞의 00type, 뒤의 00code를 뜻하는데, 모두 0이므로 icmp echo reply를 뜻한다.

 

만약 목적지 포트에 0800이 보인다면 type 8, code 0이므로 icmp echo request가 된다.

 

icmp typecode에 대해서는 아래 URL을 참고하기 바란다.

http://www.iana.org/assignments/icmp-parameters

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,158 명
  • 현재 강좌수 :  36,517 개
  • 현재 접속자 :  364 명