무선 랜 해킹 지도를 그리자

불과 몇 년 전까지만 해도 인터넷에 연결하려면 제법 요란한 다이얼 소리를 들어야 했다. 그에 비하면 요즘의 무선 인터넷 광고는 기술의 폭주를 새삼 실감하게 한다. 무선 인터넷의 보급은 거추장스러운 케이블을 치우는 데 일조했지만 사용자들을 그 이전 시기에는 미처 생각지도 못했던 잠재적 위험에 노출시키기도 했다. 무협지에서 검 하나로 강호를 평정하는 황당무계한 이야기가 현실에서는 이동형 장비 하나로 네트워크를 쑥밭으로 만드는 악당이 나타나는 더욱 괴기한 이야기가 되어 돌아올 수도 있다. 이번 호 테크니컬 칼럼은 바로 눈앞에 닥친 ‘보이지 않는 위협’에 관한 내용이다.

무선 랜(wireless LAN)은 이미 우리 생활 속에 아주 깊숙히 파고 들고 있다. 자신도 모르는 사이에 액세스 포인트(access point)와 무선 랜 카드를 장착한 노트북, 모바일 기기들이 내뿜는 2.4GHz의 전파 속에 파묻혀 살아가고 있다.

눈을 뜨지 않으면 앞이 보이지 않는 것처럼 바로 자신의 주위에 이러한 데이터들이 날아 다녀도 적당한 도구를 사용하지 않으면 전혀 알지 못하고 살아가게 된다. 어쨌든 무선 랜 탐지 행위를 한 번 해 본다면, 무선 랜이 얼마나 우리 생활에 파고들었나를 알게 될 것이고, 또 무선 랜이 얼마나 보안에 취약한지 알게 될 것이다.

무선 랜을 사용하는 사이트 중 WEP(Wireless Equivalent Protocol)이라는 암호화를 사용하는 사이트의 비율은 30% 이하로 알려져 있고 실제로도 그렇다. 나머지 70%는 대문을 활짝 열어 놓고 침입자를 기다리는 꼴이다. 그리고 나머지 30% 중에서도 WEP 크래킹을 통해 침투 당할 가능성이 50% 이상 될 것이다. WEP의 취약성으로 인해 패킷을 어느 정도 수집하면 크래킹이 가능하기 때문이다. 침투당하지 않을 만한 사이트는 추측컨대 10% 미만일 것으로 생각된다. 한 마디로 인증 서버를 두거나 VPN(Virtual Private Network)을 쓰거나 하는 투자를 하지 않으면 무선 랜은 아주 위험한 물건이다.

Hacker’s Challenge』라는 책을 보면 2002년에 발생한 보안 사건들을 주로 다루고 있는데 20가지 에피소드 중 세 가지가 무선 랜 보안과 연관된 것이었다. 이러한 무선 랜 관련 이슈는 우리나라에도 점점 적용되어 가는 상황이다.

이 책에서 나온 세 가지 에피소드의 예를 살펴보면 다음과 같다.

Episode 3, The Parking Lot : 무선 랜을 타고 내부망으로 바로 들어온 해커에 대한 문제다. 무선 랜 셋팅과 관련된 가장 나쁜 예가 내부망에 무선 랜을 바로 설치한 경우이다. 방화벽 등으로 액세스 포인트를 분리하지 않았을 경우 무선 랜을 경유한 내부망 침투가 이뤄지게 된다. 이 경우 침입자는 대상이 되는 건물 근처의 주차장에 차를 세워두고 노트북과 무선 랜 카드를 이용하여 네트워크에 침투했다. 해킹 사고가 발생할 때 그 근처를 순찰하던 경찰에 의해 ‘우연히’ 발각됐다. 우연이 아니라면 이러한 침입자를 추적하기는 실제로 아주 힘들다.

◆ Episode 7, Up in the Air : WEP이나 MAC 필터링을 깨고 무선 랜에 침입한 사례로서 WEP이 실제로 크래킹이 되고, MAC 필터링도 MAC 주소 조작을 통해 깨질 수 있음을 보여준다. 그리고 이러한 크래킹과 조작에 필요한 기술들은 아주 높은 스킬을 필요로 하지 않는다.

◆ Epidose 11, Accidental Tourist : 의도하지 않은 무선 랜 공격을 보여준 사례로서 우리나라에 현재 무선 랜을 통해 인터넷 액세스를 제공하는 카페나 패스트푸드점이 많은 상황과 비슷한 상황에서 발생한 일이다. , 의도하지 않게 카페에서 인터넷을 사용하던 사용자가 우연히 같은 설정을 가진 같은 건물의 윗층 사무실 네트워크에 접속하게 된 사건이다. 이 경우 사용자는 악의를 지니지 않아서 별다른 피해를 입히지 않았다. 하지만 이러한 종류의 문제조차도 원인을 발견하고 해결하는 데는 많이 시간이 필요한 작업이다.


