전체 글 171

인시큐어뱅크 앱 취약점 - 루트 노출 및 우회 취약점

인시큐어뱅크 앱 취약점 - 루트 노출 및 우회 취약점 취약점 소개 루팅이란 안드로이드 디바이스 시스템 권한을 얻는 것이다. 리눅스 기반의 운영체제의 경우 시스템 루트 권한 취득이 가능하지만 안드로이드의 경우 보안상의 이유로 루트 권한을 막아 놓았으며 이로인해 행위의 제한이 생긴다. 이러한 제한을 풀거나 우회하기 위해서는 시스템 권한을 루팅으로 획득해야 한다. 기기를 루팅하면 슈퍼 유저의 권한으로 하드웨어 성능 조작, 제조사 및 통신사 기본 앱 삭제, 시스템 권한을 이용한 다양한 디바이스 조작이 가능하다. 루팅된 기기는 디바이스 내부의 민감한 정보에도 접근 가능하다. 취약점 진단 루팅 체크가 필수적인 금융 앱이나 게임 앱에서 주로 체크하는 경로 /system/bin/su /system/xbin/su /sy..

인시큐어뱅크 앱 취약점 - 중요 정보 하드 코딩 취약점

인시큐어뱅크 앱 취약점 - 중요 정보 하드 코딩 취약점 취약점 소개 하드 코딩은 데이터를 코드 내부에 직접 입력하는 것이다. 즉, 프로그램의 소스 코드에 데이터를 직접 입력해서 저장한 경우를 뜻하여 상수 사용도 하드 코딩에 속한다. 아이디, 비밀번호, 키 등 중요한 정보를 주석 처리하는 것도 모바일 앱에서는 하드코딩 취약점으로 판단되는데, 이는 안드로이드 모바일 앱의 디컴파일이 가능한 이유에서 정보가 노출되므로 그렇다. 아래와 같이 파일 입출력 시 파일의 경로를 직접적으로 입력한 경우도 해당한다. File file = new File("C:/yeonjun/123/"); 취약점 진단 인시큐어뱅크 앱의 하드코드된 데이터들을 찾아본다. 개발 단계에서 사용하는 로그인 계정의 아이디와 비밀번호를 알고 있다. 인시..

인시큐어뱅크 앱 취약점 - 백업 취약점

인시큐어뱅크 앱 취약점 - 백업 취약점 취약점 소개 안드로이드 시스템은 애플리케이션의 데이터를 백업할 수 있는 기능을 제공하는데 처음에는 구글 클라우드를 통한 백업만 가능했으나 4.0버전으로 업데이트 이후 사용자 로컬 PC에 데이터를 저장할 수 있게 되었다. 이를 로컬 백업 또는 전체 백업이라고 하는데, 사용자는 전체 백업을 통해 apk 파일, 데이터, 파일 등을 USB를 통해 사용자 PC에 저장할 수 있다. 클라우드 백업과 전체 백업의 차이는 다음과 같다. 클라우드 백업을 했을 때는 데이터가 클라우드에서 관리되므로 외부 유출이 적고 직접 관리하지 않아도 되어 다소 안전하지만 전체 백업은 사용자가 직접 백업을 진행하므로 데이터 유출에 대한 위험이 있다. 만약 이러한 과정에서 원치 않은 데이터나 파일이 백..

인시큐어뱅크 앱 취약점 - 로컬 암호화 취약점

인시큐어뱅크 앱 취약점 - 로컬 암호화 취약점 취약점 소개 안드로이드 애플리케이션에서 단말기에 주요 정보를 저장하기 위해서는 공격자에게 정보가 노출되지 않도록 평문이 아닌 암호화된 데이터로 저장해야 한다. 이러한 과정에서 발생하는 취약점을 로컬 암호화 취약점 이라고 한다. 암호화 과정에서 대칭키 암호화 방식은 키 배송 문제가 있어 공개키 암호화를 이용하여 수신자의 공개키로 암호화하고, 수신자의 개인키로 복호화하여 정보의 기밀성을 보장할 수 있다. (키 배송 문제: 대칭 키를 보내야만 복호화가 가능한데, 이 키를 어떻게 사전에 안전하게 배송할 것인가의 문제이다.) 취약점 진단 Autofill Credential 기능 확인 다음 화면은 인시큐어뱅크 앱에서의 초기 로그인 화면이다. Autofill Creden..

인시큐어뱅크 앱 취약점 - 취약한 인증 메커니즘

