/ 99
메이플스토리 사례를 통해 살펴보는
서버사이드 봇/핵 탐지 시스템
InfoSec Team, 넥슨 아메리카
강병탁 (btkang@nexon.net)
/ 99
이 세션은
백엔드/프론트엔드 개발에 촛점을 맞춥니다.
운영상 발생하는 프로세스에 촛점을 맞춥니다.
만든 시스템을 실전에서 지속적으로 유지할 수 있는지에 중점을 두었습니다.
/ 99
Agenda
1. 현업에서 느끼는 현실적인 제약
2. 한계를 극복하기 위한 디자인과 구조
3. 메이플스토리 도입 사례
4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화
/ 99
발표자 소개
강병탁 (btkang@nexon.net , window31)
-현재 : 넥슨 아메리카 – InfoSec team 팀장
-과거 : 넥슨 코리아 – 게임보안팀 팀장
-월간 마이크로소프트웨어 해킹/보안 칼럼 작가 (2010 ~ 2012)
-“리버스 엔지니어링 바이블” 작가
/ 99
Agenda
1. 현업에서 느끼는 현실적인 제약
2. 한계를 극복하기 위한 디자인과 구조
3. 메이플스토리 도입 사례
4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화
5
/ 99
더 설명하기 이젠 지겨우므로 가볍게 스킵…
대한민국 Active-X 와 상황이 비슷
클라이언트 보안의 한계
빈대 잡으려다 초가삼간 다 태운다
해커 정상유저 작살낸다
6
/ 99
세상이 어느 세상인데 아직도 클라이언트 사이드에서 보안하나요?
우리도 서버 사이드 탐지 시스템 하나 만들죠! 우리도 그정도는 될수있어요!
우리도 서버로 갑시다
7
특전사가 될거라면…
이정도 포스는
보여야 되는거
아닌지…
/ 99
하지만 정작 현실은…
8
/ 99
서버 사이드 탐지 시스템은 이상론에 불과한 것인가?
(송중기 같은 군인이 현실에 존재하지 않는 이유?)
먼저 문제점을 환기해 보고, 해결 방법을 고민해 보았습니다.
단골로 고민하는 문제
9
/ 99
로그 분석의 악몽
10
/ 99
일단 로그가 너무 많다.데이터 핸들링 문제
11
/ 99
그래서 DB Job 이 도는데 보통은 하루에 한번이다.
해커는 핵을 써도 하루 정도는 안전하다
실시간 BAN 문제
12
나, 하루살이!
하루 정도는
살수있지
후훗.
/ 99
오탐! 자동 BAN 의 신뢰성 문제
13
나
터미네이터는
존 코너를
보호한다.
내가
존 코너야
ㅄ아!
/ 99
스레시홀드를 바꾸려고 할 때
단지, 10을 5로 바꾸고 싶을 뿐인데!
탐지 기준값 변경이 번거로운 문제
14
그거 바꾸려면 빌드
다시해야 되는데요?
빨라도 다음주에
나갑니다…
이미 3일은 못잔 포스….
개발자
/ 99
if (dwDeathCount > 10)
{
//
DoBAN();
}
하드코딩의 악몽
15
/ 99
그래서 DB 의 SP 로 처리하는 케이스가 많지만
16
/ 99
역시 피폐한 DBA 들…
17
개발팀이 하던일이 DB팀으로 옮겨갔을 뿐…
(운영팀 입장)
또 SP 내용 바꿔달라고요?
지난번엔 10에서 5로
바꿔달라더니
이번엔 5에서 7로…
DBA
DBA 도 이미 3일은 못잔 포스….
/ 99
웹 운영툴이 가진 일반적인 문제
18
사용자가 원한 것 개발자가 만들어 준 것
/ 99
모 게임의 오토밴 시스템
19
/ 99
데이터분석 전문가들의 등장
20
/ 99
하지만, 그걸 본 운영팀의 반응
21
/ 99
서버사이드 탐지 시스템을 개발할 때 항상 겪는 문제
이것은 개발팀의 일인가?
DB팀/데이터분석팀의 일인가?
보안팀의 일인가?
운영팀의 일인가?
누가 개발의 주체가 될 것인가?
22
/ 99
기술 자체에 너무 몰입하지 말자.
해킹방어는 속도가 생명이다. 일단 속도개선에 중점을 둬보자.
각 팀은 당연히 저마다 가진 사정이 있을 수밖에 없다. 최대한 다양한
팀의 이야기를 들어보자.
누군가 끌어가는 사람 PM 롤이 필요하다
마지막으로, 정작 이것을 사용하는 팀의 입장에서 생각해 보자.
문제점 요약
23
/ 99
실무 팀과의 형식적인 “회의” 말고 실질적인 “인터뷰”를 거쳐서
그들이 힘든 점이 무엇인지 얻어내는 작업을 먼저 거쳤습니다.
개선하기 위해
24
/ 99
Agenda
1. 현업에서 느끼는 현실적인 제약
2. 한계를 극복하기 위한 디자인과 구조
3. 메이플스토리 도입 사례
4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화
25
/ 99
운영팀이 빡친 이유
26
일일히 데이터를
요청해야하고
값만 하나 바꾸고 싶을
뿐인데
너무 오래 걸려요
나 보안팀…
마음만은 송중기
나 운영팀…
/ 99
개발/DB팀이 빡친 이유
27
너무 요청이 자주 오고
구조상 시간이 오래
걸릴 수밖에 없는데
이해를 잘 안해줘요 나 보안팀…
마음만은 송중기
나 개발/DB팀…
/ 99
데이터분석/DB팀이 빡친 이유
28
로그 가져오는데
걸리는 시간이
이루말할 수 없는
고통입니다 나 보안팀…
마음만은 송중기
나 데이터분석/DB팀…
/ 99
먼저– 로그수집 속도, 분석속도를 높히자
29
- 운영팀이 개발/DB팀에 요청하는 시간
- 개발/DB팀이 로그를 뽑는시간 + 복사하는 시간
- 그걸 다시 운영팀이 다시 복사하는 시간
- 액셀에 넣고 삽질하는 시간
/ 99
파이썬과 자동화
30
보통 자동화/로그파싱 하면
일단 떠올리는 것은 파이썬
/ 99
But, 로그 파싱의 악몽
31
이..이제
그만!!!!!
/ 99
스플렁크를 선택한 이유
32
스플렁크 찬양적인 영업적인 이야기 다 버리고, 순수하게 장점만 언급
1) 로그 수집이 자동으로 된다 (서버에 에이전트 하나만 심으면)
2) 로그 파싱을 알아서 해준다 (파서를 따로 개발할 필요가 없다)
3) 그래프를 매우 쉽게 그릴 수 있다 (웹 대시보드를 개발할 필요가 없다)
즉, 시간절약을 해 준다. 괜한 개발이슈가 생기지 않아서 좋다
/ 99
Universal Forwarder
33
서버가 몇개가 어디에 있던 로그수집이 실시간으로 된다.
더이상 개발팀/DB팀에 문의하지 않아도 된다.
/ 99
따라서 이런 로그도 그냥 스플렁크에 넣어버리면,
34
/ 9935
1시간이면 이런 그래프 제작 가능
/ 99
Example
36
N|*|4112|20160418|174836|Illegal ExclRequestTime
Name|AID=32988208|CID=8594518|NAME=lLokzoX|LEV=22
5|JOB=412|FID=211041700|Now=4633069|LastRequestWait
End=4632589|Gap=480|Duration=500|Count=1|
/ 99
스플렁크에 넣고나면
37
/ 99
그래서 이렇게 그래프도 쉽게 만들었습니다
38
/ 99
이렇게 해서 나오는 애들은 바로 핵/봇 이예요!
39
index=gpt-ms sourcetype=maplestory:DetectedHack
+ 블라블라블라~
링크만 그냥 전달하면 다른 사람도 쉽게 볼 수 있다.
/ 99
계정 밴을 할 최종 리스트
40
/ 99
어떤 점이 이득이었는지
41
데이터 수집
로그 파싱
시각화, 그래프화
3개가 해결되었습니다.
/ 99
하지만 여기서부터 수작업으로 연결되는 문제
42
액셀에서 결과 추출하여 DB 팀에 BAN 날려달라고 요청
또는 운영툴에서 하나씩 복사해가며 부정이용자 블럭 시작
/ 99
그 과정을 한번 자동화 해봅시다
43
스플렁크
쿼리 입력
부정 사용자
액셀로 추려냄
대량 제재
버튼 클릭
DB 로
BAN 수행
스플렁크
쿼리 자동 입력
NexonABS 백엔드 서버
부정 사용자
메모리에 추려냄
DB 로
BAN SP 호출
10분에
한번 수행
/ 99
Splunk Python API
44
/ 99
실시간 계정 차단 수행
45
하루살이 해커(24시간 살이 해커) 박멸!
10분마다 핵/봇은 짤려나간다
/ 99
다음 과제 – 컨트롤 능력을 높히자
46
이 화면이
기억나시나요?
/ 99
우리도 이제 이렇게 많은 쿼리들이…
47
No Rule
1 index=gpt-ms sourcetype=maplestory:DetectedHack | search "Running Multiple Instances of MapleStory" | rex
*********************************>w+)" | stats count AS DetectCount by AID
2 index=gpt-ms sourcetype=maplestory:DetectedHack | search "Illegal ExclRequestTime" | stats count as DetectCount
by AID
3 index=gpt-ms AND sourcetype="maplestory:Macro" AND "Invalid User Action Position - Type:0" | stats
count(ACCOUNTID) *********************************, WORLD, DetectCount | sort – DetectCount
4 index=gpt-ms sourcetype=maplestory:Macro "WARP - Illegal UserWarp Tried"| stats *********************************,
WORLD, DetectCount | sort - DetectCount
40 index=gpt-ms AND sourcetype="maplestory:Macro" AND "Invalid User Action Position - Type:0" | stats
count(ACCOUNTID) *********************************, WORLD, DetectCount | sort – DetectCount
41 index=gpt-ms sourcetype=maplestory:Macro "WARP - Illegal UserWarp Tried"| stats *********************************,
WORLD, DetectCount | sort - DetectCount
………………..
/ 99
우리도 웹 운영툴 하나 만듭시다
48
오픈소스, Bootstrap, SB Admin 2
빠른 시간 내에 웹 프론트엔드 개발을
할 수 있음
요즘 대세인 웹 프레임워크
역시 목표는 시간절약!
/ 99
웹 운영툴 (SOC)
49
/ 99
이 페이지 기억하시나요?
50
이런 일이 발생하는
이유는?
/ 99
다시한번 실제 운영하는 쪽과 인터뷰를,
51
우린 블럭작업 할때
이르케 이르케 해여~
요런 요런 순서대로 해요
그게 몸에 익었거든요 나 보안팀…
마음만은 송중기
나 운영팀…
/ 99
즉, 현재의 프로세스를 그대로 운영툴에 반영하자
52
스플렁크에서
데이터 조회
타 서버로그에서
더블 체크
최종 쿼리
뽑아냄
요 스플렁크 쿼리를 던져서 나오는 애들은 BAN 시켜도 됩니다
/ 9953
/ 9954
/ 9955
/ 9956
자, 이제서야 컨트롤이 되는군요!
A조건으로
차단
B조건으로
차단
C조건으로
차단
D조건으로
차단
개발팀 재빌드나
DB 팀 SP 수정 없이
차단 수위를 조절할 수
있게 되었습니다!
/ 99
다음 고민, 누가 운영의 주체가 될 것인가?
57
이 페이지
기억나시는지요?
/ 99
그럼 이제 누가 사용할래? 유지보수는 어떻게 하지?
이것은 개발팀의 일인가?
DB팀/데이터분석팀의 일인가?
보안팀의 일인가?
운영팀의 일인가?
다시 그 질문으로 돌아오게 됩니다
58
/ 99
오진이 발생하는 것을 보면 점점 귀찮고 짜증이 나게 됨
하다보면 좀더 정밀한 검토를 필요로 하게 되는 로그가 꼭 튀어나옴
하지만 고쳐도 고쳐도 끝이 없음, 결국 하게되는 말은,
“자동밴 버튼 누르기 전에 운영팀에서 더블체크 꼭 해보세요~”
결국 운영팀은…
개발하고 나면 꼭 생기는 문제
59
/ 99
결국 운영팀은 버튼을 누르지 않음
60
Auto-BAN
정말
눌러도
되는
걸까?
?!!
/ 99
이것이 바로 시스템이 방치되는 이유
61
오탐이 많아서
못 쓰겠어요
고치기도 힘든것 같고
그냥 안써요
나 보안팀…
여전히 마음만은 송중기
나 운영팀…
/ 99
그래서 다시한번 조사했습니다.
62
수동으로 BAN
날리시기 전에 뭐뭐
체크하세요?
뭘 체크해야
믿고 BAN 날리나요?
나 보안팀…
여전히 마음만은 송중기
나 운영팀…
/ 99
운영팀이 하는 체크로직들.
이정도 체크가 되면
운영팀은 안심하고 BAN 을
날릴 수 있다.
리스트를 뽑았으니,
63
/ 99
그럼 그것도 자동화를 해보죠
64
스플렁크
쿼리 입력
부정 사용자
액셀로 추려냄
대량 제재
버튼 클릭
DB 로
BAN 수행
스플렁크
쿼리 자동 입력
NexonABS 백엔드 서버 10분 루프
부정 사용자
메모리에 추려냄
DB 로
BAN SP 호출
FILTER
화이트리스트
필터링
기능 추가
/ 99
그리고 화이트리스트 룰은 운영팀이 만드세요
65
.
.
/ 99
개발팀 : 소스코드에 하드코딩된거 고치기 싫어!누가 웹 운영툴좀 만들어줘!
DB/데이터분석팀 : 데이터 수집하는 시간과 분석하는 시간 단축해줘!
운영팀 : 우리가 직접 룰조정 할 수 있게 해줘! 오진을 없애줘!
보안팀 : 나도 뭔가 할 수 있게 해줘! 니넨 하는 일이 뭐야? 라는 말 듣기싫어!
각 팀이 가진 불만들을 일단 해결
66
/ 99
Agenda
1. 현업에서 느끼는 현실적인 제약
2. 한계를 극복하기 위한 디자인과 구조
3. 메이플스토리 도입 사례
4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화
67
/ 99
• 넥슨 아메리카 최장수 게임
• 봇들과 핵이 많은 상태, 3rd party 보안회사의 클라이언트 사이드의
보안시스템은 효과가 거의 없던 상태
• 이미 현존하는 많은 게임서버 로그가 있었지만 활용도가 낮았던 상태
• 로그 파싱의 고통이 있던 상태
• 자동 밴 오진이 있었던 상태
• 게임 경제가 매우 좋지 않았던 상태
Prebuild
68
/ 99
NexonABS 도입 진행
69
프론트엔드, 백엔드 개발 시간이 최초엔 어느 정도 소요되었음 (총 3개월)
미국법인에서 NexonABS 를 붙히게 된 최초의 게임
현재 총 53개의 룰이 있고, 유동적으로 on/off 진행중
/ 99
운영팀의 빠른 솔로 플레이가 가능해짐
70
새로운 룰 작성 : 직접 처리
스레시홀드 조정 : 직접 처리
BAN 결정 : 직접 처리
롤백 : 직접 처리
개발팀과 DB 팀도 시간적 여유가 생김
/ 99
Example
71
ABS Rule 51: MVAC (Monster Vac)
Description: Rule designed to detect illegal forced monster
movements (a.k.a. "monster vac" or "mvac").
Rule Basis: Detection of log: “MobFlashFast - Mob Velocity
suddenly changed” in “DetectedHack” log file.
Test Log Start: 2/10
Detection Criteria: 100 detections per 10 minutes.
Total Detections: 3,433
Unique Accounts: 207
Spot check results: Excellent. Very Low to Zero false positives.
/ 99
운영팀 스스로 제안 가능
72
“ 3번 룰에 대해 운영팀 내에서
탐지 감도를 여러 차례 바꿔가며
1주일간 로깅 상태로 지켜봤습니다.
이대로 자동BAN으로 전환해도
괜찮을 것 같습니다.
찬성하시는지요? ”
/ 99
빠르고 간편한 만장일치 프로세스
73
마케팅팀
개발팀
보안팀
/ 99
유연한 정책
74
In-Game 이벤트 때는 운영팀 스스로
OFF 가능
때로는 마케팅 팀에서 잠시 BAN 을
멈추자고 제안할때도 즉시 처리 가능
/ 99
한참 피크 때에 하루 최고 BAN 횟수
75
OVER 10,000
/ 99
고객센터 오탐관련 불만 티켓 접수건
76
ZERO
/ 99
안정되고 있는 게임 경제
77
/ 99
메이플스토리 공식 보안 프로덕트로 인정받음
78
물론 이런 상을 받은건
아닙니다…
/ 99
Agenda
1. 현업에서 느끼는 현실적인 제약
2. 한계를 극복하기 위한 디자인과 구조
3. 메이플스토리 도입 사례
4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화
79
/ 99
“로그 파싱하려면 또 …………”
“운영툴 또 만드려면 …………”
“게임마다 특성이 달라서…………”
결론 : “시간을 많이주면 가능합니다만,
현재는 어쨌든 불가능합니다”
사람들이 싫어하는 발언 : 아쉽지만 저희
게임 전용입니다
80
/ 99
하나의 웹 운영툴 안에서 전체 게임을 관리할 수 있었으면 좋겠다.
백엔드 서버를 게임별로 두지 말고 하나의 프로세스 안에서 여러
게임을 핸들링 했으면 좋겠다.
BAN, KICK 등의 API 를 통일했으면 좋겠다.
플랫폼 화를 해보자
81
/ 99
좋은 말로, “어떤 게임이든 연동 가능하도록 플랫폼 화 되어 있습니다”
나쁜 말로, “찍어내기 가능합니다”
Bootstrap 과 Splunk 를 쓴 장점
82
/ 99
작업 시간 비교
83
최초 개발시 추가 게임 확장시
프론트엔드 개발 약 2개월 1-2일
백엔드 개발 약 2개월 2-3일
/ 99
여러 게임 동시 관리
84
/ 99
보안솔루션이 너무 많은 사람들의 걱정
85
/ 99
DB 팀이 싫어하는 것
86
A시스템도 BAN 만들어
달라고 하고
B 시스템도 BAN
만들어 달라고 하고
님들아 제발 통일좀…
나 보안팀…
여전히 마음만은 송중기
나 DB팀…
/ 99
네트워크팀이 싫어하는 것
87
A시스템도 IP 뚫어
달라고 하고
B 시스템도 IP 뚫어
달라고 하고…
한군데서 좀 하시져~
나 보안팀…
여전히 마음만은 송중기
나 네트워크팀…
/ 99
먼저, 넥슨코리아 게임보안팀의 NGS
88
/ 99
네오플 보안팀의 자체 개발 시스템도 합체
89
/ 99
네트워크/인프라 보안 시스템,
침입탐지시스템 (방화벽, IDS, IPS) 등과도 로그 결합 가능
인증대입공격 (Brute Force) 의 예제
네트워크 보안 로그도 가능할까요?
90
/ 9991
/ 99
어떤 시스템이든 연동가능
92
/ 99
신규 게임 런칭시, 공식 프로세스로 선정
93
“NexonABS 는 넥슨 아메리카 신규 게임 런칭시
반드시 탑재하고 가야 하는 필수 시스템입니다”
신규 개발사에 공식전달하는 문구
/ 99
개발팀을 위한 로그 포맷 가이드 추가
94
/ 99
처음에는 메이플스토리에만 붙히느라
급급했지만
추후에는 타 게임에도 사용할 수 있도록
기능을 API 화 시키고 정밀도도 상승
시간이 지나며 성숙도 상승
95
/ 99
데이터분석 – Investigation Team, DB 팀, 각 게임 개발팀
스플렁크 연동 – DB팀
API 연동 – DevOps 팀
타 시스템 연동 – 넥슨코리아 게임보안팀, 네오플 CERT 팀
운영팀 실태, 프로세스 협의 – Production Team, Investigation Team
많은 팀의 합작으로 가능했던 프로젝트
96
/ 99
유동규 (Sr. Security Engineer from NxA InfoSec Team)
백엔드 개발, 스플렁크 데이터 핸들링, 로그 디자인
프로젝트 참가자 – Thanks for the team !
97
최해길 (Lead Security Engineer from NxA InfoSec Team)
프론트엔드 개발, API 디자인, 시스템 통합 디자인
강병탁 (Sr. Security Manager from NxA InfoSec Team)
전체적인 결정, 프로세스 협의, 잔소리와 매질
/ 99
감사합니다.
Agenda
1. 현업에서 느끼는 현실적인 제약
2. 한계를 극복하기 위한 디자인과 구조
3. 메이플스토리 도입 사례
4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화

