SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
1
By LINE Corp. MYEONG JAE , LEE
20180405
• LINE GAME 특징
• LINE GAME Security Life Cycle
• LINE GAME 보안업무 소개, 각 프로세스별
• 가이드제공/보안검수/모니터링
• 최근 어뷰징 경향 및 대응사례 소개
• 기타 관련 내용
• 게임치팅이외의 취약사례
목차
2018/4/24 2
• 이용자:LINE유저
• LINE플랫폼(LINE로그인, LINE STORE등 이용가능)과 연계
• 소셜기능(친구초대, 타임라인투고, 하트송신, 하트부탁 등)이용 가능
• 사전등록 혜택, 미션달성하면 LINE스탬프 등을 받을 수 있는 이벤트를 개최하는 경우도
있음
• 게임내 통화가 존재(1차통화, 2차통화),친구간 통화의 매매는 불가
• 보안(Security)=LINE유저의 보호(&abuser대응)
• 릴리즈 형태 : 퍼블리싱, 채널링, 세미퍼브
• 릴리즈 타이틀 확인
• https://line.me/ja/games
• http://game-blog.line.me/
• https://gdc.game.line.me/games/
• SDK 제공(보안모듈 포함)
LINE GAME 특징
2018/4/24 3
LINE GAME 특징
2018/4/24 4
LINE GAME Security Life Cycle
Check
ActionDevelop
Plan
Close
start end
기획검토
가이드제공,
컨설팅
보안검수
모니터링
환불처리, backup 등
릴리즈 전 릴리즈후 서비스종료
2018/4/24 5
보안 가이드 보안 모듈 보안검수 어뷰저 모니터링
구분 설명 비고
보안 가이드라인 제공 • 보안 가이드라인의 작성 및 갱신 • 사내git상에 공개
보안모듈(클라이언트)제공 • 보안 모듈의 제공/치팅탐지
• 보안모듈이 수집한 로그의 분석
• Rooting, 치팅툴탐지, 파일변조탐지
난독화 기능
보안검수 • 릴리즈전에 ipa/apk파일을 대상으로
해커의 입장에서 보안검수
• 퍼블리싱/채널링 형태와 관계없이 진행
• 메모리치팅, 게임조작, 그외
정보노출 등을 체크
Abuser모니터링 및 데이터 분석 • 클라이언트 모듈이 수집하는
security지표를 분석하여 모니터링
• 매일 이상유저를 모니터링
• 커뮤니티 사이트 모니터링
• 옥션 치팅상품 모니터링
LINE GAME 보안업무 일부소개
2018/4/24 6
가이드 제공 단계(릴리즈전)
메모리 치팅 대응에서 흔히 범하기 쉬운 실수
https://assetstore.unity.com/packages/tools/utilities/anti-cheat-toolkit-10395
2018/4/24 7
가이드 제공 단계(릴리즈전)
Unity 제작게임 : IL2CPP 컴파일옵션
https://engineering.linecorp.com/ja/blog/detail/110
2018/4/24 8
• 클라이언트를 보호하기하기 위한 목적으로 개발되었으나, 완전한 대책이 아닌 보험적인
대책(영향의 경감)적인 방어 및 모니터링 역할
• Root・jailbreak검지/치팅툴검지/바이너리변조검지(어뷰저의 규모 등 추측가능)
• 로그수집을 통하여 사후대응(밴/경고)가능
• 어뷰저의 분석작업을 어렵게 하는 장치로도 작용
• 스크립트키디에게는 넘어야 할 산
• 단 전문지식을 가지고 있어 어떻게든 해킹하고 싶은 해커에게 뚫릴 가능성은 항시존재
클라이언트 보안모듈의 역할 (릴리즈전)
※포켓몬고에서는 위치정보 변조, 내부 api 부정접근등의 치트행위가 문제가 되어 루팅단말기는 허용하지
않는 대책이 있었음(SaftyNet)
2018/4/24 9
보안검수 단계 (릴리즈전)
• 해커의 입장에서 클라이언트/통신구간/로컬 모두 점검
• 메모리치팅, 바이너리 변조 체크
• 통신변조, 과금우회 체크
• iOS바이너리 분석
• /var/mobile/Containers/Bundle/Application/appname/appname.app/appname
• clutch, classdump, IDA pro분석
• Android바이너리 분석
• /appname/classes.dex or /appname/lib
• Apktool , dex2jar, smail/baksmail 등
• 빌드파일(apk,ipa)에 대한 취약점 자동스캔
• 취약점 발견시 자동으로 메일발송
• https://developer.android.com/google/play/asi.html
2018/4/24 10
취약점 설명
개인정보
노출가능성
게임 순위에
대한 영향
매출 영향
유저의
재현 가능성
취약점이 twitter/소셜
및 인터넷에 공개될
경우의 걱정
Memory Cheat
・메모리를 조작하여 게임내
통화,스코어 등을 변조가능
없음 있음
있음
(과금하지 않고도
게임에 유리)
・jailbreak/rooting에서만 재현
가능한 취약점
・치팅툴 조작은 그렇게
전문적인 지식이 필요하지
않음
・유저 불안요소
・reputation리스크
Abuse of Functionality
・파라메터를 조작하여
게임내 통화, 스코어 등을
변조가능
・설정파일, save데이터 등을
조작
없음 있음
있음
(과금하지 않고도
게임에 이익)
・클라이언트, 서버간의 통신을
분석할 필요가 있음
・프록시툴 사용 지식이 있는
유저라면 재현가능
・유저 불안요소있음
・reputation리스크
Insufficient Process
Validation
・save데이터의 바꿔치기
(타인과 공유)
있음
(경우에 따라)
있음
(경우에 따라)
있음
(경우에 따라)
・save데이터의 바꿔치기는
누구나 따라할 수 있다.
・유저 불안요소있음
・reputation리스크
Insufficient Anti-
automation
・replay&자동플레이가 가능 없음
있음
(경우에 따라)
있음
・프록시툴 사용 지식이 있는
유저라면 재현가능
・유저 불안요소있음
・reputation리스크
Insufficient
Authorization
・부적절한 퍼미션(android) 없음 없음 없음
・android의 경우, 인스톨시
유저가 확인가능
・유저 불안요소있음
・reputation리스크
Information Leakage
・클라이언트에
단말정보(UDID,MAC),디버그
관련 파일의 저장
없음 없음 없음
・클라이언트, 서버간의 통신을
분석할 필요가 있음
-
Phurchase bypass
・apple/google과금에서
부정금입이 가능
없음 있음 있음
・클라이언트, 서버간의 통신을
분석할 필요가 있음
-
Insufficient
Authentication
・타인으로 위장 가능, 타인이
구입하나 아이템을 자신이
사용가능
있음
(경우에 따라)
없음 없음
・클라이언트, 서버간의 통신을
분석할 필요가 있음
-
Leakage private
information
・유저 식별자 및 중요정보가
클라이언트에 평문으로 저장
혹은 평문으로 송신
있음 없음 없음
・클라이언트, 서버간의 통신을
분석할 필요가 있음
-
보안검수/취약점 고찰(릴리즈전)
2018/4/24 11
수집한 게임데이터를 분석하여 이상 유저를 매일 모니터링
⇒이상유저의 탐지 및 BAN대응 및 경고
・임계치 베이스
임계치를 정하여 이상유저를 검지하는 방법
게임내 통화에 대하여 효과적(Abuser의 목적:통화<>스코어<>아이템)
・스코어 베이스
정규분포에서 얼마나 떨어져 있는지 게임요소에 스코어를 부여하여 스코어가 높은 유저를 이상유저로
판단하는 방법(게임요소에 의존하지 않는다. )
모니터링 단계 (릴리즈후)
2018/4/24 12
Abusing의 목적
• 금전이익:치팅, 치트상품 판매, 정보판매 등
• 소셜상에서 자기과시(LINE친구에게 랭킹등)
Abuser의 타입
• 통화계의 abusing
• 스코어(랭킹)계의 abusing
• 아이템계의 abusing
• 하트계의 abusing
• (상기 모두 관련성이 있으나 구별한다면)
사후대응에 관하여
• BAN(및 경고) 및 아이템 회수
• 실제 서버의 데이터를 확인하여, 변조를 실시한 유저에 대하여
BAN(및 경고) 및 아이템을 회수, 국가에 따라서는 법률이 틀리기 때문에 대응이 다른 케이스가
존재
• 원인 조사 및 수정
• 서비스에 따라서는 취약점을 수정하지 않고 사후 대응으로 진행하는 케이스가 있음
• 계속적인 모니터링이 중요
Abuser탐지 및 대응에 대한 생각
2018/4/24 13
Unity dll 변조의 어뷰저가 많다
• unity 3d제작용 타이틀이 많다.
• 클라이언트측에서 중요 연산이 많은 경우가 있다.
• Assembly-CSharp.dll 디컴파일이 쉽다.
ios바이너리 변조가 증가
• Android(apk)만이 변조대상이 아니다
• ios도 jailbreak된 단말기에서는 변조바이너리(ipa)를 인스톨하여 사용가능
• 중국 타오바오 사이트에서는 치트상품이 등장
최근의 abusing경향소개
2018/4/24 14
게임치팅 대응 사례(AIR활용)
치팅apk 파일을 부정으로 인스톨하여 사용한 유저의 탐지
라인게임은 글로벌로 릴리즈가 되는 경우가 많은데, 특히 해외의 경우, 치팅이슈가 커뮤니티 사이트를 통해 활발히 공유되고
있습니다.
사내에서 개발한 툴에서는 치팅apk파일을 부정으로 인스톨한 유저를 특정할 수 있는 기능을 제공하고 있어서, 치팅apk을
입수/인스톨하여 게임플레이한 유저를 대응하고 있습니다.
유니티 게임의 변조를 탐지
라인게임은 유니티로 제작되는 게임이 많은데, 특히 유니티는 디컴파일이 용이한 특성이 있어서 게임이 변조되는 경우가 많습니다.
사내에서 개발한 툴에서는 유니티 변조에 대해서 상시 모니터링 할 수 있는 기능을 제공하고 있어서, 변조한 유저를 대응 하고
있습니다.
2018/4/24 15
게임치팅 대응 사례(AIR활용)
ios 바이너리 변조를 탐지
모바일앱의 변조는 android가 중심이었는데 최근에는 ios에서도 변조가 많이 발생하고 있습니다.
사내에서 개발한 툴에서는 android는 물론 ios의 바이너리 변조에 대해서도 상시 모니터링 할 수 있는 기능을 제공하고
있어서, 변조 유저에 대하여 대응하고 있습니다.
BOT 유저를 탐지
BOT유저는 탐지가 쉬울 수 도 있고, 어려울 수 도 있다.
해외에 서버를 만들고, 웹페이지에서 게임플레이가 가능한 사례
특정 IP에서 몇일간 연속으로 로그인하여 게임을 플레이한 유저.
앱을 사용하여 게임플레이를 하지 않기 때문에 특정부분에 게임로그가 남지 않는 특성이 있음
2018/4/24 16
기타 (게임치팅 입건사례)
2015년 11월
치팅프로그램을 인스톨한 스마트폰을 인터넷 옥션에 출품한 고등학생을 저작권법 위반(기술적 보호수단을 회피하는
프로그램을 복제물양도) 으로 체포
http://www.sankei.com/west/news/151122/wst1511220045-n1.html
2016년 3월
부정프로그램을 사용하여 획득한 캐릭터를 옥션에 판매하여 440만엔을 이익을 챙긴 유저를 체포
http://www.sankei.com/affairs/news/160301/afr1603010008-n1.html
2018년 1월
텐센트가 최소 30건의 핵 개발, 유포 건을 해결하고 관련 용의자만 120명을 체포
http://www.zdnet.co.kr/news/news_view.asp?artice_id=20180118091314
2018/4/24 17
기타
옥션 치팅상품에 관하여
게임 치팅취약성을 이용하여, 치팅대행 등의 상품
치팅상품을 판매함으로써 금전이익, 해외에서는 이미 상식화 됨(일본옥션, 중국타오바오사이트 등)
상품삭제 조취 등 옥션 상품 출품자에 대한 제재가 현실적으로 어려움
중요 커뮤니티사이트 모니터링
http://apk.tw/
https://androidrepublic.org/
https://www.androidthaimod.com/
http://appzzang.ca/
구글 리펀드어뷰징
게임내 재화를 구입후, 리펀드하는 어뷰징
게임운영단에서 리펀드 유저를 감시하여, 재화 회수 및 대응필요
국내 게임사중에는 구글과 협의하여 리펀드를 자사가 핸들링하는 케이스가 있음
2018/4/24 18
토큰치환 공격이란
엑세스토큰의 발행원을 확인하지 않아서, 타앱에 발행된 엑세스토큰으로 자신이 원하는 앱에
인증하는 문제
Token Substitution (OAuth Login)
https://tools.ietf.org/html/rfc6819#section-4.4.2.6
Token 확인용 api
https://developers.line.me/restful-api/overview#check_token
https://developers.google.com/identity/protocols/OAuth2UserAgent#validate-access-token
https://developers.facebook.com/docs/graph-api/changelog#v2_0
https://developers.facebook.com/docs/facebook-login/security#tokenhijacking
토큰치환 공격(게임치팅 이외의 취약사례)
oauth 플랫폼
A앱 B앱 C앱
A앱용 엑세스토큰 B앱용 엑세스토큰 C앱용 엑세스토큰
인증시, B앱용의
엑세스토큰인지를 검증하지
않음
2018/4/24 19
SSL 증명서 에러 무시문제
클라이언트앱에서 SSL증명서 에러를 무시할 경우 SSL통신이 도청가능한 문제
SSL 증명서 에러 무시문제 (게임치팅 이외의 취약사례)
증명서 스토어
SSL socket 게임서버
①SSL 서버증명서 요청
②SSL 서버증명서 송신
게임앱
(클라이언트) SSL서버
증명서
공인 인증서1
SSL서버
증명서
③SSL 서버증명서 검증
공인인증서2
HTTPS
・・・
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed(); //SSL에러가 발생해도 무시
}
});
SSLSocketFactory socketFactory = new CustomSSLSocketFactory(trustStore);
socketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); // 증명서의 호스트명이
무엇이라도 SSL통신을 허가
HttpsURLConnection httpsUrlConnection = (HttpsURLConnection)connectURL.openConnection();
httpsUrlConnection.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession sslSession) {
return true; // SSL증명서의 CN이 무엇이라도 SSL통신을 허가
}
});
로그인정보, 게임결과 정보, 게임자원 다운로드, 민감한 정보 등
2018/4/24 20
-NSURLRequest 의 allowsAnyHTTPSCertificateForHost
취약한 예 :
@implementation NSURLRequest(IgnoringCertificateError)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{ return YES; }
@end
- NSURLConnection 의 continueWithoutCredentialForAuthenticationChallenge
취약한 예 :
- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
생략
[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
생략
}
-ASIHTTPReqeust의 setValidatesSecureCertificate
취약한 예 :
생략
[request setValidatesSecureCertificate:NO];
생략
SSL 증명서 에러 무시문제 (게임치팅 이외의 취약사례)
2018/4/24 21
SSL 증명서 에러 무시문제 (게임치팅 이외의 취약사례)
• Charles proxy : https://www.charlesproxy.com/
• Burp proxy : https://portswigger.net/burp
• Fiddler proxy : https://www.telerik.com/fiddler
2018/4/24 22
https://www.shodan.io/search?query=game
인프라는 노출되지 않는가(게임치팅 이외의 취약사례)
2018/4/24 23
• 보안엔지니어가 바라본 unity(セキュリティエンジニアからみたUnityのこと)
https://engineering.linecorp.com/ja/blog/detail/110
• OWASP Night at SHIBUYA, the 22nd 최근의 game security진단에 관하여(近年の
Game Security診断について)
https://www.nevermoe.com/wp-content/uploads/2017/05/owasp_jp_pubver.pdf
• security x line platform
https://www.slideshare.net/linecorp/a-5-security-x-line-platform
기타(공개자료)
2018/4/24 24
감사합니다.
https://air.line.me/
마지막
2018/4/24 25

