'WPA'에 해당되는 글 2건

  1. 2012.07.11 WPA2 Vulnerability Hole196 2
  2. 2012.06.29 [802.11] WPA Crack

WPA2란?


기존 WEP 보안 취약점이 발견되면서 임시 보안 표준으로 WPA를 사용하였다. 그러다 WPA2가 나옴으로써 이를 보안 표준으로 대체하였다. 이는 802.11i의 주요조건을 충족하며, 802.1x를 통한 인증 부문과 AES(Advanced Encryption Standard) 암호화 부문으로 나뉘어 있다. Wi-Fi Alliance가 2004년 9월부터 인증하기 시작했으며, 2006년 3월 이후부터 Wi-Fi로고 획득을 위해 반드시 필요한 항목이 되었다.





Hole196이란, 내부자 공격에 의해 보안된 무선 네트워크를 노출시키는 WPA2 보안 프로토콜의 취약점이다. 


이 취약점은 Airtight Networks 사의 보안 연구원에 의해 발견되었으며, IEEE 802.11 표준 제 196페이지 마지막 줄에 존재하는 WPA2 프로토콜에 취약점이 존재한다고 하여, 취약점의 이름을 ‘Hole 196’으로 명명하게 되었다.






이 취약점의 핵심은 WPA2를 사용하는 네트워크에 인증된 모든 사용자끼리는 GTK를 공유한다는 것인데, 사실 정상적인 동작에선 AP가 GTK를 사용하여 모든 데이터 트래픽을 암호화하여 전송하기 때문에 수신자는 트래픽을 복호화 해야만 한다.





하지만, 이 취약점은 악의적인 내부 인가자가 다른 인가자의 Station을 스캔하여 송신된 데이터를 스니핑 또는 암호화된 데이터를 복호화 할 수 있으며 악성코드를 주입시켜 손상을 줄 수 있는 치명적인 결점이 존재한다.


또, 이는 인증 및 암호화 과정에서의 문제점이 아닌 프로토콜 자체의 취약점이기 때문에 해당 표준을 적용한 802.11 Architecture(AP 또는 컨트롤러)는 이 취약점을 지니고 있으며 표준의 문제점으로 WPA2뿐만 아니라, WPA에서도 위험하다.


한마디로 말하자면, 이 취약점은 WPA2 보안이 적용된 내부 네트워크(인가된 사용자만이 GTK를 알 수 있기 때문)에선 그 보안이 무의미하다는 뜻이다. Hole 196은 위에서도 언급했지만, 프로토콜 자체의 취약점이기 때문에 해당 표준을 적용한 무선 랜(독립 AP 또는 컨트롤러)은 해당 취약점을 지니고 있다.


이 글을 읽고 있는 당신이 만약 내부자 공격에 민감하다면, 아마 내부자 공격을 방어할 수 있는 최대한의 조치를 취해놓았을 것이다. 하지만, 이 취약점은 아직 막을 방법이 없으며, 내부자에 의해 민감한 데이터(지적 재산권, 금융 정보, 기업기밀 등)의 외부 유출을 초래할 수 있다.



Hole 196 취약점은 다음과 같은 공격으로 인해 악용될 수 있다.


1. ARP Poisoning 또는, MITM(Man-In-The-Middle)공격

2. 인가된 다른 사용자에게 악성코드 주입

3. DoS 공격


위 같은 공격을 WPA2를 사용하는 환경에선 악의적인 내부자가 조작된 패킷(AP와 송신자 MAC주소를 조작)을 다른 인가자의 GTK를 이용해, 패킷을 암호화하여 전송할 수 있다.


ARP Poisoning을 예로 들어보자.




GTK에는 ARP Request 메시지를 추가할 수 있다. 이를 이용하여, ARP Request에 공격자의 가짜 Gateway 주소를 포함시켜 브로드캐스팅 하게 되면 모든 Station은 공격자의 MAC 주소를 Gateway 주소로 ARP 테이블에 매핑하게 된다.이 공격은 유선 네트워크상에선 IDS 또는 IPS에 의해 감지가 되거나 차단될 수 있다. 


하지만, WPA2환경에서 ARP Spoofing 공격을 할 땐, 악용된 GTK 패킷 자체가 암호화되어 전송하기 때문에 이를 막을 방법이 아직까지는 존재하지 않는다. 



