30
스마트폰 게임 해킹과 대응 ANB Soft 송찬호 KASA 2013.9.5

스마트폰 해킹과 대응 @KASA

Embed Size (px)

DESCRIPTION

9월 5일 KASA에서 발표한 스마트폰 게임 해킹 사례와 대응에 대한 내용입니다.

Citation preview

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

스마트폰 게임 해킹과 대응

ANB Soft 송찬호KASA 2013.9.5

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

해킹 공격 분야

결제

파일

세이브 파일패킷

속도

메모리

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

결제 해킹 사례

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

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

결제 공격 대상 - 결제 모듈

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

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

결제 공격 대응 - 결제 모듈

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

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

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

결제 공격 대상 - 지급 로직

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

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

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

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

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

=> 인벤 단위나 최종값 (캐시) 을 서버로 받음

=> 아이템 추가, 캐시 증가량을 전달하지 않음

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

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

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

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

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

파일 해킹

사례>모든 데이터는 내 손에…나는야 성실한 놈 함 디벼 볼까 ~~

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

파일 공격 유형

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

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

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

파일 공격 감지

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

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

파일 공격 대응

정상 파일을 다운로드 후 읽은 다음 어플 기동

어플 재설치 요구

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

세이브 파일 해킹

사례>모든 데이터는 내 손에…원하는데로 될 때까지 수정...귀찮아 친구꺼 가져다 게임 하지.. 뭐나는야 만렙~~

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

세이브 파일 공격 유형

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

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

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

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

세이브 파일 공격 감지

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

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

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

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

세이브 파일 공격 대응

서버에 세이브 파일 기록

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

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

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

패킷 해킹

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

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

패킷 공격 대상

모든 패킷 !!

해킹 용 리눅스 박스 (BackTrack) 설치 ..스마트폰의 패킷이 리눅스 박스를 거쳐 가도록 네트워크 환경 구축 .. (맨 온더 미들 공격 패턴)패킷 캡쳐 및 가공 ..

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

패킷 공격 대응

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

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

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

속도 해킹

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

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

속도 공격 대상

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

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

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

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

속도 공격 대응

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

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

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

메모리 공격 대상 - 1

모든 게임내 데이터- 사용자 정보- 상점 가격- 상점 상품 구성- 기타 등등

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

Page 25: 스마트폰 해킹과 대응 @KASA

메모리 공격 대상- 2

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

=> 전체 메모리 덤프 후 변화 부분만 남기는 것

=> 값의 변화 추이 (증가, 감소, 변화 없음)

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

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

메모리 공격 대응 - 1

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

해시값을 기록- 유효한 값에서 다른 값으로 변경 될 경우 감지- 메모리 해킹 내용에 대해서 즉각 통지, 어플 중단

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

메모리 공격 대응 - 2

보이는 값과 실제 정보 분리- 데이터 난독화 및 해시값에 따른 성능 이슈 가능

=> 모든 인벤의 물약 갯수

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

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

앞으로 할 것 들

패킷

- Seed128 적용

속도

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

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

감사합니다.

Q&A