게임과 보안 #19 VPN을 통한 우회 접속 이용자 탐지하기

게임 서비스를 운영하다보면, 게임 내에 다양한 부정행위(사기, 게임봇 이용, 대규모 작업장, 부정결제 등)를 저지르는 계정들이 해외에서 접속하는 경우를 많이 발견하게 됩니다.

그래서 게임뿐 아니라 국내의 많은 온라인 서비스들이 특정 국가로부터의 접속을 차단하는 경우가 많은데요. 문제는 이렇게 조치를 취해도, VPN을 통해 마치 국내 IP 주소를 통해 접속하는 것처럼 위장을 하는 경우가 많아진다는 것입니다.

이와 같이 VPN을 통해 우회 접속을 하는 이용자들은 어떻게 구분할 수 있을까요? 이에 대한 방법을 살펴보도록 하겠습니다.


 

# VPN이란?

VPN(Virtual Private Network)이란, 외부에서 접속이 불가능한 내부 네트워크를 원격으로 안전하게 접속하기 위한 방법이다.

예를 들어 보안상 회사 내부에서만 접근할 수 있는 업무용 서버가 있다고 하자. 이 서버는 통상 내부망에서만 쓰는 IP 주소 대역을 쓰고 있기 때문에, 원래대로라면 회사로 출근해야만 이 내부 서버에 접속할 수 있을 것이다.

하지만 해외 출장을 갔을 때 업무를 위해서 이 서버에 꼭 접속을 해야 하는 경우, 인터넷으로 접속했지만 마치 사내 네트워크의 연장선 상에 있는 것처럼 접속하려 할 때 VPN이 필요하다.

이런 VPN 기술은 다양한 서비스로 확대되어 특정 국가 대역에서 로그인하는 것처럼 우회 접속을 가능하게 해주기도 한다. 현재는 무료로 운영되는 VPN 서비스도 다수 있고, 웹브라우저의 플러그인 형태로 편리하게 제공되기도 한다.

 

# VPN 서비스의 악용 사례

VPN 접속을 자신의 IP 주소를 숨기려는 의도로 사용하려는 사용자가 상당수에 달한다. 이와 비슷한 방법으로 TOR, 웹 프록시를 이용하여 인터넷 접속을 익명화하는 방법도 있다.

문제는 프라이버시 용도가 아니라 해킹이나 계정 도용, 부정 결제, 게임봇 운용을 위해 원래 접속지의 IP 주소를 숨기려는 용도로 많이 이용되고 있다는 점이다.

온라인 게임 회사들의 입장에서는 이러한 VPN 접속을 탐지할 수 있다면 의심스러운 접속을 파악하는데 상당히 도움이 될 것이다.

Shodan(관련 링크)[1]과 같은 특별한 검색엔진을 이용해 국내에서 운영 중인 VPN용 IP 주소들을 검색하는 방법도 있다. 그러나 우리나라에 존재하는 VPN 서비스들이 모두 조회되는 것도 아니고, 또 조회된 VPN 서비스들이 모두 악성의 목적으로 사용되는 것도 아니기 때문에 이 방법은 그리 좋다고 볼 수 없다.

[그림 1] shodan 검색 엔진에서 VPN의 대표 통신규약인 PPTP로 검색한 결과로, 무려 7만 6천 여 개 검색된다

 

# VPN 이용자들을 탐지하는 방법은?

그간 네트워크 보안 분야에서 다양한 연구들이 있었다. 그 중 재미있는 방법 중 하나는 접속지로 보여지는 IP 주소와의 응답시간을 측정하고, 이 접속자와의 실제 응답시간과의 차이를 구하는 것이다.

예를 들어서 143.248.1.10번 IP 주소에서 접속한 것으로 나오는 이용자가 있다고 하자. 143.248.1.10번은 대전에 위치한 IP 주소이고 대략 저 네트워크 대역과의 응답시간은 0.3ms 가 걸린다.

이 이용자는 143.248.1.10번에서 접속했다고 나오나, 게임 클라이언트와 서버 간의 응답시간이1.2ms로 훨씬 길게 나타날 경우 최소한 143.248.1.10번이 아닌 곳에서 최소한 몇 단계 이상의 라우터를 경유한 것으로 추정할 수 있다.

그리고 삼각측량을 하듯이 여러 국가와 지역에 미리 준비한 서버들을 통해서, 클라이언트로의 네트워크 응답속도를 구하여 접속자의 위치를 대략적으로 추정하는 방법도 있다.

하지만 이런 방법들은 접속자가 VPN을 타고 들어온 점은 추정할 수 있지만, 해당 IP 주소에서 들어온 유저들이 작업장이나 의심스러운 유저라고 판단하기엔 다소 무리가 있다. 때문에 추가적인 정보를 가공하여 작업장들의 접속 패턴을 분류해낼 수 있다.