무선 랜이란 무엇인가

여기에서 논의의 대상이 되는 무선 랜은 2003년 현재 가장 널리 사용되는 802.11b 규격을 준수하는 로컬 네트워크를 의미한다. 802.11b 표준은 현재 가장 많이 사용되는 무선 랜 표준으로 현재 상용화된 대부분의 무선 랜 장비들이 지원한다. 또한 이 표준은 Wi-Fi라고도 알려져 있다. 2.4GHz 대역(2.400~2.4835GHz)에서 작동하고 한 액세스 포인트에서 최대 수십 대까지의 장비를 연결할 수 있으며, 각 스테이션은 최대 11Mbps의 전송 용량을 공유한다. 물리 계층에서는 DSSS(Direct Sequence Spread Spectrum)라는 프로토콜을 사용하여 통신하는데, 이 프로토콜은 신호의 강도를 높여 전송하는 방식으로서 전파의 도달 거리가 늘어나게 된다. 또한 주파수별로 열네 개의 통신 채널을 제공하고 국가에 따라서 이 중 일부 채널을 사용하게 된다. 2.4GHz 주파수 대역은 ISM 밴드라고도 한다. 미국의 FCC(Federal Communications Commision)에서 정한 주파수 대역으로 902MHz, 2.400GHz, 5.7GHz 대역이 할당되어 있다. 산업용, 과학용, 의료용으로 당국의 허가 없이 사용할 수 있다. 블루투스나 무선 랜 등이 이 주파수를 사용한다.


 

무선 랜의 취약점
기본적으로 무선 랜은 유선 랜과는 달리 대부분의 경우 물리적인 보안이 전혀 이루어지지 않는다는 것이 무선 랜 보안 문제의 핵심이다. 무선 랜의 경우 전파의 도달 거리가 보통 100m에서 500m, 그리고 안테나를 사용할 경우 최대 5km에 이르기 때문에 물리적으로 이러한 도달 거리 내에 존재하는 공격자들을 통제하기가 힘들다. 전파를 투과하지 못하는 금속성 물질들로 건물이나 방 전체를 도배한다든지 하는 방법도 있지만 이 경우에는 상상하는 것 이상의 비용이 든다. 이러한 무선 랜의 취약성에 대비해 WEP이라는 암호화 방법을 제공한다. 하지만 이 암호화 방법은 데이터 수집을 통한 크래킹에 매우 취약한 것으로 알려져 있다.

WEP(Wired Equivalent Privacy)은 단어의 의미와도 같이 유선 랜과 동일한 정도의 보안성을 획득하기 위한 표준이다. 802.11 표준의 선택 사항으로서 구현해도 되고 안 해도 되지만 안전한 네트워크 사용을 위해서는 사용할 것을 권한다. 스테이션 사이나 스테이션과 액세스 포인트 사이에 공유하는 비밀 암호화 키를 먼저 생성한 이후 데이터 스트림을 암호화하게 된다. 이러한 암호화 키를 생성하기 위한 최초의 키는 사용자가 입력해야 하고, 각 스테이션과 액세스 포인트 사이에 동일하게 셋팅되어야 한다. 따라서 스테이션과 액세스 포인트가 많아지면 관리 문제가 발생한다.

WEP은 속도가 빠른 RC4를 암호화 알고리즘으로 사용하고 64비트나 128비트 키를 사용한다. 이 키에서 24비트는 IV(Initialization Vector)로 사용되므로 실제 키 길이는 40비트, 104비트가 된다. WEP은 네 개의 키를 제공하고 각 키를 전환해 가면서 사용하도록 되어 있다. 하지만 이러한 키 전환은 주기적으로 이뤄지지 않는다.

또한 24비트의 IV를 제공하는데 IV는 각 패킷마다 바뀐다. 따라서 각 패킷은 다른 키를 가지고 암호화된다. 하지만 근원적으로 하나의 키에서 출발하므로 IV의 경우의 수는 매우 작게 된다. 따라서 많은 트래픽을 전송할 경우 같
키를 재사용하는 경우가 생긴다
. 공격자들이 만약 같은 키와 IV로 암호화된 두 개의 메시지를 모니터링하면 통계적인 방법으로 키와 원문을 해독할 수 있다. 대표적인 WEP 크래커로는 다음 두 가지 툴이 있다.

Airsnort : http://airsnort.shmoo.com
WEPCrack : http://sourceforge.net/projects/wepcrack

