KR20110116562A - 대규모 다중 사용자 온라인 롤플레잉 게임에서 봇을 검출하는 방법 및 시스템 - Google Patents

대규모 다중 사용자 온라인 롤플레잉 게임에서 봇을 검출하는 방법 및 시스템 Download PDF

Info

Publication number
KR20110116562A
KR20110116562A KR1020100036045A KR20100036045A KR20110116562A KR 20110116562 A KR20110116562 A KR 20110116562A KR 1020100036045 A KR1020100036045 A KR 1020100036045A KR 20100036045 A KR20100036045 A KR 20100036045A KR 20110116562 A KR20110116562 A KR 20110116562A
Authority
KR
South Korea
Prior art keywords
threshold
packets
bot
value
user
Prior art date
Application number
KR1020100036045A
Other languages
English (en)
Inventor
김종권
실뱅
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020100036045A priority Critical patent/KR20110116562A/ko
Priority to US12/789,917 priority patent/US8366553B2/en
Publication of KR20110116562A publication Critical patent/KR20110116562A/ko
Priority to US13/733,080 priority patent/US8556727B2/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5586Details of game data or player data management for enforcing rights or rules, e.g. to prevent foul play
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6027Methods for processing data by generating or executing the game program using adaptive systems learning from user actions, e.g. for skill level adjustment

Abstract

본 발명은 대규모 다중 사용자 온라인 롤플레잉 게임(MMORPG: Massive Multiplayer Online Role Playing Game)에서 온라인 및 실시간으로 봇(bot)을 검출하는 방법 및 시스템에 관한 것으로서, 봇과 사람의 클라이언트-서버 통신 패턴을 분석하여 데이터 길이(data length), 패킷간 시간(interarrival time), 데이터 길이 자동 상관(data length autocorrelation)과 같은 파라미터들을 이용하여 봇을 검출한다. 각 파라미터들을 이용한 각각의 테스트를 통합하여 포괄적 결정 방법을 구성함으로써 더욱 정확한 검출 결과를 얻을 수 있으며, 튜링 테스트와 같은 다른 테스트와 결합하여 체계적인 안티봇 방어 시스템을 구축할 수 있다.

Description

