47
스마트폰 게임 해킹과 대응 ANB Soft 송찬호 KGC 2013 - 9.26 208[email protected]

스마트폰 해킹과 대응 @KGC2013

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 스마트폰 해킹과 대응 @KGC2013

스마트폰 게임 해킹과 대응

ANB Soft 송찬호KGC 2013 - 9.26 208호

[email protected]

Page 2: 스마트폰 해킹과 대응 @KGC2013

안녕하세요

저는 …

여러분은 …

오늘에 주제는 …

Page 3: 스마트폰 해킹과 대응 @KGC2013

목차

해킹 & 대상- 결제, 파일, 세이브 파일, 패킷, 속도, 메모리- 사례 및 대응

게임 유형별 사례- 단독 / 동기 / 비동기 구동 게임- 사례 및 대응

정리

Page 4: 스마트폰 해킹과 대응 @KGC2013

해킹 & 대상

결제 / 파일 / 세이브 파일 / 패킷 / 속도 / 메모리

Page 5: 스마트폰 해킹과 대응 @KGC2013

결제 해킹 사례

사례>출시 후 6시간, 회사 과금 로그 1억 찍음!!소고기 맛 나게 먹다가..... 찜찜구글 (애플) 결제 로그 결제 금액 0원 ㅠ_ㅠ

Page 6: 스마트폰 해킹과 대응 @KGC2013

결제 공격 대상 - 결제 모듈

IAP (ios) / IAB (android) 모듈- 무조건 결제 성공- 가짜 영수증 반환- 타 게임의 유효한 영수증 반환- 이미 처리된 영수증 반환

Page 7: 스마트폰 해킹과 대응 @KGC2013

결제 공격 대응 - 결제 모듈

결제 서버- 원격 서버에서 결제 결과 확인- 결제 후 영수증을 서버로 보내 유효할 경우 결제 결과 지급

영수증 인증- 해당 어플의 영수증 인지?- 영수증이 유효한지?- 영수증이 기존에 처리된적 있는지?

Page 8: 스마트폰 해킹과 대응 @KGC2013

결제 공격 대상 - 지급 로직

결제 결과 전달 시점 로직- 아이템 (결제 결과) 을 지급 받았지만 지급 대상 (원격의 서서) 이 지급 실패 판단을 유도하여 재지급 하도록 공격 시도

Page 9: 스마트폰 해킹과 대응 @KGC2013

결제 공격 대응 - 지급 로직 - 1

안전한 지급 로직- 결제 정보와 정확히 일치- 어플 종료 등 실패시 재지급

=> 결제 인증 시 유효한경우 지급 - 개별 아이템을 지급하지 않음

=> 인벤 단위나 최종값 (캐시) 을 받음 (아이템 추가, 캐시 증가량 합산 방식을 지양)

Page 10: 스마트폰 해킹과 대응 @KGC2013

과금 공격 대응 - 지급 로직 - 2

안전한 지급 로직- 과금 인증시 서버에서 아이템 지급 (DB에 기록)

=> 안드로이드의 경우 apk를 해킹하여 인증 로직을 제거하면 과금은 통과 하나 아이템 지급이 안됨- 클라이언트가 인벤 및 캐시 포인트 업데이트시 과금 내역을 반영한 내용이 전달

Page 11: 스마트폰 해킹과 대응 @KGC2013

파일 해킹

사례>모든 데이터는 내 손에…

Page 12: 스마트폰 해킹과 대응 @KGC2013

파일 공격 유형

예전 버전 파일 덮어 쓰기- 원하는 벨런스 시절로 롤 백

데이터 수정- 저장된 파일을 바이너리 편집기로 수정

Page 13: 스마트폰 해킹과 대응 @KGC2013

파일 공격 감지

예전 버전 파일 덮어 쓰기 & 데이터 수정- 최근 파일의 해시값과 로딩한 파일의 해시값을 비교

Page 14: 스마트폰 해킹과 대응 @KGC2013

파일 공격 대응

정상 파일을 다운로드 후 읽은 다음 어플 기동=> 게임의 패치 기능 활용

어플 재설치 요구=> 마켓 어플 설치 페이지 연결

Page 15: 스마트폰 해킹과 대응 @KGC2013

세이브 파일 해킹

사례>모든 데이터는 내 손에…

원하는데로 될 때까지 수정... 성실한 놈;;귀찮아 친구꺼 가져다 게임 하지.. 뭐나는야 만렙~~

Page 16: 스마트폰 해킹과 대응 @KGC2013

세이브 파일 공격 유형

세이브 파일 배포- 친구(혹은 불특정 다수)에게 세이브 파일 공개

세이브 파일 백업- 서버에 아이템을 전송 (인벤, 경매, 우편) 후 세이브 파일을 기존 것으로 되돌림

데이터 수정- 저장된 파일을 바이너리 편집기로 수정

Page 17: 스마트폰 해킹과 대응 @KGC2013

세이브 파일 공격 감지

세이브 파일 배포- 세이브 파일에 사용자 정보 입력