WEP의 이러한 취약성을 보완하기 위한 방법으로 여러 가지가 제안되고 있으며 가장 자주 거론되는 것이 바로 802.11x 구현과 IPSEC 구현이다. 두 방법 모두 안전한 무선 랜 환경을 제공하면서 서로 장단점이 있다.

무선 랜 네트워크 찾아내기
이러한 취약성을 가진 무선 랜이 아무리 많이 있다고 해도 그 존재를 찾아 내지 못한다면 아무 소용이 없을 것이다. 기본적으로 무선 랜 프로토콜 스펙에 의존해 이러한 무선 랜의 존재를 적극적으로(active) 또는 수동적으로(passive) 찾는 방법들이 존재한다.

active probing은 무선 랜 프로토콜 스펙의 기능을 이용한 방법이다. 매니지먼트 프레임 중 Probe Request 프레임을 이용해 현재 동작중인 액세스 포인트의 존재를 감지할 수 있다. Probe Request 프레임을 받는 액세스 포인트는 Probe Response 프레임으로 응답하게 되고 그 존재를 감지할 수 있게 된다. 이 프레임에는 ESSID가 포함되어 있다. ESSID는 해당 네트워크를 공격하기 위한 중요한 정보가 된다. 하지만 액세스 포인트에 따라 이러한 응답을 제어할 수 있는 종류가 있는데 이 경우에는 이러한 방법이 통하지 않는다. 또한 IDS 등에 의해 이러한 공격이 감지당할 가능성이 있다. <화면 1>은 이러한 Probe Request/Response 과정을 패킷 캡처한 것이다. <화면 1>을 보면 stronghold라는 ESSID가 캡처됐다.

<화면 1> Probe Request/Response 패킷 캡처

패시브 모니터링(passive monitoring)은 무선 랜 네트워크 모니터링을 이용한 방법이다. RFMON(Radio Frequency Monitoring)을 이용해 네트워크를 모니터링하는 방법이 있다. 이 방법을 이용해 네트워크에 떠다니는 모든 무선 랜 패킷을 수집해 아주 효율적으로 네트워크의 존재를 감지할 수 있다. 무선 랜 스니퍼들이 이러한 기능을 대신할 수도 있고 이러한 용도로만 개발된 프로그램들도 있다. Dstumbler와 같은 프로그램이 이러한 종류에 해당한다.

이러한 프로그램으로 여러 가지 패킷을 모니터링할 수 있는데 그 중에 액세스 포인트에서 지속적으로 발생하는 Beacon 프레임을 모니터링한 <화면 2>를 보자. 이 패킷 속에 ESSID stronghold가 들어 있음을 알 수 있다.

<화면 2> Beacon 프레임 화면

이러한 무선 랜의 존재를 찾기 위한 툴들이 존재한다. 이러한 툴들은 앞에서 소개한 방법대로 액세스 포인트의 봉화(Beacon) 패킷을 모니터링하거나 Probe 패킷을 보내 돌아오는 Response 패킷을 모니터링한다. 지면에 다 소개하지 못할 정도로 많은 소프트웨어가 존재하므로 다음 링크를 참조하기 바란다.

http://www.personaltelco.net/index.cgi/WarDriving

이러한 소프트웨어를 이용해 특정 지역을 통과하면서 그 주위의 액세스 포인트 등의 무선 랜 기기들의 존재를 알아내는 것을 워 드라이빙(war driving)이라고 한다. 워 드라이빙이라는 용어는 워 다이얼링(war dialing)이라는 용어와 비슷한 점이 많다. 워 다이어링은 쓸만한 서버나 기계를 찾기 위해 특정한 범위의 전화번호를 계속 다이얼링하는 일을 말한다. 이러한 방법을 통해 경우에 따라서 대학교의 보안이 허술한 서버나 비밀스러운 기계들에 접근하게 되는 경우가 있었다. 1980년대에나 사용했던 이러한 방법이 다시 등장했는데 바로 무선 랜에 대한 워 드라이빙이다. 다음과 같은 사이트에서 이러한 워 드라이빙에 의한 결과물인 지도를 볼 수 있다.

http://netstumbler.org/nation.php
http://www.nodedb.org/unitedstates/or/portland/
http://pasadena.net/roseparade/
http://www.pasadena.net/apmap/
http://pasadena.net/vacation/
http://www.wifimaps.com/