Contenu connexe

Similaire à LINE Game Security III by LINE Corp. Lee Myeong Jae 20180405

실전코드로 살펴보는 개발 프레임워크와 AJAX웹 개발 1
실전코드로 살펴보는 개발 프레임워크와 AJAX웹 개발 1실전코드로 살펴보는 개발 프레임워크와 AJAX웹 개발 1
실전코드로 살펴보는 개발 프레임워크와 AJAX웹 개발 1
mosaicnet
 
AWS를 활용한 게임 데이터에 AI/ML솔루션 적용::김성수::AWS Summit Seoul 2018
AWS를 활용한 게임 데이터에 AI/ML솔루션 적용::김성수::AWS Summit Seoul 2018AWS를 활용한 게임 데이터에 AI/ML솔루션 적용::김성수::AWS Summit Seoul 2018
AWS를 활용한 게임 데이터에 AI/ML솔루션 적용::김성수::AWS Summit Seoul 2018
Amazon Web Services Korea
 
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
tcaesvk
 

Similaire à LINE Game Security III by LINE Corp. Lee Myeong Jae 20180405 (20)

[데브시스터즈] 세계 선도 IT사 및 게임사 벤치마킹 & 인사이트 보고서 (5부)_거시 및 고객지표 통해 바라본 게임산업 outlook &...
[데브시스터즈] 세계 선도 IT사 및 게임사 벤치마킹 & 인사이트 보고서 (5부)_거시 및 고객지표 통해 바라본 게임산업 outlook &...[데브시스터즈] 세계 선도 IT사 및 게임사 벤치마킹 & 인사이트 보고서 (5부)_거시 및 고객지표 통해 바라본 게임산업 outlook &...
[데브시스터즈] 세계 선도 IT사 및 게임사 벤치마킹 & 인사이트 보고서 (5부)_거시 및 고객지표 통해 바라본 게임산업 outlook &...
 
