모바일 취약점 점검/Android

[Android] 안티 디버깅(Anti-Debugging) 코드

서쪽곰 2023. 5. 15. 16:38

목 차

     

    안티 디버깅(Anti-Debugging)

    앱 안티 디버깅은 특정 모바일 앱의 디버깅을 감지하고 방지하기 위한 기술 및 메커니즘의 사용을 의미합니다. 앱을 디버깅하면 실행 중 동작을 분석하고 이해할 수 있으므로 문제 해결, 테스트 및 리버스 엔지니어링 목적에 도움이 될 수 있습니다. 그러나 공격자가 앱의 코드와 동작을 분석하여 취약성을 발견하거나 중요한 데이터를 훔치거나 익스플로잇을 개발하는 데 사용할 수도 있습니다.

    앱 디버깅을 방지하기 위해 앱 개발자는 코드 난독화, 함수 포인터 조작, 중단점 감지 및 제어 흐름 난독화와 같은 다양한 디버깅 방지 기술을 구현할 수 있습니다. 이러한 기술은 공격자가 앱의 코드와 동작을 이해하기 어렵게 만들 수 있으므로 성공적인 공격을 개발하는 데 필요한 시간과 노력이 증가합니다.

    모바일 앱 개발에 사용되는 몇 가지 일반적인 안티 디버깅 기술에는 디버거 또는 디버거 관련 시스템 기능의 존재 여부 확인, 디버깅이 감지될 때 충돌 또는 예측할 수 없는 동작을 유발하도록 앱 코드 수정, 민감한 코드 및 데이터 암호화 등이 포함됩니다. 리버스 엔지니어링이 더 어렵습니다.

    앱 안티 디버깅은 모바일 앱의 보안을 강화하는 데 도움이 될 수 있지만 어떤 단일 기술도 완벽하지 않으며 숙련된 공격자가 고급 방법을 사용하여 우회할 수 있다는 점에 유의해야 합니다. 따라서 앱 개발자는 모바일 앱의 보안을 보장하기 위해 코드 검토, 위협 모델링 및 보안 코딩 관행과 같은 여러 계층의 보안 조치를 구현해야 합니다.

     

    안티 디버깅 코드

        private static boolean isDebuggable(Context context) {
            boolean isDebuggerAttached = false;
            try {
                // 현재 디버깅 중인지 확인
                if(android.os.Debug.isDebuggerConnected())
                    isDebuggerAttached = true;
                // android:debuggable 속성 가져오기
                if ((context.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0)
                    isDebuggerAttached = true;
            } catch (Exception e) {
            }
            return isDebuggerAttached;
        }

    isDebuggerConnected() 함수는 현재 디버깅 중인지 확인하는 함수이며, ApplicationInfo.FLAG_DEBUGGABLE의 경우 android:debuggable 속성이 true인지 확인하여 둘 중 한 가지라도 true이면 true를 반환합니다.

    안티 디버깅 코드는 쓰레드를 통해 계속 확인하여 확인 시 앱을 종료합니다.

     

    최근 앱 점검에서 자주 쓰이는 Frida(후킹)의 경우 탐지 로직이 별도로 존재합니다.

     

    2023.05.15 - [보안/모바일 취약점 점검] - [Android, iOS] OS변조(루팅/탈옥), 무결성 검증, 디버깅 탐지 프로젝트 파일

     

    [Android, iOS] OS변조(루팅/탈옥), 무결성 검증, 디버깅 탐지 프로젝트 파일

    1. 프로젝트 실행결과 Android_Integrity.zip - Android 프로젝트 파일 iOS_Integrity.zip - iOS 프로젝트 파일 Integrity.apk - Android 프로젝트 빌드 파일 Integrity.ipa - iOS 프로젝트 빌드 파일 1) Android Android 프로젝트

    seo-security.tistory.com

     

    반응형