워 드라이빙 입문
아마도 이러한 워 드라이빙을 과연 우리나라에서도 하고 있을까 하고 생각하는 독자들도 있을 것이다. 역시나 선진적인(?) IT 인프라스트럭처를 구비한 까닭에 한국은 워 드라이버들에게 천국과도 다름없는 곳이다. 아마 무선 랜을 그렇게 많이 사용하나 하는 생각이 들겠지만 외국 지도들과 비교해 보면 한국의 무선 랜 액세스 포인트 조밀도는 아주 높은 편에 속한다.

필자가 속한 단체인 패닉 시큐리티(PanicSecurity)라는 모임을 통해 필자는 이러한 지도를 직접 그려본 적이 있다. 그 때가 2002년 말이었으니 지금은 더 많은 무선 랜 핫 스팟이 생겨났을 것이다. 지금부터 패닉 시큐리티에서 워 드라이빙을 한 과정을 소개하겠다. 물론 장비 구비에 약간의 어려움이 있을 뿐 이론적으로 전혀 어렵지 않은 작업이므로 독자들도 한 번쯤 해 볼 수 있을 것이다. 운영체제에 따라 다음과 같은 프로그램을 사용하며 기본적인 준비물로 무선 랜 카드와 안테나, GPS 등이 필요하다.

윈도우 : 넷스텀블러
리눅스 : kismet, airsnort
◆ BSD : dstumbler
◆ PocketPC : Ministumbler, PocketWarrior, PocketWinC

먼저 무선 랜 카드는 외장 안테나를 장착할 수 있는 모델이 좋다. 또한 각 운영체제의 프로그램의 지원 여부도 중요하다. 특히 무선 랜 카드는 벤더 별로 특성이 많이 다르므로 주의해야 한다. 우리가 사용한 제품은 오리노코(Orinoco)의 실버 카드였다(<화면 3>). 가격도 싸고(8만원 이하), 외장 안테나 포트도 있어서 적절한 제품으로 생각된다.

무선 랜 카드의 전파 수용 범위를 넓히기 위한 안테나가 필요하다. 우선 무선 랜 카드가 외장 안테나 포트를 지원해야 안테나를 사용할 수 있다(<화면 4>).

지향성으로 성능이 좋은 패치형 안테나를 사용했다(<화면 5>). 경우에 따라서 깡통을 이용해 그럭저럭 쓸만한 안테나를 만들 수도 있다(<화면 6>). 이러한 안테나를 프링글스 안테나 또는 캔테나(Cantenna)라고 하는데 재료만 구비되어 있다면, 제작 방법은 비교적 쉽다. 자세한 제작 방법은 다음 사이트들을 참조하기 바란다. 이 사이트들은 무수한 프링글스 안테나 사이트 중 일부다.

http://www.oreillynet.com/cs/weblog/view/wlg/448
http://www.radio-active.net.au/web/80211/pringles.html
http://www.radio-active.net.au/web/80211/betterpringles.html
http://www.turnpoint.net/wireless/has.html
http://me.jeremiahwhite.com/pringles.html


<화면 6> 깡통 안테나

각 액세스 포인트를 찾아낸 위치를 기록하기 위한 GPS가 있다면 더욱 좋다. Garmin Etrex를 사용했고 케이블은 자작했다(<화면 7>).




<화면 7> Garmin Etrex GPS


<화면 8> 자작한 GPS 케이블


<화면 11> 미니스텀블러
구동 화면

PDA를 사용해 풀 셋을 만들 수도 있다(<화면 9>).

<화면 9> PDA+GPS+무선 랜 카드+안테나=워 드라이빙 풀 셋

이제 넷스텀블러를 통해 아웃풋을 볼 수 있다(<화면 10>). <화면 11>은 미니스텀블러의 아웃풋이다.

<화면 10> 넷스텀블러 구동 화면

워 드라이빙 결과물로 강남 테헤란로 주변의 액세스 포인트 지도(<화면 12>)와 서울 서부에서 인천 동부까지의 지도를 작성해 봤다(<화면 13>).



<화면 12> 강남 일대 지도


<화면 13> 서울 서부에서 인천 동부 지도

누구나 노출되어 있다?
지금까지 무선 랜 해킹에 관한 가장 기본적인 정보들을 제공했다. 유선 랜에서 무선 랜으로의 전이는 필연적이고 앞으로 더 가속화될 것이 분명하다. 이러한 상황에서 무선 랜 보안에 관한 철저한 인식을 가지고 있는 것이 필요할 것이다. 필자는 다음과 같은 사이트를 통해 무선 랜과 관련된 정보를 제공하고, 논의를 계속하려고 한다. 관심 있는 독자들의 참여를 바란다.

http://wireless.panicsecurity.org

오정욱 (시큐아이닷컴, 마이크로소프트웨어)


One thought on “무선 랜 해킹 지도를 그리자

Leave a Reply