대규모 다중 사용자 온라인 롤플레잉 게임에서 봇을 검출하는 방법 및 시스템{Method and system for detecting bot scum in Massive Multiplayer Online Role Playing Game}
본 발명은 대규모 다중 사용자 온라인 롤플레잉 게임(MMORPG: Massive Multiplayer Online Role Playing Game)에서 봇(bot)을 검출하는 방법 및 시스템에 관한 것으로서, 더 구체적으로는 MMORPG에서 온라인 및 실시간으로 봇을 검출할 수 있는 방법 및 시스템에 관한 것이다.
최근 온라인 게임 분야에서 봇(bot)이 점점 더 중요한 문제로 되고 있다. 봇은 사용자 대신 온라인 게임을 플레이할 수 있도록 하는 일종의 프로그램으로서, 봇을 이용하는 사용자에게 부당한 이점을 제공하여 속임수로 간주될 수 있으며, 게임 서버의 입장에서도 바람직하지 않다. 봇의 사용은 게임의 형평성을 잃게 하고 선량한 게임 플레이어들에게는 방해 요소가 된다. 따라서 가입자로 하여금 게임으로부터 이탈하게 하여 게임 사업자의 이익에도 영향을 미치게 된다.
이와 같은 봇에 대응하기 위해서는, 확산을 방지하기 위해 봇의 진화에 신속히 대응해야 함과 동시에, 선량한 사용자에게 속임수의 혐의를 두지 않도록 하는 것이 중요한 문제이다. 안티-봇 방어를 위해서 여러가지 전략들이 제안되어 왔다.
게임 사업자들은 반복된 튜링 테스트(Turing Test)를 많이 이용하고 있는데, 튜링 테스트는 CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)나 사람에 의한 제어를 포함하는 것으로, 매우 정확한 결과를 가져올 수 있다. 그러나 최근에는 튜링 테스트에 응답하기 위하여 실제 사용자를 호출할 수 있는 봇도 출현하고 있는 실정이다.
봇의 사용을 제한하기 위한 소트프웨어를 클라이언트 측에 인스톨하는 방법도 많이 사용되지만 이 역시 잘 설계된 봇의 경우는 의미가 없다.
이와 반대로 학계의 연구는 봇과 인간의 매우 구체적인 행위 특징에 대한 이해에 관심이 있으며, 이러한 과학적 접근은 봇에 대한 자동화된 검출 방법을 산출해내고 있다. 그러나 각각의 연구는 모두 포괄적인 실시간 방어 전략보다는 몇몇의 구체적인 이론적 해석에 집중되어 있으며, 복잡성이나 확장성 등의 문제로 인해 실제 시스템에 대한 적용은 어렵다. 예를 들어, 트래픽 분석 접근 방법은 낮은 시간 복잡도와 좋은 결과를 보여주지만 온라인으로는 실행될 수 없으며, I/O 디바이스 이벤트 시퀀스 분석은 강인한 성능을 보여주지만 실용적이지 못하다.
본 발명은 상기와 같은 종래기술의 문제점을 해결하기 위한 것으로서, MMORPG 시스템에서 온라인으로 봇을 검출할 수 있는 방법을 제공하고자 하는 것이다. 본 발명은 또한 간단한 계산을 통해 봇을 검출할 수 있는 저비용 실시간의 봇 검출 방법을 제공하는 것을 그 목적으로 한다.
이와 같은 과제를 해결하기 위한 본 발명의 MMORPG의 봇 검출 방법은, 임의의 사용자의 연속적인 점핑 윈도우에 대하여 자동 상관(autocorrelation) 값을 계산하는 단계와, 상기 자동 상관 값을 제1 임계치와 비교하여 상기 자동 상관 값이 상기 제1 임계치보다 작을 경우 봇의 투표수를 1씩 증가시키는 단계와, 상기 봇의 투표수가 전체 투표수의 반이 넘을 경우, 상기 사용자가 봇인 것으로 결정하는 단계를 포함하여 이루어진다.
본 발명의 다른 MMORPG의 봇 검출 방법은, 일정한 크기의 윈도우 내에서 임의의 사용자가 전송하는 연속적인 패킷에 대하여 패킷간 시간(interarrival time)이 제1 임계치(itthr1)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와, 상기 패킷간 시간이 제2 임계치(itthr2)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와, 상기 제1 임계치(itthr1)를 넘는 값을 가지는 패킷의 수가 제3 임계치(itrt1)보다 적거나, 상기 제2 임계치(itthr2)를 넘는 값을 가지는 패킷의 수와 상기 제1 임계치(itthr1)를 넘는 값을 가지는 패킷의 수의 비가 제4 임계치(itrt2)보다 큰 경우, 상기 사용자가 봇인 것으로 결정하는 단계를 포함하여 구성된다.
본 발명의 목적은 또한, 일정한 크기의 윈도우 내에서 임의의 사용자가 전송하는 연속적인 패킷에 대하여 데이터 길이(data length)가 제1 임계치(dlthr1)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와, 상기 데이터 길이(data length)가 제2 임계치(dlthr2)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와, 상기 제1 임계치(dlthr1)를 넘는 값을 가지는 패킷의 수가 제3 임계치(dlrt1)보다 적고, 상기 제2 임계치(dlthr2)를 넘는 값을 가지는 패킷의 수가 제4 임계치(dlrt2)보다 적은 경우, 상기 사용자가 봇인 것으로 결정하는 단계를 포함하는 MMORPG의 봇 검출 방법에 의해서도 달성 가능하다.
본 발명의 목적을 달성하기 위한 MMORPG의 봇 검출을 위한 또다른 방법은, (a-1) 임의의 사용자의 연속적인 점핑 윈도우에 대하여 자동 상관(autocorrelation) 값을 계산하는 단계와, (a-2) 상기 자동 상관 값을 제1 임계치와 비교하여 상기 자동 상관 값이 상기 제1 임계치보다 작을 경우 봇의 투표수를 1씩 증가시키는 단계와, (a-3) 상기 봇의 투표수가 전체 투표수의 반이 넘을 경우, 상기 사용자가 봇인 것으로 결정하는 단계와, (b-1) 상기 봇의 투표수가 전체 투표수의 반이 넘지 않을 경우, 일정한 제1 크기의 윈도우 내에서 상기 사용자가 전송하는 연속적인 패킷에 대하여 패킷간 시간(interarrival time)이 제2 임계치(itthr1)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와, (b-2) 상기 패킷간 시간이 제3 임계치(itthr2)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와, (b-3) 상기 제2 임계치(itthr1)를 넘는 값을 가지는 패킷의 수가 제4 임계치(itrt1)보다 크고, 상기 제3 임계치(itthr2)를 넘는 값을 가지는 패킷의 수와 상기 제2 임계치(itthr1)를 넘는 값을 가지는 패킷의 수의 비가 제5 임계치(itrt2)보다 작은 경우, 상기 사용자가 사람인 것으로 결정하는 단계와, (c-1) 상기 제2 임계치(itthr1)를 넘는 값을 가지는 패킷의 수가 제4 임계치(itrt1)보다 작거나, 상기 제3 임계치(itthr2)를 넘는 값을 가지는 패킷의 수와 상기 제2 임계치(itthr1)를 넘는 값을 가지는 패킷의 수의 비가 제5 임계치(itrt2)보다 큰 경우, 일정한 제2 크기의 윈도우 내에서 상기 사용자가 전송하는 연속적인 패킷에 대하여 데이터 길이(data length)가 제6 임계치(dlthr1)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와, (c-2) 상기 데이터 길이(data length)가 제7 임계치(dlthr2)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와, (c-3) 상기 제6 임계치(dlthr1)를 넘는 값을 가지는 패킷의 수가 제8 임계치(dlrt1)보다 적고, 상기 제7 임계치(dlthr2)를 넘는 값을 가지는 패킷의 수가 제9 임계치(dlrt2)보다 적은 경우, 상기 사용자가 봇인 것으로 결정하는 단계와, (c-4) 상기 제6 임계치(dlthr1)를 넘는 값을 가지는 패킷의 수가 제8 임계치(dlrt1)보다 크거나, 상기 제7 임계치(dlthr2)를 넘는 값을 가지는 패킷의 수가 제9 임계치(dlrt2)보다 큰 경우, 상기 사용자가 사람인 것으로 결정하는 단계를 포함한다.
본 발명의 목적을 달성하기 위한 MMORPG의 봇 검출 시스템은, 상술한 방법으로 봇을 검출하는 온라인 봇 검출부와, 튜링 테스트를 실시하는 튜링 테스트부와, 상기 튜링 테스트부의 결과와 상기 온라인 검출부의 결과를 통합하는 결과 통합부와, 상기 결과 통합부의 출력을 바탕으로 제재 이벤트를 생성하는 이벤트 생성기를 포함한다.
상기한 바와 같이 본 발명에서는 낮은 시간 및 공간 복잡도를 가지는 트래픽 패턴 분석에 기반한 온라인 봇 검출 방법이 제공되므로, 이를 이용해 그라운드 층 캐릭터 프리-셀렉션(pre-selection)을 수행할 수 있다. 본 발명의 실시예에 따른 봇 검출 방법은 높은 정확도를 가지면서도 적은 양의 계산에 의해 수행될 수 있어 봇의 온라인 실시간 검출이 가능하게 된다. 또한 본 발명의 봇 검출 방법은 다른 테스트 방법과 결합하여 더 큰 안티봇 방어 시스템의 일부가 될 수도 있다.
도 1a와 도 1b는 각각 사람과 봇의 경우에 대하여 한 트레이스 내에서 시간순으로 요청된 패킷의 interarrival time을 보여주는 도면,
도 2a와 도 2b는 각각 사람과 봇의 경우에 대하여 한 트레이스 내에서 시간순으로 요청된 패킷의 data length를 나타내는 도면,
도 3은 다양한 트레이스에 대한 autocorrelation을 나타낸 그래프,
도 4는 자동상관 온라인 계산을 위한 각 윈도우의 배열을 보여주는 도면,
도 5는 패킷간 시간 테스트를 위한 각 윈도우의 배열을 보여주는 도면,
도 6은 본 발명의 실시예에 따른 포괄적인 봇 결정 방법을 나타내는 도면,
도 7은 본 발명의 실시예에 따른 온라인 봇 검출부를 포함하는 체계적인 방어 전략 시스템의 구성을 나타내는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이제 본 발명의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 상세히 설명하기로 한다.
본 발명에 따르면, 봇의 트래픽 패턴에 따른 그라운드 층 캐릭터 프리-셀렉션(pre-selection)에 의한 봇의 실시간 검출 방법이 제공되어, 짧은 트레이스 샘플과 간단한 계산만으로 봇을 검출할 수 있다. 또한 이를 이용한 포괄적인 안티봇(anti-bot) 방어 시스템이 제공된다.
봇과 관련된 분야에서 중요한 것은 봇의 검출뿐 아니라 검출된 봇에 대한 제재 방법이다. 이 중 봇의 검출에 대해서는 다양한 방법이 적용 및 시도되고 있지만, 안티봇 대응책에 대해서는 거의 다루어지지 않고 있다. 임시적이거나 제한적인 금지 조치 등이 사용되고 있지만, 선량한 사용자를 봇으로 매도하게 되는 위험을 피하기 위하여 제재 조치는 최소한으로 이용되고 있다. 따라서 봇 사용자가 별다른 위험이 없이 봇을 사용하도록 하고 있는 실정이다.
따라서 봇에 대한 효과적인 제재를 위해서는 "정확한 후보"의 프리-셀렉션을 위하여 모든 사용자에 대한 치밀한 조사가 선행되어야 한다.
봇과 사람의 클라이언트-서버 통신 패턴을 분석해보면, 봇은 패킷 타이밍과 크기에 대해 사람과 다른 특징적인 패턴을 나타내는 것을 알 수 있다.
이하에서는 패킷간 시간(interarrival time), 데이터 길이(data length), 데이터 길이 자동상관(data length autocorrelation)의 순서로 이와 같은 패턴의 차이를 서술한다.
1. 패킷간 시간(Interarrival times)
각 패킷에 대하여 직전 패킷의 도착 이후에 경과한 시간을 패킷간 시간(interarrival time)이라고 할 수 있다. 도 1a와 도 1b는 한 트레이스 내에서 시간 순으로 요청된 패킷의 interarrival time을 보여주는 것으로, 도 1a는 사람의 경우를, 도 1b는 봇의 경우를 각각 나타낸다. 도 1a 및 도 1b에 나타난 바와 같이, 사람의 경우 임의의 값들의 분포가 나타나지만, 봇의 경우 규칙적이고 빠른 패킷의 도착 패턴 또는 높고 뾰족한 피크와 그에 따른 비활동 구간을 나타낸다. 이러한 비활동 구간은 아마도 경로 탐색이나 캐릭터의 죽음에 의한 것으로 생각되며, 이에 따라 낮은 interarrival time 값을 갖는 경우나 뾰족한 피크를 갖는 경우를 봇 트레이스로 간주할 수 있다.
2. 데이터 길이(Data lengths)
패킷의 데이터 길이(data length)는 대응하는 세그먼트의 페이로드의 크기를 말한다(즉, TSDU(transport service data unit)의 길이). 도 2a와 도 2b는 한 트레이스 내에서 시간 순으로 요청된 패킷의 data length를 나타내는 것으로서, 도 2a는 사람의 경우를, 도 2b는 봇의 경우를 각각 나타낸다. 도 2a와 도 2b에서 알 수 있듯이, 봇은 사람과는 달리 임계치를 넘는 큰 패킷을 거의 보내지 않는다. 따라서 이러한 점이 사람과 봇을 구별하는 테스트의 기준이 될 수 있으며, 후술할 제2 임계치를 기준으로 data length 분포를 더 정확하게 체크함으로써 성능 향상을 꾀할 수 있다.
3. 데이터 길이의 자동 상관(Data length autocorrelation)
주어진 데이터 스트림 내에서 패킷 사이즈는 자동 상관된다. 또한 사람의 행동은 봇에 비해 훨씬 임의적이고 예측 불가능하다고 추정된다. 따라서 데이터 길이의 자동 상관을 사람과 봇을 구별하기 위한 다른 기준으로 사용할 수 있다.
도 3은 다양한 트레이스에 대해 autocorrelation을 나타낸 것이다. 사람의 경우 autocorrelation 함수가 일정한 범위 내에서 유지되는 모습을 보이지만, 봇의 경우 autocorrelation 함수가 진동 형태(oscillating shape)를 나타내었다. 이와 같이 사람과 봇의 자동 상관의 형태에 차이가 있으므로 이를 사람과 봇을 구분하기 위한 수단으로 사용할 수 있다. 또한, 제1 autocorrelation 범위를 좁히면 봇의 data length autocorrelation은 음(negative)이고, 사람의 경우 양(positive)이 되므로 이 점을 구분에 사용할 수 있다.
이하에서는 위에서 설명한 세 가지 변수에 따라 사람과 봇을 구분하기 위해 설계된 테스트에 대해 설명한다.
A. DATA LENGTH AUTOCORRELATION test
자동 상관에 대한 표준 정의를 사용하여 짧은 점핑 윈도우에 대한 동작중(on-the-fly) 계산이 가능하다. 도 4는 각 윈도우의 배열을 보여주고 있으며, 이에 따라 샘플링 시리즈(m1, var1)와 시프트된 대응부(counterpart)(shifted series)(m2, var2)에 대해 자동 상관을 계산하였다. 여기에서 시프트는 1이다. 그러면 autocorrelation은 다음의 [수학식 1]과 같이 주어진다.
Figure pat00001
여기에서 좌표 X, Y에 대해서, m1=mean(X), m2=mean(Y), m11=mean(X2), m22=mean(Y2), m12=mean(XY)이다.
data length autocorrelation test를 의사코드(pseudo code)로 나타내면 다음의 의사코드 1과 같다. 즉, 연속적인 점핑 윈도우에 대하여 autocorrelation 값을 계산하고 이를 결정 임계치와 비교하여 연속적인 결정에 대한 다수결을 실행한다. 이의 입력 파라미터는 샘플링 시리즈의 크기 acn, "투표자"의 수 acv, 및 결정 임계치 acthr이다.
[의사코드 1: DATA LENGTH AUTOCORRELATION]
=============================================================================
vote _ counter , bot _ vote 0
m1, m2, m11, m22, m12 0
value _ counter 0
while new packets arrive do
x waitNewValue () {value stored at packet arrival)
if value _ counter ≥ 1 then
m1 ← m1 + x, m11 ← m11 + x * x,
m12 ← m12 + x * pv
end if
m2 ← m2 + x, m22 ← m22 + x * x,
pv ← x, { storage of shifted value }
value _ counter value _ counter +1
if value counter = acn + 1 then
m2 ←m2 - x, m2 ← m2 - x * x, {correction}
m1 ← m1/n, m2 ← m2/n, m11 ← m11/n,
m22 ← m22/n, m12 ← m12/n,
d sqrt((m11 - (m1)2)(m22 - (m2)2)),
aux ← (m12 - m1m2)/d
if aux < acthr then
bot _ vote bot _ vote + 1
end if
vote _ counter vote _ counter + 1
if vote _ counter = acv then
if bot _ vote > acv /2 then
return BOT
else
return HUMAN
end if
vote _ counter , bot _ vote ← 0
m1, m2, m11, m22, m12 ← 0
value _ counter ← 0
end if
end if
end while
=============================================================================
B. INTERARRIVAL TIME test
패킷간 시간을 이용하는 이 테스트는 이중 테스트이다. 즉, 길이 win인 윈도우 내에서 제1 임계치 itthr1을 넘는 값의 수를 세고, 이 값 중에서 제2 임계치 itthr2를 넘는 값의 비를 계산한다. 도 5에 따르면, 이는 [set2]와 [set3]/[set2]를 구하는 것과 동일하다. 첫번째 테스트는 규칙성을 체크하는 것이고, 두번째 테스트는 피크의 존재를 체크하는 것이다. 다수의 가능성들을 고려한 후에 규칙성 영역(regularity zone) 외의 영역에 매우 높은 값이 집중되어 있는지를 체크하는 것이 가장 효율적인 방법임을 확인하였다. 즉 [set2]가 제1 임계치 itrt1보다 확실히 작다면, 그리고 [set3]/[set2]가 다른 임계치 itrt2보다 확실히 크다면 피크가 존재하는 것이 된다. 이러한 특징이 샘플 윈도우에서 발견된다면 테스트의 결과는 봇으로 나타난다. 이에 대응하는 온라인 알고리즘은 다음의 의사코드 2에 나타난 바와 같다.
[의사코드 2: INTERARRIVAL TIMES]
=============================================================================
index , set2_counter ,, set3_counter ← 0
while new packets arrive do
x waitNewValue() {value stored at packet arrival}
if x > itthr1 then
set2_counter set2_counter + 1
end if
if x > itthr2 then
set3_counter set3_counter + 1
end if
index index + 1
if index = win then
if set2_counter < itrt1 then
return BOT
else
if (set3_counter / set2_counter) > itrt2 then
return BOT
else
return HUMAN
end if
end if
index , set2_counter , set3_counter ← 0
end if
end while
=============================================================================
C. DATA LENGTHS test
이 테스트는 길이 win인 샘플 윈도우의 두 가지 특성을 체크한다. 즉, 임계치 dlthr1을 넘는 값의 수가 특정한 양 dlrt1보다 확실히 적은지(규칙성)와, 다른 임계치 dlthr2를 넘는 값의 수가 다른 양 dlrt2보다 확실히 적은지(짧은 길이)를 체크한다. 샘플 윈도우가 규칙성과 짧은 길이 특성을 모두 나타낸다면 테스트 결과는 봇으로 나타난다. 대응하는 온라인 알고리즘은 다음의 의사코드 3에 나타난 바와 같다.
[의사코드 3: DATA LENGTHS]
=============================================================================
index , set2 _ counter , set3 _ counter ← 0
while new packets arrive do
x ← waitNewValue () {value stored at packet arrival}
if x > dlthr1 then
set2 _ counter set2 _ counter + 1
end if
if x > dlthr2 then
set3 _ counter set3 counter + 1
end if
index index + 1
if index = win then
if set2 _ counter < itrt1 then
if set3 _ counter < itrt2 then
return BOT
else
return HUMAN
end if
else
return HUMAN
end if
index , set2 _ counter , set3 _ counter ← 0
end if
end while
=============================================================================
D. 포괄적 결정 방법(Global decision scheme)
포괄적인 결정 방법에서도 이전에서와 동일한 표시들을 사용한다. 포괄적 결정 방법의 동작은 매우 단순한 바, 각 패킷이 도착하면 모든 테스트의 각각을 업데이트하여 결정을 내리기에 충분한 양의 데이터를 축적한다. 즉 win 만큼의 데이터를 수집한다. 동기화를 위해서 샘플 윈도우의 크기를 제어하는 파라미터는 다음의 [수학식 2]와 같은 조건을 만족해야 한다.
Figure pat00002
이전의 테스트가 모두 결과를 산출하면 포괄적인 방법은 도 6에 나타난 바와 같은 결정 트리를 사용하여 수집된 트레이스를 분류한다. 플레이어가 게임 서버에 연결되어 있는 동안에는 계속해서 실시간 결정이 내려진다. 파라미터는 이전 테스트들에서 사용된 것들뿐만 아니라 샘플 윈도우의 크기인 win이 된다. 대응하는 온라인 알고리즘은 다음의 의사코드 4에 나타난 바와 같다.
[의사코드 4: Global decision scheme]
=============================================================================
index ← 0
DATA _ LENGTHS _ AUTOCORRELATION reset ()
INTERARRIVAL _ TIMES reset ()
DATA _ LENGTHS reset ()
while new packets arrive do
x ← waitNewValue () {value stored at packet arrival}
DATA _ LENGTHS _ AUTOCORRELATION update (x)
INTERARRIVAL _ TIMES update (x)
DATA _ LENGTHS update (x)
index index + 1
if index = win then
if DATA _ LENGTHS _ AUTOCORRELATION = BOT then
return BOT
else
if INTERARRIVAL TIMES = HUMAN
then
return HUMAN
else
return DATA_LENGTHS
end if
end if
index ← 0
DATA _ LENGTHS _ AUTOCORRELATION reset ()
INTERARRIVAL TIMES reset ()
DATA LENGTHS reset ()
end if
end while
=============================================================================
이 방법은 선형의 시간 복잡도와 샘플 윈도우의 크기에 따른 일정한 공간 복잡도를 나타낸다. 의사코드 4에서는 앞서 미리 정의되었던 알고리즘들이 포괄적 결정 방법에 의해 호출된다. reset() 명령은 로컬 변수가 초기 상태로 리셋되는 것을 의미하고(예를 들면 카운터가 0으로 설정되는 것), update(x) 명령은 x 값이 호출한 알고리즘으로 전달되어 그 상태(로컬 변수)를 갱신하는 것을 의미한다. 또한 알고리즘의 이름은 그 출력을 의미한다.
본 발명의 실시예에 따른 봇 검출 방법의 성능을 표준 성능 메트릭을 사용하여 평가하였다. 정확도, 오경보(false alarm) 비율, 검출 시간의 세 가지 항목을 조사하였는데, 여기에서 정확도는 바르게 분류된 트레이스의 비율, 오경보 비율은 봇으로 분류된 것 중 잘못 분류된 트레이스의 비율, 검출 시간은 결과를 산출하기 위해 소용된 트레이스의 길이를 각각 의미한다. 검출 시간은 패킷 도착 속도에 따라 실제 시간으로 변환될 수도 있다.
실험을 거쳐 각각의 개별 테스트와 포괄적 결정 방법을 최적화하였으며, 이에 따라 최종 테스트에서 사용한 파라미터의 값을 다음의 표 1에 나타내었다.
포괄적 결정 방법 자동 상관 패킷간 시간 데이터 길이
변수 변수 변수 변수
win 100 acn
acv
acthr
19
5
-0.15
itthr1
itthr2
itrt1
itrt2
2s
6s
1
0.3
dlthr1
dlthr2
dlrt1
dlrt2
59B
50B
1
7
100 패킷 길이의 트레이스를 이용하여(즉 18s 내지 1min 40s), 본 발명의 실시예에서는 86.06%의 정확도와 7.74%의 오경보 비율을 나타내었다.
본 발명의 실시예에 따르면, 봇이 사람에 비해 적은 양의 정보를 전송한다는 점과 inter-arrival times-data lengths duality라는 점을 이용한 포괄적 결정 방법을 통하여 각각의 테스트에 비해 10% 이상 향상된 정확도를 얻을 수 있다.
한편, 데이터 길이를 클라이언트 측이나 서버 측에서 수집하는 것은 얻어진 값에 아무런 영향을 미치지 않는 것을 알 수 있다. interarrival time을 고려하면 약간의 차이가 있을 수 있지만, 검출에 대해 큰 임계치(2초 및 6초)를 사용하였으므로 작은 변동에는 영향을 받지 않을 것으로 생각할 수 있다. 따라서 본 발명의 실시예에 따른 방법은 서버 측에서 실행할 수 있다.
이러한 본 발명의 실시예를 바탕으로 체계적인 방어 전략 시스템을 구축할 수 있다. 즉, 본 발명의 실시예에 따른 방법은 그라운드 레벨 프리 셀렉션 도구로서, 좀 더 정확하지만 고비용의 다른 테스트와 결합되어 사용될 수 있다.
도 7에 이와 같은 체계적인 방어 전략 시스템의 구성이 나타나 있다.
도 7에 나타난 바와 같이, 본 발명의 실시예에 따른 체계적인 방어 전략 시스템(700)은 앞서 설명한 바와 같은 온라인 검출 방법을 이용해 봇을 검출하는 온라인 검출부(710)와 튜링 테스트부(720)를 포함하여 구성된다. 튜링 테스트부(720)의 테스트 결과는 테스트가 있을 때마다 갱신되며(730), 이 결과가 결과 통합기(740)에 의해 온라인 검출부(710)의 결과와 통합된다. 통합된 결과는 이벤트 생성기(750)로 전달되며, 이에 따라 봇에 대한 제어 이벤트(760)가 생성될 수 있다.
본 발명의 실시예에 따른 봇 검출 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들면 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상에서 바람직한 실시예를 기준으로 본 발명을 설명하였지만, 본 발명의 봇 검출 방법 및 시스템은 반드시 상술된 실시예에 제한되는 것은 아니며 발명의 요지와 범위로부터 벗어남이 없이 다양한 수정이나 변형을 하는 것이 가능하다. 첨부된 특허청구의 범위는 본 발명의 요지에 속하는 한 이러한 수정이나 변형을 포함할 것이다.
710: 온라인 검출부
720: 튜링 테스트부
740: 결과 통합기
750: 이벤트 생성기