More Related Content

PDF
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
PDF
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
PPTX
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
PDF
게임 프로그래밍 기초 공부법
PPTX
어서와 게임기획은 처음이지?
PDF
Windows Registered I/O (RIO) vs IOCP
PDF
Modern C++ 프로그래머를 위한 CPP11/14 핵심
PDF
NDC12_Lockless게임서버설계와구현
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
게임 프로그래밍 기초 공부법
어서와 게임기획은 처음이지?
Windows Registered I/O (RIO) vs IOCP
Modern C++ 프로그래머를 위한 CPP11/14 핵심
NDC12_Lockless게임서버설계와구현

What's hot (20)

PDF
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
PDF
게임 서버 성능 분석하기
PDF
NDC 2014) 별바람의 기묘한 모험 1991-2014
PDF
[NDC2016] TERA 서버의 Modern C++ 활용기
PDF
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
PDF
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
PDF
테라로 살펴본 MMORPG의 논타겟팅 시스템
PPTX
UI아트 작업자를 위한 언리얼엔진4 UMG #1
PPTX
Windows system - memory개념잡기
PPTX
게임 분산 서버 구조
PPTX
AAA게임_UI_최적화_및_빌드하기.pptx
PPTX
NDC 2011 영웅전 런칭팀 박영준
PPTX
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
PDF
임태현, 게임 서버 디자인 가이드, NDC2013
PPT
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PDF
게임서버프로그래밍 #1 - IOCP
PPTX
모바일 게임 비즈니스 모델
PDF
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
PPTX
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
게임 서버 성능 분석하기
NDC 2014) 별바람의 기묘한 모험 1991-2014
[NDC2016] TERA 서버의 Modern C++ 활용기
게임회사 실무용어 완전정복! 쿡앱스 용어정리집
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
테라로 살펴본 MMORPG의 논타겟팅 시스템
UI아트 작업자를 위한 언리얼엔진4 UMG #1
Windows system - memory개념잡기
게임 분산 서버 구조
AAA게임_UI_최적화_및_빌드하기.pptx
NDC 2011 영웅전 런칭팀 박영준
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
임태현, 게임 서버 디자인 가이드, NDC2013
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
게임서버프로그래밍 #1 - IOCP
모바일 게임 비즈니스 모델
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
UE4 MultiPlayer Online Deep Dive 基礎編1 -Getting Started- (historia様ご講演) #UE4DD
Ad

