콘텐츠로 이동

DoveRunner Mobile App Security 적용

DoveRunner Mobile App Security는 코드 변경 없이 코드 난독화, 무결성 보호, 환경 탐지, 위협 도구 탐지 등 다양한 자체 보호 기능을 제공합니다.

시작하기 전에 다음을 준비하세요:

  • 프레임워크 — 앱 빌드에 사용된 프레임워크. React Native 등 하이브리드 프레임워크의 경우 사용 버전도 확인해 두세요.
  • KeyStore 정보 — Play Store 업로드 전 DoveRunner Mobile App Security가 실링된 앱에 자동 서명하도록 하려면 필요합니다.

실링은 세 단계로 완료됩니다:

  1. APK 또는 AAB 파일을 업로드합니다.
  2. Developer Console의 5개 설정 그룹에서 보안 옵션을 구성합니다.
  3. 실링된 앱을 다운로드합니다 — 키스토어로 서명된 상태로, 또는 apksigner로 직접 서명할 수 있는 미서명 상태로 받을 수 있습니다.

실링이 완료되면 다운로드 안내가 표시됩니다. 이후에는 기록 정보에서도 다운로드할 수 있습니다.


실링 버전 3.x에서 v2.x 대비 다음 사항이 변경되었습니다:

  • Dex 암호화 → Dex 보호로 개편 — 기존의 단순 Yes/No 방식의 Dex 암호화가 String 난독화와 Call Hiding 두 가지 옵션으로 분리되었습니다. 각 옵션은 Fast / Balance / Maximum 세 가지 강도로 독립적으로 설정할 수 있어 보호 수준과 성능 간의 균형을 세밀하게 조정할 수 있습니다.
  • Dex 보호 적용 전 ProGuard/R8 필수 — DoveRunner의 Dex 보호는 ProGuard/R8 표준 난독화 위에 추가되는 방식으로 동작합니다. ProGuard/R8 없이 Dex 보호만 적용하면 보호 효과가 크게 떨어집니다. 빌드 파이프라인에 ProGuard/R8이 포함되어 있는지 먼저 확인하세요.
  • 앱 카테고리 삭제 — 게임 / 비게임 앱 카테고리 선택 항목이 제거되었습니다. 보호 설정은 앱 유형에 관계없이 동일하게 적용됩니다.
  • Data Sealing 삭제 — Data Sealing 기능은 v3.x에서 제공되지 않습니다. 향후 개선된 구현으로 다시 제공될 예정입니다.

앱 프레임워크, 실링 버전, 실링 모드, 네이티브 코드 및 Dex 코드 보호 옵션을 설정합니다.

옵션설명
앱 프레임워크앱 개발에 사용된 프레임워크. 네이티브 및 하이브리드 프레임워크를 모두 지원합니다. 드롭다운에서 적합한 항목을 선택하세요.
앱실링 버전적용할 DoveRunner 보호 버전. 최신 버전을 사용하면 최신 보안 기능과 프레임워크 지원을 이용할 수 있습니다.
실링 모드테스트 — Release와 동일한 보호 수준이지만 화면에 주기적으로 “Test mode” 워터마크가 표시됩니다. 추가 요금은 발생하지 않습니다.

릴리스 — 워터마크를 제거하고 프로덕션 기능을 전부 활성화합니다.
SO 암호화APK에 포함된 네이티브 라이브러리(.so) 파일을 암호화하여 역공학을 방지합니다.

— 지원되는 모든 SO 파일을 암호화합니다.
아니오 — SO 파일을 암호화하지 않습니다.
부분 암호화 — 특정 SO 파일만 암호화합니다. 전체 암호화 시 성능 문제가 있는 경우 사용합니다.

Dex 보호는 컴파일된 Dex 바이트코드를 난독화하여 정적·동적 분석을 어렵게 만듭니다. 적용 전 ProGuard/R8 기본 난독화를 먼저 적용해야 합니다.

옵션설명
String 난독화Dex 바이트코드의 문자열 리터럴을 난독화하여 정적 분석 및 문자열 추출을 어렵게 만듭니다.

Fast — 오버헤드가 낮고 난독화 강도가 가볍습니다.
Balance — 성능과 보호 수준의 균형을 맞춥니다.
Maximum — 가장 강력한 난독화. 앱 시작 시간에 영향을 줄 수 있습니다.
Call Hiding (함수 호출 난독화)Dex 바이트코드의 함수 호출 패턴을 난독화하여 제어 흐름 분석을 어렵게 만듭니다.

Fast / Balance / Maximum — String 난독화와 동일한 수준 구분을 사용합니다.