Claims (5)

  1. 대규모 다중 사용자 온라인 롤플레잉 게임(MMORPG: Massive Mulitiplayer Online Role Playing Game)에서 봇(bot)을 검출하는 방법으로서,
    임의의 사용자의 연속적인 점핑 윈도우에 대하여 자동 상관(autocorrelation) 값을 계산하는 단계와,
    상기 자동 상관 값을 제1 임계치와 비교하여 상기 자동 상관 값이 상기 제1 임계치보다 작을 경우 봇의 투표수를 1씩 증가시키는 단계와,
    상기 봇의 투표수가 전체 투표수의 반이 넘을 경우, 상기 사용자가 봇인 것으로 결정하는 단계를 포함하는 MMORPG의 봇 검출 방법.
  2. 대규모 다중 사용자 온라인 롤플레잉 게임(MMORPG: Massive Mulitiplayer Online Role Playing Game)에서 봇(bot)을 검출하는 방법으로서,
    일정한 크기의 윈도우 내에서 임의의 사용자가 전송하는 연속적인 패킷에 대하여 패킷간 시간(interarrival time)이 제1 임계치(itthr1)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와,
    상기 패킷간 시간이 제2 임계치(itthr2)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와,
    상기 제1 임계치(itthr1)를 넘는 값을 가지는 패킷의 수가 제3 임계치(itrt1)보다 적거나, 상기 제2 임계치(itthr2)를 넘는 값을 가지는 패킷의 수와 상기 제1 임계치(itthr1)를 넘는 값을 가지는 패킷의 수의 비가 제4 임계치(itrt2)보다 큰 경우, 상기 사용자가 봇인 것으로 결정하는 단계를 포함하는 MMORPG의 봇 검출 방법.
  3. 대규모 다중 사용자 온라인 롤플레잉 게임(MMORPG: Massive Mulitiplayer Online Role Playing Game)에서 봇(bot)을 검출하는 방법으로서,
    일정한 크기의 윈도우 내에서 임의의 사용자가 전송하는 연속적인 패킷에 대하여 데이터 길이(data length)가 제1 임계치(dlthr1)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와,
    상기 데이터 길이(data length)가 제2 임계치(dlthr2)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와,
    상기 제1 임계치(dlthr1)를 넘는 값을 가지는 패킷의 수가 제3 임계치(dlrt1)보다 적고, 상기 제2 임계치(dlthr2)를 넘는 값을 가지는 패킷의 수가 제4 임계치(dlrt2)보다 적은 경우, 상기 사용자가 봇인 것으로 결정하는 단계를 포함하는 MMORPG의 봇 검출 방법.
  4. 대규모 다중 사용자 온라인 롤플레잉 게임(MMORPG: Massive Mulitiplayer Online Role Playing Game)에서 봇(bot)을 검출하는 방법으로서,
    (a-1) 임의의 사용자의 연속적인 점핑 윈도우에 대하여 자동 상관(autocorrelation) 값을 계산하는 단계와,
    (a-2) 상기 자동 상관 값을 제1 임계치와 비교하여 상기 자동 상관 값이 상기 제1 임계치보다 작을 경우 봇의 투표수를 1씩 증가시키는 단계와,
    (a-3) 상기 봇의 투표수가 전체 투표수의 반이 넘을 경우, 상기 사용자가 봇인 것으로 결정하는 단계와,
    (b-1) 상기 봇의 투표수가 전체 투표수의 반이 넘지 않을 경우, 일정한 제1 크기의 윈도우 내에서 상기 사용자가 전송하는 연속적인 패킷에 대하여 패킷간 시간(interarrival time)이 제2 임계치(itthr1)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와,
    (b-2) 상기 패킷간 시간이 제3 임계치(itthr2)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와,
    (b-3) 상기 제2 임계치(itthr1)를 넘는 값을 가지는 패킷의 수가 제4 임계치(itrt1)보다 크고, 상기 제3 임계치(itthr2)를 넘는 값을 가지는 패킷의 수와 상기 제2 임계치(itthr1)를 넘는 값을 가지는 패킷의 수의 비가 제5 임계치(itrt2)보다 작은 경우, 상기 사용자가 사람인 것으로 결정하는 단계와,
    (c-1) 상기 제2 임계치(itthr1)를 넘는 값을 가지는 패킷의 수가 제4 임계치(itrt1)보다 작거나, 상기 제3 임계치(itthr2)를 넘는 값을 가지는 패킷의 수와 상기 제2 임계치(itthr1)를 넘는 값을 가지는 패킷의 수의 비가 제5 임계치(itrt2)보다 큰 경우, 일정한 제2 크기의 윈도우 내에서 상기 사용자가 전송하는 연속적인 패킷에 대하여 데이터 길이(data length)가 제6 임계치(dlthr1)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와,
    (c-2) 상기 데이터 길이(data length)가 제7 임계치(dlthr2)를 넘는 값을 가지는 패킷의 수를 계산하는 단계와,
    (c-3) 상기 제6 임계치(dlthr1)를 넘는 값을 가지는 패킷의 수가 제8 임계치(dlrt1)보다 적고, 상기 제7 임계치(dlthr2)를 넘는 값을 가지는 패킷의 수가 제9 임계치(dlrt2)보다 적은 경우, 상기 사용자가 봇인 것으로 결정하는 단계와,
    (c-4) 상기 제6 임계치(dlthr1)를 넘는 값을 가지는 패킷의 수가 제8 임계치(dlrt1)보다 크거나, 상기 제7 임계치(dlthr2)를 넘는 값을 가지는 패킷의 수가 제9 임계치(dlrt2)보다 큰 경우, 상기 사용자가 사람인 것으로 결정하는 단계를 포함하는 MMORPG의 봇 검출 방법.
  5. 대규모 다중 사용자 온라인 롤플레잉 게임(MMORPG: Massive Mulitiplayer Online Role Playing Game)에서 봇(bot)을 검출하는 시스템으로서,
    제4항의 방법으로 봇을 검출하는 온라인 봇 검출부와,
    튜링 테스트를 실시하는 튜링 테스트부와,
    상기 튜링 테스트부의 결과와 상기 온라인 검출부의 결과를 통합하는 결과 통합부와,
    상기 결과 통합부의 출력을 바탕으로 제재 이벤트를 생성하는 이벤트 생성기를 포함하는 MMORPG의 봇 검출 시스템.
