본문 바로가기

Hacking & Security/Android

(12)
[OWASP] Uncrackable level 1 - write up [OWASP] Uncrackable level1 [Frida Command] Usage: frida [options] target Options: --verison show program's version number and exit -h, --help show this help message and exit -D ID, --device==ID connect to device with the given ID -U, --usb connect to USB device -R, --remote connect to oremote frida-server -H Host, --host=HOST connect to remote frida-server on HOST -f FILE, --file=FILE spawn ..
Android Security에 대한 고찰 Mobile app Security Market Understand App Security Market '앱 보안' 이라는 키워드를 토대로 검색시 대부분의 글은 누군가가 본인의 제품을 홍보하기 위한 글이 대다수이다. 해당 글 들의 내용을 살펴보면 '모바일 앱을 보다 안전하게 만들기 위해서는 제품을 써야한다' 라는 뉘앙스로 이야기를 한다. -> 이는 곧 '어떠한 제품이 더욱 퍼포먼스가 좋냐?' 라는 관점에서만 제품을 살펴보게 된다. 애초에 이를 바라보는 관점에 문제가 존재한다. '100퍼센트 안전하다' 라는 말은 절대 내뱉어서는 안된다. 실 예로 이러한 얘기를 공개적인 자리에서 언급했다가 고수들에게 크게 혼난 사례가 있다. 간단한 예시로 솔루션들의 주요기능 중 하나인 Source Code Obfuscati..
ART vs Dalvik, Pros & Cons about Rooting ART vs Dalvik , Pros & cons about rooting ART vs Dalvik 안드로이드는 크게 2가지 컴파일 방식이 존재하며 이는 AOT 와 JIT 컴파일이다. ART는 Android 5.0 버전부터 정식으로 채택되었다. ART와 Dalvik 의 가장 큰 차이는 컴파일 방식에 있다. 달빅은 JIT(Just - In - Time) 컴파일러를 이용하고 ART는 AOT(Ahead - Of - Time) 컴파일러를 이용한다. AOT vs JIT JIT는 이름 그대로 실행 시점에 소스 코드를 번역한다. 따라서, 설치(Boot)는 매우 빠르나 실행(load) 시점에 느려진다. 또한, 변환한 코드를 메모리에 올려야 하기 때문에 많은 메모리를 소요한다. AOT는 설치 시점에 소스 코드를 번역한다..
Android App Security Best Practices App Security best-practices 앱의 보안을 강화하면 사용자의 신뢰와 장치에 대한 무결성을 유지하는데 도움이 된다. 본 문서에서는 앱 보안의 중대한 영향을 미치는 모범 사례들을 분석하고 이에 대한 대응방안을 작성한다. 1. Enforce secure communication (안전한 커뮤니케이션 시행) 앱과 다른 앱 간 또는 앱과 웹 사이트 간의 통신을 위하여 데이터를 교환할 때 해당 데이터들을 보호하며 앱의 안정성이 향상되며 주고받는 데이터 또한 보호받을 수 있다. 1.1. App chooser 표시 Implicit intent 또는 non-exported content를 제공하는 경우, 사용자의 기기에서 2개 이상의 가능한 앱을 시작할 수 있는 경우 App chooser를 명시적으로..
Android Structure Android Structure Android Program Program -> APK Android application package 흔히들 알고 있는 앱의 파일 포맷은 apk apk 는 '서명된' zip파일. How to Analysis? 우선적으로 Manifest.xml파일을 본다, 이에는 안드로이드 앱의 구동을 위한 내용을 명시해놓음. AndroidManifest.xml Encoded XML File Description Package name Permissions SDK Version intent : 액티비티 등의 전환이 일어날 때 호출이나 메시지를 전달하는 매개체 classes.dex .dex(Dalvik Executable) is a compiled android app co..
Android Introduction Android #1 Architecture Android Platform Architecture Linux Kernel Native Library Android Runtime Java API Framework Android Runtime Android based on Android API which almost like Java Java application over JavaVM -> Android application Dalvik 안드로이드 대부분의 앱은 자바 기반으로 만들어진다. 자바를 빌드하면 .class 파일이 생성되며 이를 실행하기 위해서는 JavaVM이 필요하다. 하지만, 자바로 열심히 개발해봐야 디컴파일 하면 코드가 모두 보인다. 이를 방어하기 위해 난독화 등을 진행하지만 이는 절대적 방어 ..
Android App Hooking with Frida Android App Hooking with FRIDA 본 글에서는 앞서 설치한 FRIDA를 사용하여 App Hooking 예제를 풀며 공부한 내용을 작성한다. 문제 파일은 아래 링크에서 다운로드 받을 수 있다. Uncrackable1 Donwload Link ###[분석 환경] OS : macOS Mojave Tools : Frida, adb, Python 3.7.4, Genymotion ###[문제 풀이] adb install명령어를 통해 다운로드 받은 .apk파일을 설치한다. 그 이후, AVD에서 해당 앱을 실행시켜본다. 프로그램을 실행시키면 루팅 탐지가 동작되어 OK버튼 클릭시 앱이 죽는다. 루팅 탐지 루틴와 관련된 문제임이 느껴진다. 일단 jadx를 이용해 apk 코드를 분석해보도록 한다. 안드..
FRIDA_Install About Frida 이번 글은 Frida에 대한 소개글이다. FRIDA 참고 [ What is Frida? ] Frida란 파이썬 기반의 라이브러리 + 명령어로 구성되어 있고 Native App 에 대한 후킹을 통해 분석에 도움을 줄 수 있는 프로그램이다. Frida는 JS Injecton을 이용하여 Windows, Linux , IOS, Android, macOS ...등 기반의 네이티브 앱에 대해 후킹을 돕는 파이썬 라이브러리이다. (갓갓 파이썬!) Frida는 크게 패키지와 서버로 이루어져 있으며 분석하는 장치에는 패키지를 설치하고 분석의 대상이 되는 모바일 또는 에뮬레이터에는 서버를 삽입하여 구동하게 된다. 대표적으로는 IOS, Android 등 모바일 분석 덕에 널리 알려져 있으나 타 플랫폼에..