Similar to 메이플스토리 사례를 통해 살펴보는 서버사이드 봇/핵 탐지 시스템 (20)

PDF
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
PDF
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
PDF
Tdc2013 선배들에게 배우는 server scalability
PDF
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
PPTX
데이터분석 기반 게임봇과 작업장 탐지 (NDC 2017)
PDF
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
PDF
NDC17 장창완(최종)
PPSX
[NDC 2017] 이카루스 북미 : 베타서비스 활용법
PDF
탐사분석을통한작업장탐지
PDF
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
PDF
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
PDF
[NDC2014]쉽게 따라 할 수있는 "꽤" 훌륭한 유저 동향 분석 시스템
PPTX
KGC 2014: 분산 게임 서버 구조론
PDF
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
PPSX
120515 security framework2.20
PDF
스마일게이트 서버개발캠프 - SERCLE - Final Fiction
PDF
한컴MDS_Splunk 기반의 빅데이터 활용 사례 소개
PDF
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
PDF
레이더즈 기술 사례
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
Tdc2013 선배들에게 배우는 server scalability
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
데이터분석 기반 게임봇과 작업장 탐지 (NDC 2017)
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC17 장창완(최종)
[NDC 2017] 이카루스 북미 : 베타서비스 활용법
탐사분석을통한작업장탐지
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
[NDC2014]쉽게 따라 할 수있는 "꽤" 훌륭한 유저 동향 분석 시스템
KGC 2014: 분산 게임 서버 구조론
[NDC2017 : 박준철] Python 게임 서버 안녕하십니까 - 몬스터 슈퍼리그 게임 서버
120515 security framework2.20
스마일게이트 서버개발캠프 - SERCLE - Final Fiction
한컴MDS_Splunk 기반의 빅데이터 활용 사례 소개
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
레이더즈 기술 사례
Ad

