개요 네이티브 코드는 안드로이드 애플리케이션에서 C/C++ 언어로 작성된 코드를 말한다. 안드로이드 애플리케이션은 주로 Java와 Kotlin 같은 고수준 프로그래밍 언어로 개발되지만, 일부 기능이나 성능 향상, 하드웨어 접근, 호환성을 이유로 네이티브 코드를 활용한다. 특히 게임분야에서 네이티브 코드가 가장 많이 활용되며, 이는 그래픽 처리, 음성 처리 등과 같은 작업에서 Java 코드 대비 높은 효율을 보이기 때문이다. 또한, C/C++과 같이 저수준 언어로 작성된 코드는 기계어 또는 어셈블리어로 컴파일되기에 가독성이 낮아 코드 분석 및 리버스 엔지니어링에 어려움을 준다. 때문에, 앱에 적용되는 대 다수의 보안 솔루션들은 네이티브 코드를 활용하여 루팅과 같은 모바일 보안 위협을 탐지한다. 그리고 이러..
들어가기 앞서 2023.06.01 - [안드로이드] - ANDITER를 활용한 시스템 속성 기반의 루팅 탐지 및 우회 방법 ANDITER를 활용한 시스템 속성 기반의 루팅 탐지 및 우회 방법 들어가기 앞서 2023.05.31 - [안드로이드] - ANDITER를 활용한 Writeable 기반의 루팅 탐지 및 우회 방법 ANDITER를 활용한 Writeable 기반의 루팅 탐지 및 우회 방법 들어가기 앞서 이전 포스팅에 이어 시스템 naro-security.tistory.com 이전 포스팅에 이어서 백그라운드 프로세스를 통한 탐지 방법과 또 이를 공격자의 관점에서 어떻게 우회할 수 있는지 다뤄보겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 Github에서 다운로드 가능하다. GitHub - nar..
들어가기 앞서 2023.05.31 - [안드로이드] - ANDITER를 활용한 Writeable 기반의 루팅 탐지 및 우회 방법 ANDITER를 활용한 Writeable 기반의 루팅 탐지 및 우회 방법 들어가기 앞서 이전 포스팅에 이어 시스템 디렉터리 권한 검사를 통한 탐지 방법과 또 이를 어떠한 방안을 통해 우회할 수 있는지 다뤄보겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 Github에 naro-security.tistory.com 이전 포스팅에 이어 시스템 속성인 ro.secure, ro.adb.secure 값 검사를 통한 탐지 방법과 또 이를 어떠한 방안을 통해 우회할 수 있는지 다뤄보겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 Github에서 다운로드 가능하다. GitHub..
들어가기 앞서 이전 포스팅에 이어 시스템 디렉터리 권한 검사를 통한 탐지 방법과 또 이를 어떠한 방안을 통해 우회할 수 있는지 다뤄보겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 Github에서 다운로드 가능하다. GitHub - naroSEC/Anditer Contribute to naroSEC/Anditer development by creating an account on GitHub. github.com 개요 디바이스 루팅 시 설치된 루팅 관련 애플리케이션 또는 응용 프로그램을 통해서 디바이스의 주요 설정을 변경할 수 있게 되며, 설정 변경 시 디바이스 내부 저장소에 위치한 시스템 디렉터리에 일반 사용자 쓰기 권한을 부여하는 경우가 있다. Bypass Writeable 탐지 항목은 디바이..
들어가기 앞서 이전 포스팅에 이어 시스템 속성이 정의되어 있는 Build.prop 속성을 검사해 탐지하는 방법과 또 이를 어떠한 방안을 통해 우회할 수 있는지 다뤄보겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 Github에서 다운로드 가능하다. GitHub - naroSEC/Anditer Contribute to naroSEC/Anditer development by creating an account on GitHub. github.com 개요 루팅 패치 프로그램을 통해 디바이스 루팅을 진행할 때 해당 프로그램은 디바이스의 boot 이미지 설정값들을 수정하게 된다. 그리고 변경된 수정 사항들은 Android 시스템 파일인 build.prop에 반영되어 디바이스 부팅 시 참조하게 된다. Byp..
들어가기 앞서 이전 포스팅에 이어 Binaries 기반 탐지는 어떻게 이뤄지고 또 이를 어떠한 방안을 통해 우회할 수 있는지 다뤄보겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 Github에서 다운로드 가능하다. GitHub - naroSEC/Anditer Contribute to naroSEC/Anditer development by creating an account on GitHub. github.com 개요 모든 OS에는 운영체제가 어떤 프로세스를 실행시킬 때 경로를 참조할 수 있도록 PATH 환경 변수가 제공된다. 이는 리눅스 커널 기반인 Android OS도 동일하며 콘솔 단에서 명령어 사용 시 시스템 환경 변수에 등록된 PATH를 참조해 명령어를 찾고 실행시키게 된다. 그리고 디바이..
들어가기 앞서 이전 포스팅에 이어 Binaries 기반 탐지는 어떻게 이뤄지고 또 이를 어떠한 방안을 통해 우회할 수 있는지 다뤄보겠다. 실습 진행에 사용되는 ANDITER 앱은 아래의 Github에서 다운로드 가능하다. GitHub - naroSEC/Anditer Contribute to naroSEC/Anditer development by creating an account on GitHub. github.com 개요 디바이스 루팅 시 사용된 루팅 패치 프로그램에 따라서 상이할 수 있지만 관리자 권한을 획득하기 위한 명령어 파일인 su와 UNIX 명령행 도구들을 제공하는 busybox, 루팅 관리 매니저 등이 함께 설치된다. 대표적인 설치 파일들로는 su, busybox, magisk, supers..
들어가기 앞서 해당 게시글부터 제가 제작한 ANDITER를 활용해 안드로이드의 주요 보안 탐지 및 우회 방법에 대한 시리즈를 작성하려고 합니다. 원래 지금 재직 중인 회사에서 분석 글로 작성했던 거지만 블로그에도 정리를 하려고 합니다. ANDITER 앱 같은 경우는 안드로이드 앱에서 루팅, 프리다, 피닝 등을 어떻게 탐지하고 또 이를 공격자의 관점에서 어떻게 우회할 수 있는지 배울 수 있는 좋은 학습 앱으로 모바일 보안을 처음 접하시는 분들에게는 큰 도움이 될 거라고 생각합니다. 실습하다가 모르는 부분이나 막히시는게 있다면 댓글 달아주시면 답변 드리겠습니다. 실습을 위해 ANDITER 앱 다운로드가 필요한 경우 아래의 링크에서 다운로드 가능하며, NoEncryption 버전을 다운로드 받으셔서 실습을 진..
ANDITER란? ANDITER는 실제 안드로이드 앱에서 사용되는 보안 코드 탐지(루팅, 디버그, 무결성, 프리다 등) 방안을 배울 수 있고 또 공격자의 관점에서 이를 어떠한 방식을 통해 우회할 수 있는지 우회 기법을 학습할 수 있는 모바일 침투 테스팅 앱 입니다. 러닝 코스 루팅(Rooting) Bypass Packages : 패키지 탐지 방식 Bypass Binaries : 바이너리 파일 탐지 방식 Bypass Command Execution : 명령어 실행 가능 여부 탐지 방식 Bypass Build-Tags : Build.prop[keys] 비정상 값 탐지 방식 Bypass Writeable : 특정 디렉터리 쓰기 가능 여부 탐지 방식 Bypass System Property : Build.pro..