[BLT토크콘서트] BM특허 전략과 소송대응전략 20170424
[BLT토크콘서트] BM특허 전략과 소송대응전략 20170424[BLT토크콘서트] BM특허 전략과 소송대응전략 20170424
[BLT토크콘서트] BM특허 전략과 소송대응전략 20170424
 
보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법보안 위협 형태와 악성코드 분석 기법
보안 위협 형태와 악성코드 분석 기법
 
Online game security
Online game securityOnline game security
Online game security
 
비트코인과 디지털통화 - 이주영
비트코인과 디지털통화 - 이주영비트코인과 디지털통화 - 이주영
비트코인과 디지털통화 - 이주영
 
20180828 block chainmarketing
20180828 block chainmarketing20180828 block chainmarketing
20180828 block chainmarketing
 
[PandoraCube] APK를 출시한다면
[PandoraCube] APK를 출시한다면[PandoraCube] APK를 출시한다면
[PandoraCube] APK를 출시한다면
 
모바일 게임의 이해 : 생존을 넘어서 PART 1,2 선행 공개
모바일 게임의 이해 : 생존을 넘어서 PART 1,2 선행 공개모바일 게임의 이해 : 생존을 넘어서 PART 1,2 선행 공개
모바일 게임의 이해 : 생존을 넘어서 PART 1,2 선행 공개
 
codeache
codeachecodeache
codeache
 
모바일 게임 보안
모바일 게임 보안모바일 게임 보안
모바일 게임 보안
 
안전한 사이버 세상을 위한 데이터 애널리틱스
안전한 사이버 세상을 위한 데이터 애널리틱스안전한 사이버 세상을 위한 데이터 애널리틱스
안전한 사이버 세상을 위한 데이터 애널리틱스
 
(130413) #fitalk trends in d forensics (mar, 2013)
(130413) #fitalk   trends in d forensics (mar, 2013)(130413) #fitalk   trends in d forensics (mar, 2013)
(130413) #fitalk trends in d forensics (mar, 2013)
 
실전코드로 살펴보는 개발 프레임워크와 AJAX웹 개발 1
실전코드로 살펴보는 개발 프레임워크와 AJAX웹 개발 1실전코드로 살펴보는 개발 프레임워크와 AJAX웹 개발 1
실전코드로 살펴보는 개발 프레임워크와 AJAX웹 개발 1
 
AWS를 활용한 게임 데이터에 AI/ML솔루션 적용::김성수::AWS Summit Seoul 2018
AWS를 활용한 게임 데이터에 AI/ML솔루션 적용::김성수::AWS Summit Seoul 2018AWS를 활용한 게임 데이터에 AI/ML솔루션 적용::김성수::AWS Summit Seoul 2018
AWS를 활용한 게임 데이터에 AI/ML솔루션 적용::김성수::AWS Summit Seoul 2018
 