메이플스토리 사례를 통해 살펴보는 서버사이드 봇/핵 탐지 시스템

  • 1. / 99 메이플스토리 사례를 통해 살펴보는 서버사이드 봇/핵 탐지 시스템 InfoSec Team, 넥슨 아메리카 강병탁 ([email protected])
  • 2. / 99 이 세션은 백엔드/프론트엔드 개발에 촛점을 맞춥니다. 운영상 발생하는 프로세스에 촛점을 맞춥니다. 만든 시스템을 실전에서 지속적으로 유지할 수 있는지에 중점을 두었습니다.
  • 3. / 99 Agenda 1. 현업에서 느끼는 현실적인 제약 2. 한계를 극복하기 위한 디자인과 구조 3. 메이플스토리 도입 사례 4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화
  • 4. / 99 발표자 소개 강병탁 ([email protected] , window31) -현재 : 넥슨 아메리카 – InfoSec team 팀장 -과거 : 넥슨 코리아 – 게임보안팀 팀장 -월간 마이크로소프트웨어 해킹/보안 칼럼 작가 (2010 ~ 2012) -“리버스 엔지니어링 바이블” 작가
  • 5. / 99 Agenda 1. 현업에서 느끼는 현실적인 제약 2. 한계를 극복하기 위한 디자인과 구조 3. 메이플스토리 도입 사례 4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화 5
  • 6. / 99 더 설명하기 이젠 지겨우므로 가볍게 스킵… 대한민국 Active-X 와 상황이 비슷 클라이언트 보안의 한계 빈대 잡으려다 초가삼간 다 태운다 해커 정상유저 작살낸다 6
  • 7. / 99 세상이 어느 세상인데 아직도 클라이언트 사이드에서 보안하나요? 우리도 서버 사이드 탐지 시스템 하나 만들죠! 우리도 그정도는 될수있어요! 우리도 서버로 갑시다 7 특전사가 될거라면… 이정도 포스는 보여야 되는거 아닌지…
  • 8. / 99 하지만 정작 현실은… 8
  • 9. / 99 서버 사이드 탐지 시스템은 이상론에 불과한 것인가? (송중기 같은 군인이 현실에 존재하지 않는 이유?) 먼저 문제점을 환기해 보고, 해결 방법을 고민해 보았습니다. 단골로 고민하는 문제 9
  • 11. / 99 일단 로그가 너무 많다.데이터 핸들링 문제 11
  • 12. / 99 그래서 DB Job 이 도는데 보통은 하루에 한번이다. 해커는 핵을 써도 하루 정도는 안전하다 실시간 BAN 문제 12 나, 하루살이! 하루 정도는 살수있지 후훗.
  • 13. / 99 오탐! 자동 BAN 의 신뢰성 문제 13 나 터미네이터는 존 코너를 보호한다. 내가 존 코너야 ㅄ아!
  • 14. / 99 스레시홀드를 바꾸려고 할 때 단지, 10을 5로 바꾸고 싶을 뿐인데! 탐지 기준값 변경이 번거로운 문제 14 그거 바꾸려면 빌드 다시해야 되는데요? 빨라도 다음주에 나갑니다… 이미 3일은 못잔 포스…. 개발자
  • 15. / 99 if (dwDeathCount > 10) { // DoBAN(); } 하드코딩의 악몽 15
  • 16. / 99 그래서 DB 의 SP 로 처리하는 케이스가 많지만 16
  • 17. / 99 역시 피폐한 DBA 들… 17 개발팀이 하던일이 DB팀으로 옮겨갔을 뿐… (운영팀 입장) 또 SP 내용 바꿔달라고요? 지난번엔 10에서 5로 바꿔달라더니 이번엔 5에서 7로… DBA DBA 도 이미 3일은 못잔 포스….
  • 18. / 99 웹 운영툴이 가진 일반적인 문제 18 사용자가 원한 것 개발자가 만들어 준 것
  • 19. / 99 모 게임의 오토밴 시스템 19
  • 21. / 99 하지만, 그걸 본 운영팀의 반응 21
  • 22. / 99 서버사이드 탐지 시스템을 개발할 때 항상 겪는 문제 이것은 개발팀의 일인가? DB팀/데이터분석팀의 일인가? 보안팀의 일인가? 운영팀의 일인가? 누가 개발의 주체가 될 것인가? 22
  • 23. / 99 기술 자체에 너무 몰입하지 말자. 해킹방어는 속도가 생명이다. 일단 속도개선에 중점을 둬보자. 각 팀은 당연히 저마다 가진 사정이 있을 수밖에 없다. 최대한 다양한 팀의 이야기를 들어보자. 누군가 끌어가는 사람 PM 롤이 필요하다 마지막으로, 정작 이것을 사용하는 팀의 입장에서 생각해 보자. 문제점 요약 23
  • 24. / 99 실무 팀과의 형식적인 “회의” 말고 실질적인 “인터뷰”를 거쳐서 그들이 힘든 점이 무엇인지 얻어내는 작업을 먼저 거쳤습니다. 개선하기 위해 24
  • 25. / 99 Agenda 1. 현업에서 느끼는 현실적인 제약 2. 한계를 극복하기 위한 디자인과 구조 3. 메이플스토리 도입 사례 4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화 25
  • 26. / 99 운영팀이 빡친 이유 26 일일히 데이터를 요청해야하고 값만 하나 바꾸고 싶을 뿐인데 너무 오래 걸려요 나 보안팀… 마음만은 송중기 나 운영팀…
  • 27. / 99 개발/DB팀이 빡친 이유 27 너무 요청이 자주 오고 구조상 시간이 오래 걸릴 수밖에 없는데 이해를 잘 안해줘요 나 보안팀… 마음만은 송중기 나 개발/DB팀…
  • 28. / 99 데이터분석/DB팀이 빡친 이유 28 로그 가져오는데 걸리는 시간이 이루말할 수 없는 고통입니다 나 보안팀… 마음만은 송중기 나 데이터분석/DB팀…
  • 29. / 99 먼저– 로그수집 속도, 분석속도를 높히자 29 - 운영팀이 개발/DB팀에 요청하는 시간 - 개발/DB팀이 로그를 뽑는시간 + 복사하는 시간 - 그걸 다시 운영팀이 다시 복사하는 시간 - 액셀에 넣고 삽질하는 시간
  • 30. / 99 파이썬과 자동화 30 보통 자동화/로그파싱 하면 일단 떠올리는 것은 파이썬
  • 31. / 99 But, 로그 파싱의 악몽 31 이..이제 그만!!!!!
  • 32. / 99 스플렁크를 선택한 이유 32 스플렁크 찬양적인 영업적인 이야기 다 버리고, 순수하게 장점만 언급 1) 로그 수집이 자동으로 된다 (서버에 에이전트 하나만 심으면) 2) 로그 파싱을 알아서 해준다 (파서를 따로 개발할 필요가 없다) 3) 그래프를 매우 쉽게 그릴 수 있다 (웹 대시보드를 개발할 필요가 없다) 즉, 시간절약을 해 준다. 괜한 개발이슈가 생기지 않아서 좋다
  • 33. / 99 Universal Forwarder 33 서버가 몇개가 어디에 있던 로그수집이 실시간으로 된다. 더이상 개발팀/DB팀에 문의하지 않아도 된다.
  • 34. / 99 따라서 이런 로그도 그냥 스플렁크에 넣어버리면, 34
  • 35. / 9935 1시간이면 이런 그래프 제작 가능
  • 38. / 99 그래서 이렇게 그래프도 쉽게 만들었습니다 38
  • 39. / 99 이렇게 해서 나오는 애들은 바로 핵/봇 이예요! 39 index=gpt-ms sourcetype=maplestory:DetectedHack + 블라블라블라~ 링크만 그냥 전달하면 다른 사람도 쉽게 볼 수 있다.
  • 40. / 99 계정 밴을 할 최종 리스트 40
  • 41. / 99 어떤 점이 이득이었는지 41 데이터 수집 로그 파싱 시각화, 그래프화 3개가 해결되었습니다.
  • 42. / 99 하지만 여기서부터 수작업으로 연결되는 문제 42 액셀에서 결과 추출하여 DB 팀에 BAN 날려달라고 요청 또는 운영툴에서 하나씩 복사해가며 부정이용자 블럭 시작
  • 43. / 99 그 과정을 한번 자동화 해봅시다 43 스플렁크 쿼리 입력 부정 사용자 액셀로 추려냄 대량 제재 버튼 클릭 DB 로 BAN 수행 스플렁크 쿼리 자동 입력 NexonABS 백엔드 서버 부정 사용자 메모리에 추려냄 DB 로 BAN SP 호출 10분에 한번 수행
  • 45. / 99 실시간 계정 차단 수행 45 하루살이 해커(24시간 살이 해커) 박멸! 10분마다 핵/봇은 짤려나간다
  • 46. / 99 다음 과제 – 컨트롤 능력을 높히자 46 이 화면이 기억나시나요?
  • 47. / 99 우리도 이제 이렇게 많은 쿼리들이… 47 No Rule 1 index=gpt-ms sourcetype=maplestory:DetectedHack | search "Running Multiple Instances of MapleStory" | rex *********************************>w+)" | stats count AS DetectCount by AID 2 index=gpt-ms sourcetype=maplestory:DetectedHack | search "Illegal ExclRequestTime" | stats count as DetectCount by AID 3 index=gpt-ms AND sourcetype="maplestory:Macro" AND "Invalid User Action Position - Type:0" | stats count(ACCOUNTID) *********************************, WORLD, DetectCount | sort – DetectCount 4 index=gpt-ms sourcetype=maplestory:Macro "WARP - Illegal UserWarp Tried"| stats *********************************, WORLD, DetectCount | sort - DetectCount 40 index=gpt-ms AND sourcetype="maplestory:Macro" AND "Invalid User Action Position - Type:0" | stats count(ACCOUNTID) *********************************, WORLD, DetectCount | sort – DetectCount 41 index=gpt-ms sourcetype=maplestory:Macro "WARP - Illegal UserWarp Tried"| stats *********************************, WORLD, DetectCount | sort - DetectCount ………………..
  • 48. / 99 우리도 웹 운영툴 하나 만듭시다 48 오픈소스, Bootstrap, SB Admin 2 빠른 시간 내에 웹 프론트엔드 개발을 할 수 있음 요즘 대세인 웹 프레임워크 역시 목표는 시간절약!
  • 49. / 99 웹 운영툴 (SOC) 49
  • 50. / 99 이 페이지 기억하시나요? 50 이런 일이 발생하는 이유는?
  • 51. / 99 다시한번 실제 운영하는 쪽과 인터뷰를, 51 우린 블럭작업 할때 이르케 이르케 해여~ 요런 요런 순서대로 해요 그게 몸에 익었거든요 나 보안팀… 마음만은 송중기 나 운영팀…
  • 52. / 99 즉, 현재의 프로세스를 그대로 운영툴에 반영하자 52 스플렁크에서 데이터 조회 타 서버로그에서 더블 체크 최종 쿼리 뽑아냄 요 스플렁크 쿼리를 던져서 나오는 애들은 BAN 시켜도 됩니다
  • 56. / 9956 자, 이제서야 컨트롤이 되는군요! A조건으로 차단 B조건으로 차단 C조건으로 차단 D조건으로 차단 개발팀 재빌드나 DB 팀 SP 수정 없이 차단 수위를 조절할 수 있게 되었습니다!
  • 57. / 99 다음 고민, 누가 운영의 주체가 될 것인가? 57 이 페이지 기억나시는지요?
  • 58. / 99 그럼 이제 누가 사용할래? 유지보수는 어떻게 하지? 이것은 개발팀의 일인가? DB팀/데이터분석팀의 일인가? 보안팀의 일인가? 운영팀의 일인가? 다시 그 질문으로 돌아오게 됩니다 58
  • 59. / 99 오진이 발생하는 것을 보면 점점 귀찮고 짜증이 나게 됨 하다보면 좀더 정밀한 검토를 필요로 하게 되는 로그가 꼭 튀어나옴 하지만 고쳐도 고쳐도 끝이 없음, 결국 하게되는 말은, “자동밴 버튼 누르기 전에 운영팀에서 더블체크 꼭 해보세요~” 결국 운영팀은… 개발하고 나면 꼭 생기는 문제 59
  • 60. / 99 결국 운영팀은 버튼을 누르지 않음 60 Auto-BAN 정말 눌러도 되는 걸까? ?!!
  • 61. / 99 이것이 바로 시스템이 방치되는 이유 61 오탐이 많아서 못 쓰겠어요 고치기도 힘든것 같고 그냥 안써요 나 보안팀… 여전히 마음만은 송중기 나 운영팀…
  • 62. / 99 그래서 다시한번 조사했습니다. 62 수동으로 BAN 날리시기 전에 뭐뭐 체크하세요? 뭘 체크해야 믿고 BAN 날리나요? 나 보안팀… 여전히 마음만은 송중기 나 운영팀…
  • 63. / 99 운영팀이 하는 체크로직들. 이정도 체크가 되면 운영팀은 안심하고 BAN 을 날릴 수 있다. 리스트를 뽑았으니, 63
  • 64. / 99 그럼 그것도 자동화를 해보죠 64 스플렁크 쿼리 입력 부정 사용자 액셀로 추려냄 대량 제재 버튼 클릭 DB 로 BAN 수행 스플렁크 쿼리 자동 입력 NexonABS 백엔드 서버 10분 루프 부정 사용자 메모리에 추려냄 DB 로 BAN SP 호출 FILTER 화이트리스트 필터링 기능 추가
  • 65. / 99 그리고 화이트리스트 룰은 운영팀이 만드세요 65 . .
  • 66. / 99 개발팀 : 소스코드에 하드코딩된거 고치기 싫어!누가 웹 운영툴좀 만들어줘! DB/데이터분석팀 : 데이터 수집하는 시간과 분석하는 시간 단축해줘! 운영팀 : 우리가 직접 룰조정 할 수 있게 해줘! 오진을 없애줘! 보안팀 : 나도 뭔가 할 수 있게 해줘! 니넨 하는 일이 뭐야? 라는 말 듣기싫어! 각 팀이 가진 불만들을 일단 해결 66
  • 67. / 99 Agenda 1. 현업에서 느끼는 현실적인 제약 2. 한계를 극복하기 위한 디자인과 구조 3. 메이플스토리 도입 사례 4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화 67
  • 68. / 99 • 넥슨 아메리카 최장수 게임 • 봇들과 핵이 많은 상태, 3rd party 보안회사의 클라이언트 사이드의 보안시스템은 효과가 거의 없던 상태 • 이미 현존하는 많은 게임서버 로그가 있었지만 활용도가 낮았던 상태 • 로그 파싱의 고통이 있던 상태 • 자동 밴 오진이 있었던 상태 • 게임 경제가 매우 좋지 않았던 상태 Prebuild 68
  • 69. / 99 NexonABS 도입 진행 69 프론트엔드, 백엔드 개발 시간이 최초엔 어느 정도 소요되었음 (총 3개월) 미국법인에서 NexonABS 를 붙히게 된 최초의 게임 현재 총 53개의 룰이 있고, 유동적으로 on/off 진행중
  • 70. / 99 운영팀의 빠른 솔로 플레이가 가능해짐 70 새로운 룰 작성 : 직접 처리 스레시홀드 조정 : 직접 처리 BAN 결정 : 직접 처리 롤백 : 직접 처리 개발팀과 DB 팀도 시간적 여유가 생김
  • 71. / 99 Example 71 ABS Rule 51: MVAC (Monster Vac) Description: Rule designed to detect illegal forced monster movements (a.k.a. "monster vac" or "mvac"). Rule Basis: Detection of log: “MobFlashFast - Mob Velocity suddenly changed” in “DetectedHack” log file. Test Log Start: 2/10 Detection Criteria: 100 detections per 10 minutes. Total Detections: 3,433 Unique Accounts: 207 Spot check results: Excellent. Very Low to Zero false positives.
  • 72. / 99 운영팀 스스로 제안 가능 72 “ 3번 룰에 대해 운영팀 내에서 탐지 감도를 여러 차례 바꿔가며 1주일간 로깅 상태로 지켜봤습니다. 이대로 자동BAN으로 전환해도 괜찮을 것 같습니다. 찬성하시는지요? ”
  • 73. / 99 빠르고 간편한 만장일치 프로세스 73 마케팅팀 개발팀 보안팀
  • 74. / 99 유연한 정책 74 In-Game 이벤트 때는 운영팀 스스로 OFF 가능 때로는 마케팅 팀에서 잠시 BAN 을 멈추자고 제안할때도 즉시 처리 가능
  • 75. / 99 한참 피크 때에 하루 최고 BAN 횟수 75 OVER 10,000
  • 76. / 99 고객센터 오탐관련 불만 티켓 접수건 76 ZERO
  • 77. / 99 안정되고 있는 게임 경제 77
  • 78. / 99 메이플스토리 공식 보안 프로덕트로 인정받음 78 물론 이런 상을 받은건 아닙니다…
  • 79. / 99 Agenda 1. 현업에서 느끼는 현실적인 제약 2. 한계를 극복하기 위한 디자인과 구조 3. 메이플스토리 도입 사례 4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화 79
  • 80. / 99 “로그 파싱하려면 또 …………” “운영툴 또 만드려면 …………” “게임마다 특성이 달라서…………” 결론 : “시간을 많이주면 가능합니다만, 현재는 어쨌든 불가능합니다” 사람들이 싫어하는 발언 : 아쉽지만 저희 게임 전용입니다 80
  • 81. / 99 하나의 웹 운영툴 안에서 전체 게임을 관리할 수 있었으면 좋겠다. 백엔드 서버를 게임별로 두지 말고 하나의 프로세스 안에서 여러 게임을 핸들링 했으면 좋겠다. BAN, KICK 등의 API 를 통일했으면 좋겠다. 플랫폼 화를 해보자 81
  • 82. / 99 좋은 말로, “어떤 게임이든 연동 가능하도록 플랫폼 화 되어 있습니다” 나쁜 말로, “찍어내기 가능합니다” Bootstrap 과 Splunk 를 쓴 장점 82
  • 83. / 99 작업 시간 비교 83 최초 개발시 추가 게임 확장시 프론트엔드 개발 약 2개월 1-2일 백엔드 개발 약 2개월 2-3일
  • 84. / 99 여러 게임 동시 관리 84
  • 85. / 99 보안솔루션이 너무 많은 사람들의 걱정 85
  • 86. / 99 DB 팀이 싫어하는 것 86 A시스템도 BAN 만들어 달라고 하고 B 시스템도 BAN 만들어 달라고 하고 님들아 제발 통일좀… 나 보안팀… 여전히 마음만은 송중기 나 DB팀…
  • 87. / 99 네트워크팀이 싫어하는 것 87 A시스템도 IP 뚫어 달라고 하고 B 시스템도 IP 뚫어 달라고 하고… 한군데서 좀 하시져~ 나 보안팀… 여전히 마음만은 송중기 나 네트워크팀…
  • 88. / 99 먼저, 넥슨코리아 게임보안팀의 NGS 88
  • 89. / 99 네오플 보안팀의 자체 개발 시스템도 합체 89
  • 90. / 99 네트워크/인프라 보안 시스템, 침입탐지시스템 (방화벽, IDS, IPS) 등과도 로그 결합 가능 인증대입공격 (Brute Force) 의 예제 네트워크 보안 로그도 가능할까요? 90
  • 92. / 99 어떤 시스템이든 연동가능 92
  • 93. / 99 신규 게임 런칭시, 공식 프로세스로 선정 93 “NexonABS 는 넥슨 아메리카 신규 게임 런칭시 반드시 탑재하고 가야 하는 필수 시스템입니다” 신규 개발사에 공식전달하는 문구
  • 94. / 99 개발팀을 위한 로그 포맷 가이드 추가 94
  • 95. / 99 처음에는 메이플스토리에만 붙히느라 급급했지만 추후에는 타 게임에도 사용할 수 있도록 기능을 API 화 시키고 정밀도도 상승 시간이 지나며 성숙도 상승 95
  • 96. / 99 데이터분석 – Investigation Team, DB 팀, 각 게임 개발팀 스플렁크 연동 – DB팀 API 연동 – DevOps 팀 타 시스템 연동 – 넥슨코리아 게임보안팀, 네오플 CERT 팀 운영팀 실태, 프로세스 협의 – Production Team, Investigation Team 많은 팀의 합작으로 가능했던 프로젝트 96
  • 97. / 99 유동규 (Sr. Security Engineer from NxA InfoSec Team) 백엔드 개발, 스플렁크 데이터 핸들링, 로그 디자인 프로젝트 참가자 – Thanks for the team ! 97 최해길 (Lead Security Engineer from NxA InfoSec Team) 프론트엔드 개발, API 디자인, 시스템 통합 디자인 강병탁 (Sr. Security Manager from NxA InfoSec Team) 전체적인 결정, 프로세스 협의, 잔소리와 매질
  • 98. / 99 감사합니다. Agenda 1. 현업에서 느끼는 현실적인 제약 2. 한계를 극복하기 위한 디자인과 구조 3. 메이플스토리 도입 사례 4. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화