[Case Study] ‘콸콸콸’ 사용하는 무선인터넷 ‘줄줄줄’ 새는 개인정보
무선 네트워크를 이용한 공격방법과 대처방법
1. Wi-Fi
무선 네트워크를 이용하는 사용자가 많이 증가하면서, 모바일 네트워크 단말기의 사용이 증가했다. 스마트폰이나 태블릿 PC는 무선 네트워크를 사용하는 대표적인 단말기이다.
무선 인터넷 사용을 위해 Wi-Fi를 사용하기 위해 무선 인터넷 공유기(Access Point, 이하 AP)를 찾는 경우를 종종 볼 수 있다. 하지만 길거리에서 사용 가능한 AP는 악의적인 목적의 해커가 사용자의 정보(홈페이지 계정 정보 및 은행 암호 등)를 수집하기 위한 목적으로 악용할 수 있다. 수집된 정보로 인해 공격자는 AP 사용자가 이용했던 정보를 통해서 AP 사용자와 똑같은 권한을 얻을 수 있다. 또한 별도의 보안 설정 없이 운영되는 AP는 악의적인 사용자가 접근하여 내부시스템의 권한을 획득할 수 있다. 권한을 획득하게 될 경우, 공격자는 악성코드 및 악성 스크립트 등을 내부시스템에 설치하여 내부시스템의 정보(시스템 계정 정보, 데이터베이스 내역 등)를 얻을 수 있다.
이 글에서는 취약한 Wi-Fi 설정과 악의적인 목적으로 사용되는 AP 등 무선 네트워크를 이용한 공격 방법과 그에 따른 대처방법을 알아보자.
2. AP 연결방식과 인증 과정
- 탐색 과정
AP: AP에 접속하려는 단말기를 위해, 비콘(Beacon) 메시지를 주기적으로 광고한다.
단말기: 단말기들은 비콘(Beacon) 메시지를 수동적으로 수신하여, 단말기 주변에 어떠한 AP가 존재하는지 탐색을 진행한다. 만약 AP가 비콘(Beacon) 메시지를 사용하지 않을 경우, 단말기가 능동적으로 프로브(Probe) 요청 메시지를 AP에 발송하여 AP에 접속한다.
[그림 1] AP에서 발생하는 프로브(probe) 요청 메시지
- 인증 과정
무선 단말기가 AP에 접근하기 위해서는 3가지 절차가 필요하다.
ν 탐색
ν 인증
ν 결합
탐색을 위해서 Beacon을 받아서 AP의 존재 여부를 확인하지만, 단말기가 AP에 접근할 경우, 프로브 리퀘스트(Probe Request)를 통해 접근을 시도한다. 프로브 리퀘스트(Probe Request)를 통해 AP의 SSID(service set identifier) 및 속도 등을 확인한 단말기는 인증(Authentication) 요청과 응답을 통해 인증을 거치게 된다. 인증이 완료된 단말기 또한 이 요청과 응답을 통해 결합하게 된다. AP와 결합한 단말기는 AP에게 데이터 메시지를 보내고 AP는 데이터 메시지를 목적지에 전달 할 수 있도록 해준다.
[그림 2] Wi-Fi 인증 과정
무선 네트워크 암호화 방식
- WEP(Wired equivalent privacy)
WEP은 유선 랜에서 제공하는 것과 유사한 수준의 보안 및 기밀 보호를 무선 랜에 제공하기 위하여 Wi-Fi 표준에 정의되어 있는 보안 프로토콜이다. 유선 랜은 일반적으로 빌딩에 출입하는 것을 통제하는 것과 같이, 물리적 보안 절차에 의해 보호될 수 있지만, 무선 랜의 경우에는 특정 네트워크에 사용되는 무선 파장이 벽체에 의해 한계 지어지지 않으므로 이러한 보안 방식은 유효하지 않다. WEP은 무선 랜을 통해 전송되는 데이터를 암호화함으로써 유선 네트워크의 물리적인 보안 대책에서 제공되는 것과 비슷한 방호를 제정하는 것을 추구한다. 데이터 암호화는 클라이언트와 AP 사이의 취약한 무선 링크를 보호하며, 일단 이 방법이 취해지면 기밀 보호를 확실히 하기 위해 암호 보호, 전구간 암호화, VPN, 그리고 인증 등과 같은 다른 일반적인 랜 보안 절차들이 시행될 수 있다.
- WPA(Wi-Fi protected access)
WPA는 Wi-Fi 무선 랜을 사용자를 위해 개발된 최신 보안 표준이다. WPA는 원래의 Wi-Fi 보안 표준인 WEP보다 개량된 것으로서, 조만간 WEP를 대체할 것으로 기대된다. WPA는 WEP에 비해 보다 정교한 데이터 암호화를 제공하는 것은 물론, 사용자 인증이 다소 불충분했던 WEP와는 달리 완전한 사용자 인증 기능을 제공한다. WEP은 그리 복잡하지 않은 가정용으로는 아직도 유용하지만, 대량의 메시지 흐름으로 인해 암호화키가 보다 신속하게 발견될 수 있는 기업용에는 충분치 않은 것으로 여겨지고 있다.
WPA는 암호화 기법으로 TKIP을 사용한다. TKIP은 패킷당 키 할당, 메시지 무결성 확인, 확장 초기화 벡터, 키값 재설정 기능 등을 포함함으로써 WEP의 약점을 해결하였다. WPA는 802.1X와 확장 인증 프로토콜인 EAP에 기초하여 강력한 사용자 인증을 제공한다. WPA는 각 사용자를 인증할 때 RADIUS와 같은 중앙 인증 서버를 사용한다.
WPA는 현재 개발되고 있는 보안 표준인 IEEE 802.11i의 부분집합이라고도 말할 수 있으며, 이와 호환성을 유지하게 될 것이다.
3. 공격 수행
지금까지 Wi-Fi를 이용하기 위한 AP 탐색 및 인증 과정을 알아보았다. 이제부터는 공유된 AP를 이용한 사용자의 개인 정보가 어떻게 유출되는지 그 방법을 자세히 살펴보자.
A. Access Control Attack
1. War Driving
우선 이동 수단을 이용하여, 이동 중에 AP의 위치, 종류 등의 정보를 수집한다. 이는 공격 전 정보수집 단계로 활용된다.
무선 네트워크 장치를 활성화하면, 접근할 수 있는 무선 네트워크 리스트를 확인할 수 있다. 이 방법은 무선 네트워크가 사용하는 SSID를 확인하여 접근할 수 있는 네트워크인지를 확인하며, 어떠한 패스워드를 사용하는지 유추할 수 있다.
[그림 3] IPAD에서 발견되는 AP 목록과 현재 장소의 GPS
[그림 4]는 카인과아벨(Cain & Abel)을 사용하여 AP 내역을 확인한 것이다.
[그림 4] 카인과아벨을 이용한 AP 내역 확인
[그림 5]는 airmon-ng를 사용하여 AP 내역을 확인한 것이다.
[그림 5] airmon-ng를 이용한 AP 내역 확인
이처럼 Wi-Fi 스캐너를 사용하여 현재 나의 위치와 위치 반경 안에 존재하는 Wi-Fi 내역을 스캐닝할 수 있다. 스캐닝이 완료된 후 사용할 수 있는 핫스팟(HOTSPOT) 리스트(Wi-Fi 통신이 가능한 지역)를 확인할 수 있으며, 핫스팟 지역으로 이동하면 무료 접근이 가능하다.
[그림 6] Wi-Fi Get 애플리케이션을 통한 HOSPOT 알아보기
2. Rogue Access Points
로그(Rogue)라는 명사는 악당, 사기꾼, 범죄자 라는 의미를 가진 영어 단어이다. 로그 액세스 포인트 방법은 이 단어의 뜻과 같이 사회공학적 공격을 수법을 이용하는 것이다. 즉, 회사 내부에 침입하여 네트워크 선에 AP를 설치하고 나오는 방법을 통해 공격이 이루어진다.
만약 사회공학적 공격을 통해 무선 AP가 설치된 경우라면, 공격자는 설치된 AP를 통해 내부로 접근이 가능하게 된다. 접근 완료 후, 공격자는 내부 시스템을 공격하거나 사용자의 정보를 수집할 수 있게 되므로 회사 기밀을 담고 있는 장소는 보안을 좀더 강화해야 한다.
불법적인 방법을 이용해 무선 AP가 설치된 상황은 [그림 7]과 같다.
[그림 7] 불법 AP 설치
3. Ad Hoc Association
Ad Hoc Association은 비인가 외부인이나, 인가 외부인의 Ad Hoc 사용으로 인해 외부에서 내부로 침투하는 것을 말한다. 내부의 Ad Hoc 사용은 비인가 외부자가 내부 네트워크로 침투할 수 있게 도와주며, 공격자에게 공격에 사용할 수 있는 정보를 수집할 수 있는 조건을 만들어 준다. 회사의 기밀을 담고 있는 장소에서의 Ad Hoc사용을 금지하거나 WIPS(Wireless Intrusion Prevention System)같은 장비를 도입하여 무선 네트워크 사용을 금지하도록 조치해야 한다.
[그림 8] 노트북으로 Ad-Hoc 구성
4. MAC Spoofing
MAC 스푸핑(Spoofing)은 인가받은 MAC 어드레스(Address)로 위장하여 AP에 접근하는 방법이다. 하드웨어는 개별적으로 하나씩 MAC 어드레스를 할당받는다. 이렇게 할당된 MAC 어드레스는 소프트웨어적으로 할당된 내역을 수정할 수 있다. 수정이 완료된 경우, 인가받은 네트워크 장비로 인식되어 AP에 접근이 가능하다. MAC 어드레스를 수정하는 방법은 아래와 같다.
Windows
① 시작 -> 실행 -> regedit
② HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}
③ 네트워크 카드 폴더를 선택(키 값 중 DriverDesc를 포함하고 있는 곳을 찾는다)
④ 네트워크 카드 키에 새로운 string값을 만든다
NetworkAddress - 12 hex값
⑤ 네트워크 카드 어댑터를 내렸다 올린다
⑥ Ipconfig /all 로 네트워크 카드 MAC을 확인한다.
⑦ 삭제법: 만든 값을 삭제하고 네트워크 어댑터를 비활성화시킨 후에 다시 활성화시킨다.
• 확인
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0001
[그림 9] 레지스트리에서 MAC Address 변경
[표 1] Windows에서 변경된 MAC Address 확인
Linux
① Ifconfig eth0 down
② Ifconfig eth0 hw ether 00:00:00:00:00:01
③ Ifconfig eth0 up
④ Ifconfig eth0
• 확인
[표 2] 리눅스에서 변경된 MAC Address 확인
• 실습
지금부터 구체적인 실습을 통해 위의 기술적인 내용들이 얼마나 취약하고 어떻게 사용되는지를 확인해 보자.
AP에 00:00:00:00:00:01이라는 MAC에 대한 차단을 설정한 후에 00:00:00:00:00:01 MAC에 대한 차단을 확인하고 MAC Spoofing을 사용하여 무선 랜카드의 MAC을 00:00:00:00:00:02로 수정하여 접근한다.
① AP에서 00:00:00:00:00:01 MAC을 사용하는 장비에서 목적지도 이동하는 패킷을 전부 차단한다.
[그림 10] AP에서 00:00:00:00:00:01 MAC Address 차단
② Linux에서 차단된 MAC 00:00:00:00:00:01을 사용하는 장비의 연결 현황 확인한다. (ping 테스트 결과 외부 연결 차단을 확인)
[그림 11] 00:00:00:00:00:01 MAC Address을 사용하는 장비 확인
③ Linux에서 MAC Spoofing을 수행하여 기존의 MAC Address인 00:00:00:00:00:01를 00:00:00:00:00:02로 변경한다.
[그림 12] 00:00:00:00:00:01 Mac Address에서 00:00:00:00:00:02 MAC Address로 변경
④ 변경된 00:00:00:00:00:02 MAC을 가지고 dhclient를 통해서 IP를 할당받고 외부와의 접근을 시도한다. (ping 테스트 결과 MAC 스푸핑을 통해 외부로 통신이 가능하다.)
[그림 13] MAC Address 변경 후 외부 접근 성공
B. Confidentiality Attack
1. WEP Key Cracking
AP와 클라이언트에서 오고 가는 패킷을 다수 캡처한 후 FMS(Fluhrer-Mantin-Shamir)분석을 통해 WEP Key를 획득할 수 있다. 취약한 암호로 운영되고 있는 AP는 패킷 캡처와 크래킹 도구로 쉽게 암호 키를 획득할 수 있으므로 WEP보다 더 복잡하고 크래킹이 어려운 암호화 방식을 사용하여 운영하는 것을 추천한다.
실습
아래 실습에서는 취약한 AP의 WEP Key를 크랙하는 방법에 대해서 알아보자. 실습에서 사용된 도구는 aircrack-ng이며, 사용된 장비는 노트북, AP, 아이패드이다. 구성은 아래와 같다.
공격자: 노트북(b8:ff:61:af:##:##)
아이패드: 사용자(00:02:A8:80:##:##)
① 공격대상 파악
현재 WEP을 사용하고 있는 AP인 test1234를 선택하여 공격을 진행한다.
[그림 14] WEP Key를 사용하는 AP확인
② 가짜 인증 만들기
공격의 편의성을 고려하여, AP와 Wi-Fi라는 변수를 지정하고, AP의 응답을 받기 위한 가짜 인증을 한다. (데이터 수집시 시간 단축을 위한 가속 패킷을 만들기 위한 사전 작업)
[그림 15] 가짜 인증 시도
③ Key stream 얻기
AP를 사용하는 기기의 사용량이 적을 경우 다량의 패킷을 모으는데 어려움이 있다. 이러한 어려움을 해결하기 위해 패킷을 임의로 구성하면 된다. 이때 AP와 클라이언트(Client)간의 다량의 패킷을 모으기 위해서는 Key stream이 필요한데 이 key stream을 얻기 위한 방법은 아래와 같다.
[그림 16] Key stream 얻기
아래와 같은 문구를 통해 정확히 key stream을 얻었다는 것을 확인한다.
Saving keystream in fragment-0408-144810.xor
Now you can build a packet with packetforge-ng out of that 1500 bytes keystream
위의 문구 중 fragment-0408-144810.xor은 fragment-0408-144810.xor 파일 안에 key stream을 저장한다는 의미하다. 실제로 명령어를 실행한 곳을 확인하면, 해당 파일을 확인할 수 있다.
④ ARP-request파일 생성
Key stream을 담고 있는 파일을 가지고 가속화 패킷을 발생하는 ARP 파일을 만든다. 실제로 명령어를 실행한 곳을 확인하면, 리퀘스트(request) 파일을 확인할 수 있다.
⑤ WEP 데이터 패킷 캡처 및 가속 패킷 발생
WEP를 크랙하기 위해서는 패킷을 수집해야 한다. 하지만 만들어지는 패킷량이 많이 증가하지 않으므로, 패킷을 모으기 전 만들었던 리퀘스트(request)파일을 바탕으로 다량을 패킷을 만들어 전송한다. 이후 수집된 패킷의 수가 평소보다 많게 증가하는 것을 확인할 수 있다.
데이터 패킷 캡처
명령어: airodump-ng -c 1 --bssid $AP --ivs -w cap mon0
가속 패킷 발생
명령어: aireplay-ng-20r request mon0
명령어 : aireplay-ng -2
[그림 17] 데이터 패킷 캡처 & 가속 패킷 발생
⑥ WEB crack
패킷 캡처를 진행하면 아래와 같이, .ivs확장자로 만들어진 파일들을 확인 할 수 있다.
해당 패킷 안에는 유효한 key stream 을 가지고 있는 콘텐츠가 저장되어 있으므로 WEP Key에 대한 크랙을 시도할 수 있다.
[그림 18] WEP Crack 성공
FMS 분석을 통해서 찾아진 Key는 123456789a로 확인되었다. 해당 Key를 사용하여 test1234 AP에 접속을 시도한 결과, 원활히 접속할 수 있는 것이 확인되었다.
2. MITM(Man In the Middle)
악의적인 사용자는 가짜 AP(Evil Twin)를 설치하여 가짜 AP에 접근하여 사용하는 사용자에 대한 정보를 모니터링한다. 가짜 AP는 Ah-Hoc도 포함되며, Promisc설정 등을 이용하여 모니터링 할 수 있다. 모니터링 된 내역에는 사용자가 접근했던 웹 페이지 및 애플리케이션 계정 정보 등이 존재한다.
실습
이번 실습에서는 MITM을 사용하여 공격자가 어떠한 정보를 사용자로부터 획득할 수 있는지 알아보자.
① 가짜 AP설치 및 사용자 접근 확인
공격자가 설치한 AP에 접근하는 사용자가 존재하는지 확인하기 위하여, AP 설정화면으로 접속해보자. 아래와 같은 두 개의 IP를 사용자가 사용하고 있는 것을 확인할 수 있다. 접근한 IP 중 192.168.123.107은 MITM 공격을 수행할 공격자이고, 192.168.123.192는 공격자 AP에 접근한 사용자 이다.
[그림 19] Wi-Fi가 연결된 공격자와 AP사용자의 IP주소 확인
② ARP Spoofing
공격자는 AP에 접근한 사용자에게 ARP Spoofing을 시도하여 공격자 PC를 게이트웨이로 인식하도록 다량의 ARP 패킷을 보낸다. 보내진 ARP 패킷을 통해 AP에 접근한 사용자는 공격자 PC를 게이트웨이로 인식하게 된다. ARP Spoofing을 진행하기 위해 카인과아벨(Cain & Abel)을 사용했다. 카인과아벨에서 스니퍼 탭(Sniffer Tab)으로 이동 후 AP가 할당한 IP내역을 확인했다. AP가 할당한 IP내역은 ①에서 확인된 내역과 마찬가지로 192.168.123.107과 192.168.123.102다.
[그림 20] Cain & Abel로 할당된 IP 확인
스니퍼 탭의 호스트에서 ARP로 옮긴 후 AP에 접근한 사용자에게 공격자의 PC가 사용자의 게이트웨이라고 기록된 다량의 패킷을 브로드캐스트(broadcast)한다.
[그림 21] ARP spoofing 시작
③ 패킷 모니터링
카인과아벨(Cain & Abel)에서 방사능 마크를 누른 후 ARP Spoofing을 진행한다. 진행되고 있는 동안, 패킷의 움직임은 [그림 22]와 같이 상태 뷰(View)에서 확인이 가능하다.
[그림 22] ARP spoofing을 통해서 얻어지는 패킷 확인
사용자의 패킷이 정상적으로 응답하는 것을 확인 후, 모니터링 도구(Wireshark)를 사용하여 사용자가 사용하는 내역을 모니터링한다.
[그림 23] Wireshark로 패킷 캡처
모니터링된 내용을 확인 결과, 특정 사이트에 접근하여 로그인 하는 기록을 찾을 수 있었다. 찾아진 정보는 플레인 텍스트로 확인이 가능하다.
[그림 24] 사용자의 계정 정보 획득
☞ ID : hacker / PW : hacker
모니터링된 사용자 계정 정보를 바탕으로 사이트에 접속한 결과 [그림 25]와 같이 정상 접근이 가능하다.
[그림 25] 획득한 계정으로 웹 페이지 접근 성공
C. Availability Attacks
1. RF Jamming
공격 목표 WLAN과 동일한 주파수를 강력하게 송신하여 AP의 무선통신을 방해한다. [그림 26]과 같은 장비를 사용하여 주파수 대역을 방해할 수 있다.
[그림 26] RF Jamming 단말기(출처 : http://hacknmod.com/hack/a-diy-mini-rf-cell-phone-jammer/)
2. Deauthenticate Flood
Deuthenticate Flood는 AP와 클라이언트의 MAC 어드레스를 알고 있을 경우, AP의 MAC 어드레스와 클라이언트 MAC 어드레스의 연결 구간에 요청(request)을 대량으로 송신하여, 연결을 방해하거나 연결을 종료시키는 방법이다.
이 방법은 airplay-ng로 공격이 가능하며, 공격방법은 다음과 같다.
모니터링 모드가 설정되어 있지 않을 경우, “Airomon start wlan0” 명령어로 모니터링 모드로 변경 한 후 사용
채널이 맞지 않을 경우 “airodump-ng mon0 --channel 1” 명령어로 채널을 맞춘다. (channel이 맞지 않는 경우 공격을 성공할 수 없다.)
D. Authentication Attack
1. Shared Key Guessing
AP 머신들은 AP에 접근 할 수 있도록 기본 패스워드를 제공한다. 제공되는 기본 패스워드는 많은 사용자들에게 노출이 되어 있으므로 인가받은 사용자 외에 불특정 다수가 AP에 접근할 수 있게 해준다. .
AP를 사용할 경우, 처음 설정되어 있는 패스워드를 변경하여, 불특정 다수의 접근을 차단하는 것이 AP를 안전하게 사용할 수 있도록 도와준다.
벤더들과 관련된 디폴트(Default) 패스워드 내역은 다음과 같다.
[표 3] 벤더 및 업체에서 사용하는 패스워드 내역
2. PSK 크래킹(Cracking)
AP의 암호화 방식이 WPA-PSK일 경우, WPA Handshake하는 과정을 모니터링하여 크랙이 가능하다. 모니터링을 통해 얻어진 캡처 파일은 사전파일과 매치 시켜서 패스워드를 유추한다. .
실습
아래 실습에서는 취약한 AP의 WPA를 크랙하는 방법에 대해서 알아보자.
실습에서 사용된 도구는 aircrack-ng이며, 사용된 장비는 노트북, AP, 아이패드 이다. 구성은 다음과 같다.
공격자: 노트북(b8:ff:61:af:##:##)
아이패드: 사용자(00:02:A8:80:##:##)
① WPA Handshake 캡처
먼저 airodump-ng를 통해 패킷을 수집한다.
모니터링 모드가 설정되어 있지 않을 경우, “Airomon start wlan0” 명령어로 모니터링 모드로 변경 한 후 사용
채널이 맞지 않을 경우 “airodump-ng mon0 --channel 1” 명령어로 채널을 맞춘다. (채널이 맞지 않는 경우 공격을 성공할 수 없다.)
② WPA 연결 끊기
WPA Handshake 과정을 모니터링 하고 크랙하기 위해, 기존에 연결되어 있는 네트워크를 해제해야 한다. 해제하는 방법은 AP와 클라이언트간에 Deauthentication 패킷을 발송하여 연결을 끊는다.
$AP는 00:02:a8:80:##:##이며, $WI-FI는 b8:ff:61:af:##:##이다.
만약 위의 명령어가 정확하게 수행되지 않았을 경우, 아래 명령어로 ARP requests를 발생한다.
0 옵션의 파라미터인 0을 사용하여 deauthentication 패킷을 broadcast로발송하여, Mass denial-of-service(MDOS) 공격을 수행한다.
③ 사전파일 획득
먼저 크랙에 사용할 사전파일을 아래 링크를 통해서 다운로드한다.
http://ftp.se.kde.org/pub/security/tools/net/Openwall/wordlists/
아래 명령어를 통해서 사전파일을 만든다.
④ WPA-PSK crack
WPA-PSK handshake 과정이 올바르게 캡처되었는지 확인하기 위해 아래 명령을 사용한다.
WPA를 크랙한 화면은 [그림 27]과 같다.
[그림 27] 사전파일을 이용한 WPA 크랙
지금까지 취약한 Wi-Fi 설정과 무선 네트워크를 이용한 공격 방법, 그리고 그에 따른 대처 방법을 대해 소개했다. 마지막으로 Wi-Fi를 안전하게 사용할 수 있는 10계명을 소개한다. 이 글을 통해 안전한 무선 인터넷 사용에 조금이나마 도움이 되기를 희망한다.@
- 안철수연구소안철수연구소 CERT/세일즈마케팅팀 과장 박정화