인시큐어뱅크 앱 취약점 - 취약한 인증 메커니즘 취약점 소개 취약한 인증 메커니즘은 정상적인 인증 절차를 우회하여 잘못된 인증으로 접근 권한을 취득하는 취약점이다. 취약한 인증 메커니즘은 다음과 같은 경우에 해당한다. 적절하지 않은 앱 퍼미션 설정 여부 서비스 권한 상승 행위에 대한 통제 여부 기능에 대한 제한 또는 우회 금지 여부 불필요하거나 사용하지 않는 액티비티 제거 여부 인텐트 사용에 대한 안정성 여부 마스터 키 취약점 대응 여부 이번 취약점에서는 AndroidManifest.xml을 액티비티 속성으로 로그인 인증 없이 권한을 우회해 볼 것이다. 취약점 진단 다음 코드는 AndroidManifest.xml 코드이다. 코드를 살펴보면 안드로이드 액티비티의 속성이 android.exported=”tr..

인시큐어뱅크 앱 취약점 - 브로드캐스트 리시버 결함

인시큐어뱅크 앱 취약점 - 브로드캐스트 리시버 결함 취약점 소개 브로드캐스트 리시버란 안드로이드 시스템의 중요 요소 중 하나이다. 브로드캐스트란 ‘방송하다’라는 의미가 있으며, 브로드캐스트 리시버는 ‘방송 수신자’라는 의미로 유추할 수 있다. 안드로이드 시스템에서 특정 이벤트가 발생 시 시스템은 시스템 브로드캐스트 메세지를 이벤트가 수신되도록 신청한 모든 앱에 보내고, 브로드캐스트는 이를 수신한다. 표준 브로드캐스트 액션 종류 ACTION_BOOT_COMPLETED 부팅이 끝났을 때 (RECEIVE_BOOT_COMPLETED 권한 등록 필요) ACTION_CAMERA_BUTTON 카메라 버튼이 눌렸을 때 ACTION_DATE_CHANGED ACTION_TIME_CHANGED 폰의 날짜, 시간이 수동으로 ..

ADB(Android Debug Bridge) 개요와 기본 사용법

ADB(Android Debug Bridge) 개요와 기본 사용법 ADB란? ADB(Android Debug Bridge)는 안드로이드 에뮬레이터, PC에 실제 연결된 장치를 제어하는 안드로이드 디버깅 도구 중 하나이다. 사용 방법과 위치 안드로이드 스튜디오에서는 이 기능을 GUI로 제공하는데, ADB는 커맨드 라인으로 직접 명령어를 입력해서 안드로이드 기기와 통신할 수 있다. 안드로이드 스튜디오를 설치한 적이 있다면 안드로이드 SDK에 ADB가 포함되어 있으니 별도 설치하지 않아도 된다. 폴더는 안드로이드 SDK를 설치한 폴더 하위에 platform-tools 디렉터리에 ADB가 포함되어 있다. 이 파일은 클라이언트, 서버, 데몬을 포함하는 클라이언트-서버 프로그램이다. ADB의 3요소 클라이언트: 안..

Android Drozer 설치

Android Drozer 설치 드로저 설치 드로저(Drozer)는 모바일 앱 취약점 진단 프레임워크로 안드로이드 시스템에 접근하여 앱을 동적으로 진단할 수 있는 도구이며, 서버와 클라이언트로 동작한다. 드로저 공식 홈페이지에서 윈도우 기반의 드로저 설치 파일을 다운로드 받고, 설치파일을 로컬PC에 설치한다. https://labs.withsecure.com/tools/drozer Drozer Comprehensive security and attack framework for Android. labs.withsecure.com msi 설치에서 파이썬2.7을 설치했던 경로를 아래 하단 location 부분에 설정해주고 설치하면 된다. 명령 프롬포트를 이용해 drozer-agent.apk를 설치한다. dr..

BytecodeViewer를 활용한 APK 분석

BytecodeViewer를 활용한 APK 분석 apktool, JD-GUI의 모든 기능을 하나로 합친 듯한 기능을 가진 BytecodeViewer를 이용하여 APK 파일을 분석할 수 있다. APK 파일을 디컴파일하여 바이트 코드 형태로 보여주고, 클래스 파일 → 자바 파일로 변환한 소스파일도 복원해 함께 보여준다. 즉, 한 쪽에는 자바 디컴파일 소스 코드를 보여주고 다른 한 쪽에는 바이트 코드를 보여주어 바이트 코드를 수정하기에 유용하다. 또한, 다른 도구에 비해 분석 속도가 매우 빠른 것이 장점이다. BytecodeViewer는 아래 링크에서 파일을 다운받을 수 있다. https://github.com/Konloch/bytecode-viewer/releases Releases · Konloch/byt..

apktool, JD-GUI를 이용한 모바일 애플리케이션 디컴파일

apktool, JD-GUI를 이용한 모바일 애플리케이션 디컴파일 디컴파일 도구 일반적으로 사용하는 디컴파일 도구는 다음과 같다. apktool: https://ibotpeaches.github.io/Apktool/ dex2jar: https://github.com/pxb1988/dex2jar Java Decompiler(JD-GUI): http://java-decompiler.github.io/ Apktool - A tool for reverse engineering 3rd party, closed, binary Android apps. A tool for reverse engineering 3rd party, closed, binary Android apps. It can decode resource..