Inc0gnito fuzzing for_fun_sweetchip
Inc0gnito fuzzing for_fun_sweetchipInc0gnito fuzzing for_fun_sweetchip
Inc0gnito fuzzing for_fun_sweetchip
 
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
NDC 2013, 마비노기 영웅전 개발 테크니컬 포스트-모템
 
왜 레진코믹스는 구글앱엔진을 선택했나
왜 레진코믹스는 구글앱엔진을 선택했나왜 레진코믹스는 구글앱엔진을 선택했나
왜 레진코믹스는 구글앱엔진을 선택했나
 
201111_스마트폰 애플리케이션 블랙마켓_KISA
201111_스마트폰 애플리케이션 블랙마켓_KISA201111_스마트폰 애플리케이션 블랙마켓_KISA
201111_스마트폰 애플리케이션 블랙마켓_KISA
 
증강현실 인터랙션 기술동향 (김동철 선임)
증강현실 인터랙션 기술동향 (김동철 선임)증강현실 인터랙션 기술동향 (김동철 선임)
증강현실 인터랙션 기술동향 (김동철 선임)
 
증강현실 인터랙션 기술동향
증강현실 인터랙션 기술동향증강현실 인터랙션 기술동향
증강현실 인터랙션 기술동향
 

LINE Game Security III by LINE Corp. Lee Myeong Jae 20180405

  • 1. 1 By LINE Corp. MYEONG JAE , LEE 20180405
  • 2. • LINE GAME 특징 • LINE GAME Security Life Cycle • LINE GAME 보안업무 소개, 각 프로세스별 • 가이드제공/보안검수/모니터링 • 최근 어뷰징 경향 및 대응사례 소개 • 기타 관련 내용 • 게임치팅이외의 취약사례 목차 2018/4/24 2
  • 3. • 이용자:LINE유저 • LINE플랫폼(LINE로그인, LINE STORE등 이용가능)과 연계 • 소셜기능(친구초대, 타임라인투고, 하트송신, 하트부탁 등)이용 가능 • 사전등록 혜택, 미션달성하면 LINE스탬프 등을 받을 수 있는 이벤트를 개최하는 경우도 있음 • 게임내 통화가 존재(1차통화, 2차통화),친구간 통화의 매매는 불가 • 보안(Security)=LINE유저의 보호(&abuser대응) • 릴리즈 형태 : 퍼블리싱, 채널링, 세미퍼브 • 릴리즈 타이틀 확인 • https://line.me/ja/games • http://game-blog.line.me/ • https://gdc.game.line.me/games/ • SDK 제공(보안모듈 포함) LINE GAME 특징 2018/4/24 3
  • 5. LINE GAME Security Life Cycle Check ActionDevelop Plan Close start end 기획검토 가이드제공, 컨설팅 보안검수 모니터링 환불처리, backup 등 릴리즈 전 릴리즈후 서비스종료 2018/4/24 5
  • 6. 보안 가이드 보안 모듈 보안검수 어뷰저 모니터링 구분 설명 비고 보안 가이드라인 제공 • 보안 가이드라인의 작성 및 갱신 • 사내git상에 공개 보안모듈(클라이언트)제공 • 보안 모듈의 제공/치팅탐지 • 보안모듈이 수집한 로그의 분석 • Rooting, 치팅툴탐지, 파일변조탐지 난독화 기능 보안검수 • 릴리즈전에 ipa/apk파일을 대상으로 해커의 입장에서 보안검수 • 퍼블리싱/채널링 형태와 관계없이 진행 • 메모리치팅, 게임조작, 그외 정보노출 등을 체크 Abuser모니터링 및 데이터 분석 • 클라이언트 모듈이 수집하는 security지표를 분석하여 모니터링 • 매일 이상유저를 모니터링 • 커뮤니티 사이트 모니터링 • 옥션 치팅상품 모니터링 LINE GAME 보안업무 일부소개 2018/4/24 6
  • 7. 가이드 제공 단계(릴리즈전) 메모리 치팅 대응에서 흔히 범하기 쉬운 실수 https://assetstore.unity.com/packages/tools/utilities/anti-cheat-toolkit-10395 2018/4/24 7
  • 8. 가이드 제공 단계(릴리즈전) Unity 제작게임 : IL2CPP 컴파일옵션 https://engineering.linecorp.com/ja/blog/detail/110 2018/4/24 8
  • 9. • 클라이언트를 보호하기하기 위한 목적으로 개발되었으나, 완전한 대책이 아닌 보험적인 대책(영향의 경감)적인 방어 및 모니터링 역할 • Root・jailbreak검지/치팅툴검지/바이너리변조검지(어뷰저의 규모 등 추측가능) • 로그수집을 통하여 사후대응(밴/경고)가능 • 어뷰저의 분석작업을 어렵게 하는 장치로도 작용 • 스크립트키디에게는 넘어야 할 산 • 단 전문지식을 가지고 있어 어떻게든 해킹하고 싶은 해커에게 뚫릴 가능성은 항시존재 클라이언트 보안모듈의 역할 (릴리즈전) ※포켓몬고에서는 위치정보 변조, 내부 api 부정접근등의 치트행위가 문제가 되어 루팅단말기는 허용하지 않는 대책이 있었음(SaftyNet) 2018/4/24 9
  • 10. 보안검수 단계 (릴리즈전) • 해커의 입장에서 클라이언트/통신구간/로컬 모두 점검 • 메모리치팅, 바이너리 변조 체크 • 통신변조, 과금우회 체크 • iOS바이너리 분석 • /var/mobile/Containers/Bundle/Application/appname/appname.app/appname • clutch, classdump, IDA pro분석 • Android바이너리 분석 • /appname/classes.dex or /appname/lib • Apktool , dex2jar, smail/baksmail 등 • 빌드파일(apk,ipa)에 대한 취약점 자동스캔 • 취약점 발견시 자동으로 메일발송 • https://developer.android.com/google/play/asi.html 2018/4/24 10
  • 11. 취약점 설명 개인정보 노출가능성 게임 순위에 대한 영향 매출 영향 유저의 재현 가능성 취약점이 twitter/소셜 및 인터넷에 공개될 경우의 걱정 Memory Cheat ・메모리를 조작하여 게임내 통화,스코어 등을 변조가능 없음 있음 있음 (과금하지 않고도 게임에 유리) ・jailbreak/rooting에서만 재현 가능한 취약점 ・치팅툴 조작은 그렇게 전문적인 지식이 필요하지 않음 ・유저 불안요소 ・reputation리스크 Abuse of Functionality ・파라메터를 조작하여 게임내 통화, 스코어 등을 변조가능 ・설정파일, save데이터 등을 조작 없음 있음 있음 (과금하지 않고도 게임에 이익) ・클라이언트, 서버간의 통신을 분석할 필요가 있음 ・프록시툴 사용 지식이 있는 유저라면 재현가능 ・유저 불안요소있음 ・reputation리스크 Insufficient Process Validation ・save데이터의 바꿔치기 (타인과 공유) 있음 (경우에 따라) 있음 (경우에 따라) 있음 (경우에 따라) ・save데이터의 바꿔치기는 누구나 따라할 수 있다. ・유저 불안요소있음 ・reputation리스크 Insufficient Anti- automation ・replay&자동플레이가 가능 없음 있음 (경우에 따라) 있음 ・프록시툴 사용 지식이 있는 유저라면 재현가능 ・유저 불안요소있음 ・reputation리스크 Insufficient Authorization ・부적절한 퍼미션(android) 없음 없음 없음 ・android의 경우, 인스톨시 유저가 확인가능 ・유저 불안요소있음 ・reputation리스크 Information Leakage ・클라이언트에 단말정보(UDID,MAC),디버그 관련 파일의 저장 없음 없음 없음 ・클라이언트, 서버간의 통신을 분석할 필요가 있음 - Phurchase bypass ・apple/google과금에서 부정금입이 가능 없음 있음 있음 ・클라이언트, 서버간의 통신을 분석할 필요가 있음 - Insufficient Authentication ・타인으로 위장 가능, 타인이 구입하나 아이템을 자신이 사용가능 있음 (경우에 따라) 없음 없음 ・클라이언트, 서버간의 통신을 분석할 필요가 있음 - Leakage private information ・유저 식별자 및 중요정보가 클라이언트에 평문으로 저장 혹은 평문으로 송신 있음 없음 없음 ・클라이언트, 서버간의 통신을 분석할 필요가 있음 - 보안검수/취약점 고찰(릴리즈전) 2018/4/24 11
  • 12. 수집한 게임데이터를 분석하여 이상 유저를 매일 모니터링 ⇒이상유저의 탐지 및 BAN대응 및 경고 ・임계치 베이스 임계치를 정하여 이상유저를 검지하는 방법 게임내 통화에 대하여 효과적(Abuser의 목적:통화<>스코어<>아이템) ・스코어 베이스 정규분포에서 얼마나 떨어져 있는지 게임요소에 스코어를 부여하여 스코어가 높은 유저를 이상유저로 판단하는 방법(게임요소에 의존하지 않는다. ) 모니터링 단계 (릴리즈후) 2018/4/24 12
  • 13. Abusing의 목적 • 금전이익:치팅, 치트상품 판매, 정보판매 등 • 소셜상에서 자기과시(LINE친구에게 랭킹등) Abuser의 타입 • 통화계의 abusing • 스코어(랭킹)계의 abusing • 아이템계의 abusing • 하트계의 abusing • (상기 모두 관련성이 있으나 구별한다면) 사후대응에 관하여 • BAN(및 경고) 및 아이템 회수 • 실제 서버의 데이터를 확인하여, 변조를 실시한 유저에 대하여 BAN(및 경고) 및 아이템을 회수, 국가에 따라서는 법률이 틀리기 때문에 대응이 다른 케이스가 존재 • 원인 조사 및 수정 • 서비스에 따라서는 취약점을 수정하지 않고 사후 대응으로 진행하는 케이스가 있음 • 계속적인 모니터링이 중요 Abuser탐지 및 대응에 대한 생각 2018/4/24 13
  • 14. Unity dll 변조의 어뷰저가 많다 • unity 3d제작용 타이틀이 많다. • 클라이언트측에서 중요 연산이 많은 경우가 있다. • Assembly-CSharp.dll 디컴파일이 쉽다. ios바이너리 변조가 증가 • Android(apk)만이 변조대상이 아니다 • ios도 jailbreak된 단말기에서는 변조바이너리(ipa)를 인스톨하여 사용가능 • 중국 타오바오 사이트에서는 치트상품이 등장 최근의 abusing경향소개 2018/4/24 14
  • 15. 게임치팅 대응 사례(AIR활용) 치팅apk 파일을 부정으로 인스톨하여 사용한 유저의 탐지 라인게임은 글로벌로 릴리즈가 되는 경우가 많은데, 특히 해외의 경우, 치팅이슈가 커뮤니티 사이트를 통해 활발히 공유되고 있습니다. 사내에서 개발한 툴에서는 치팅apk파일을 부정으로 인스톨한 유저를 특정할 수 있는 기능을 제공하고 있어서, 치팅apk을 입수/인스톨하여 게임플레이한 유저를 대응하고 있습니다. 유니티 게임의 변조를 탐지 라인게임은 유니티로 제작되는 게임이 많은데, 특히 유니티는 디컴파일이 용이한 특성이 있어서 게임이 변조되는 경우가 많습니다. 사내에서 개발한 툴에서는 유니티 변조에 대해서 상시 모니터링 할 수 있는 기능을 제공하고 있어서, 변조한 유저를 대응 하고 있습니다. 2018/4/24 15
  • 16. 게임치팅 대응 사례(AIR활용) ios 바이너리 변조를 탐지 모바일앱의 변조는 android가 중심이었는데 최근에는 ios에서도 변조가 많이 발생하고 있습니다. 사내에서 개발한 툴에서는 android는 물론 ios의 바이너리 변조에 대해서도 상시 모니터링 할 수 있는 기능을 제공하고 있어서, 변조 유저에 대하여 대응하고 있습니다. BOT 유저를 탐지 BOT유저는 탐지가 쉬울 수 도 있고, 어려울 수 도 있다. 해외에 서버를 만들고, 웹페이지에서 게임플레이가 가능한 사례 특정 IP에서 몇일간 연속으로 로그인하여 게임을 플레이한 유저. 앱을 사용하여 게임플레이를 하지 않기 때문에 특정부분에 게임로그가 남지 않는 특성이 있음 2018/4/24 16
  • 17. 기타 (게임치팅 입건사례) 2015년 11월 치팅프로그램을 인스톨한 스마트폰을 인터넷 옥션에 출품한 고등학생을 저작권법 위반(기술적 보호수단을 회피하는 프로그램을 복제물양도) 으로 체포 http://www.sankei.com/west/news/151122/wst1511220045-n1.html 2016년 3월 부정프로그램을 사용하여 획득한 캐릭터를 옥션에 판매하여 440만엔을 이익을 챙긴 유저를 체포 http://www.sankei.com/affairs/news/160301/afr1603010008-n1.html 2018년 1월 텐센트가 최소 30건의 핵 개발, 유포 건을 해결하고 관련 용의자만 120명을 체포 http://www.zdnet.co.kr/news/news_view.asp?artice_id=20180118091314 2018/4/24 17
  • 18. 기타 옥션 치팅상품에 관하여 게임 치팅취약성을 이용하여, 치팅대행 등의 상품 치팅상품을 판매함으로써 금전이익, 해외에서는 이미 상식화 됨(일본옥션, 중국타오바오사이트 등) 상품삭제 조취 등 옥션 상품 출품자에 대한 제재가 현실적으로 어려움 중요 커뮤니티사이트 모니터링 http://apk.tw/ https://androidrepublic.org/ https://www.androidthaimod.com/ http://appzzang.ca/ 구글 리펀드어뷰징 게임내 재화를 구입후, 리펀드하는 어뷰징 게임운영단에서 리펀드 유저를 감시하여, 재화 회수 및 대응필요 국내 게임사중에는 구글과 협의하여 리펀드를 자사가 핸들링하는 케이스가 있음 2018/4/24 18
  • 19. 토큰치환 공격이란 엑세스토큰의 발행원을 확인하지 않아서, 타앱에 발행된 엑세스토큰으로 자신이 원하는 앱에 인증하는 문제 Token Substitution (OAuth Login) https://tools.ietf.org/html/rfc6819#section-4.4.2.6 Token 확인용 api https://developers.line.me/restful-api/overview#check_token https://developers.google.com/identity/protocols/OAuth2UserAgent#validate-access-token https://developers.facebook.com/docs/graph-api/changelog#v2_0 https://developers.facebook.com/docs/facebook-login/security#tokenhijacking 토큰치환 공격(게임치팅 이외의 취약사례) oauth 플랫폼 A앱 B앱 C앱 A앱용 엑세스토큰 B앱용 엑세스토큰 C앱용 엑세스토큰 인증시, B앱용의 엑세스토큰인지를 검증하지 않음 2018/4/24 19
  • 20. SSL 증명서 에러 무시문제 클라이언트앱에서 SSL증명서 에러를 무시할 경우 SSL통신이 도청가능한 문제 SSL 증명서 에러 무시문제 (게임치팅 이외의 취약사례) 증명서 스토어 SSL socket 게임서버 ①SSL 서버증명서 요청 ②SSL 서버증명서 송신 게임앱 (클라이언트) SSL서버 증명서 공인 인증서1 SSL서버 증명서 ③SSL 서버증명서 검증 공인인증서2 HTTPS ・・・ webView.setWebViewClient(new WebViewClient() { @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); //SSL에러가 발생해도 무시 } }); SSLSocketFactory socketFactory = new CustomSSLSocketFactory(trustStore); socketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); // 증명서의 호스트명이 무엇이라도 SSL통신을 허가 HttpsURLConnection httpsUrlConnection = (HttpsURLConnection)connectURL.openConnection(); httpsUrlConnection.setHostnameVerifier(new HostnameVerifier() { public boolean verify(String hostname, SSLSession sslSession) { return true; // SSL증명서의 CN이 무엇이라도 SSL통신을 허가 } }); 로그인정보, 게임결과 정보, 게임자원 다운로드, 민감한 정보 등 2018/4/24 20
  • 21. -NSURLRequest 의 allowsAnyHTTPSCertificateForHost 취약한 예 : @implementation NSURLRequest(IgnoringCertificateError) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host { return YES; } @end - NSURLConnection 의 continueWithoutCredentialForAuthenticationChallenge 취약한 예 : - (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { 생략 [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge]; 생략 } -ASIHTTPReqeust의 setValidatesSecureCertificate 취약한 예 : 생략 [request setValidatesSecureCertificate:NO]; 생략 SSL 증명서 에러 무시문제 (게임치팅 이외의 취약사례) 2018/4/24 21
  • 22. SSL 증명서 에러 무시문제 (게임치팅 이외의 취약사례) • Charles proxy : https://www.charlesproxy.com/ • Burp proxy : https://portswigger.net/burp • Fiddler proxy : https://www.telerik.com/fiddler 2018/4/24 22
  • 24. • 보안엔지니어가 바라본 unity(セキュリティエンジニアからみたUnityのこと) https://engineering.linecorp.com/ja/blog/detail/110 • OWASP Night at SHIBUYA, the 22nd 최근의 game security진단에 관하여(近年の Game Security診断について) https://www.nevermoe.com/wp-content/uploads/2017/05/owasp_jp_pubver.pdf • security x line platform https://www.slideshare.net/linecorp/a-5-security-x-line-platform 기타(공개자료) 2018/4/24 24