그리고 이러한 ARP Spoofing 공격은 단지 예시일 뿐, 실제로는 DoS, DNS Spoofing, exe Weakness 등의 취약점등을 GTK를 이용하여 더 강력하고 정밀한 공격이 가능하다.




이를 방어하기 위해선 ARP Poisoning을 탐지하는 소프트웨어를 설치하면 되지만, Station마다 일일이 설치해야 한다는 불편함이 존재하며, 모바일 운영체제(Android, IOS, Windows Mobile 등)를 사용하는 Station에서는 지원이 되지 않는 단점이 있다.


그리고, Hole196 취약점을 기반한 다른 공격기법들이 위에서 봤던 것 처럼 여러 있기 때문에 이를 모두 막는 것은 거의 불가능하다. 

또한, Hole196 취약점을 이용한 공격 자체가 무선 환경에서 이루어지기 때문에 유선 네트워크 기반의 IDS/IPS, Firewall, ARP Poisoning 감지 장치에서는 감지가 되지 않는 특징이 존재한다.


그리고 안타깝게도 이 취약점은 클라이언트를 격리시키거나, PSPF(클라이언트 간 통신 차단)를 설정해도 이를 우회할 수가 있다.


그렇다면 애초에 AP가 클라이언트를 격리하거나 Station간의 통신을 금지시키면 해결되는 것인가? 그것 역시 아니다.

앞의 위험성에 대한 페이지에서도 언급한 것처럼 클라이언트 격리 또는, PSPF도 우회할 수 있기 때문이다.

악의적인 내부 인가자가 계속해서 암호화된 Spoofed GTK 패킷을 네트워크의 다른 Station(Victim)에게 보냄으로써 공격자의 Station으로 데이터 트래픽이 포워딩 되게 할 수 있는데, 이를 이용해 유선 네트워크에 가짜 게이트웨이를 설치하고 Poisoning된 ARP Cache를 인가된 사용자(station)에게 보냄으로써 모든 데이터 트래픽을 가로채, 클라이언트 격리를 우회할 수 있기 때문이다.

현재의 WPA2 프로토콜 표준에 따르면 GTK는 각각의 클라이언트에 AP가 4 Way Handshaking을 통해 할당되는데, 무선 랜 벤더들이 이러한 GTK를 무작위로 생성하게끔 패치를 하면 방어할 수 있다.

또한, 오늘날의 컨트롤러 기반 무선 랜은 아예 GTK를 사용하지 않게 무선 컨트롤러를 ARP Proxy 대신 AP를 사용함으로써 브로드캐스트 트래픽의 전송을 해제할 수 있다.

지금으로썬, WIPS(무선 침입 방지 시스템)를 사용하여 보안 프로토콜의 취약점을 보호하는 것이 확실한 방법이다. 하지만, WIPS 장비를 도입하는 것은 금전적으로 힘든 점이 있다. 

결론적으로, WIPS가 없으면 취약점으로부터 보호받기가 어렵다는 것을 알 수 있다..
그러니 최소한의 보안을 위해, 모든 기업 및 정부 기관에선 WIPS를 도입하여 Hole196에 대응하는 것이 최선이라고 생각한다.




참고 자료

[1] http://www.airtightnetworks.com/
- WPA-Too-Hole196-Defcon18-Presentation
- WPA2-Hole196-vulnerability-FAQs
[2] http://www.airtightnetworks.com/webinars
[3] http://www.idg.co.kr/newscenter/common/newCommonView.do?newsId=62209

'공부 > Network' 카테고리의 다른 글

UNC(Universal Naming Convention)  (0) 2012.07.17
WEP 암호화 알고리즘 취약점  (1) 2012.07.14
Well Known Port  (0) 2012.07.05
CCNA  (1) 2012.07.05
[802.11] 802.11i (detailed)  (0) 2012.06.29
Posted by extr
:

[802.11] WPA Crack

공부/Network 2012. 6. 29. 16:18 |




지난번의 WEP 크랙에 이어서 WPA 크랙을 설명해 드리겠습니다.



WPA(Wi-Fi Protected Access)란, WEP와 마찬가지로 암호화 방식중 하나입니다. 



'기존의 취약한 WEP를 위한 암호수단으로 한단계 업그레이드된 암호화 방식이 WPA이다'고 생각하시면 편할듯 하네요.



WEP는 기존에 인증요청-수락-결합요청-수락 이런식으로 해서 인증 요청에 키값을 실어 보냅니다.