KR1020100036045A 2010-04-19 2010-04-19 대규모 다중 사용자 온라인 롤플레잉 게임에서 봇을 검출하는 방법 및 시스템 KR20110116562A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100036045A KR20110116562A (ko) 2010-04-19 2010-04-19 대규모 다중 사용자 온라인 롤플레잉 게임에서 봇을 검출하는 방법 및 시스템
US12/789,917 US8366553B2 (en) 2010-04-19 2010-05-28 Method and system for detecting bot scum in massive multiplayer online role playing game
US13/733,080 US8556727B2 (en) 2010-04-19 2013-01-02 Method and system for detecting bot scum in massive multiplayer online role playing game

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100036045A KR20110116562A (ko) 2010-04-19 2010-04-19 대규모 다중 사용자 온라인 롤플레잉 게임에서 봇을 검출하는 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20110116562A true KR20110116562A (ko) 2011-10-26

Family

ID=44788587

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100036045A KR20110116562A (ko) 2010-04-19 2010-04-19 대규모 다중 사용자 온라인 롤플레잉 게임에서 봇을 검출하는 방법 및 시스템

Country Status (2)

Country Link
US (2) US8366553B2 (ko)
KR (1) KR20110116562A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013142492A1 (en) * 2012-03-20 2013-09-26 Riot Games, Inc. Systems and methods for user-based arbitration and peer review for online multiuser systems

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8682812B1 (en) * 2010-12-23 2014-03-25 Narus, Inc. Machine learning based botnet detection using real-time extracted traffic features
JP5581232B2 (ja) * 2011-01-12 2014-08-27 株式会社スクウェア・エニックス ネットワークゲームシステム、及びサーバ装置
US9248247B2 (en) 2012-07-26 2016-02-02 Nathaniel Gerald Portney Capsular medication delivery and inhalation device
US9098809B2 (en) * 2013-08-30 2015-08-04 Internet Brands, Inc. System and method of semi-automated velocity-based social network moderation
JP5936748B1 (ja) * 2015-05-20 2016-06-22 株式会社Cygames 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム
JP6446079B2 (ja) * 2017-03-09 2018-12-26 株式会社カプコン ゲームプログラム及びゲームシステム
FR3065607B1 (fr) 2017-04-20 2019-06-14 Viaccess Procede de lecture d'un flux video
US10279266B2 (en) * 2017-06-19 2019-05-07 International Business Machines Corporation Monitoring game activity to detect a surrogate computer program
US10207189B1 (en) * 2018-04-16 2019-02-19 Huuuge Global Ltd. System and method for determining type of player in online game
CN112313647A (zh) * 2018-08-06 2021-02-02 谷歌有限责任公司 Captcha自动助理
US11310226B2 (en) 2018-12-19 2022-04-19 Paypal, Inc. Gesture and motion detection using a device radar component for user authentication

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100619178B1 (ko) 2003-03-19 2006-09-05 엔에이치엔(주) 인터넷 검색 엔진에 있어서의 무효 클릭 검출 방법 및 장치
CA2577841A1 (en) * 2004-08-19 2006-03-02 Claria Corporation Method and apparatus for responding to end-user request for information
US7945952B1 (en) * 2005-06-30 2011-05-17 Google Inc. Methods and apparatuses for presenting challenges to tell humans and computers apart
KR100882809B1 (ko) 2006-08-31 2009-02-10 영남대학교 산학협력단 플로우 기반 패킷 처리방식의 분산 서비스 거부 공격 방어시스템 및 방법
JP4343242B2 (ja) * 2007-10-04 2009-10-14 株式会社コナミデジタルエンタテインメント ネットワークゲームシステム、サーバ、不正行為防止方法、不正行為検出方法、および、プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013142492A1 (en) * 2012-03-20 2013-09-26 Riot Games, Inc. Systems and methods for user-based arbitration and peer review for online multiuser systems

