2019년 12월 9일부터 시작된 보안 SW개발 세미나를 듣고 작성한 포스팅입니다.
1. Access Point
- Access Point를 Hotspot이라고 부른다. AccessPoint는 Router 기능과 공유기 기능을 함께 가지고 있다.
AccessPoint는 Wire 방식으로 다른 Router 장비와 연결되어 진다.
즉, Wi-Fi 무선 통신 구간은 Device와 Access Point 사이 구간이다.
참고로, Wi-Fi를 지원하는 IEEE 802.11 표준은, OSI 7 Layer 관점으로 보면, Layer 1 즉 Physical Layer에 속하는 프로토콜이다.
- Wi-Fi 무선 통신 구간은 WLAN(Wireless LAN) I/F를 가지기만 하면, 아무나 접속 할 수 있으므로, 보안을 위해 암호통신을 한다. 즉 WLAN 지원 Device와 Access Point 사이 무선통신을 암호화 시켜 통신하고, 이를 위해 암호키를 공유한다.
즉 암호키는 Device와 AccessPoint가 함께 알 고 있어야 한다.
- AccessPoint는 SSID란 이름을 구별되어 진다. 따라서 AccessPoint가 한개 이상 인식 될 때에는, 사용자는 자신이 원하는 SSID를 선택하여 접속해야 한다.
공항, 공원, 공공도서관 등 다수가 이용하는 공공장소에서 설치된 Access Point는 불특정 다수를 지원하기 위해 암호 통신을 할 수 있다 따라서 3자가 통신 내용을 capture해서 볼 수 있다.
Access Point에 접속한 적이 있는 Device에 악성코드를 심어, 내부에 저장된 Password를 외부에 유출 시킬 수도 있다.
예를들어 Access Point에 재접속 할때 Password를 입력하지 않아도 되는것은 Device안의 특정 영역에 Password를 저장하고 있기 때문이다. 파일을 입수하면 암호화 되어있다고 하더라도 Tool에 의해 해독된다.
관리자 권한으로 netsh wlan show profiles name=${SSID_NAME} key=clear 을 입력하면 해당 SSID에 대한 비밀번호를 볼 수 있다.
* Wi-Fi를 켜놓으면 주기적으로 여태까지 한번이라도 접속했던 SSID리스트를 공중에 전송해서 일치하는 SSID에 접속을 시도한다. 일치하는게 있으면 자동으로 접속하게 됨.
주기적으로 SSID리스트를 점검해서 삭제.
네트워크 초기화를 하면 이 리스트를 지워준다.
* 만약 AP가 이 정보를 수집한다면? 사용자가 어디에 갔는지 추측이 가능하다.
spoofing (Spoof : 속이다)
- IP Spoofing : 출발지 IP주소를 바꾸는것
- MAC Spoofing : 출발지 MAC주소를 바꾸는 것.
- ARP Spoofing : IP주소에 대한 MAC주소를 속이는 것
- DNS Spoofing: 도메인 네임에 대한 IP주소를 속이는 것 (Pharming)
* WEP : RC4 대칭키를 사용해서 암호화 한다.
1) SmartPhone에서 암호화 하는 과정
예를들어
평문 : 0101 0101 0101 0101 0101 일때..
WEP Key : 0010 0100 1001 0010 0100 (흔히 말하는 WIFI 비밀번호라고 한다.)
XOR 연산을 한다. 그러면 암호문이 완성됨!
2) 무선 AP에서 복호화 하는 과정
- 암호문 : 0111 0001 1100 0111 0001
WEP Key : 0010 0100 1001 0010 0100
복호화도 역시 XOR 연산을 한다.
WIFI 비밀번호를 모르는 사람은 WEP Key를 모르니까 스니핑해서 복호화 할 수 없..을것 같지만
하지만 WEP에는 취약점이 있다.
WEP Cracking : 암호문을 많이 수집한 후, 여기서 패턴을 추출해서 WEP키를 알아내는 방식.
그래서 나온게 WPA ! 최근에는 2nd Version인 WPA2가 주로 사용되고 있다.
- 개인용은 WPA-PSK(Pre-Shared Key) 모드라고 표시한다. 키를 미리 공유한다. 이것도 WIFI비밀번호.
- 기업용: RADIUS (Remote Authenication Dial In User Service) 방식을 추가.
- RADIUS 방식: 본사 서버에 고객여부를 확인한 후에 접속을 허용하거나 거부를 결정 할 수 있다.
* RADIUS 방식의 예
AP에는 RADIUS클라이언트가 설치가 된다. 그러다 스마트폰 사용자가 WIFI로 접속하면..
RADIUS Client는 RADIUS Server에 물어본다. 접속해도 괜찮은 사용자인지..
그러면 RADIUS 서버는 DB에서 해당 사용자가 허가를 받은 사용자인지 확인하고 아니라면 끊으라고 하고 맞다면 계속 접속을 허락함.
(이때 RADIUS 서버 DB에는 핸드폰기기의 자체 고유번호(IMEI)를 저장한다고 함!)
WPA 에서 사용하는 Encryption Protocol 에는 2가지가 있다. (1Layer에서 암호화)
1) TKIP : RC4알고리즘을 사용하되, 각 packet당 새로운 key를 생성한다. / WPA1
2) CCMP(CTR mode with CBC-MAC Protocol) AES알고리즘을 사용하는 방식 / WPA2
* Passphrase : 패스워드보다 긴 문장방식의 패스워드 구문
* 기기마다 Default Password가 있다. 제조사별로 Default Password가 정리되어있는 사이트도 있음..
* 비밀번호가 유출되어도 Access Point에 접속할 수 있는 Device에 대한 MAC address를 사전 등록시켜 놓으면 등록된 사용자만 Access Point에 접속 할 수 있다(White List)
* Wifi 비밀번호 크랙커라고 해서 단순한 무차별 대입일 줄 알았는데.. WIFI 트래픽을 분석한다고 한다.. 흠좀무...
2. Sniffing
Device와 AP가 주고받는 모든 Traffic을 Capture하여 분석하는 해킹 기법을 sniffing이라고 한다.
* Hardware: WLAN I/F Hardware에는 "managed mode"와 "monitor mode"가 있다. managed mode는 자신의 주소에 매치되는 netword traffic만 capture 할 수 있다.
+ managed Mode는 목적지 IP가 자신의 IP가 아닌 패킷은 drop하는듯.. 반면 monitor mode는 모든 traffic을 받는 듯 하고.. ARP Packet만 sniffing 가능하다고 생각했는데. 아니였구나.
* SoftWare: WIFI network traffic을 capture하려면, WIFI network traffic을 capture하는 Airpcap module을 추가로 설치해야 한다.
* WireShark 에서 자신의 디바이스에 장착된 WLAN 주소에 매치되는 network Traffic만 Capture 하는것이 아니라 인식되는 모든 radio wave를 capture해야 하므로, promiscuos mode에서 capture 해야한다.
promiscuous Mode 목적지 IP가 나의 IP가 아니여도 수집한다.
* WPA1 이나 WPA2 보안 기능을 사용하여 암호화된 traffic data인 경우에도, Password를 이미 알고 있다면, 내용을 해독 할 수 있다. WPA2는 Forward Secrecy를 지원하지 않기 때문이다.
- 이미 비밀번호를 알고 있는 경우.. WireShark에서 설정법.
1) Edit -> Preferences -> Protocols -> IEEE 802.11 선택 후,
2) “Enable Decryption” checkbox를 check 한 후, “Edit” 버튼을 누른 후,
3) “New” 버튼을 누른 후, key Type 을 선택 한 후, Key를 입력하면 됩니다.
4) Key Type 으로, wpa-pwd를 선택한 후에, key 값으로 Password:SSID 를 입력
*Dos (Denial of Service, 서비스 방해 공격)
1. 과도한 트래픽을 발생시키는 방법
2. 시스템의 제한된 버퍼를 채우는 방법
3. 패킷 재조립을 방해하는 공격
4. 웹 취약점을 이용하는 공격
- ICMP 유형
- TCP/UDP 유형
- 패킷 재조립 방해 유형
- http 프로토콜을 활용하는 유형
* Backdoor
- 관리자 몰래 서비스 접속 포트를 열여놓은 것. 접속하면 root 권한이 주어짐.
- Software Bug때문에 백도어가 생성되는 경우도 있음.
- 공격자가 root권한을 획득한 후, Backdoor를 설치해서 다음에 쉽게 접속하도록 함.
'Today I learned' 카테고리의 다른 글
20191211 보안 SW 개발 세미나 3일차 (0) | 2019.12.11 |
---|---|
20191210 보안 SW 개발 세미나 2일차 (0) | 2019.12.10 |
2019-09-26 오늘 만난 코드들 (0) | 2019.09.26 |
[정보처리기사 알고리즘] 이차원 배열 '모래시계' (0) | 2019.09.25 |
[정보처리기사 알고리즘] 버블정렬 (0) | 2019.09.23 |
댓글