KR20150100993A - Computer system and computer implemented method for detecting bot based on self similarity - Google Patents

Computer system and computer implemented method for detecting bot based on self similarity Download PDF

Info

Publication number
KR20150100993A
KR20150100993A KR1020140021288A KR20140021288A KR20150100993A KR 20150100993 A KR20150100993 A KR 20150100993A KR 1020140021288 A KR1020140021288 A KR 1020140021288A KR 20140021288 A KR20140021288 A KR 20140021288A KR 20150100993 A KR20150100993 A KR 20150100993A
Authority
KR
South Korea
Prior art keywords
similarity
log
self
value
bot
Prior art date
Application number
KR1020140021288A
Other languages
Korean (ko)
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 KR1020140021288A priority Critical patent/KR20150100993A/en
Publication of KR20150100993A publication Critical patent/KR20150100993A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2133Verifying human interaction, e.g., Captcha

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Tourism & Hospitality (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Economics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Health & Medical Sciences (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Disclosed is a bot detecting method using a self-similarity value. A self-similarity value is calculated by dividing into a certain unit after extracting each account or character from a log generated in an online game. When the calculated self-similarity is a threshold value or more, the self-similarity is determined as a bot. On the other hand, an optimized combination of a measurement period and a threshold value is selected after analyzing various measurement periods and threshold values and comparing with an answer file. Accordingly, a bot determination algorithm, related to a relevant online game, can be optimized. In addition, when a section in which a self-similarity exceeds a threshold value and a section in which a self-similarity does not appear repeatedly, the self-similarity can be determined by using a bot of an ordinary user.

Description

자기유사도 값을 이용한 봇 검출시스템 및 그 방법{Computer system and computer implemented method for detecting bot based on self similarity}Technical Field [0001] The present invention relates to a bot detection system using a self similarity value,

본 발명은 온라인 게임에서의 봇 검출 방법에 관한 것이다.The present invention relates to a method of detecting a bot in an online game.

온라인 게임 기술분야에서 봇(Bot)이란 온라인 게임의 플레이어 캐릭터를 정해진 패턴에 따라 자동으로 조작하기 위한 프로그램을 의미한다.In the field of online game technology, a bot is a program for automatically manipulating a player character of an online game according to a predetermined pattern.

이러한 봇은 주로 온라인 게임 내에서 사냥이나 채집 등의 단순 플레이를 반복함으로써 아이템이나 게임 머니를 획득하기 위하여 개발된 프로그램으로, 정상적인 온라인 게임 플레이를 통해 게임머니나 아이템을 획득하는 대신 자동화된 프로그램에 의한 게임 플레이를 하여 다량으로 게임머니나 아이템을 획득하기 때문에 온라인 게임 내에서의 밸런스를 깨뜨릴 우려가 있다.These bots are mainly developed for acquiring items or game money by repeating simple play such as hunting or gathering in an online game. Instead of acquiring game money or items through normal online game play, There is a risk of breaking the balance in the online game because it obtains a lot of game money or items by playing a game.

따라서, 대부분의 온라인 게임에서는 봇의 사용을 엄격하게 금지하고 있다.Therefore, most online games strictly prohibit the use of bots.

특히, 외국에 다수의 컴퓨터를 마련하여 봇을 상시적으로 구동하여 대량으로 게임머니나 아이템을 획득한 다음, 게임 외부의 공간에서 일반 유저들에게 판매하는 이른바 작업장은 온라인 게임의 정상적인 서비스에 위협이 되기 때문에 봇 검출 알고리즘에 더하여 작업장을 일반 유저와 구분하여 검출하기 위한 알고리즘 또한 개발된 바 있다.Particularly, a large number of computers in foreign countries are used to constantly drive bots to acquire gaming money or items, and then sell them to general users in a space outside the game. The so-called workplace poses a threat to the normal service of online games An algorithm has been developed to distinguish the workplace from the general user in addition to the bot detection algorithm.

한편, 공지의 봇 검출 알고리즘은 대체로 로그를 분석하여 그 결과 특정 로그가 반복적으로 발생하여 소정의 판정 규칙을 만족시키는 경우 봇으로 판정하고 있다.On the other hand, the known bot detection algorithm generally analyzes the log, and as a result, determines that the specific log is repeatedly generated and satisfies a predetermined rule.

일정 시간 동안 일정 회수 이상 특정 로그가 반복적으로 발생하는 경우에 봇으로 판정하는 것이 공지의 일반적인 봇 검출 알고리즘이었다.It is a known general bot detection algorithm to determine by a bot when a specific log repeatedly occurs over a predetermined number of times for a predetermined time.

예컨대, 5시간 이내에 사냥을 500회 이상 했다면 봇으로 판정하는 등의 알고리즘이 사용되고 있다.For example, if the hunting is 500 times or more within 5 hours, an algorithm such as determination as a bot is used.

그러나, 이러한 알고리즘은 일정 시간 미만으로 게임 플레이를 하는 경우, 여러 가지 패턴을 섞어서 플레이하는 경우에는 사실상 판정이 어렵다는 한계가 있다.However, such an algorithm has a limit in that it is difficult to judge whether a game is played under a certain period of time or when it is mixed with various patterns.

특히, 이러한 알고리즘의 허점을 파악하여 알고리즘에 의해 판정되지 않는 패턴으로 자동화 플레이를 하는 봇이 개발되기까지 하고 있는 실정이다.In particular, it is in the process of developing bots that grasp the loopholes of these algorithms and perform automated play with patterns that are not determined by algorithms.

뿐만 아니라, 온라인 게임을 업데이트하는 경우에 기존의 봇 검출 알고리즘은 그 정확도가 크게 낮아지기 때문에 알고리즘을 새롭게 정교화해야하는 문제점이 있었다.In addition, when the online game is updated, the accuracy of the existing bot detection algorithm is significantly lowered, and there is a problem that the algorithm needs to be newly refined.

더 나아가, 기존의 봇 검출 알고리즘 그 자체 만으로는 작업장과 개인 유저의 봇 사용을 구분할 수 없다는 한계가 있다.Furthermore, existing bot detection algorithms alone can not distinguish between workplace use and personal user bot usage.

특허문헌 1. 대한민국 특허공개 제10-2011-0067630호 "온라인 게임 서비스를 위한 불량유저 모니터링 시스템 및 그 방법"Patent Document 1: Korean Patent Application Publication No. 10-2011-0067630 "Bad User Monitoring System and Method for Online Game Service" 특허문헌 2. 대한민국 등록특허 제10-1237161호 "온라인 게임의 비공개 봇 검출방법"Patent Document 2: Korean Patent No. 10-1237161 entitled "Method of detecting a private bot of an online game" 특허문헌 3. 대한민국 특허공개 제10-2013-0099786호 "불법 사용자 검출 장치 및 방법"Patent Document 3: Korean Patent Laid-Open Publication No. 10-2013-0099786 "

비특허문헌 1. 한국 지능시스템 학회 논문지 20(3) 422-427 1976-9172 KCI, "행동 패턴 모델을 이용한 게임 봇 검출 방법"KCI, "A Method for Detecting Game Bots Using Behavioral Pattern Model", Proceedings of the Korea Institute of Intelligent Systems (KIET) 20 (3) 422-427 1976-9172 비특허문헌 2. 한국 지능시스템 학회 2011년도 추계학술대회 학술발표논문집 제21권 제2호 "이동패턴분석에 기반한 봇 검출 모델"Non-Patent Document 2. Proceedings of the 2011 Fall Conference of the Korean Institute of Intelligent Systems 21 (2)

본 발명은 상기와 같은 종래기술의 문제점을 해소하기 위한 것으로, 캐릭터 별 행위 반복 경향을 정량화하여 자기유사도를 산출하고, 이를 근거로 봇 사용 여부를 검출하는 방법을 제시한다.In order to solve the problems of the related art as described above, the present invention proposes a method of calculating the self similarity by quantifying behavior repetition tendencies for each character, and detecting whether or not the robot is used based on the self similarity.

특히, 자기유사도의 변화 추이를 이용하여 작업장과 개인 사용자의 봇 사용을 구분하여 검출하는 방법을 제시한다.In particular, we propose a method to detect and distinguish bot use between workplace and individual user using the change of self - similarity.

상기와 같은 목적을 달성하기 위하여 본 발명에 의한 자기유사도 값을 이용한 봇 검출방법은 어느 하나의 온라인 게임 계정 또는 어느 하나의 플레이어 캐릭터의 로그 데이터를 추출하는 로그 추출 단계;According to another aspect of the present invention, there is provided a method of detecting a bot using a self similarity value, comprising: a log extracting step of extracting log data of any one of online game accounts or player characters;

시간순으로 배열된 상기 추출한 로그 데이터로부터 소정의 간격으로 로그들을 나누어 로그 묶음을 생성하는 로그 구획 단계;A log partitioning step of dividing the logs at predetermined intervals from the extracted log data arranged in chronological order to generate a log bundle;

다수의 로그 묶음들의 자기유사도 값을 정량적으로 계산하는 자기유사도 계산 단계;A self similarity calculation step of quantitatively calculating a self similarity value of a plurality of log bundles;

자기유사도 값에 따라서 봇 여부를 판정하는 봇 판정 단계;를 포함한다.And a bot determining step of determining whether or not the robot is based on the self similarity value.

이때, 자기유사도의 계산은 각 로그 묶음에 속하는 로그들의 로그 아이디별 발생량을 이용하여 로그 벡터를 생성하고,At this time, the calculation of the degree of self similarity is performed by generating a log vector using the amount of log IDs generated per log group,

상기 생성된 로그 벡터에 대해 단위 벡터와의 코사인 유사도를 계산한 다음,Calculating a cosine similarity with the unit vector with respect to the generated log vector,

하나 또는 그 이상의 로그 벡터에 대해 계산된 코사인 유사도에 대하여 표준편차를 계산하여, 자기유사도를 환산하는 방식으로 이루어질 수 있다.A standard deviation may be calculated with respect to the calculated cosine similarity for one or more log vectors, and the self similarity may be converted.

이때, 코사인 유사도는 다음 수학식을 이용하여 구할 수 있다.At this time, the cosine similarity can be obtained by using the following equation.

Figure pat00001
Figure pat00001

(단, Cos(θ)는 코사인 유사도, A는 로그 벡터, B는 단위 벡터) (Where Cos (?) Is the cosine similarity, A is the log vector, and B is the unit vector)

이때, 자기유사도는 다음 수학식을 이용하여 구할 수 있다.At this time, the self-similarity can be obtained by using the following equation.

Figure pat00002
Figure pat00002

(단, H는 자기유사도, ∂(St)는 St의 표준편차, St는 코사인 유사도)(Where H is the self similarity, ∂ (St) is the standard deviation of St, and St is the cosine similarity)

한편, 코사인 유사도 측정 주기와 임계값에 따라 정확도 및 재현율이 달라지기 때문에, 여러 가지의 측정 주기와 임계값에 따른 분석결과를 정답지 파일과 비교하여 최적의 측정 주기와 임계값 조합을 선정한다.On the other hand, since the accuracy and the recall rate vary depending on the measurement period of the cosine similarity and the threshold value, the optimal measurement period and threshold combination are selected by comparing analysis results according to various measurement periods and threshold values with the correct answer file.

한편, 자기유사도 값의 변화를 추적하되, 자기유사도 값이 일정 구간 이상 임계값 이상인 값을 유지하는 경우 작업장으로, 자기유사도 값이 임계값을 기준으로 상승과 하락을 반복하는 경우 개인유저의 봇 사용으로 구분할 수 있다.On the other hand, if the self similarity value keeps a value equal to or more than the threshold value over a certain period of time, the self similarity value repeats the rise and fall based on the threshold value. .

이러한 본 발명에 의할 때, 캐릭터 별 행위 반복 경향을 정량화하여 이를 근거로 봇 여부를 판정하기 때문에 플레이 시간이 짧더라도 기존 알고리즘 대비 매우 높은 정확도로 봇의 판정이 가능하다는 효과가 있다.According to the present invention, it is possible to determine the bots with a very high accuracy compared with the existing algorithms even if the play time is short because the tendency of repeat behavior for each character is quantified and the bot is judged based on the tendency.

특히, 게임 컨텐츠 자체와 무관하게 봇의 여부를 판정하는 것이 가능하기 때문에 업데이트시 또는 새로운 유형의 봇에 대응하기 위하여 봇 판정 기준을 매번 정교화하거나 새로 만들 필요가 없다.In particular, since it is possible to determine whether or not a bot exists regardless of the game content itself, there is no need to elaborate or create a new bot determination criterion each time to update or correspond to a new type of bot.

더 나아가, 자기유사도의 변화 추이를 이용하여 작업장과 개인 유저의 봇 사용을 구분하여 판정할 수 있다. 이에 의하여 개인 유저의 봇 사용에 대해서는 계정의 차단 대신 계도를 할 수 있어 대 고객 서비스 품질 향상에 기여할 수 있다.Furthermore, it is possible to distinguish between use of the robot by the workplace and the use of the personal user by using the change in the degree of self similarity. Accordingly, the use of the bot of the individual user can be performed instead of blocking the account, thereby contributing to the improvement of the quality of the customer service.

도 1은 온라인 게임 서버가 네트워크에 연결되는 구조를 설명하는 도면이며,
도 2는 본 발명에 의한 자기유사도 값을 이용한 봇 검출방법을 설명하는 플로우차트이며,
도 3은 도 2에 도시된 본 발명에서, 자기유사도 값을 계산하는 방법의 일 예를 설명하는 플로우차트이며,
도 4는 로그 데이터로부터 로그 벡터를 생성하는 과정을 설명하는 도면이며,
도 5는 코사인 유사도의 계산 과정을 설명하는 도면이며,
도 6은 일반 유저와 봇의 코사인 유사도의 추이를 비교한 도표이며,
도 7은 일반 유저와 봇의 자기유사도를 비교한 도표이며,
도 8은 정확률과 재현율의 관계를 설명하는 도면이며,
도 9는 정확률과 재현율을 감안한 최적의 임계값, 측정주기 선정 과정을 설명하는 도면이며,
도 10은 일반 유저의 봇 사용시 자기유사도의 추이를 나타내는 도표이다.
1 is a diagram illustrating a structure in which an online game server is connected to a network,
FIG. 2 is a flowchart illustrating a method of detecting a bot using the self similarity value according to the present invention,
3 is a flowchart illustrating an example of a method for calculating a self similarity value in the present invention shown in FIG. 2,
4 is a diagram for explaining a process of generating a log vector from log data,
5 is a diagram for explaining the calculation process of the cosine similarity,
FIG. 6 is a chart comparing the trends of the cosine similarities of general users and bots,
FIG. 7 is a chart comparing the similarity of the general user and the bot,
8 is a diagram for explaining the relationship between the accuracy rate and the recall rate,
FIG. 9 is a view for explaining an optimum threshold value and a measurement period selection process considering the accuracy rate and recall rate,
10 is a chart showing a transition of the self similarity when a general user uses a bot.

이하에서는 본 발명의 바람직한 실시예 및 첨부하는 도면을 참조하여 본 발명을 상세히 설명하되, 도면의 동일한 참조부호는 동일한 구성요소를 지칭함을 전제하여 설명하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Hereinafter, the present invention will be described in detail with reference to preferred embodiments of the present invention and the accompanying drawings, wherein like reference numerals refer to like elements.

발명의 상세한 설명 또는 특허청구범위에서 어느 하나의 구성요소가 다른 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 당해 구성요소만으로 이루어지는 것으로 한정되어 해석되지 아니하며, 다른 구성요소들을 더 포함할 수 있는 것으로 이해되어야 한다.It is to be understood that when an element is referred to as being "comprising" another element in the description of the invention or in the claims, it is not to be construed as being limited to only that element, And the like.

또한, 발명의 상세한 설명 또는 특허청구범위에서 "~수단", "~부", "~모듈", "~블록"으로 명명된 구성요소들은 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이들 각각은 소프트웨어 또는 하드웨어, 또는 이들의 결합에 의하여 구현될 수 있다.Also, in the description of the invention or the claims, the components named as "means", "parts", "modules", "blocks" refer to units that process at least one function or operation, Each of which may be implemented by software or hardware, or a combination thereof.

이하에서 개시되는 컴퓨터 시스템 및 방법은 온라인 게임 계정별 또는 플레이어 캐릭터 별 로그를 분석하여, 소정의 알고리즘에 의하여 자기유사도를 정량적으로 계산하고, 계산된 자기유사도에 근거하여 봇 여부를 판정하는 방법에 관한 것이다.The computer system and method described below are related to a method for analyzing a log for each online game account or each player character, quantitatively calculating the self similarity by a predetermined algorithm, and determining whether the robot is a bot based on the calculated self similarity will be.

일부 실시예를 통해서, 일정 시간 단위로 로그 벡터를 생성한 다음 단위 벡터와의 코사인 유사도를 계산하고, 측정 주기 동안 누적된 코사인 유사도의 표준 편차를 구한 다음 이를 이용하여 자기유사도 값을 정량적으로 계산한다.In some embodiments, a log vector is generated in units of a predetermined time, a degree of similarity to a unit vector is calculated, a standard deviation of the cumulative cosine similarity during a measurement period is obtained, and a self similarity value is quantitatively calculated .

일부 실시예에서는, 시퀀스 마이닝 기법을 이용하여 발생되는 시퀀스들을 정의한 다음 각 시퀀스별로 발생한 양을 시퀀스의 종류로 나누는 것에 의하여 자기유사도 값을 정량적으로 계산한다.In some embodiments, sequences generated using a sequence mining technique are defined, and then the amount of self-similarity is quantitatively calculated by dividing the amount generated by each sequence into types of sequences.

이하에서는, 로그 또는 로그 데이터란 온라인 게임 서버가 온라인 게임 내에서의 플레이어 캐릭터, NPC 등의 행동이나 게임 내 변수의 변화를 기록한 데이터를 의미한다. 이러한 로그 데이터는 일정 시간 단위로 생성되어 파일로 저장된다.Hereinafter, the log or log data refers to data in which the online game server records the behavior of the player character, the NPC, and the like in the online game or the change of the variable in the game. Such log data is generated in a predetermined time unit and stored as a file.

자기유사도란 로그 데이터로부터 특정 계정 또는 플레이어 캐릭터의 로그들을 구분한 다음, 구분된 로그들의 반복 경향을 정량적으로 계산한 값을 의미한다.Self-similarity refers to a value obtained by quantitatively calculating the repeated tendency of divided logs after distinguishing logs of a specific account or player character from log data.

도 1은 온라인 게임 서버가 네트워크에 연결되는 구조를 설명하는 도면이다.1 is a diagram illustrating a structure in which an online game server is connected to a network.

온라인 게임 서버(2)는 네트워크를 통해 접속한 다수의 게임 클라이언트(3)들로 온라인 게임 서비스를 제공하는 주체이며, 온라인 게임이 실행되는 동안 로그 데이터를 저장한다.The online game server 2 is a main body for providing an online game service to a plurality of game clients 3 connected through a network and stores log data during execution of an online game.

게임 클라이언트(3)는 온라인 게임 클라이언트 소프트웨어를 실행하고 네트워크를 통해 온라인 게임 서버(2)로 접속하여 사용자로 하여금 온라인 게임 플레이를 할 수 있도록 하는 수단을 의미한다.The game client 3 means means for executing online game client software and connecting to the online game server 2 via a network so that the user can play online games.

일반 유저들은 자신의 게임 클라이언트(3)를 이용하여 플레이어 캐릭터를 조작하는 방식으로 게임 플레이를 하며, 작업장에서는 다수의 게임 클라이언트(3)에 봇을 설치하여 게임 플레이를 자동화하여 처리한다.General users perform game play in a manner of operating a player character by using their own game client 3, and install game bots in a plurality of game clients 3 in a workplace to automate and process game play.

때로는 일반 유저 가운데서도 게임 클라이언트(3)에 봇을 설치하여 사용하는 경우도 존재할 수 있다.At times, there may be a case where a bot is installed in the game client 3 among ordinary users.

로그 분석 서버(1)는 온라인 게임 서버(2)로부터 로그 데이터를 수집하여, 수집된 데이터를 분석하는 주체를 의미한다.The log analysis server 1 collects log data from the online game server 2 and analyzes the collected data.

본 발명은 온라인 게임 서버(2)가 생성한 로그 데이터를 분석함으로써, 봇을 사용한 계정, 캐릭터를 판정하기 위한 시스템 및 방법에 관한 것으로, 로그 분석 서버(1) 또는 온라인 게임 서버(2)의 형태로 구현될 수 있다.The present invention relates to a system and method for determining an account and a character using a bot by analyzing log data generated by an online game server (2) . ≪ / RTI >

또는, 로그 분석 서버(1) 또는 온라인 게임 서버(2)에서 실행되는 방법으로 구현될 수 있다.Alternatively, it may be implemented in a way that is executed in the log analysis server 1 or the online game server 2.

이하에서는 로그 분석 서버(1)가 온라인 게임 서버(2)로부터 로그 데이터를 수집하여 분석하는 것을 전제로 설명하지만, 이는 이해를 돕기 위한 것일 뿐 온라인 게임 서버(2)가 직접 분석을 수행하여 봇을 검출하는 경우에도 동일하게 적용될 수 있음은 당연하다.Hereinafter, it is assumed that the log analysis server 1 collects and analyzes log data from the online game server 2, but this is for the sake of understanding only, and the online game server 2 directly analyzes the bots The present invention is not limited thereto.

도 2는 본 발명에 의한 자기유사도 값을 이용한 봇 검출방법을 설명하는 플로우차트이다.2 is a flowchart illustrating a method of detecting a bot using the self similarity value according to the present invention.

도 2에 도시된 바에 의할 때, 본 발명은 로그 추출 단계(S10), 로그 구획 단계(S20), 자기유사도 계산 단계(S30), 봇 판정 단계(S40), 정확도 및 재현율 계산단계(S50), 봇 사용 유형 구분 단계(S60)를 포함한다.2, the present invention includes a log extraction step S10, a log segmentation step S20, a self similarity calculation step S30, a bot determination step S40, an accuracy and recall calculation step S50, , And a bot usage classification step (S60).

우선, 로그 추출 단계(S10)에서 로그 분석 서버(1)는 온라인 게임 서버(2)로부터 로그 데이터를 획득한 다음, 각각의 온라인 게임 계정 또는 플레이어 캐릭터의 로그를 추출한다.First, in the log extracting step (S10), the log analyzing server 1 acquires log data from the online game server 2, and then extracts a log of each online game account or player character.

로그 데이터는 다수의 플레이어 캐릭터는 물론 NPC 기타 온라인 게임 내의 각종 변수에 관한 로그를 모두 포함하는데, 그 가운데 특정 계정 또는 플레이어 캐릭터의 로그를 뽑아내는 것이다.The log data includes logs of various variables in the NPC and other online games, as well as a plurality of player characters, among which a log of a specific account or player character is extracted.

이렇게 추출된 계정 또는 플레이어 캐릭터별 로그는 시간순으로 배열되는데, 로그 구획 단계(S20)에서는 이러한 로그를 소정의 간격에 따라 나누어 로그 묶음을 생성한다.The extracted account or player character log is arranged in chronological order. In the log compartment step (S20), the logs are divided according to predetermined intervals to generate a log bundle.

자기유사도 계산 단계(S30)에서는 이와 같이 로그 묶음들이 생성됨에 따라 소정의 알고리즘을 적용하여 자기유사도를 정량적으로 계산한다.In the self similarity calculation step S30, as the log bundles are generated as described above, a predetermined algorithm is applied to quantitatively calculate the self similarity.

봇 판정 단계(S40)에서는 계산된 자기유사도 값에 따라서 봇 여부를 판정한다.In the bot determination step (S40), it is determined whether or not the bot is based on the calculated self similarity value.

자기유사도의 정량적 계산에는 여러 가지의 방법이 사용될 수 있을 것이며, 본 발명에서는 자기유사도의 계산과 관련하여 두 가지의 방법을 제시한다.Various methods can be used for the quantitative calculation of the degree of self similarity. In the present invention, two methods relating to the calculation of the degree of self similarity are presented.

우선 도 3을 참조하여 자기유사도의 계산 알고리즘의 일 예를 살펴본다.First, an example of a calculation algorithm of self similarity will be described with reference to FIG.

도 3은 도 2에 도시된 본 발명에서, 자기유사도 값을 계산하는 방법의 일 예를 설명하는 플로우차트이다.3 is a flowchart illustrating an example of a method of calculating a self similarity value in the present invention shown in FIG.

도 3에 도시된 바에 의할 때, 자기유사도 계산 단계는 로그 벡터 생성단계(S31), 코사인 유사도 계산 단계(S32), 표준편차 계산 단계(S33), 자기유사도 환산 단계(S34)를 포함한다.3, the self similarity calculation step includes a log vector generation step S31, a cosine similarity calculation step S32, a standard deviation calculation step S33, and a self similarity conversion step S34.

로그 벡터 생성 단계(S31)에서는 각 로그 묶음에 로그들의 로그 아이디별 발생량을 이용하여 로그 벡터를 생성한다.In the log vector generation step S31, a log vector is generated by using the amount of each log ID generated in each log bundle.

도 4는 로그 데이터로부터 로그 벡터를 생성하는 과정을 설명하는 도면이다.4 is a diagram for explaining a process of generating a log vector from log data.

도 4의 좌측의 표는 어느 하나의 플레이어 캐릭터의 로그를 도식적으로 나타낸다.The table on the left side of FIG. 4 schematically shows the log of any one of the player characters.

해당 플레이어 캐릭터의 00시 00분부터 00시 05분까지의 로그를 이해를 돕기 위하여 시간, 로그 아이디, 로그 아이디에 대한 설명을 풀어서 표시한 것이다.The time, the log ID, and the log ID are solved and displayed to help understand the log of the player character from 00:00 to 00:05.

도 4의 좌측 표에서는 1분 간격으로 점선으로 구획지어진 것을 볼 수 있다.In the left table of Fig. 4, it is seen that they are divided into dashed lines at intervals of one minute.

즉, 도 4의 예에서는 1분 단위로 로그들을 나누어, 로그 묶음을 만드는 것으로 이해할 수 있다.That is, in the example of FIG. 4, it can be understood that logs are divided into units of 1 minute, and log bundles are created.

이렇게 1분 단위로 구획지어진 로그 묶음들에 대하여, 동일한 로그 아이디가 몇 번씩 발생했는지를 카운트한다. The number of times the same log ID is generated is counted for log bundles partitioned in units of one minute.

도 4의 예에서는 편의상 4가지의 로그 아이디가 존재하는 것으로 가정하였으나, 실제로는 훨씬 많은 종류의 로그 아이디가 존재하며 계산과정이 훨씬 복잡하다.In the example of FIG. 4, it is assumed that there are four log IDs for the sake of convenience, but in reality, there are many kinds of log IDs and the calculation process is more complicated.

도 4의 중앙의 표는 로그 묶음 별로 로그 아이디의 발생량을 카운트한 것을 표시한다.The table at the center of FIG. 4 indicates that the log ID generation amount is counted for each log bundle.

예컨대, 00시 01분에는 로그 아이디 1022에 해당하는 로그가 2번, 1204와 1205에 해당하는 로그가 각 1번, 1208에 해당하는 로그가 2번 발생한 것을 알 수 있다.For example, at 00:00, it can be seen that the log corresponding to the log ID 1022 is 2, the logs corresponding to 1204 and 1205 are each 1, and the log corresponding to 1208 is generated 2 times.

이를 (2,1,1,2)와 같이 벡터의 형태로 표시할 수 있다.This can be expressed in the form of a vector such as (2,1,1,2).

도 4의 우측에는 이와 같은 과정을 통해 생성된 로그 벡터가 표시된 것을 확인할 수 있다.On the right side of FIG. 4, it can be seen that the log vector generated through the above process is displayed.

코사인 유사도 계산 단계(S32)에서는 상기 생성된 로그 벡터에 대해 단위 벡터와의 코사인 유사도를 계산한다.In the cosine similarity calculation step S32, a cosine similarity with the unit vector is calculated for the generated log vector.

코사인 유사도는 수학식 1을 이용하여 구할 수 있다.The cosine similarity can be obtained using Equation (1).

Figure pat00003
Figure pat00003

이때, Cos(θ)는 코사인 유사도, A와 B는 코사인 유사도를 구하고자 하는 벡터이다. 상기 구해진 로그 벡터를 A, 단위 벡터를 B라 두고서 수학식 1에 대입하는 것에 의해 코사인 유사도를 구할 수 있다.At this time, Cos (θ) is a cosine similarity degree, and A and B are vectors for obtaining cosine similarity. The cosine similarity can be obtained by substituting the obtained log vector for A and the unit vector for B into the equation (1).

도 5는 코사인 유사도의 계산 과정을 설명하는 도면이다.5 is a diagram for explaining the calculation process of the cosine similarity.

예컨대, 로그 벡터 Vt가 (2,1)라 가정하고, 수학식 1을 이용하여 단위 벡터 (1,1)과 코사인 유사도를 구해보면 도 5에 도시된 바와 같이 약 0.948이 나온다.For example, assuming that the log vector Vt is (2, 1), the unit vector (1, 1) and the cosine similarity are calculated using Equation 1, which yields about 0.948 as shown in FIG.

일정 시간동안 수집된 로그 데이터를 분석하여 다수의 로그 벡터들을 생성하고, 각 로그 데이터들에 대해서 코사인 유사도를 구한 결과를 도표로 표시하면 도 6에 도시된 바와 같다.The log data collected for a predetermined time is analyzed to generate a plurality of log vectors, and a result of calculating the cosine similarity for each log data is shown in FIG.

도 6은 일반 유저와 봇의 코사인 유사도의 추이를 비교한 도표이다.Fig. 6 is a chart comparing the trends of the cosine similarities of general users and bots.

도 6의 (a)는 일반 유저의 코사인 유사도 추이를 표시한 것으로, 가로축은 시간, 세로축은 코사인 유사도 값을 각각 의미한다.6 (a) shows the cosine similarity transition of the general user, and the horizontal axis indicates time and the vertical axis indicates the cosine similarity value, respectively.

도 6의 (a)에 의할 때, 시간 경과에 따라 코사인 유사도가 일정하지 않은 값을 나타내는 것을 알 수 있다.6 (a), it can be seen that the cosine similarity shows a value that is not constant over time.

일반 유저는 자신의 플레이어 캐릭터를 이용하여 다양한 게임 내 활동을 하며, 매 순간 자유롭게 판단하여 일정하지 않은 플레이를 하기 때문에 이와 같은 그래프가 도출된다.Since a general user performs various in-game activities using his / her player character, and freely judges each game at an instant, it plays such a non-constant game.

반면, 도 6의 (b)는 봇을 이용하는 경우의 코사인 유사도 추이를 표시한 것이다.On the other hand, FIG. 6 (b) shows the transition of the cosine similarity when the bot is used.

도 6의 (b)에 도시된 바에 의할 때, 비교적 일정한 코사인 유사도 값이 유지되는 것을 알 수 있다. 봇의 플레이 패턴을 다양하게 변형한다고 하여도 코사인 유사도는 이와 같이 유사하게 나타난다.As shown in FIG. 6 (b), it can be seen that a relatively constant cosine similarity value is maintained. Even if the bot's play pattern is modified in various ways, the similarity of the cosine is similar.

이와 같이 코사인 유사도가 구해지면, 표준편차 계산 단계(S33)에서는 하나 이상의 로그 벡터들에 대해 계산된 코사인 유사도에 대하여 표준편차를 계산한다.If the cosine similarity is obtained as described above, the standard deviation calculation step S33 calculates a standard deviation of the calculated cosine similarity for one or more log vectors.

이후, 자기유사도 환산 단계(S34)에서는 구해진 표준편차를 이용하여 자기유사도를 환산한다.Thereafter, in the self similarity conversion step S34, the self similarity is converted using the obtained standard deviation.

자기유사도는 수학식 2에 의하여 구해진다.The self similarity is obtained by the equation (2).

Figure pat00004
Figure pat00004

이때, H는 자기유사도, ∂(St)는 St의 표준편차, St는 코사인 유사도이다.At this time, H is the self similarity, ∂ (St) is the standard deviation of St, and St is the cosine similarity.

자기유사도 H는 0.5 내지 1 사이의 값을 가지며, 1에 가까울수록 유사행동을 반복하는 것이라 볼 수 있다.The self-similarity H has a value between 0.5 and 1, and the closer to 1, the more similar behavior it can be seen.

도 7은 일반 유저와 봇의 자기유사도를 비교한 도표로서, 현재 서비스중인 온라인 게임에 대해 자기유사도를 계산한 결과를 나타낸 것이다.FIG. 7 is a chart comparing the similarity of the general user and the bot, and shows a result of calculating the self-similarity for the online game currently in service.

봇의 경우 자기유사도 값이 대체로 0.99 전후로 분포하는 반면, 일반 유저들의 경우에는 0.95 내지 0.97 사이 구간에 분포하는 것을 확인할 수 있었다.In the case of the bots, the self similarity value is distributed in the range between 0.95 and 0.97 in the case of general users while the value is about 0.99 in the similarity value.

도 3에 도시된 바와는 다른 실시예도 가능하다.Other embodiments are possible as shown in Fig.

도 3에서는 자기유사도 계산단계(S30)에서 코사인 유사도를 정량적으로 계산하고, 이를 자기유사도 값으로 변환하여 사용했으나, 소정의 측정 주기 동안 각 시퀀스의 유형별 발생량을 시퀀스의 종류로 나누어 자기유사도 값을 계산하는 방법을 사용할 수도 있다.In FIG. 3, the cosine similarity degree is quantitatively calculated in the self similarity degree calculation step S30 and is converted into the self similarity value. However, the self similarity value is calculated by dividing the generation amount of each sequence by the type of the sequence for a predetermined measurement period You can also use the

즉, 로그 아이디들의 시퀀스들을 정해두고, 로그 아이디들의 발생 순서를 고려하여 로그 묶음들을 나눈다.That is, sequences of log IDs are determined, and log bundles are divided in consideration of the order in which log IDs are generated.

그리고, 측정 주기 동안 각 시퀀스의 유형별 발생량을 카운트한 다음 시퀀스의 종류로 나누어 특정 시퀀스의 발생량의 비율이 높은 경우 자기유사도가 높은 것으로 계산할 수 있다.Then, during the measurement period, if the amount of occurrence of each sequence is counted and divided by the type of the sequence, if the ratio of the amount of occurrence of the specific sequence is high, it can be calculated that the degree of self similarity is high.

이와 같은 방법을 사용할 경우, 로그 아이디들의 순서를 고려하여 자기유사도를 계산하기 때문에 알고리즘의 정확성이 향상될 수 있으나, 시퀀스 마이닝이 필요하고 연산량이 많아진다는 단점이 있다.When this method is used, the accuracy of the algorithm can be improved because the self similarity is calculated considering the order of the log IDs. However, there is a disadvantage that the sequence mining is required and the calculation amount is increased.

한편, 상기 살펴본 바와 같은 몇 가지의 방법을 이용하여 자기유사도 값이 정량적으로 계산되면, 봇 판정 단계(S40)에서는 자기유사도 값을 이용하여 봇 여부를 판정한다.On the other hand, if the self similarity value is calculated quantitatively using several methods as described above, the bot determining step S40 determines whether the robot is a bot using the self similarity value.

다시 도 2로 돌아가서 자기유사도 계산 이후의 과정을 살펴본다.Referring back to FIG. 2, the process after the calculation of the self-similarity is examined.

봇 판정 단계(S40)에서는 자기유사도 값이 미리 설정된 임계값 이상이면 봇으로 판정하게 된다.In the bot determination step (S40), if the self similarity value is equal to or greater than a predetermined threshold value, the robot determines that it is the bot.

도 8은 정확률과 재현율의 관계를 설명하는 도면이며, 도 9는 정확률과 재현율을 감안한 최적의 임계값, 측정주기 선정 과정을 설명하는 도면이다.FIG. 8 is a view for explaining the relationship between the accuracy rate and the recall rate, and FIG. 9 is a diagram for explaining a process of selecting an optimal threshold value and a measurement period considering the accuracy rate and recall rate.

도 8에 도시된 바에 의할 때, 정확률이란 전체 탐지대상 캐릭터 가운데 봇의 비율을 의미하며, 재현율이란 전체 봇 가운데 검출된 봇의 비율을 나타낸다.8, the accuracy rate means the ratio of bots among all the characters to be detected, and the recall rate means the ratio of bots detected among all bots.

상기 살펴본 바와 같이 계산된 자기유사도를 이용하여 전체 탐지대상 캐릭터 가운데 적어도 일부가 봇으로 판정될 수 있는데, 그 결과를 기존에 검출된 봇에 대한 정보를 포함하는 정답지 파일과 비교하여 정확률과 재현율을 구할 수 있다.At least a part of the entire detection target characters can be determined as a bot using the calculated similarity degree as described above. The result is compared with a correct answer file containing information on the detected bots to obtain a precision rate and a recall rate .

임계값이 낮아지면 재현율은 올라가지만, 정확도는 낮아진다.The lower the threshold, the higher the recall, but the lower the accuracy.

임계값이 낮아지면 봇을 사용하지 않는 경우가 봇으로 판정되는 경우가 발생하기 때문에 정확도가 낮아지게 된다.When the threshold value is lowered, the case where the bot is not used is judged as a bot, so that the accuracy is lowered.

한편, 측정주기가 지나치게 짧으면 데이터의 신뢰성이 낮아지며 대체로 재현율이 낮아지게 된다.On the other hand, if the measurement period is too short, the reliability of the data is lowered and the recall rate is generally lowered.

따라서, 알고리즘의 최적화를 위해서는 최적의 측정주기와 임계값을 재설정할 필요가 있다.Therefore, it is necessary to reset the optimum measurement period and threshold value for optimization of the algorithm.

정확도 및 재현율 계산단계(S50)에서는 정답지 파일과의 비교를 통해 최적의 측정주기와 임계값을 재설정한다.In the accuracy and recall calculation step (S50), the optimum measurement period and the threshold value are reset through comparison with the correct answer file.

이를 위해 다양한 측정 주기와 임계값을 이용하여 상기 S10 내지 S40 단계를 반복하고, 그 결과를 정답지 파일과의 비교한다.To this end, steps S10 to S40 are repeated using various measurement cycles and threshold values, and the result is compared with the correct answer file.

그 가운데 정확도가 100%가 아닌 측정 주기와 임계값의 조합을 배제하고, 나머지 조합 가운데에서 재현율이 가장 높은 조합을 찾는다.Among them, the combination of the measurement period and the threshold value, which is not 100% accurate, is excluded, and the combination with the highest recall is found among the remaining combinations.

도 9의 표에서 음영으로 표시된 부분은 정확도가 100%가 아닌 조합에 해당한다. 나머지 조합 가운데에서 가장 높은 재현율 값은 점선으로 표시된 86.2%이며, 이때의 임계값과 측정주기 조합은 임계값 0.988, 측정주기 20분이다.In the table of FIG. 9, shaded portions correspond to combinations that are not 100% accurate. Among the remaining combinations, the highest recall value is 86.2% indicated by a dotted line, and the threshold value and the measurement cycle combination have a threshold of 0.988 and a measurement cycle of 20 minutes.

이는 해당 온라인 게임과 관련하여, 20분 측정주기로 생성된 로그 벡터들에 대해 표준편차 및 자기유사도를 계산하되, 0.988 이상의 자기유사도를 보이는 계정 또는 캐릭터를 봇으로 판정할 때에 최적의 결과를 얻을 수 있음을 의미한다.In relation to the corresponding online game, the standard deviation and the self similarity are calculated for the log vectors generated at the 20-minute measurement period, and the optimum result is obtained when the account or character having the self similarity degree of 0.988 or more is determined by the bots .

한편, 상기 살펴본 바와 같은 과정을 통해 자기유사도를 계산하면 도 7에 도시된 바와 같이 일반 유저에 비하여 봇의 자기유사도가 높게 나타나는데, 일반 유저가 스스로 게임 플레이를 하다가 가끔씩 봇을 사용하는 경우에는 자기유사도가 들쭉날쭉한 경향을 보인다.Meanwhile, as shown in FIG. 7, the self similarity degree of the bots is higher than that of the general user by calculating the self similarity through the process as described above. When the general user plays the game by itself and uses the bots occasionally, Are prone to jaggedness.

도 10은 일반 유저의 봇 사용시 자기유사도의 추이를 나타내는 도표이다.10 is a chart showing a transition of the self similarity when a general user uses a bot.

도 10의 도표에서 가로축은 시간, 세로축은 자기유사도 값을 의미한다. 한편, 상단의 가로선은 임계값을 표시한다.10, the abscissa indicates the time and the ordinate the magnetic relativity. On the other hand, the upper horizontal line indicates the threshold value.

이에 의할 때, 계산된 자기유사도가 어느 구간에서는 임계값을 넘겼다가, 또 어느 구간에서는 임계값 아래로 내려가기도 하는 것을 알 수 있다.In this case, it can be seen that the calculated self-similarity has fallen below the threshold value in any section, and falls below the threshold value in any section.

작업장에서는 상시 봇을 실행시키기 때문에 이러한 패턴이 나타나지 않으며 자기유사도 값이 일정 수준 이상을 유지한다.In the workplace, the pattern is not displayed because the bots are always executed, and the self-similarity value is maintained at a certain level or more.

반면, 개인 사용자가 사냥이나 수집 등을 단순 반복하기 위하여 일시적으로 봇을 사용했다가, 또 직접 플레이하기를 반복하는 경우에는 이와 같은 패턴이 나타난다.On the other hand, this pattern appears when an individual user temporarily uses a bot to repeat a simple hunting or gathering, or repeats playing the game directly.

봇 사용 유형 구분 단계(S60)에서는 자기유사도 값의 변화를 추적하되, 자기유사도 값이 일정 구간 이상 임계값 이상인 값을 유지하는 경우 작업장으로, 자기유사도 값이 임계값을 기준으로 상승과 하락을 반복하는 경우 개인유저의 봇 사용으로 구분한다.In the step S60, the variation of the self similarity value is tracked. When the self similarity value is maintained at a value equal to or more than a predetermined threshold value, the self similarity value is increased and decreased based on the threshold value If you are using a bot, you can distinguish the use of individual users.

즉, 자기유사도 값의 변화를 추적하여 임계값을 넘기는 구간과 임계값 아래의 구간이 반복적으로 나타나는 경우 개인유저의 봇 사용으로 구분할 수 있다.In other words, if the interval of passing the threshold value and the interval of the threshold value are repeated after tracking the change of the self-similarity value, the user can be classified into the use of the bot.

한편, 본 발명에 의한 자기유사도 값을 이용한 봇 검출방법은 컴퓨터가 판독할 수 있는 명령어의 집합인 소프트웨어의 형태로 구현되어 기록 매체에 수록될 수 있다.Meanwhile, the method of detecting a bot using the self similarity value according to the present invention can be implemented in the form of software, which is a collection of commands that can be read by a computer, and can be recorded on a recording medium.

이때, 기록매체는 컴퓨터에 의하여 읽을 수 있는 모든 종류의 매체를 포함할 수 있으며, 그 예로는 DVD-ROM, CD-ROM, 하드 디스크, USB 메모리, 플래쉬 메모리와 같은 유형물을 들 수 있다.In this case, the recording medium may include any type of medium readable by a computer, such as DVD-ROM, CD-ROM, hard disk, USB memory, and flash memory.

한편, 기록매체에 수록된다는 표현은 이와 같은 유형의 기록매체에 수록되는 경우는 물론, 무형의 반송파(Carrier Wave)의 형태로 통신회선을 통해 제공되는 경우를 포함한다.On the other hand, the expression to be recorded on the recording medium includes not only the case of being recorded on the recording medium of this type but also the case of being provided through a communication line in the form of an intangible carrier wave (Carrier Wave).

이상 몇 가지의 실시예를 통해 본 발명의 기술적 사상을 살펴보았다.The technical idea of the present invention has been described through several embodiments.

본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기재사항으로부터 상기 살펴본 실시예를 다양하게 변형하거나 변경할 수 있음은 자명하다. 또한, 비록 명시적으로 도시되거나 설명되지 아니하였다 하여도 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기재사항으로부터 본 발명에 의한 기술적 사상을 포함하는 다양한 형태의 변형을 할 수 있음은 자명하며, 이는 여전히 본 발명의 권리범위에 속한다. 첨부하는 도면을 참조하여 설명된 상기의 실시예들은 본 발명을 설명하기 위한 목적으로 기술된 것이며 본 발명의 권리범위는 이러한 실시예에 국한되지 아니한다.It will be apparent to those skilled in the art that various changes and modifications may be made to the embodiments described above from the description of the present invention. Further, although not explicitly shown or described, those skilled in the art can make various modifications including the technical idea of the present invention from the description of the present invention Which is still within the scope of the present invention. The above-described embodiments described with reference to the accompanying drawings are for the purpose of illustrating the present invention, and the scope of the present invention is not limited to these embodiments.

본 발명은 온라인 게임 기술분야에 적용될 수 있다.The present invention can be applied to the field of on-line game technology.

1 : 로그 분석 서버
2 : 온라인 게임 서버
3 : 게임 클라이언트
1: log analysis server
2: Online game server
3: Game Client

Claims (13)

컴퓨터 시스템 상에서 실행되는 방법에 있어서,
어느 하나의 온라인 게임 계정 또는 어느 하나의 플레이어 캐릭터의 로그 데이터를 추출하는 로그 추출 단계;
시간순으로 배열된 상기 추출한 로그 데이터로부터 소정의 간격으로 로그들을 나누어 로그 묶음을 생성하는 로그 구획 단계;
다수의 로그 묶음들의 자기유사도 값을 정량적으로 계산하는 자기유사도 계산 단계;
자기유사도 값에 따라서 봇 여부를 판정하는 봇 판정 단계;를 포함하는 자기유사도 값을 이용한 봇 검출방법.
CLAIMS What is claimed is: 1. A method executed on a computer system,
A log extracting step of extracting log data of any one of the online game accounts or any one of the player characters;
A log partitioning step of dividing the logs at predetermined intervals from the extracted log data arranged in chronological order to generate a log bundle;
A self similarity calculation step of quantitatively calculating a self similarity value of a plurality of log bundles;
And a bot determining step of determining whether or not the robot is based on the self similarity value.
제 1 항에 있어서,
상기 자기유사도 계산 단계는,
각 로그 묶음에 속하는 로그들의 로그 아이디별 발생량을 이용하여 로그 벡터를 생성하는 단계;
상기 생성된 로그 벡터에 대해 단위 벡터와의 코사인 유사도를 계산하는 단계;
하나 또는 그 이상의 로그 벡터에 대해 계산된 코사인 유사도에 대하여 표준편차를 계산하는 단계; 및
표준편차를 이용하여 자기유사도를 계산하는 단계;를 포함하는 자기유사도 값을 이용한 봇 검출방법.
The method according to claim 1,
The self similarity calculation step may include:
Generating a log vector using an amount of log IDs generated per log group;
Calculating a cosine similarity with a unit vector for the generated log vector;
Calculating a standard deviation for the calculated cosine similarity for one or more log vectors; And
Calculating a self similarity using the standard deviation; and detecting the robot using the self similarity value.
제 2 항에 있어서,
상기 코사인 유사도를 계산하는 단계에서, 다음 수학식을 이용하여 코사인 유사도를 계산하는 자기유사도 값을 이용한 봇 검출방법.
Figure pat00005

(단, Cos(θ)는 코사인 유사도, A는 로그 벡터, B는 단위 벡터)
3. The method of claim 2,
Wherein the step of calculating the cosine similarity comprises the step of calculating a cosine similarity using the following equation.
Figure pat00005

(Where Cos (?) Is the cosine similarity, A is the log vector, and B is the unit vector)
제 2 항에 있어서,
상기 자기유사도를 계산하는 단계에서, 다음 수학식을 이용하여 자기유사도를 계산하는 자기유사도 값을 이용한 봇 검출방법.
Figure pat00006

(단, H는 자기유사도, ∂(St)는 St의 표준편차, St는 코사인 유사도)
3. The method of claim 2,
The method of detecting a robot using the self similarity value calculating the self similarity using the following equation at the step of calculating the self similarity.
Figure pat00006

(Where H is the self similarity, ∂ (St) is the standard deviation of St, and St is the cosine similarity)
제 2 항에 있어서,
상기 표준편차 및 자기유사도를 계산하는 단계에서는, 코사인 유사도 측정 주기에 해당하는 시간 동안 생성된 로그 벡터들에 대해 표준편차 및 자기유사도를 계산하며,
상기 봇 판정 단계에서는 상기 코사인 유사도 측정 주기에 해당하는 로그 벡터들의 자기유사도 값이 임계값 이상인 경우에 봇으로 판정하는 자기유사도 값을 이용한 봇 검출방법.
3. The method of claim 2,
In the step of calculating the standard deviation and the degree of similarity, a standard deviation and a degree of similarity are calculated for the log vectors generated during the time corresponding to the period of the cosine similarity measurement,
Wherein the bot determining step uses the self similarity value determined by the bot when the self similarity value of the log vectors corresponding to the measurement cycle of the cosine similarity is equal to or greater than a threshold value.
제 5 항에 있어서,
상기 봇 판정단계 이후,
코사인 유사도 측정 주기 및 임계값을 변경해가며 평가 집합과 비교하여 정확도 및 재현율의 최대치를 검출하는 단계;를 더 포함하는 자기유사도 값을 이용한 봇 검출방법.
6. The method of claim 5,
After the bot decision step,
Detecting a maximum value of the accuracy and the recall rate by comparing the set of the cosine similarity measurement periods and the threshold value with the evaluation set and detecting the maximum value of the accuracy and the recall rate.
제 1 항에 있어서,
상기 봇 판정단계 이후,
자기유사도 값의 변화를 추적하되, 자기유사도 값이 일정 구간 이상 임계값 이상인 값을 유지하는 경우 작업장으로, 자기유사도 값이 임계값을 기준으로 상승과 하락을 반복하는 경우 개인유저의 봇 사용으로 구분하는 봇 사용 유형 구분 단계;를 더 포함하는 자기유사도 값을 이용한 봇 검출방법.
The method according to claim 1,
After the bot decision step,
Track the changes of the self-similarity value. If the self-similarity value keeps a value higher than the threshold value for a certain period or more, it refers to the workplace. If the self-similarity value repeats the rise and fall based on the threshold value, The method comprising the steps of: (a) classifying a robot using a robot;
컴퓨터 시스템 상에서 실행되는 방법에 있어서,
어느 하나의 온라인 게임 계정 또는 어느 하나의 플레이어 캐릭터의 로그 데이터를 추출하는 로그 추출 단계;
로그 데이터에 포함된 로그 아이디들의 배열로부터 미리 정해진 로그들의 시퀀스에 부합하는 로그 묶음들을 추출하는 로그 구획 단계;
소정의 측정 주기 동안 각 시퀀스의 유형별 발생량을 시퀀스의 종류로 나누어 자기유사도 값을 계산하는 자기유사도 계산 단계;
자기유사도 값에 따라서 봇 여부를 판정하는 봇 판정 단계;를 포함하는 자기유사도 값을 이용한 봇 검출방법.
CLAIMS What is claimed is: 1. A method executed on a computer system,
A log extracting step of extracting log data of any one of the online game accounts or any one of the player characters;
A log partitioning step of extracting log bundles corresponding to a predetermined sequence of logs from an array of log IDs included in log data;
A self similarity calculation step of calculating a self similarity value by dividing the generation amount of each sequence by a type of a sequence during a predetermined measurement period;
And a bot determining step of determining whether or not the robot is based on the self similarity value.
제 1 항 내지 제 8 항 가운데 어느 한 항에 기재된 자기유사도 값을 이용한 봇 검출방법을 컴퓨터 상에서 실행하기 위한 명령어가 수록된 컴퓨터로 판독 가능한 기록매체.A computer-readable recording medium containing instructions for executing on a computer a method of detecting a bot using the self-similarity value recited in any one of claims 1 to 8. 프로세서를 구비하는 컴퓨터 시스템에 있어서,
상기 프로세서는 어느 하나의 온라인 게임 계정 또는 어느 하나의 플레이어 캐릭터의 로그 데이터를 추출하고, 시간순으로 배열된 상기 추출한 로그 데이터로부터 소정의 간격으로 로그들을 나누어 로그 묶음을 생성하되, 다수의 로그 묶음들의 자기유사도 값을 계산한 다음, 자기유사도 값에 따라서 봇 여부를 판정하는 자기유사도 값을 이용한 봇 검출시스템.
A computer system having a processor,
The processor extracts log data of any one of the online game accounts or player characters and generates log bundles by dividing the logs at predetermined intervals from the extracted log data arranged in chronological order, A bot detection system using a self similarity value that calculates a similarity value and then determines whether or not the robot is based on the self similarity value.
제 10 항에 있어서,
상기 프로세서는, 각 로그 묶음에 속하는 로그들의 로그 아이디별 발생량을 이용하여 로그 벡터를 생성하고, 상기 생성된 각 로그 벡터에 대해 단위 벡터와의 코사인 유사도를 계산한 다음, 다수의 로그 벡터들에 대해 계산된 코사인 유사도에 대하여 표준편차를 구한 다음, 이를 이용하여 자기유사도를 계산하는 자기유사도 값을 이용한 봇 검출시스템.
11. The method of claim 10,
The processor generates a log vector using the log IDs of the logs belonging to each log bundle, calculates the cosine similarity with the unit vector for each log vector generated, A robot detection system using a self similarity value that calculates the standard deviation of the calculated cosine similarity and then calculates the self similarity using the standard deviation.
제 10 항에 있어서,
상기 프로세서는, 코사인 유사도 측정 주기에 해당하는 시간 동안 생성된 로그 벡터들에 대해 표준편차 및 자기유사도를 계산하며, 상기 코사인 유사도 측정 주기에 해당하는 로그 벡터들의 자기유사도 값이 임계값 이상인 경우에 봇으로 판정하되,
코사인 유사도 측정 주기 및 임계값을 변경해가며 평가 집합과 비교하여 정확도가 일정 값 이상을 유지하되, 재현율이 가장 높은 코사인 유사도 측정 주기 및 임계값의 조합을 판정하는 자기유사도 값을 이용한 봇 검출시스템.
11. The method of claim 10,
The processor calculates a standard deviation and a self similarity for the log vectors generated during the time corresponding to the measurement period of the cosine similarity, and when the self similarity value of the log vectors corresponding to the measurement period of the cosine similarity is equal to or greater than the threshold value, However,
A system for detecting a bot using a self similarity value that determines a combination of a threshold value and a cosine similarity measurement cycle having a highest recall ratio while maintaining accuracy above a predetermined value by comparing the measurement cycle and the threshold value of the cosine similarity measurement.
제 10 항에 있어서,
상기 프로세서는, 자기유사도 값의 변화를 추적하되, 자기유사도 값이 일정 구간 이상 임계값 이상인 값을 유지하는 경우 작업장으로, 자기유사도 값이 임계값을 기준으로 상승과 하락을 반복하는 경우 개인유저의 봇 사용으로 구분하는 자기유사도 값을 이용한 봇 검출시스템.
11. The method of claim 10,
The processor tracks the change of the self similarity value. If the self similarity value keeps a value equal to or more than a predetermined threshold value, Bot detection system using self - similarity value which is classified by using bot.
KR1020140021288A 2014-02-24 2014-02-24 Computer system and computer implemented method for detecting bot based on self similarity KR20150100993A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140021288A KR20150100993A (en) 2014-02-24 2014-02-24 Computer system and computer implemented method for detecting bot based on self similarity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140021288A KR20150100993A (en) 2014-02-24 2014-02-24 Computer system and computer implemented method for detecting bot based on self similarity

Publications (1)

Publication Number Publication Date
KR20150100993A true KR20150100993A (en) 2015-09-03

Family

ID=54242250

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140021288A KR20150100993A (en) 2014-02-24 2014-02-24 Computer system and computer implemented method for detecting bot based on self similarity

Country Status (1)

Country Link
KR (1) KR20150100993A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106992880A (en) * 2017-03-20 2017-07-28 北京匡恩网络科技有限责任公司 Method for predicting and device for EPA
KR20180051279A (en) * 2016-11-08 2018-05-16 주식회사 넥슨코리아 Apparatus and method for detecting game bot
KR102085593B1 (en) 2019-09-16 2020-03-06 포항공과대학교 산학협력단 Method and device for detecting posting bot for blockchain SNS based on machine learning
KR20200143803A (en) * 2019-06-17 2020-12-28 넷마블 주식회사 Method and apparatus for determining abnormal user

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180051279A (en) * 2016-11-08 2018-05-16 주식회사 넥슨코리아 Apparatus and method for detecting game bot
CN106992880A (en) * 2017-03-20 2017-07-28 北京匡恩网络科技有限责任公司 Method for predicting and device for EPA
KR20200143803A (en) * 2019-06-17 2020-12-28 넷마블 주식회사 Method and apparatus for determining abnormal user
KR102085593B1 (en) 2019-09-16 2020-03-06 포항공과대학교 산학협력단 Method and device for detecting posting bot for blockchain SNS based on machine learning

Similar Documents

Publication Publication Date Title
Hodge et al. Win prediction in multiplayer esports: Live professional match prediction
US11458399B2 (en) Systems and methods for automatically measuring a video game difficulty
Link et al. Real time quantification of dangerousity in football using spatiotemporal tracking data
CN111773732B (en) Target game user detection method, device and equipment
Aung et al. Predicting skill learning in a large, longitudinal moba dataset
CN107515825B (en) Fluency testing method and device, storage medium and terminal
CN107335220B (en) Negative user identification method and device and server
Drachen et al. Rapid prediction of player retention in free-to-play mobile games
US11484778B2 (en) Game tendency analysis system, and computer program and analysis method
US20140243077A1 (en) Apparatus and method of analyzing game characteristics/attributes for cheating user detection using game characteristics/attributes
KR101881647B1 (en) Method, apparatus, and computer program for detecting bot program based on group using location information in online game
KR20150100993A (en) Computer system and computer implemented method for detecting bot based on self similarity
CN106528398B (en) The visual analysis method of Games Software performance
CN105354210A (en) Mobile game payment account behavior data processing method and apparatus
US11500364B2 (en) Index selection device and method
JP6513776B1 (en) Data analyzer and data analysis program
CN112704880A (en) Apparatus and method for user analysis and content selection
US20160045120A1 (en) Systems and methods for spike sorting
US20150209675A1 (en) Method and apparatus for detecting game bot account
JP7052604B2 (en) Business estimation method, information processing device, and business estimation program
JP2008146157A (en) Network abnormality decision device
US20130227642A1 (en) Apparatus and method for detecting illegal user
KR102579203B1 (en) Apparatus and method for predicting game result
KR101872345B1 (en) System and method for detecting abnormal character by analyzing location characterlistic in on-line game
Chung et al. A behavior analysis-based game bot detection approach considering various play styles

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination