엔씨소프트가 게임 작업장 잡아내는 방법
다중접속역할수행게임(MMORPG) 속에선 사용자들간 게임 아이템 현금거래가 활발한 편이다. 게임 시장이 커지면서 이 게임 재화를 전문적으로 파는 집단인 일명 ‘작업장’이 생겨났다. 다수 캐릭터를 만들어 게임 아이템과 재화를 현금화하는 전문적인 집단을 말한다. 게임사들은 작업장을 잡아내기 위한 기술적인 조치를 취하고 있다.
서상덕 엔씨소프트 연구원은 16일 온라인으로 진행된 ‘제26회 정보통신망 정보보호 컨퍼런스(NetSec-KR) 2020’에서 머신러닝 기반의 게임봇 탐지 방법을 공유했다.
일반적으로 작업장은 공통된 특징 몇 가지를 보인다. 캐릭터 이름이 이상하거나(예:혫읻튥켃햫) 외형이 비슷하다. 다만 외적인 정보만으로 판단하게 되면, 일반 사용자가 작업장으로 검출될 수 있어 섣불리 판단할 수 없다. 따라서 다양한 측면에서 작업장과 일반 사용자를 구별해야 한다.
일반 사용자는 게임 속 다양한 콘텐츠를 즐기며 획득한 재화를 캐릭터 성장을 위해 쓴다. 반면 작업장 캐릭터는 재화 획득이 쉬운 작업을 반복하고, 모은 재화를 소수의 캐릭터에 무상으로 제공한다. 현금거래를 하기 위해 다수의 계정에 획득한 재화를 한 곳에 취합하기 위한 목적이다. 엔씨소프트는 이러한 특징을 조합해 작업장 탐지 게임봇을 만드는 데 활용했다.
회사는 게임봇을 만들기 위한 전체 작업 구성도를 만들었다. 첫 단계는 ‘거래 데이터 네트워크’를 구성하는 것이다. 각 캐릭터마다 일주일간 수행한 거래 정보를 집계해 네트워크를 만들었다. 자주 사용되는 아이템, 재화를 준 캐릭터와 받은 캐릭터 횟수 등 모든 재화 거래 정보를 활용했다.
이렇게 구성된 거래 네트워크를 작은 단위의 커뮤니티로 분할했다. 클러스터링 알고리즘을 활용해 캐릭터 간 거래 횟수를 가중치로 활용으며, 분리된 커뮤니티가 최대한 밀집하게 연결되도록 그룹화했다. 그룹화한 커뮤니티는 또 다시 유형에 따라 분류된다. 연결된 노드의 수, 그래프 너비, 그래프의 노드 개수 등 추출된 특징을 활용해 9개 유형으로 클러스터링을 진행한다.
회사는 9개 유형 가운데 첫 번째 ‘스타형’인 클러스터를 재화를 한 곳으로 모으는 유형, 즉 작업장으로 추정했다. 그러나 서 연구원은 “재화를 한 곳으로 모은다는 이유만으로 작업장이라 볼 수 없다”며 “거래 정보에 캐릭터의 행동 정보를 추가로 확인해 오탐을 방지했다”고 말했다.
더 정교한 탐지를 위해 회사는 캐릭터 행동 정보를 추가로 집계한 뒤, 입력 데이터로 사용했다. 머신러닝을 통해 작업장 네트워크와 행동 요약정보를 학습시켰다. 그런 다음 시각화와 성능 평가를 진행했다.
회사는 캐릭터의 행동정보를 3차원으로 축소하고 색상으로 표현했다. 일반 사용자와 작업장 거래 네트워크 모두 한곳으로 재화가 합쳐지는 모양을 띄었으나 차이점이 분명했다. 작업장 거래 네트워크는 중심 노드에 재화를 전달하는 주변 노드 색상이 대부분 유사한 것으로 확인됐다.
이때 노드는 행동 정보로, 작업장 네트워크의 노드는 주로 사냥, 채짐, 아이템 획득 활동에 치중됐으며, 중앙에 거래내역이 위주인 것으로 나타났다. 무엇보다 이 네트워크에는 유사 행동 캐릭터가 대부분이었다.
서 연구원은 “실제 데이터를 활용한 테스트로 결과가 좋았다. 앞으로 게임봇을 작업장 탐지에 활용한다면 분석 비용을 줄일 수 있을 것”이라고 전했다.
글. 바이라인네트워크
<홍하나 기자>0626hhn@byline.network
겜회사 돈많이 벌테데 겜도박꾼들 치료프로그램이나 개발해라. 주변에 가정파탄 나는사람들 좀 구제해주고
https://open.kakao.com/o/gmUJfWDc R2M/린M/에오스