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팀이 로그를 뽑는시간 + 복사하는 시간
- 그걸 다시 운영팀이 다시 복사하는 시간
- 액셀에 넣고 삽질하는 시간
32. / 99
스플렁크를 선택한 이유
32
스플렁크 찬양적인 영업적인 이야기 다 버리고, 순수하게 장점만 언급
1) 로그 수집이 자동으로 된다 (서버에 에이전트 하나만 심으면)
2) 로그 파싱을 알아서 해준다 (파서를 따로 개발할 필요가 없다)
3) 그래프를 매우 쉽게 그릴 수 있다 (웹 대시보드를 개발할 필요가 없다)
즉, 시간절약을 해 준다. 괜한 개발이슈가 생기지 않아서 좋다
41. / 99
어떤 점이 이득이었는지
41
데이터 수집
로그 파싱
시각화, 그래프화
3개가 해결되었습니다.
42. / 99
하지만 여기서부터 수작업으로 연결되는 문제
42
액셀에서 결과 추출하여 DB 팀에 BAN 날려달라고 요청
또는 운영툴에서 하나씩 복사해가며 부정이용자 블럭 시작
43. / 99
그 과정을 한번 자동화 해봅시다
43
스플렁크
쿼리 입력
부정 사용자
액셀로 추려냄
대량 제재
버튼 클릭
DB 로
BAN 수행
스플렁크
쿼리 자동 입력
NexonABS 백엔드 서버
부정 사용자
메모리에 추려냄
DB 로
BAN SP 호출
10분에
한번 수행
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
화이트리스트
필터링
기능 추가
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으로 전환해도
괜찮을 것 같습니다.
찬성하시는지요? ”
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. 특정 게임을 넘어서, 타 게임을 위한 플랫폼화