애플리케이션 패칭
애플리케이션 패칭 취약점이란?
애플리케이션 패칭은 기존에 정상적인 애플리케이션을 디컴파일 후 악성코드를 삽입하는 것을 말한다. 해당 취약점이 존재 할 경우 루팅 탐지 우회, 중요 정보 탈취, 중요 인증 우회 등을 할 수 있다.
취약점 진단
패칭을 하기 위해서 우선 디컴파일링 해주어야 한다. 도구는 APK Easy Tool을 사용하였다.
디컴파일링 완료되면 smali 폴더가 생성되면서 smali 파일이 생성된다.
smali 이란?
smali는 Dalvik 바이트 코드를 위한 어셈블리 언어이다. 안드로이드 리버싱을 할 때 사용된다. smali 파일은 재컴파일이 가능하다.
확인이 쉽게 PostLogin.smali의 Root 탐지 메시지 부분을 수정하였다.
수정 후 컴파일링하여 재설치 해주었다. 성공적으로 변경 된 것을 확인 할 수 있다.
대응방안
해당 취약점은 소스코드가 난독화 되어 있지 않기 때문에 발생한다.
따라서 Android Studio에서 기본적으로 지원해 주는 난독화 도구 Proguard를 사용한다.
난독화가 되었다면 class가 아래 사진과 같이 바뀐다.