Also Published As

Publication number Publication date
US20130123008A1 (en) 2013-05-16
US20110256932A1 (en) 2011-10-20
US8366553B2 (en) 2013-02-05
US8556727B2 (en) 2013-10-15

Similar Documents

Publication Publication Date Title
KR20110116562A (ko) 대규모 다중 사용자 온라인 롤플레잉 게임에서 봇을 검출하는 방법 및 시스템
Rizoiu et al. # debatenight: The role and influence of socialbots on twitter during the 1st 2016 us presidential debate
Sun et al. Security of online reputation systems: The evolution of attacks and defenses
Tran et al. Sybil-Resilient Online Content Voting.
CN106254153B (zh) 一种网络异常监控方法和装置
CN101187959B (zh) 基于决策树的游戏作弊检测方法
Pittman et al. A measurement study of virtual populations in massively multiplayer online games
CN103647800A (zh) 推荐应用资源的方法及系统
CN107335220B (zh) 一种消极用户的识别方法、装置及服务器
Varvello et al. Is there life in second life?
Sellers Gubernatorial use of executive orders: unilateral action and policy adoption
CN109589607A (zh) 一种基于区块链的游戏防作弊方法及游戏防作弊系统
CN108521405A (zh) 一种风险管控方法、装置及存储介质
Cintia et al. The Haka network: Evaluating rugby team performance with dynamic graph analysis
CN111984544B (zh) 设备性能测试方法、装置、电子设备及存储介质
CN108055227B (zh) 基于站点自学习的waf未知攻击防御方法
Javali et al. Network web traffic generator for cyber range exercises
CN107809363A (zh) 一种网络信息传播控制方法和装置
Jøsang et al. Continuous ratings in discrete bayesian reputation systems
KR100726352B1 (ko) 통신량 증감에 따른 네트워크 트래픽의 분석시스템과 이를이용한 분석방법
Javanmardi et al. Modeling trust in collaborative information systems
CN103020412B (zh) 一种游戏平台用户属性统计方法及系统
KR101246361B1 (ko) 릴레이 서버를 이용한 렉발생 어뷰징 방지 서비스를 제공하는 방법, 서버 및 기록매체
KR20110082915A (ko) 네트워크의 트래픽 모의 및 유사성 검증방법 및 네트워크 트래픽 분석시스템
Yang et al. Dishonest behaviors in online rating systems: cyber competition, attack models, and attack generator

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120516

Effective date: 20130628