인터넷은 출발지 IP 주소에서 특정 IP 주소지까지 경유하는 경유지들(대개는 라우터나 스위치 같은 네트워크 장비)의 IP 주소를 알아낼 수 있도록 ICMP 라는 통신규약을 정의하고 있다.

예를 들어 윈도우에서는 tracert라는 명령을, 유닉스에서는 traceroute라는 명령을 통해 특정 IP 주소까지 가는데 경유하는 곳들의 IP 주소들을 확인할 수 있다.

[그림 2] traceroute 명령을 통해 www.yahoo.com까지의 접속 경유지를 파악한 사례

 

[그림 2]에서 보는 것처럼, 한 경로에서 다음 경로까지를 1 hop이라고 부른다.

일단 첫 번째 hop 에서는 집의 유무선 공유기까지의 hop이므로 대개 192.168.*.1 또는 10.*.*.1 까지의 거리로 잡히게 된다. 192.168.*.* 와 같은 IP 주소 대역은 보통 “사설IP” 주소 대역으로 불린다.

[그림 2]에서는 서울의 모처에서 www.yahoo.com까지의 경로를 조회한 것인데, 각 경로별로 나타난 IP 주소가 어느 국가에 속하는지를 살펴보면 아래와 같은 결과를 알 수 있다.

한국 내 IP 대역들과 대만 IP 대역들을 지나 홍콩에 있는 yahoo 서버로 접속하는 패턴을 알 수 있다. 이 접속 패턴은 인터넷의 특성상 언제 접속했느냐에 따라 라우팅 경로가 동적으로 바뀔 수 있다.

하지만 동시간대에 비슷한 출발 지점에서 네트워크 접속을 할 경우에는 거의 대부분 동일한 네트워크 경로를 타고 접속하게 되어 있다.

그렇다면 이러한 특징을 이용해서 마치 고구마 줄기 캐내듯이 작업장에서 접속한 계정들을 줄줄이 잡아낼 수 있을까? 이와 관련된 연구 결과를 소개하고자 한다. [2]

– 만약에 작업장에서 대규모 관리하는 것으로 보이는 계정들이, 동시에 같은 네트워크 접속 경로로 같은 출발지에서 대규모로 접속했다면 작업장으로 의심해도 되지 않을까? (계정들의 이름이 관리편의를 위해 일련번호를 붙인 듯한 경우 – 예: xiaopai001, xiaopai002, xiaopai003, …xiaopai020)

– 아래 [그림 3]을 기준으로 설명하자면, 게임 서버에서 볼 때 접속자는 Hop4(한국)에서 접속한 것으로 보이지만, 게임 클라이언트에 할당된 IP 주소와 지역은 다른 국가에서 출발하여 접속한 것으로 나온다면 수상한 접속으로 볼 수 있지 않을까? 예를 들어, 중국 → 중국 → 한국 → 한국 → 한국 → 게임 서버와 같은 접속 경로를 이용한 경우처럼 말이다.

[그림 3] tracert를 통해 접속 경유지를 파악한 예

게임 작업장의 집단 접속 패턴을 찾기 위해 게임 접속자의 출발지 주소가 우리나라가 아닌 것으로 추정될 경우, 네트워크 접속 경로 상의 경유지 IP 주소들의 국가 정보를 확인하고, 동일 시간대에 유사한 이름의 계정으로 대규모 접속이 이루어졌는지를 파악한다.

접속 패턴을 잘 묘사할 수 있는 벡터를 ‘년월일시분초, 접속 계정명, 출발지 IP 주소, 해당 시간대의 접속 경유지 국가 정보 패턴’으로 잡고 클러스터링을 해보면 [그림 4]와 같은 결과를 얻을 수 있다.

다른 접속 패턴을 갖는 군집에 비해 붉은색 원의 군집은 다른 접속 패턴과 꽤 동떨어져 있는 점을 볼 수 있다. 즉, 동일 시간대에 유사한 계정명을 대규모로 사용하면서 해외에서 VPN을 이용해 우회 접속한 유저들의 군이 잘 군집화 처리된 것으로 파악된다.

[그림 4] 접속 패턴을 기반으로 클러스터링을 한 예로, 붉은 원 내의 유저들이 작업장 유저

비정상 접속 패턴을 갖는 군집에 속한 이용자들을 일부 발췌하면 [표 1] 과 같다.

[표 1]에는 다 표시하지 않았지만, 접속자의 계정명은 예상했던 것처럼 유사 계정명을 갖는 것도 있었고, 그렇지 않은 것도 있었다.