기기 환경이 변조되었거나 모니터링 중인 것으로 감지될 때 앱이 어떻게 반응할지를 설정합니다.

옵션기본값설명
루팅차단루팅된 기기를 탐지합니다. 차단 설정 시 감지되면 앱이 종료됩니다.
개발자옵션허용Android 개발자 옵션 활성화 여부를 탐지합니다. 개발자 모드는 악용될 수 있는 디버깅 인터페이스를 노출합니다.
USB 디버깅차단ADB USB 디버깅 활성화 여부를 탐지합니다. 차단 설정 시 USB 디버깅이 켜져 있으면 앱이 종료됩니다.
Wi-Fi 보안 프로토콜미사용정보 수집 설정 시 기기에서 사용 중인 Wi-Fi 보안 프로토콜(예: WPA2, WPA3)을 모니터링 목적으로 수집합니다. 앱 동작에는 영향을 주지 않습니다.
에뮬레이터차단Android 에뮬레이터 환경을 탐지합니다.

차단 — 에뮬레이터 감지 시 앱이 종료됩니다.
선택 허용 — 특정 에뮬레이터만 허용하고 나머지는 차단합니다.
허용 — 모든 에뮬레이터 환경에서 앱이 실행됩니다.
직장 프로필 및 삼성 보안 폴더차단Work Profile 환경에서는 일부 보안 기능이 비활성화될 수 있으며, 일부 공격 도구가 이를 이용해 앱을 공격합니다.

차단 — Work Profile 또는 삼성 보안 폴더에서 실행 시 앱이 종료됩니다.
선택 허용 — 특정 프로파일만 허용합니다.
허용 — 모든 Work Profile 환경에서 앱이 실행됩니다.

기기에 설치된 악성 도구를 탐지하고, 해당 도구가 있는 환경에서 앱 실행 여부를 설정합니다.

옵션기본값설명
매크로 도구차단앱 기능 악용에 사용될 수 있는 매크로 자동화 도구를 탐지합니다. 차단 목록은 최신 상태로 유지됩니다.
패킷 공격차단네트워크 트래픽을 가로채거나 변조하는 패킷 인터셉터 도구를 탐지합니다.
키로거허용터치 입력을 수집하는 키로거 앱을 탐지합니다. 민감한 정보를 다루는 앱에서는 차단을 권장합니다.
오버레이 윈도우허용다른 앱이 앱 위에 오버레이 창을 표시하는 것을 탐지합니다. 오버레이는 입력 가로채기나 화면 콘텐츠 캡처에 악용될 수 있습니다.

옵션기본값설명
스크린 미러링 & 캡처허용앱이 포그라운드에 있는 동안 화면 콘텐츠가 캡처되거나 외부 디스플레이로 미러링되는 것을 방지합니다. 민감한 정보를 다루는 앱에서는 차단을 권장합니다.
Over-The-Air 업데이트아니오새 앱 릴리스 없이 실행 중인 앱에 커스텀 위협 차단 목록 업데이트를 배포합니다. 커스텀 차단 목록은 DoveRunner 기본 차단 목록과 병합되어 활성 앱 설치본에 전달됩니다. 차단 목록 내용은 앱 구성에서 설정합니다.

ProGuard/R8 설정

Dex 보호를 사용하는 경우, DoveRunner가 비즈니스 코드를 올바르게 식별하고 난독화할 수 있도록 ProGuard/R8 설정에서 패키지 구조를 유지해야 합니다. 필수 룰과 주의사항은 ProGuard 설정 가이드를 참고하세요.

기타 요구사항

  • Firebase Crashlytics는 원래 패키지 이름을 유지해야 합니다 — 난독화하지 마세요.
  • React Native 버전 감지를 위해 다음 클래스를 난독화하면 안 됩니다:
    com/facebook/react/modules/systeminfo/ReactNativeVersion.java

실링 과정에서 원본 인증서가 무효화되므로, 실링된 앱은 기기 설치 또는 Play Store 제출 전에 반드시 서명이 필요합니다.

방법 1 — Developer Console에서 서명 (권장)

Developer Console에 키스토어를 미리 등록해두면, 실링된 빌드 다운로드 시 자동으로 서명이 적용됩니다. 별도의 수동 작업이 필요하지 않습니다.

방법 2 — 수동 서명

콘솔의 서명 기능을 사용하지 않는 경우, 다운로드 후 직접 서명해야 합니다. APK와 AAB에 사용하는 도구가 다릅니다:

형식도구명령어
APKapksignerapksigner sign --ks your.keystore your-app.apk
AABjarsignerjarsigner -keystore your.keystore your-app.aab alias