Insecure Bank2
Insecure Bank는 OWASP에서 만든 안드로이드 취약점들을 모아놓은 애플리케이션이다.
환경은 Android 4.2.2에 최적화 되어있다.
취약점은 총 23개로 이루어져 있으며 아래와 같다.
번호 | 취약점(한글) | 취약점(영어) |
1 | 취약한 브로드캐스트 리시버 | Flawed Broadcast Receivers |
2 | 취약한 인증 메커니즘 | Weak Authorization mechanism |
3 | 로컬 암호화 취약점 | Local Encryption issues |
4 | 취약한 액티비티 컴포넌트 | Vulnerable Activity Components |
5 | 루트 노출 및 우회 취약점 | Root Detection and Bypass |
6 | 취약한 콘텐츠 프로바이더 | Insecure Content Provider access |
7 | 취약한 웹 뷰 구현 | Insecure Webview implementation |
8 | 취약한 암호화 구현 | Weak Cryptography implmentation |
9 | 애플리케이션 패칭 취약점 | Application Patching |
10 | 중요 정보 메모리 노출 취약점 | Sensitive Information in Memory |
11 | 취약한 로깅 메커니즘 | Insecure Logging mechanism |
12 | 페이스트보드 취약점 | Android Pastedboard vulnerability |
13 | 애플리케이션 디버깅 취약점 | Application Debuggable |
14 | 안드로이드 키보드 캐시 취약점 | Android keyboard cache issues |
15 | 안드로이드 백업 취약점 | Android Backup vulnerability |
16 | 런타임 조작 | Runtime Manipulation |
17 | 취약한 SD 카드 스토리지 | Insecure SD Card storage |
18 | 취약한 HTTP 전송 | Insecure HTTP connections |
19 | 파라미터 조작 | Parameter Manipulation |
20 | 하드코드된 중요 정보 | Hardcoded secrets |
21 | 사용자 계정 목록화 | Username Enumeration issue |
22 | 개발 백도어 취약점 | Developer Backdoors |
23 | 취약한 비밀번호 변경 로직 | Weak change password implementation |
Insecure Bank2 진단 환경 구성
Insecure Bank2는 백엔드 서버가 따로 존재하기 때문에 애플리케이션 설치 및 백엔드 구동 환경도 구성해야 된다.
관련 파일은 Insecure Bank2 Github에서 다운 받으면 된다.
AndroLabServer(백엔드 서버)
백엔드 서버는 AndroLabServer 폴더에 존재한다.
Flask framework로 이루어져 있다.
Python 버전은 2.x로 이루어져 있으니 유의해서 설치해주도록 한다.
구동을 위해선 필요한 라이브러리가 필요하다. 라이브러리 목록은 이러하다.
- Flask
- Flask-sqlalchemy
- Simplejson
- Cherrypy
requirements.txt가 존재하기 때문에 해당 명령어로 간단하게 라이브러리들을 모두 설치 가능하다.
cd AndroLabServer pip install -r requirements.txt
라이브러리 설치 후 app.py를 실행시켜 백엔드 서버를 구동 시켜주면 된다.
터미널에 The server is hosted on port: 8888 가 표기되면 정상적으로 구동 된 것 이다.
Insercure Bank2.apk 설치
Insercure Bank2.apk는 adb를 통해 간단히 설치가 가능하다.
adb install InsecureBank2.apk
설치가 완료되었다면 애플리케이션을 실행 시키고 백엔드와 연결 후 로그인을 통해 환경 구축이 제대로 이루어졌는지 확인해본다.
우선 백엔드와 연결 해준다.
연결 설정을 마쳤으면 로그인을 통해 연결이 잘 되었는지 확인해본다.
참고로 아이디는 2개가 있으므로 편한걸로 로그인해보자
ID | Password |
dinesh | Dinesh@123$ |
jack | Jack@123$ |
정상적으로 로그인 되었다면 다음과 같은 화면이 나온다.