얼마 전 앱을 출시하고 몇 차례의 업데이트를 할 때까지 보안에 대해 1도 몰랐던 초짜 개발자 입니다. "내 앱에서 치명적인 정보가 얼마나 새나가고 있을까" 하는 궁금증을 가지게 된 것은 구글 플레이에서 다운받은 apk를 까서 서명만 지들 서명으로 바꾸고 구글 플레이 이외의 마켓에 업로드해서 이익을 챙기는 놈들이 있다는 소리를 듣고서부터죠. 그때부터 apk 디컴파일에 관심을 가지게 되었고, 오늘 apktool, dex2jar, jd-gui 툴을 사용하여 구글 플레이로부터 다운받은 제 앱을 까보았습니다.
결과는 처참하네요. String.xml 에 넣어두면 괜찮다던 (모 블로그에서 얻은 정보입니다.) 애드몹 계정 정보가 적나라하게 드러납니다. 이 부분을 해커가 자신의 애드몹 계정으로 바꾸고 리빌드 후 제가 미처 커버하지 못한 마켓에 등록한다면 아주 손쉽게 저의 광고비를 챙겨갈 수 있을 듯 보입니다. 서명 바꿔치기는 말할 것도 없어 보이구요. 저야 순수 광고 수익만 얻는 무료 앱이기 때문에 서명 바꿔치기는 의미가 없지만 애드몹 계정 정보는 좀 충격적이네요.
여러분은 중요 정보를 어떻게 처리하고 계시는지 궁금합니다. 애드몹 계정 정보나 DB의 암호화/복호화 처리를 위해 사용한 AES 키를 안전하게 보관할 수 있는 방법이 없을까요? 계정 정보나 키를 서버에 두는 방법도 있긴 하지만 서버를 돌릴 여력이 없습니다. 로컬에서 해결할 수 있는 좋은 방법이 없을까요?
혹시 프로가드 적용 안된 앱 아니냐 생각하시는 분들 계실까봐 말씀드리는데, 프로가드 제대로 적용되었습다.