그리고 접속 패턴은 중국(장사 지방) → public VPN 서비스 → 한국(서울) → 한국(서울) → 한국(서울)을 경유해서 들어온, 전형적인 중국 내 작업장 접속 패턴임을 확인할 수 있었다.

[표 1] 작업장들이 VPN을 통하여 우회 접속한 접속 패턴 예시

이런 접속 패턴을 가진 이용자들 중에서, 게임봇 이용자로 적발되었던 계정 또는 작업장으로 판정된 계정과 거래했거나 플레이한 기록이 있는 이용자들이 있는지를 교차검증하여 정확도를 높여갈 수 있다.

방식은 약간 다르지만 이와 같이 접속지 IP 주소와 현재 이용자의 IP 주소가 다른지 판단하는 기법은 인터넷 뱅킹에서 계좌 도용을 찾는 데에도 쓰이고 있다.

많은 인터넷 뱅킹 서비스에 PC로 접속할 때 설치하는 보안 프로그램 중에서 ‘IP inside Agent’라는 프로그램을 본 적이 있을 것이다.

인터넷 뱅킹과 같이 보안이 중요한 금융서비스의 경우에는 이런 별도의 프로그램을 설치하여 접속자의 local IP 주소 및 MAC address, HDD serial 정보를 추출하여 접속자의 기기를 식별하고 내부에 할당된 IP 주소들을 파악하고 있다. [3]

과거 접속했던 IP 주소들과 확연히 다르거나, 현재 해외 IP 주소에서 접속한 것으로 보여지는데 해외출입국 내역이 없는 경우(즉, 해외로 출국하지 않은 인터넷 뱅킹 고객이 해외에서 접속을 하면 계정 도용을 당했을 확률이 무척 높으므로) 접속을 차단하는 용도로 사용된다.

 

# 맺으며

VPN은 원래 안전한 방식으로 회사 외부에서 회사 내부의 서버에 접속하는 용도로 쓰이다가 지금은 우회 접속을 하는 용도로 더 널리 쓰이게 되었다. 하지만 부정 접속을 은폐하거나 해외 공격자들이 자신의 IP 주소를 숨기고 해킹을 하는 용도로 쓰이는 등 그 부작용도 늘고 있다.

굳이 작업장 탐지의 목적이 아니더라도 한 번 계정 도용이 발생하면 게임 계정 안의 소중한 아이템과 게임 머니를 잃어버리게 되므로, VPN을 이용한 비정상적인 부정 접속을 보다 적극적으로 탐지하고 차단하는 방법과 기술을 익히는 것이 중요하다.

 

참고 문헌

[1] Shodan, https://www.shodan.io

[2] 서동남, 우지영, 우경문, 김종권, 김휘강. “연결패턴 정보 분석을 통한 온라인 게임 내 불량사용자 그룹 탐지에 관한 연구.” 정보보호학회논문지, 22.3 (2012.6): 585-600.

[3] 설명 출처: https://www.citibank.co.kr/cgrp_pjt/jsp/ko/bfs/swf/01/CusSecnCnts0100.act


김휘강 고려대학교 정보보호대학원 부교수. KAIST 산업경영학과를 마치고 산업공학과에서 석사, 박사학위를 받았으며, 게임봇 탐지 및 작업장 탐지, 계정도용 및 결제부정 탐지와 관련하여 지속적인 연구를 수행 중에 있으며, 고려대학교 해킹대응기술 연구실은 온라인게임보안 분야에서 전세계적으로 가장 많은 연구 성과를 내고 있다.

 

게임과 보안 #1 게임봇의 두 얼굴

게임과 보안 #2 게임봇이 나쁜 이유

게임과 보안 #3 게임봇과 작업장을 바라보는 다양한 시선

게임과 보안 #4 게임봇을 탐지하는 기법

게임과 보안 #5 게임봇과의 채팅엔 뭔가 특별한게 있다

게임과 보안 #6 찾아라! 게임봇의 행동 패턴

게임과 보안 #7 계정 도용을 막는 방법

게임과 보안 #8 시퀀스 분석으로 계정 도용을 막아라

게임과 보안 #9 모티베이션 (동기) 분석을 통한 봇 탐지

게임과 보안 #10 사설 서버

게임과 보안 #11 온라인게임 회사를 노리는 해킹 그룹

게임과 보안 #12 악성 행위의 전파

게임과 보안 #13 쾌적한 게임 공간을 만드는 방법

게임과 보안 #14 사람이 게임봇과 다른 이유 Part 1

게임과 보안 #15 사람이 게임봇과 다른 이유 Part 2

게임과 보안 #16 MMORPG를 통한 사회적/반사회적 행동 관찰 Part 1

게임과 보안 #17 MMORPG를 통한 사회적/반사회적 행동 관찰 Part 2

게임과 보안 #18 통계적 모델을 이용한 봇 유저수 추정