I. 서론
코로나19 바이러스 감염병이 전 세계적으로 대유행함에 따라 재택근무와 온라인 교육이 활성화되고 있다[10, 11]. 이에 따라 보안 솔루션이 보다 요구되고 있으며, 이를 위해 가상 사설망(VPN: Virtual Private Network) 사용이 급속히 증가하고 있다[3]. VPN 구축을 위해서는 널리 알려진시스코 社의 ASA(Adaptive Security Appli-ance) 소프트웨어[17]와 같은 솔루션을 도입하거나StrongSwan[14]과 같은 오픈소스 기반 IPsec VPN 솔루션을 활용할 수 있다. 또는 IPsec 표준을참고하여 필요에 따라 최적의 솔루션을 자체 개발할수도 있다. IPsec VPN 개발과 환경 구축 과정에서 네트워크 패킷 분석은 필요한 부분 중 하나이다. 하지만 IPsec VPN 네트워크 패킷들은 암호화되어 있어 사실상 이를 실시간 분석하기란 쉽지 않다.
VPN 사용이 증가함에 따라 VPN 취약성은 공격자들에게 중요한 공격 대상이 되고 있으며, 이와 관련된 다양한 연구가 수행되고 있다[3,4,5,6,7,8]. Y. Cui 등[4]은 IKE v2 프로토콜에 대한 퍼징을 수행하였으며, J. Guo 등[6]은 IKE v2 인증 과정에서 인증서의 ID 검증 방식에 대한 구현 결함을 확인했다. T. Kai 등[5]은 차분 퍼징 기법을 이용하여 서로 다른 솔루션의 결과 비교를 통해 구현 오류를 확인하였다. 위의 연구들에서는 IKE v2 프로토콜 분석을 위해 이를 실제 구현하여 확인하였다. 이러한 과정에서 암호화된 IKE v2 패킷 분석은 반드시 필요한 부분이며, 이를 위해서 다양한 방법을 활용했을 것으로 추측이 된다. 이 외에도 IPsec VPN 에서 대두되고 있는 서비스 거부 공격 가능성[3,6] 과 서비스 공격 시 시스템 성능 평가[9]에 대한 연구들도 진행되었다.
IPsec은 VPN 중 대표적인 프로토콜로서, 네트워크 계층에서 IP 패킷에 대한 인증과 기밀성을 위한 AH(Authentication Header)와 ESP (En- capsulating Security Payload), 그리고 보안서비스 제공을 위한 SA(Security Association)를 자동으로 설정하는 IKE(Internet Key Exchange) 프로토콜로 구성된다. IKE v2는 기존 IKE v1보다 키 교환 과정을 줄여 더 가볍고 효율적이며, 서비스 거부 공격에 대한 안전성이 강화되었다 [1]. 또한 IoT 디바이스와 같이 소비전력, 메모리, 처리 능력 등 리소스가 제한된 환경에서 상호 운영이 가능한 최소 구현 방법에 대해서도 제안되었다[2].
Wireshark[13]는 네트워크 분석에 활용되는 대표적인 도구로서, ICMP, TCP/UDP, HTTP, SMTP 뿐만 아니라 IKE, ESP 등 다양한 네트워크 프로토콜을 실시간으로 분석할 수 있다. IKE는버전 1과 버전 2로 나뉘며, Wireshark에서 이를 분석하기 위해 요구되는 파라미터는 각각 다르다. IKE v1의 경우에는 Initiator의 쿠키 값과 암호키가 요구되며, IKE v2의 경우에는 Initiator와 Responder의 SPI와 세션키, 암호 알고리즘, 무결성 알고리즘이 요구된다. IKE v2 분석을 위해 요구되는 세션키는 시스템의 기밀성과 무결성 보장을 위한 가장 중요한 요소이기 때문에 안전하게 관리되어야 한다. 따라서 이를 획득하기란 쉽지 않으며, 이를 위해서는 IPsec VPN 시스템 관리자 권한이 반드시 필요하다. 하지만, 일부 장비에서는 세션키 획득이 불가능할 수도 있다.
IKE v2 실시간 분석은 IPsec VPN 시스템 개발, 분석 및 운영 중 발생 가능한 문제를 해결하는데 중요하다. Wireshark을 이용하여 IKE v2 프로토콜 분석은 가능하지만 이를 위해서는 세션키 획득과 같은 한계점이 존재한다. 본 논문에서는 이러한 한계점을 해결하는 새로운 분석 기법을 제안한다. 제안하는 기법은 MITM 방식으로 Initiator와 Responder 사이에 위치하여 송수신 패킷을 실시간으로 분석할 수 있다.
본 논문의 구성은 다음과 같다. II 장에서는 IKE v2에서의 세션키 공유 및 상호 인증과정에 대해 기술하고, III장에서는 대표적인 네트워크 분석 도구인 Wireshark에서 IKE v2를 분석하는 방법에 대해 상세히 기술하고 이에 대한 한계점을 분석한다. IV 장에서는 제안하는 분석 기법과 실험 결과에 대해 분석하고 V장에서 결론으로 마무리 한다.
II. IKE v2
IKE v2는 네트워크 트래픽 보호를 위한 세션키와 여러 보안 파라미터(SA: Security Asso- ciation)를 자동으로 설정하는 키 관리 프로토콜이다. IKE v2에서 SA 설정은 요청과 응답 패킷(메시지) 쌍으로 이루어지며, Fig. 1.과 같이 IKE_SA_ INIT, IKE_AUTH, CREATE_CHILD_SA, INFORMATIONAL로 구성된다.
IKE_SA_INIT 교환 과정에서는 이후 교환되는 메시지들을 보호하기 위한 세션키와 암호 알고리즘등의 IKE SA를 결정한다. 세션키는 Diffie-Hell man 키 교환 프로토콜과 몇 가지 암호연산을 통해 생성되며, 사용할 암호 알고리즘은 Initiator와 Re- sponder에서 지원하는 암호 수트(cipher suites) 를 서로 확인하여 결정한다.
IKE_AUTH 교환 과정에서는 상호 인증과 CHILD SA를 결정한다. IKE_AUTH 메시지는 IKE_SA_INIT 교환 과정에서 결정된 SA(세션키 및 암호 알고리즘)로 암호화되며, 상호 인증은 사전 공유키(PSK: Pre-shared key) 방식 또는 디지털서명 방식으로 이루어진다.
Fig. 1. An example of IKE v2 session
CREATE_CHILD_SA 교환 과정은 두 가지 목적에 따라 사용된다. 첫 번째는 기존 IKE SA를 새로운 IKE SA로 갱신하는 것이며, 두 번째는 새로운 CHILD SA를 생성하거나 기존 CHILD SA를 갱신하는 것이다.
Table 1. Notation of IKE v2
INFORMATIONAL 교환은 오류 통지 또는 세션 종료, IPsec VPN 노드들 사이의 환경설정 등을 위해 선택적으로 사용한다.
본 장에서는 IKE v2에서 IKE_SA_INIT과 IKE_AUTH 교환 과정에서 이루어지는 세션키 생성과 상호 인증 과정에 대해 상세히 기술한다. Table 1.은 이후 사용할 IKE v2 표기법을 나타낸다.
2.1 IKE_SA_INIT
IKE v2에서 세션키는 Fig. 1과 같이 IKE_SA_ INIT(①, ②) 교환 과정 이후 생성한다. Initiator 는 ① IKE_SA_INIT 메시지에 암호 알고리즘을 포함하는 SAi와 함께 Diffie-Hellman 공개키 KEi, 난수 Ni를 Responder에게 전송한다. Responder 는 Initiator가 제공한 암호 알고리즘 중에서 지원가능한 것을 선택하고 이를 포함하는 SAr과 Diffie-Hellman 공개키 KEr, 난수 Nr을 Initia- tor에게 전송한다. 이 과정에서 Initiator와 Res- ponder는 서로 난수 Ni, Nr과 Diffie-Hellman 공유 키, PRF(pseudorandom function)을 이용하여, SKEYSEED를 계산한다.
SKEYSEED = prf(Ni|Nr, g^ir)
이후, 세션키는 SKEYSEED를 이용하여 계산한다.
{SK_d|SK_ai|SK_ar|SK_ei|SK_er|SK_pi| SK_pr} = prf+(SKEYSEED, Ni | Nr | SPIi | SPIr)
여기서, prf+ 함수는 다음과 같다.
\(\left. \begin{array} { l } { \operatorname { prf } + ( K , S ) = T 1 | T 2 | T 3 | T 4 } \\ { T 1 = \operatorname { prf } ( k , s | 0 x 01 ) } \\ { T 2 = \operatorname { prf } ( k , T 1 | s | 0 x 02 ) } \\ { T 3 = \operatorname { prf } ( k , T 2 | s | 0 \times 03 ) } \\ { T 4 = \operatorname { prf } ( k , T 3 | s | 0 x 04 ) } \end{array} \right. \\ \dots\)
총 7개의 세션키가 생성되며, 이 중 SK_d는 인증 페이로드(AUTH payload)와 CHILD SA 생성에 필요하며, SK_ei, SK_er은 데이터 암호화에 사용된다. SK_ai, SK_ar은 암호화된 데이터 인증에 필요하며, SK_pi, SK_pr은 인증 페이로드 생성에 사용된다.
2.2 IKE_SA_AUTH
IKE_AUTH 교환 과정에서는 사용자 상호 인증과 CHILD SA를 결정한다. 사용자 상호 인증은 사전 공유키(PSK) 또는 디지털 서명 방식으로 이루어진다. 본 논문에서는 사전 공유키 방식의 상호 인증에 기반하여 설명한다. 인증 페이로드 계산을 위해서는 IKE_SA_INIT 교환 과정에서 각각 송신한 INE_SA_INIT 메시지와 난수, 세션키, 사전 공유키 등이 필요하며, AUTH 계산 방식은 아래와 같다.
octet = IKE_SA_INIT|Nonce|prf(SK_p, Id) AUTH = prf(prf(PSK, “Key Pad for IKEv2”), octet)
따라서, Initiator의 AUTHi는
octeti =①IKE_SA_INIT|Nr|prf(sk_pi,Idi) AUTHi = prf(prf(PSK, “Key Pad for IKEv2”), octet_i)
이며, Responder의 AUTH_r은
octetr =②IKE_SA_INIT|N_i|prf(sk_pr,Idr) AUTHr = prf(prf(PSK, “Key Pad for IKEv2”), octetr)
이렇게 계산된 결과는 IKE_AUTH 메시지의 AUTH payload로 전송된다.
IKE_AUTH 메시지는 IKE_SA_INIT 교환 과정에서 결정된 암호 알고리즘과 세션키로 암호화되며, 메시지 무결성과 인증을 위한 MAC Tag도 함께 생성된다.
III. IKE v2 분석
본 절에서는 대표적인 네트워크 패킷 분석 도구인Wireshark에서 IKE v2를 분석하는 방법에 대해상세히 설명한다. 이를 위해 우선 실험 환경 구성하고 세부 분석 과정을 설명한다. 이후 Wireshark이 가지는 한계점에 대해 분석한다.
3.1 실험 환경 구성
IKE v2 분석을 위한 실험 환경은 Fig.2와 같이 Windows 10 호스트 PC 상에 VMware 15 pro 를 이용하여 가상환경을 구성하여 Ubuntu 20.04 운영체제와 오픈소스 IPsec VPN 솔루션 StrongSwan 5.8.2를 설치하였다. 네트워크는 VMware에서 제공하는 가상 네트워크(VMnet)로 구성하였으며, 상세 내용은 다음과 같다. VM1과VM2는 VMnet1에 서로 연결하고, VM1의 내부네트워크는 VMnet11, VM2의 내부 네트워크는 VMnet10에 각각 연결하였다. VMnet의 경우 네트워크 허브와 같이 동작하기에 Wireshark는 호스트PC에 설치하였다. 가상환경이 아닌 실제 IPsec VPN 시스템 사이에 Wireshark를 설치할 경우 스위치의 포트 미러링 기능 또는 전용 네트워크 탭 장비를 이용하여 연결해야 한다.
Fig. 2. IKE v2 Experimental environment
Fig. 3. Configuration of StrongSwan IPsec VPN
Fig. 4. IKE v2 message exchange for tunnel in Wireshark
StrongSwan은 Site-to-Site 방식으로 설정하였으며, 상세 설정은 Fig.3과 같다. 인증은 사전 공유키(authby=secret) 방식이며, IKE 버전은 IKE v2(keyexchange=ikev2)로 설정하였다.
IPsec VPN 터널을 생성하고 이를 호스트 PC에 설치한 Wireshark로 그 과정을 확인하면 Fig.4와 같으며, IKE_SA_INIT과 IKE_AUTH 교환 과정을 통해 터널이 생성되었음을 확인할 수 있다. 이 때, VM1은 Initiator로, VM2는 Responder로 동작하였다.
3.2 Wireshark를 이용한 분석
Wireshark는 Tcpdump[15]와 함께 대표적인 네트워크 분석도구이며, 네트워크 문제 분석, 소프트웨어 및 통신 프로토콜 개발 및 교육 등에 널리 활용되고 있다. Wireshark는 IKE v2 뿐만 아니라 TCP/UDP, SMTP, SIP 등 다양한 통신 프로토콜 분석을 지원한다.
IKE_SA_INIT 메시지는 Fig.5와 같이 IKE 헤더, SA, KE, Nonce 등으로 구성된다.
IKE_SA_INIT 교환 과정을 거친 후 Initiator 와 Responder는 암호 알고리즘을 결정하고, Diffie-Hellman 키 정보를 이용하여 세션키를 생성한다. 이후 교환되는 IKE_AUTH 메시지를Wireshark에서 확인하면 Fig.6과 같이 IKE 헤더이후 페이로드는 암호화되어 세부 정보를 확인할 수 없다. 이뿐만 아니라 이후 송수신되는 CREATE_ CHILD_SA, INFORMATIONAL 메시지 또한 암호화되어 Wireshark로는 그 내용을 확인할 수 없다. 하지만, Wireshark는 IKE_AUTH와 같이 암호화된 IKE v2 메시지를 분석할 수 있는 기능을 제공한다. 이를 위해서는 IKE 헤더의 SPI, 결정된 암호 및 무결성 알고리즘, 세션키(SK_er, SK_er, SK_ai, SK_ar)를 알아야 한다. SPI와 암호 및 무결성 알고리즘은 IKE_SA_INIT 교환 과정을 확인하여 알 수 있으나, 세션키 정보는 쉽게 확인할 수 없다. 세션키는 IKE v2의 기밀성과 무결성을 보장하기 위한 가장 중요한 정보이기에 안전하게 관리되기 때문이다.
Fig. 5. IKE_SA_INIT exchange message
Fig. 6. IKE_AUTH exchange message
StrongSwan의 경우 시스템 관리자 권한으로 로그 레벨을 상향 조정하여야 세션키 정보를 확인할 수 있다. Fig.7은 StrongSwan의 로그 레벨을 상향조정 후 IPsec VPN 터널 생성 과정에서 획득한 세션키 정보이다. Ubuntu 20.04는 기본적으로 AppArmor 기능이 활성화되어 로그 파일 생성이 차단된다. 따라서 로그 파일 생성을 위해서는 AppArmor 기능을 비활성화해야 한다.
Wireshark에서 IKE v2에서 암호화된 메시지를 분석하기 위해서 Edit → Preferences → Protocol → ISAKMP(IKEv2) 순으로 메뉴를 선택하고, Initiator’s SPI, Responder’s SPI, SK_ei, SK_er, Encrypt algorithm, SK_ai, SK_ar, Integrity algorithm을 차례로 입력해야 한다.
Fig. 7. Log for session key in StrongSwan
3.3 Wireshark를 이용한 분석 결과
Wireshark에서 분석한 IKE_AUTH 메시지는Fig.8과 같으며, Fig.6에서 Ecrypted Data 부분이 복호화되어 각각의 페이로드를 확인할 수 있다. 또한, 암호화된 메시지에 대한 무결성을 위한 Integrity Checksum Data도 확인할 수 있다.
Fig. 8. The result of decrypted IKE_AUTH by Wireshark
Wireshark에서 IKE_ATUH 메시지를 분석한 결과 Initiator와 Responder ID, 사용자 인증을 위한 Authentication, CHILD SA, Traffic Selector 등으로 구성되어 있음을 확인하였다.
3.4 Wireshark 한계점
Wireshark에서 암호화된 IKE v2 패킷 분석이 가능하였다. 하지만 이러한 과정에서 몇가지 한계점을 확인하였다.
Wireshak는 IKE v2 분석을 위해 세션키 정보가 반드시 필요하다. 하지만 세션키는 시스템의 기밀성과 무결성 보장을 위해 안전하게 보호되어야 할 자산이기 때문에 시스템 관리자 이외에는 접근이 불가하며, 특히 하드웨어 장비의 경우 접근이 불가능할 수도 있다.
만약, 세션키를 시스템으로부터 획득할 수 있더라도 분석을 위해서는 매 세션마다 세션키를 수동으로 입력해 주어야 한다. 또한 Wireshark을 이용하기 위해서는 스위치의 포트 미러링 기능 또는 전용 네트워크 탭 장비를 사용해야 하며, 이 경우에도 네트워크 패킷 모니터링 기능만 제공한다.
IV. MITM 방식을 이용한 실시간 분석 기술
본 장에서는 IKE v2 분석에 있어 Wireshark가 가지는 한계점을 해결할 수 있는 새로운 분석 기술에 대해 제안한다.
4.1 제안하는 분석 기법(NIKEv2 AR:New IKEv2 Analyzer for Realtime) 개요
Wireshark 한계점을 해결하기 위해서는 다음과 같은 3가지 조건을 만족해야 한다.
1. IPsec VPN 시스템으로부터 세션키 획득을 하지 않아야 한다.
2. 매 세션마다 세션키를 자동 갱신할 수 있어야한다.
3. 모니터링 기능 뿐만 아니라 캡쳐된 패킷을 동적 테스팅에도 활용 가능해야 한다.
기존 네트워크 스위치 및 전용 탭 장치 대신 제안하는 기술은 IPsec VPN 시스템 사이에서 네트워크패킷 포워딩 기능을 활용한다. 이를 위해 물리적 네트워크 카드를 2개 사용하며, 각각 IPsec VPN 시스템과 연결한다. 네트워크 패킷 포워딩 이용하여 Initiator에서 수신한 패킷은 Responder로, 반대로 Responder에서 수신한 패킷은 Initiator로 전송한다. 이를 기반으로 MITM 방식으로 Initiator 에게는 Responder로, Responder에게는 Initiator로 동작하여 세션키를 생성한다. 이러하기에 제안하는 분석 기법은 매 세션마다 세션키를 시스템으로부터 획득할 필요가 없다.
하지만 제안하는 기법은 상호 인증을 위해I nitiator와 Responder의 ID, 사전 공유키를 알고 있어야 한다. 사전 공유키는 시스템 관리자 권한으로만 접근이 가능하나, 분석을 위해 단 한번만 확인하면 되기에 매 세션마다 확인이 필요한 Wire- shark보다 효율적이다.
4.2 패킷 포워딩
패킷 포워딩은 들어온 패킷의 헤더 정보를 이용하여 최종 목적지 네트워크를 향해 패킷을 내보내 주는일련의 단계를 말한다. 본 논문에서는 맥주소 기반의 패킷 포워딩 기능을 이용한다. 즉, IPsec VPN 시스템 사이에서 Initiator로부터 수신한 네트워크 패킷은 Responder로 전달하고, Responder로부터수신한 네트워크 패킷은 Initiator로 전달한다. 이를 위해서는 두 가지 방법이 있다. 첫 번째는 IPsec VPN들 사이에 물리적으로 직결하는 방법이고, 이 경우에는 이더넷 어댑터 1에서 수신한 패킷을 어댑터 2로 단순 전달만 하면 된다. 두 번째는 Fig.9와 같이 IPsec VPN 시스템의 외부 네트워크에서 게이트웨이로 동작하는 방식이다. 이 경우, Initiator에서 수신한 네트워크 패킷의 수신 맥주소가 어댑터1 이고 송신 맥주소가 Initiator이기에 수신 맥주소는 Responder로, 송신 맥주소는 어댑터2로 각각 변경하고 어댑터2를 이용해 Responder로 전송해야 한 다. Responder에서 수신한 패킷 또한 동일한 방법으로 맥주소를 변경하여 Initiator로 전달한다.
Fig. 9. Packet forwarding in Proposed method
제안하는 분석 기법은 네트워크 패킷 포워딩 기능을 이용하기에 IKE v2 패킷에 대한 실시간 변조 뿐만 아니라 드롭, 재전송을 가능하게 한다. Y. Cui 등은 [4]에서 IPSec 시스템인 ASA에 대해 IKEv2 패킷 변조를 통한 퍼징을 수행하였다. 제안하는 분석기법 또한 IKEv2 패킷의 페이로드와 필드를 변조할 수 있으며, 패킷 재전송 및 순서 변경 등의 기능을 제공하기에 IPsec VPN 시스템에 대한 퍼징과 같은 테스팅에 활용할 수 있다.
4.3 IKE_SA_INIT 교환 과정
Initiator는 IKE SA를 위해 IKE_SA_INIT 메시지를 Responder에게 전달한다. IKE_SA_INIT 메시지는 암호 알고리즘 등을 포함하는 SA(security association)와 세션키 공유를 위한 KE(key exchange), Nonce 등으로 구성된다.
제안하는 분석 기법(NIKEv2 AR)은 Initiator 와 Responder 사이에서 네트워크 패킷 포워딩 기능을 기반으로 Fig.10과 같은 과정을 수행한다.
Fig. 10. Proposed method(NIKEv2 AR)
① Initiator로부터 IKE_SA_INIT을 수신하면 NIKEv2 AR은 KE를 생성한다. ② 수신한 IKE_SA_INIT 메시지의 KE 페이로드를 생성한KE로 변경하여 Responder에게 전송한다. ③ Responder로부터 IKE_SA_INIT을 수신하면 ① 과 같은 방식으로 KE를 생성하고, ④ 수신한 IKE_SA_INIT 메시지의 KE 페이로드를 생성한 KE로 변경하여 Initiator에게 전송한다.
IKE_SA_INIT 단계를 마치면 제안하는 분석 기법(NIKEv2 AR)은 각각 Initiator, Responder 와 세션키를 공유한다.
4.4 IKE_AUTH 교환 과정
Initiator와 Responder는 IKE_SA_INIT 교환 이후 각각 세션키를 생성한다. 이후 Initiator는 공유한 세션키 정보와 자신의 ID를 이용하여 인증값을 계산하고 이를 인증 페이로드(AUTH payload)로 전송한다.
IKE_AUTH 메시지는 IKE 헤더, 세션키(SK_e, SK_a)로 암호화된 페이로드와 암호화된 메시지에 대한 무결성 코드로 구성된다. 제안하는 분석 기법 (NIKEv2 AR)은 Fig.10과 같이 ⑤ Initiator로부터 IKE_AUTH 메시지를 수신하면 다음과 같은 과정을 수행한다. a. 수신한 IKE_AUTH 메시지에 대한 무결성 코드를 계산하고 수신한 값과 비교하여 무결성 여부를 확인한다. b. 세션키를 이용하여 암호화된 페이로드를 복호화하고 수신한 인증 페이로드를 자신이 계산한 인증 페이로드로 교체한다. c. Responder와 공유한 세션키로 페이로드를 암호화한다. d. 암호화된 메시지에 대한 무결성 코드를 계산하여 메시지 마지막에 추가한다. 이러한 과정을 거친 후 ⑥ Responder로 메시지를 전송한다.
Responder로부터 IKE_AUTH 메시지를 수신하면 위와 동일한 과정을 거친 후 Initiator에게 메시지를 전송한다.
4.5 구현 및 실험 결과
본 논문에서 제안하는 분석 기법에 대한 실험 환경은 Fig.11과 같다. Initiator와 Responder를서로 다른 로컬 네트워크로 연결하고, 호스트 PC를 게이트웨이로 설정한다. 그 밖의 설정은 기존 Wireshark 분석 환경과 동일하다.
Fig. 11. Experimental environment for NIKEv2 AR
제안하는 분석 기법은 python 3.9 기반으로scapy[12]와 pycryptodome[16] 모듈을 활용하여 구현하였다. 키교환은 Diffie-Hellman Group 중 modp 1024, 암호 알고리즘은 AES256 CBC, 무결성 알고리즘은 SHA256기반 HMAC을 각각 사용하였다.
이 외의 암호학적 알고리즘에 대해서도 IKE SA 결정을 위한 IKE_SA_INIT 또는 CREATE_ CHILD_SA 메시지의 SA 페이로드를 확인하여 적용할 수 있다.
제안하는 분석 기법(NIKEv2 AR)은 Intiator와 Responder에게 송수신하는 모든 패킷들을 실시간으로 저장할 수 있으며, 이를 확인하면 Fig.12와 같다.
①번 과정에서 NIKEv2 AR은 Initiator로부터 IKE_SA_INIT을 수신하면, Fig. 13과 같이 KE를새로 생성하고, 이를 Responder에게 전달한다.
②번 과정도 ①번과 같은 방식으로 Responder로부터 수신한 IKE_SA_INIT 메시지를 Initiator에게 전달한다.
③번 과정에서 NIKEv2 AR는 Initiator로부터 IKE_AUTH를 수신하면 Fig.14과 같이 이를 복호화하고 AUTH payload를 Fig.15와 같이 변경한 후 암호화하여 Responder에게 전송한다.
④번 과정도 ③번과 같은 방식으로 Responder로부터 수신한 IKE_AUTH 메시지를 Initiator에게 전달한다.
Fig. 12. Saved packet in Proposed method
Fig. 13. Generate KE and replace IKE_SA_INIT
Fig. 14. Decrypted payload of received IKE_AUTH from Initiator
실험 결과를 통해 Initiator와 Responder ID 와 인증을 위한 사전 공유키만 알고 있다면 제안하는분석 기법(NIKEv2 AR)은 시스템으로부터 세션키 획득 없이도 IKE v2를 실시간 분석할 수 있다.
4.6 고찰
실험 결과를 통해 제안하는 분석 기법은 IKE v2 프로토콜의 모든 패킷에 대해 실시간으로 분석하고, Wireshark이 가지는 한계점을 극복함을 보였다. Wireshark의 한계점에 대해 정리하면, ① 매 세션마다 관리자 권한으로 세션키를 확보해야 하며, ② IKE v2 프로토콜에 대해 실시간 분석이 어렵다. 또한 ③ 패킷 캡쳐를 위해 네트워크 스위치 미러링 기능 또는 전용 탭 장비가 필요하다. 이에 비해 제안하는 분석 기법은 사전 공유키 획득을 위해 단 1회만 관리자 권한이 필요하며, IKE v2 프로토콜 실시간 분석이 가능하다. 또한 IPsec 시스템 사이에 직접 연결이 가능하여 추가적인 네트워크 장치가 필요하지 않을 뿐만 아니라 IPsec 시스템 간 송수신되는 네트워크 패킷을 드롭, 재전송, 변조할 수 있어 IPsec 시스템 테스팅에 활용할 수 있다.
Fig. 15. Replacement AUTH payload and encryption of IKE_AUTH payload
본 논문에서 네트워크 포워딩 환경에서 MITM을 이용하여 분석 기법을 적용하였다. 이러한 방식은 IKE v2 이외에도 다양한 보안 프로토콜에도 적용할 수 있을 것이다.
V. 결론
IKEv2 프로토콜은 IPsec VPN을 위한 키 관리 프로토콜이다. IKEv2 프로토콜은 IKE_SA_INIT, IKE_AUTH, CREATE_CHILD_SA, INFOR- MATIONAL로 구성된다. IKE_SA_INIT 교환 과정에서는 IKE SA를 위한 정보가 교환되고, 이를 통해 세션키가 생성된다. 세션키 생성 이후에는 모든 메시지들이 암호화되어 전송되기 때문에 각 메시지의 payload를 확인하기는 힘들다.
Wireshark는 IKEv2 프로토콜 뿐만 아니라 SIP, SMTP 등 다양한 네트워크 프로토콜 분석에 활용된다. Wireshark를 이용해 IKEv2 프로토콜을 분석하기 위해서는 Initiator와 Responder의 ID, IKE_SA_INIT 교환 과정에서 생성된 세션키 SK_ei, SK_er, SK_ai, SK_ar와 암호 및 무결성 알고리즘을 알아야 한다. Initiator와 Responder ID, 암호 알고리즘은 IKE_SA_INIT 메시지를 통해확인할 수 있으나, 세션키 정보는 IPsec VPN 시스템 관리자 권한이 필요하며, 특정 시스템에서는 세션키 획득이 불가능할 수 있다. 세션키는 매 세션마다 확인하고 매번 Wireshark에 수동으로 입력해야 한다. 또한 Wireshark을 이용하기 위해서는 네트워크 스위치의 포트 미러링 기능 또는 전용 탭 장치가 필요하며, 이 경우에도 단순 모니터링만 가능하다.
본 논문에서 제안하는 분석 기법(NIKEv2 AR: New IKEv2 Analyzer for Realtime)은Initiator와 Responder의 사이에서 MITM 방식을 이용한다. 이를 통해 패킷 모니터링 기능만 제공하는 Wireshark과 달리 패킷을 실시간 조작 가능하여 퍼징 등 동적 분석에 활용할 수 있다. 네트워크패킷 포워딩 기능을 기반으로 제안하는 분석 기법은 Initiator에게는 Responder로, Responder에게는 Initiator로 동작하여 세션키 생성 단계부터 IKE v2 모든 메시지를 실시간 분석할 수 있다. 뿐만 아니라 다양한 보안 프로토콜 분석에도 활용할 수있을 것으로 기대된다.
References
- RFC 7296: Internet Key Exchange Protocol Version 2 (IKEv2), Internet Engineering Task Force (IETF)
- RFC 7815: Minimal Internet Key Exchange Version 2 (IKEv2) Initiator Implementation, Internet Engineering Task Force (IETF)
- Sawalmeh, H., Malayshi, M., Ahmad, S., Awad, A., "VPN Remote Access OSPF-based VPN Security Vulner-abilities and Counter Measurements," In 2021 International Conference on Innovation and Intelligence for Infor matics, Computing and Technologies (3ICT) pp. 236-241. Sep. 2021
- Y. Cui, T. Yu and J. Hu, "IKEv2 Protocol Fuzzing Test on Simulated ASA," IEEE International Conference on Smart Internet of Things, pp. 111-116, Aug. 2018
- Tian, Kai, et al. "Analysis of Vulnerability of IPsec Protocol Implementation Based on Differential Fuzzing," International Conference on Security and Privacy in New Computing Environments, pp.282-293, Dec. 2021
- T. Ninet, A. Legay, R. Maillard, L. -M. Traonouez and O. Zendra, "The Deviation Attack: A Novel Denial-of-Service Attack Against IKEv2," 18th IEEE International Conference On Trust, Security And Privacy In Computing And Communications/13th IEEE International Conference On Big Data Science And Engineering (TrustCom/BigDataSE), pp. 66-74, Aug. 2019
- Jiaxing Guo, Chunxiang Gu, Xi Chen, Siqi Lu, Fushan Wei, "Automated State-Machine-Based Analysis of Hostname Verification in IPsec Implementations," Information Techno logy and Control vol 50(3), pp. 570-587, Sep. 2021 https://doi.org/10.5755/j01.itc.50.3.27844
- D. Felsch, M. Grothe, J. Schwenk, A. Czubak, and M. Szymanek, "The dangers of key reuse: Practical attacks on IPsec IKE," Proceedings of the 27th USENIX Security Symposium, pp. 567-583, Aug. 2018
- Streun, F., Wanner, J., & Perrig, A., "Evaluating Susceptibility of VPN Implementations to DoS Attacks Using Adversarial Testing," In Network and Distributed System Security Symposium (NDSS), Apr. 2022
- B. Pranggono, A. Arabo, "COVID-19 pandemic cybersecurity issues," Internet Technology Letters, 4(2), e247, 2021
- Favale, T., Soro, F., Trevisan, M., Drago, I., Mellia, M., "Campus traffic and e-Learning during COVID-19 pandemic," Computer networks, vol. 176, July, 2020
- Scapy, "scapy" https://scapy.net, May 22, 2022
- Wireshark, "wireshark" https://www.wireshark.org, May 22, 2022
- StrongSwan, "strongswan" https://strongswan.org, May 22, 2022
- Tcpdump, "tcpdump website" https://www.tcpdump.org, May 22, 2022
- PyCryptodome, "PyCryptodome's documentation" https://pycryptodome.readthedocs.io/en/latest/index.html, May 22, 2022
- Cisco ASA Software, "cisco asa software" https://www.cisco.com/c/en/us/products/security/adaptive-security-appliance-asa-software/index.html, May 22, 2022