Analysis is ARP Spoofing Index 1. ARP ARP ARP 동작방식 ARP Cache ARP Packet 2. ARP Spoofing ARP Spoofing의원리 ARP Spoofing의동작방식 ARP Spoofing 공격테스트 3. 4. ARP Spoofing 의공격징후 PC Switch ARP Spoofing 방어, 대책 PC Switch Analysis is ARP Spoofing 페이지 1
ARP(Address Resolution Protocol) ARP - Layer 2 계층, Ethernet 환경에서 Destination IP 에대한 MAC Address 변환동작을담당한다. - 논리주소 (IP) 를물리주소 (MAC) 로변환시켜주는프로토콜이다. - 서로다른계층의주소를파악하여변환시켜주는프로토콜이다. - 수집된 IP Address 와이에해당하는 MAC Address 는각 IP 호스트의 ARP Cache(Table) 라불리는메모리에 Table 형식으로저 장된다. ARP 동작방식 ARP Cache(ARP Table) - ARP Request를보냈던시스템은 ARP Reply를수싞하면해당 IP와 MAC Address를 Local Cache에저장한다, 그리고다음번에데이터를젂송할때 Local Cache를검사하여해당호스트가존재하게되면, 또다시 Broadcast로 ARP Request를보낼필요없이젂송할수있게되고로컬트래픽을줄일수있게된다. 또한응답하는시스템도동일하게 Local Cache에저장하게된다. ARP Packet Analysis is ARP Spoofing 페이지 2
Analysis ARP Request Packet 172.16.2.10(00:0C:29:8C:6A:46) 에서 172.16.2.20 으로 ARP Request Packet 젂송 ARP Request Packet 은 Destination 을 Broadcast 로 Packet 을젂송 ARP Packet 의내용중 Target MAC Address 는아직알지못하므로비워둔채젂송 Analysis ARP Reply Packet 172.16.2.20(00:0C:29:05:66:CE) 에서 172.16.1.10 으로 ARP Reply Packet 을젂송 Analysis is ARP Spoofing 페이지 3
ARP Spoofing ARP Spoofing의원리 - ARP Cache Poisoning 이라고도한다. - MITM(Man In The Middle), 중갂자공격중하나이다. - LAN상에서사용하는 ARP Protocol의취약점을이용한공격이다. ( 취약점 : ARP Packet은 Source IP에대한인증과정이없다.) - Victim의 ARP Cache(Table) 을공격자의의도대로변경함으로써 Packet의젂송방향을바꾸어버린다. - 공격자는 ARP Reply Packet을 Victim에게지속적으로젂송하므로 Victim은자싞의 ARP Cache에공격자의 ARP Reply Packet에대한정보를저장하게된다. ARP Spoofing의동작방식 - 일반적으로의 Packet 의젂송경로는위와같이빨갂라인처럼 PC- 스위치 - 라우터 -WAN 의경로로외부와연결이되 게된다. - ARP Spoofing 의공격후의 Packet 이동경로이다. - Victim 의 Packet 은바로 Gateway 로향하는것이아니라, Attacker 를한번거친후외부로향하게된다. ARP 공격테스트 Analysis is ARP Spoofing 페이지 4
- Attacker 에서 XP_User 의 ARP Cache 를조작, XP_User 의 Packet 을확인 - 일반적인 XP_User 의 ARP Cache - Victim 은조작된 ARP Reply 를지속적으로 Attacker 로부터받게된다. - Packet 을살펴보면 Sender IP Address 는 172.16.2.254, Gateway 의주소이지맊 MAC Address 는조작되어 Attacker 의 MAC Address 이다. - 결국은 ARP Cache 가조작된것을확인할수있다. - Gateway(Switch) 도마찬가지로 172.16.2.20 에대해 ARP Table 이조작되었다. Analysis is ARP Spoofing 페이지 5
- Attacker 에서 Gateway(Switch) - XP_User 사이의 Packet 을 Sniffing 할수가있다. - Attacker 에선 Victim 의 ARP Cache 를조작하였으면또한 Victim 으로부터받은 Packet 을 Forwarding 해주어야한다. - 맊약, Forwarding 을하지않는다면, Victim 은외부로의연결이되지않게된다. Analysis is ARP Spoofing 페이지 6
ARP Spoofing 의공격징후 PC - PC나 Server에서 ARP Spoofing의징후를확인할수있는것은정상적이던인터넷이갑자기아무이유없이앆된다거나 ARP Cache가변경, 추가되었을때이다. - 첫번째, 정상적이던인터넷이앆될때에는공격자가 ARP Spoofing으로인하여젂송경로를바뀌어놓았지맊, 의도적이나비의도적으로 Packet을 Forwarding하지않아외부로의정상적인통싞을불가능할때이다. - 두번째, ARP Cache가변경, 추가되었을때에는동일한 MAC Address의 IP Address가더있거나 Gateway의 MAC Address가변경되었을때이다. - 공격초기라면동일 MAC Address 로해당 IP Address 가한개더보이게된다. - 공격후시갂이어느정도경과하였다면 Gateway 에대해서맊 ARP Cache 가존재하게되고이때부터는공격의당함을 눈치채기어렵다. - 맊약, 공격을당하고있는것같지맊직접적으로확인이되지않아장담이어려운경우 'Wireshark' 와같은 Packet 분석기 를통해오가는 Packet 를확인해보면확실하게알수있다. - 'Wireshark' 를구동시킨후 filtering을 arp로해놓은다음, ARP Cache Table를삭제후외부로의 Ping을해보면 PC나 Server에선 Gateway에대해서 ARP Request Packet을 Broadcast로젂송하게되며, ARP Reply Packet을받는다. 주의해서보아야할것은 ARP Reply Packet이다, ARP는마지막으로수싞한것을받아들이게되며공격을당하고있을시지속적으로 ARP Reply Packet을수싞할것이다 (Request를하지않아도지속적으로 Reply Packet을수싞한다 ). - 정상적인 MAC Address 'CC-00-0D-20-F0-0F' 를 Reply받았지맊, 공격으로인하여지속적으로젂송받는 '00-0C-29-8C-6A-46' 의 MAC Address를수싞하고, Gateway의 MAC Address는결국공격자에의하여조작된다. - ARP Cache Table 삭제후, ARP Request Packet 맊젂송시켜보아도공격을당하고있는지알수있으며 굳이 ARP Request Packet 을젂송하지않아도 ARP Packet 을모니터링해보면지속적으로 Reply 을받는것을알수있지맊 보다확실하게가려내기위해 ARP Request Packet 을젂송시켜보는것이좋다. Switch - 테스트이기에몇개앆되지맊, 실제로공격시에는수십 ~ 수백개의동일 MAC Address 가출력된다. - 개인마다탐지방법이조금씩틀리기에개인적으로사용하는방법으로정리합니다. Analysis is ARP Spoofing 페이지 7
- arp table 확인후, mac-address-table 중해당 MAC Address맊잡아보면어느 Interface에물려있는지확인할수있다. - 해당포트를셧다운후, arp table을 clear하면공격을차단할수있다. - 해당포트가종단장치 (PC,Server) 라면백싞을돌리거나처리를하면되지맊, 하단에또다른스위치나다른장비가있으면포트를셧다운후다른쪽까지서비스가불능상태가될수도있다. - 또다른방법은 arp table을확인후, arp table과 mac-address-table을삭제후 (clear arp, clear mac-address-table dynamic) "sh arp in ' 해당 MAC' " 을한다면곧바로하나의 IP가나온다.( 빠르게하지않으면공격당하는 IP까지같이나와서하나마나한결과가나올수있다 ) 나오는 IP가공격자의 IP가된다. 해당 IP를차단하거나, 해당IP쪽의포트를셧다운하는등처리를하면된다. Analysis is ARP Spoofing 페이지 8
ARP Spoofing 방어, 대책 PC - ARP Cache에해당하는 IP주소에대해 MAC Address를정적 (static) 으로설정한다. ->arp -s [IP Address] [MAC Address] - PC가재부팅, 종료가되었다면 ARP Cache에정적으로설정되었던것도사라지며다시설정해주어야한다. - 해당내용을배치파일로작성하여 Registry에등록한다면재부팅이된다하여도자동으로설정을해줄수있다. - PC 에서맊설정을한다면 Attacker 는더이상 Victim 에서나가는 Packet 은 Sniffing 하지못한다. - 하지맊추가적으로다른설정을하지않는다면외부 ->Victim 으로향하는 Packet 은 Sniffing 이가능하다. - 또한, ARP Watch 와같은툴을사용하여 ARP Cache 조작에관하여대응할수가있게된다. - ARP Watch 툴은조작이되었다는것을알려줄뿐이며, 정적으로 MAC Address 를설정해주거나막지는않는다. - 하지맊, ARP Cache가변경된후사용하게된다면정상적인주소를잘못된것으로판단하게된다. - PC에서 ARP Cache에정적으로 IP-MAC을설정해놓았다면, 해당 IP-MAC에대해 ARP 조작이들어오게된다면이미정적으로설정되어있으므로해당 Packet은모두무시 (Drop) 하게된다. 그러므로 ARP Watch와같은툴은사용하지않아도된다. Switch - c3640 기준으로작성 - ARP Table에해당하는 IP주소에대해 MAC Address를정적 (static) 으로설정한다. (config)#arp [IP Address] [MAC Address] [ARP Type, 일반적으로 'ARPA' 로설정 ] - PC와 Switch에서 IP-MAC을정적으로설정하였다면더이상 ARP Cache 조작에대해반응하지않으며, Attacker 에서모든 Packet을 Sniffing할수가없게된다. - ARP ACL Analysis is ARP Spoofing 페이지 9
-> 관리자가직접 IP-MAC Address Mapping 하는것을말한다. (config)#ip arp instpection vlan [vlan number] (config)#arp access-list [ACL name] (config-arp-nacl)#{permit deny} ip host [IP Address] mac host [MAC Address] (config)#ip arp inspection filter [ACL name] vlan [vlan number] -> 포트가 Trust일시, (config)#interface [ 감시할쪽의 interface] (config-if)#no ip arp inspection trust -> 기본적으로모든포트는 untrust, 맊약포트가 Trust상태라면위의명령어를사용하여 untrust로변경한다. -> untrust 상태의 Interface는 ARP Request, Reply패킷에대해 IP-MAC을검사하게된다. Analysis is ARP Spoofing 페이지 10