허나, 단순히 스니핑으로 인증요청을 가로채어 키를 보면 되기 때문에 매우 취약했습니다.



그래서 WPA는 이런점을 보완했습니다.



그냥 저 과정에서 KEY를 안보내면 되지않느냐 하고 새로운 방법을 제안했습니다.



그 방법은 바로






이런식으로 Key를 겉으로 볼 수있는 과정에서 없애버리는겁니다.



Key를 handshake 방식으로 뒷거래를 합니다 그러면 당연히 겉으로는 볼 수 없겠지요?



하지만 이 handshake방식도 어떻게든 볼 수 있습니다. 그건 과정 절차와 상관이 있습니다.



handshake과정은 인증단계에서 벌어집니다. 그 때 키를 보내는 것을 가로채면 되는 것이지요.




WPA 역시 WEP와 마찬가지로 같은 암호화 알고리즘을 사용합니다. 다만, 암호화 방식이 다르답니다. 이건 나~~중에 포스팅해드리겠습니다.



일단 WPA는 WEP와는 달리 사전파일이 필요합니다. 그러니 사전파일을 준비해주시길 바랍니다.





이전 WEP크랙할때와 마찬가지로 모니터링 모드를 하나 만들어 줍니다.


>airmon-ng start <무선 NIC 이름> -c <공격할 AP 채널>





그리고 공격할 대상의 AP와 station등을 수집해야겠죠?


airdump를 사용하여 스캐닝을 해줍니다.





>airodump-ng -c <channel> --bssid <공격할 AP의 BSSID> -w <저장할 파일 명> <Monitoring mode 무선 NIC>


스캐닝을 하면 지속적으로 beacon이 날아가는 것을 보실 수 있습니다.



이상태에서 연결되어있는 station을 AP로부터 잠시 분리를 시켜줘야하는데요.




그 이유는 위에서도 나왔지만 handshake과정을 인증절차에서 한다고 했습니다.



그 핸드쉐이크 과정을 한번 더 일으켜 주는 것이지요. 

그래서 의도적으로 연결을 끊은 뒤에 station의 특성을 이용하여 재접속하게 만들어 줍니다.




한번 연결된 AP는 재연결하려는 특성을 station은 가지고 있기 때문입니다.




일단 그럼 연결을 끊어줘야겠지요?





연결을 끊기 위해서 DoS 공격을 해야합니다. 단, DoS공격은 5번정도만 해주는게 좋습니다.


왜냐하면 계속해서 DoS를 날리면 station은 아예 연결을 시도하려하지 않기 때문입니다.


도스어택의 명령어는 다음과 같습니다.




>aireplay-ng -0 5 -a <공격할 BSSID> -c <공격할 station MAC> <모니터링 모드 무선NIC>




의미는 다음과 같습니다.



-0이란, WEP공격할때 설명해준 것처럼 aireplay-ng 내의 프로그램을 입니다. 0은 Dos겠지요?


5는 5번 패킷을 날려주는 겁니다. 나머지는 아시리라 믿고 설명은 드리지 않겠습니다.




도스 공격을 날리면 끊겼다가 다시 시도하려는 것을 보실 수 있습니다. 정상적으로 공격대상의 station이 결합하면 airdump의 스캐닝을 중지하고




사전파일과 매칭시켜야합니다.




명령어는 이러합니다.




>aircrack-ng -b <공격할 BSSID> -w <사전파일 저장 경로> <파일명.cap 파일>




이렇게 명령어를 내리면 자동적으로 사전파일과 매칭하여 일치하는 암호를 내어줍니다.









이역시 크랙에 성공시킬 수 있습니다.




다만, 이 기법은 어디까지나 WPA 크랙입니다. WPA2는 이 크랙이 먹히질 않습니다.




그 이유는 다음에 포스팅해 드리겠습니다.




봐주셔서 감사합니다.




출처 - 옛날 블로그 2011/02/12 20:27 


'공부 > Network' 카테고리의 다른 글

[802.11] 802.1x  (1) 2012.06.29
[802.11] DoS Attack  (0) 2012.06.29
[802.11] WEP Crack  (10) 2012.06.29
[802.11] Frame Control [802.11 frame,802.11 프레임]  (0) 2012.06.29
[802.11] channel [802.11 채널]  (0) 2012.06.27
Posted by extr
: