문제상황
- Java로 짠 안드로이드 앱은 APK파일을 추출해 디컴파일해서 자바디컴파일러를 이용해 소스코드를 볼 수 있고, 수정하여 APK로 만들 수 있음
- 유니티 역시 같은 방식으로 C#용 디컴파일러를 이용해 소스 형태로 볼 수 있음 (디컴파일 툴 : .netReflextor, ILSpy)
- C#, Java 같은 관리코드가 아닌 네이티브 코드인 C/C++을 사용하는 언리얼은 디컴파일이 쉽지 않음
어플 보호 방법
1. Proguard & Dexguard
- 디컴파일 시 보이는 소스코드를 해독하지 못하게 소스코드를 난독화 해주는 오픈소스 서비스
- SW 소스코드의 원천기술 유출을 방지하는 것이 목적
- Proguard는 무료버전, Dexguard는 유료버전
2. Android Market LVL(Licence Verification Library)
- 구글에서 무료로 제공하는 라이브러리
- APK 추출하여 다른 디바이스에서 실행하는 것을 차단
- 다른 계정으로 로그인된 디바이스에 해당 계정이 구매 이력이 없다면 실행을 차단
- 우회가 매우 쉬움 (치명적인 단점, 크래커들이 LVL 제거 된 APK들을 배포하고 공유)
- 원스토어에선 ARM이라는 라이센스 체크 라이브러리 제공
보호 솔루션
1. 앱실링(AppSealing)
- 암호화 및 다양한 기능들로 소스코드 숨김, 위변조로부터 보호
- 유명한 게임 개발 엔진 지원 (유니티, 언리얼)
- 평가판 무제한 제공
- 재접속 디바이스
- 매월 재접속 디바이스 3000대까지 무료
- 재접속 디바이스 - 게임 론칭 후 1주일동안 최소 2번 이상 게임을 실행한 디바이스
- 별도의 설치 또는 서비스 호스팅이 필요하지 않음
- 언제든지 게임 실링을 하지 않고 마켓에 배포 가능
- https://www.appsealing.com/kr/
2. 방클(Bancle)
- 중국 모바일 앱 보안 관련 서비스 부분 1위
- 중국 내의 은행과 증권가의 약 90% 이상이 사용할 정도로 높은 신뢰도
- 무료 실딩과 유료 실딩으로 나눠서 서비스
- 무료 실딩 - 무제한으로 사용 가능하지만 별도의 고객 서비스 제공하지 않음
- 유료 실딩 - 계약에 따라 사용 기간이 제한되지만 24시간 실시간 모니터링 지원
- 무료 실딩에서 유료 실딩으로의 전환은 자유로운 편, 복잡한 절차 없이 간편하게 전환 가능
- http://www.bangcle.co.kr/
3. LIAPP
- 안드로이드 앱의 소스유출을 방지 (소스코드 전체 암호화)
- 유료
- https://liapp.hostway.co.kr/business/
4. 터치엔 솔루션
- http://touchen.raonsecure.com/mobile/mobile_04.php
5. 지란지교시큐리티
- https://www.jiransecurity.com/support/contactus
참고 사이트
LVL - http://m.blog.naver.com/leost118/220564263170
Proguard - http://dwfox.tistory.com/18