세이브 파일 백업- 서버에 아이템을 전송 시 변경되는 카운터를 세이브 파일에 기록

데이터 수정- 저장시 세이브 파일의 해시값을 기록, 읽을 때 해시와 저장한 해시 비교

Page 18: 스마트폰 해킹과 대응 @KGC2013

세이브 파일 공격 대응

서버에 세이브 파일 기록=> 가장 안전,

절대 로딩 실패 하면 안된다!!- 해킹과 버그를 구분 할 수 없음

일단 게임이 되고, 서버에 해킹 기록 후 대응

Page 19: 스마트폰 해킹과 대응 @KGC2013

패킷 해킹

사례>웹 통신을 주로 사용…패킷 캡춰 시 모든 정보가 읽기 쉽게 됨…JSON 이나 URL encode 방식이니 이해가 쏙쏙…원하는데로 고쳐 보내기도 좋다.

Page 20: 스마트폰 해킹과 대응 @KGC2013

패킷 공격 대상

모든 패킷 !!

해킹 용 리눅스 박스 (BackTrack) 설치 ..스마트폰의 패킷이 리눅스 박스를 거쳐 가도록 네트워크 환경 구축 .. (중간자 공격 Man-in-the-middle attack)

패킷 캡쳐 및 가공 ..

Page 21: 스마트폰 해킹과 대응 @KGC2013

패킷 공격 대응

패킷 보안- AES, 3DES, Seed128/256 (KISA) 등 패킷 암호화

하다 못해 XOR 후 Base64 인코딩 정도는 하자- 일단 보이지 않게 라도..

Page 22: 스마트폰 해킹과 대응 @KGC2013

속도 해킹

사례>아~ 여기 적이 넘 빨라서 어렵네…그럼 게임을 천천히...여기는 시간 때워야 하네.. 지루해그럼 빠르게....

Page 23: 스마트폰 해킹과 대응 @KGC2013

속도 공격 대상

시간 소비를 단축- 빠름 속도로 게임을 진행하여 재화 획득 시간 단축

난이도 하락- 속도에 따른 게임성을 약화시켜 쉽게 진행

해킹툴 (Game Chi) 등에서 기능 제공- 0.5, 0.8, 1.2, 2, 5, .. 100 배속 지원

Page 24: 스마트폰 해킹과 대응 @KGC2013

속도 공격 대응

게임 내에서 속도 변화를 감지 할 수 없음

외부 (서버나 다른 프로세스)의 도움이 필요- 같이 시간을 세다 오차 범위를 넘어서면 속도 해킹으로 간주- 일차적으로 경고 후 지속 되면 어플 종료

Page 26: 스마트폰 해킹과 대응 @KGC2013

메모리 공격 대상 - 1

모든 게임내 데이터- 사용자 정보 (레벨, 경험치, 행동 포인트...)- 상점 가격- 상점 상품 구성- 기타 등등

창의적으로 해킹하는 사람들이 많다 ㅠ_ㅠ

Page 27: 스마트폰 해킹과 대응 @KGC2013

메모리 공격 대상- 2

변화하는 값, 변하지 않는 값- 모든 메모리 공격은 특정 값의 메모리 위치를 찾아내는 데 있음- 변화하는 값은 변하지 않는 값에 비해 찾기 쉬움

=> 전체 메모리 덤프 후 변화 부분만 남김=> 값의 변화를 이용

(증가, 감소, 변화 없음)

Page 28: 스마트폰 해킹과 대응 @KGC2013

메모리 공격 대상- 3

특정 값이 발견되면 연관된 다른 값도 수정- 아이템 가격이 발견되면 아이템 아이디도 추정

- 특정 메모리 번지의 앞/뒤를 확인 가능HP / MP, 최대 HP / 최대 MP상점 테이블에서 가격과 상품 ID

Page 29: 스마트폰 해킹과 대응 @KGC2013

메모리 공격 대응 - 1

데이터 난독화- 모든 공격은 특정값을 검색하는 것에서 출발- 검색이 되지 않도록 변형하여 기록- 보이는 값과 실제 정보 분리

=> 데이터 난독화 따른 성능 문제 발생(모든 인벤의 물약 갯수)

Page 30: 스마트폰 해킹과 대응 @KGC2013

메모리 공격 대응 - 2

데이터 오염- 어느 시점에서는 데이터를 변형 해야함- 이때 해킹된 정보가 보안 처리된 영역에 들어 가지 않도록 주의- 임시 메모리 사용후 메모리를 쓰레기 값으로 채운다.- 데이터를 보안 영역에서 얻어 올 때 같은 임시 메모리를 사용하지 않는다.

Page 31: 스마트폰 해킹과 대응 @KGC2013

메모리 공격 대응 - 3

해시값 비교- 로딩 시점에서 해시값을 생성- 참고 시점에서 해시값 확인- 유효한 값에서 다른 값으로 변경 될 경우 - 메모리 해킹 내용에 대해서 즉각 통지, 어플 중단

=> 메모리 해커의 경우 어플 다운을 염두=> 메모리 오버런 버그 ㅠ_ㅠ

Page 32: 스마트폰 해킹과 대응 @KGC2013

게임 유형별 사례

단독 / 동기 / 비동기 구동 게임

Page 33: 스마트폰 해킹과 대응 @KGC2013

공격 사례 : 단독 구동 어플 - 1

세이프 파일- 파일 수정, 백업, 공유

=> 해시값 기록=> 사용자 고유값 기록=> 넷 인벤, 경매장 삭제=> 로딩 시점에 해킹 유무 체크=> 서버에 해킹 상황 기록

Page 34: 스마트폰 해킹과 대응 @KGC2013

공격 사례 : 단독 구동 어플 - 2

결제

- IAP Cracker .. etc 무조건 결제 승인=> 인승 서버 연계

통신 (패킷)- 아이템 전송 시점에 어플 이상 종료 ... 아이템 분실시 복구 요청..

=> 아이템 전송 로직 삭제=> 인벤 전체 업데이트 만 있음

Page 35: 스마트폰 해킹과 대응 @KGC2013

공격 사례 : 단독 구동 어플 - 3

메모리 공격 - 1- 특정값 검색 수정... HP / MP etc

=> 메모리 난독화=> 성능 문제가 생겨 최소 단위(아이템 별,특정 스텟 묶음 단위)로 처리

=> 전체 인벤의 아이템 갯 수 (물약) 등의정보는 별도 처리

Page 36: 스마트폰 해킹과 대응 @KGC2013

공격 사례 : 단독 구동 어플 - 4

메모리 공격 - 2- 특정값 검색 수정 & 값을 고정

=> 경험치나 레벨 값이 임시 저장되는 곳에 값을 고정시키고 기다리면 값이 갱신되는 특정 시점에 오염된 값이 보안 처리된 곳에 들어감=> 해시값을 도입 했으나 별 성과 없음=> PC에서 재현, 사용후 지우지 않는

임시 공간 발견

Page 37: 스마트폰 해킹과 대응 @KGC2013

공격 사례 : 단독 구동 어플 - 5

메모리 공격 - 3- 아이템 가격을 음수로 수정, 구매시 골드 증가

=> 아이템 가격 난독화=> 가격이 음수인 경우 구매 실패

- 가격을 검색하여 주변 메모리를 수정하여 아이템 ID 추정, 상품 구성 변경

=> 테이블에 해시값 적용, 변경 감지

Page 38: 스마트폰 해킹과 대응 @KGC2013

공격 사례 : 단독 구동 어플 - 5

메모리 공격 - 4- 스킬, 스텟 포인트 증가

=> 포인트 분배 완료시 전체 포인트를 계산 유효한지 확인

게임 플레이 로깅- 사용자 이용 패턴 분석- 해킹 사용자 판별 자료- 해킹 사용자로 확실시 되면 블럭

Page 39: 스마트폰 해킹과 대응 @KGC2013

공격 사례 : 동기 구동 어플 - 1

어플 속도 증가- 빠른 속도로 스테이지 클리어

=> 서버와 클라이언트의 누적 시간을 비교=> 10% 이상 차이가 날 경우 경고

(치트 어플의 속도 조절의 최소 단위 보다 작게 … 1.2 배속 0.8 배속)

=> 3회 이상 경고시 사용자 접속 종료(망 상태에 따라 패킷이 뭉쳐 가는 경우 누적 시간에 오차가 커질 수 있음)

Page 40: 스마트폰 해킹과 대응 @KGC2013

공격 사례 : 동기 구동 어플 - 2

메모리 공격- 스킬 ID 조작 타 캐릭터 스킬 사용

=> 서버에 검증 코드 추가

결제

- PID 해킹 낮은 가격 아이템 결제=> 해당 마켓 서비스 하지 않음

- 영수증 처리 로직 없는 마켓=> 해당 마켓 서비스 하지 않음

Page 41: 스마트폰 해킹과 대응 @KGC2013

공격 사례 : 비동기 구동 어플 - 1

영수증 공격- 타 게임의 영수증을 인증용으로 제출

=> 영수증의 Product ID 확인

메모리 공격- 사냥시 습득 골드를 수정

=> 서버 상에서 최대 습득 금액 설정, 오버 시 0 골드 습득 처리

=> 데이터 난독화

Page 42: 스마트폰 해킹과 대응 @KGC2013

공격 사례 : 비동기 구동 어플 - 2

패킷

- 보안 강화 요청 (SNS 연동)=> 3DES, Seed128 등 암호화 패킷 사용

Page 43: 스마트폰 해킹과 대응 @KGC2013

정리

앞으로 할 것 들 / 그리고 … / 마지막 …

Page 44: 스마트폰 해킹과 대응 @KGC2013

앞으로 할 것 들

Unity3D- 메모리 보안 강화

속도

- 웹서버 연동- 클라이언트에 협력 프로세스 구현

Page 46: 스마트폰 해킹과 대응 @KGC2013

마지막...

해킹 사용자도 고객 입니다.

Page 47: 스마트폰 해킹과 대응 @KGC2013

감사합니다.

Q&A