관리 메뉴

FU11M00N

[ Android ] 인시큐어 뱅크 서버 환경설정하기 (feat. Anaconda,Linux), 리눅스 Anaconda 사용 본문

Programming/Android

[ Android ] 인시큐어 뱅크 서버 환경설정하기 (feat. Anaconda,Linux), 리눅스 Anaconda 사용

호IT 2021. 3. 31. 01:02

 


- 인 시큐어 뱅크

안드로이드 앱의 테스트 및 시험을 위해 보안 전문가와 개발자가 개발된 앱입니다.깃허브에 소스가 오픈되어있습니다.

github.com/dineshshetty/Android-InsecureBankv2

 

dineshshetty/Android-InsecureBankv2

Vulnerable Android application for developers and security enthusiasts to learn about Android insecurities - dineshshetty/Android-InsecureBankv2

github.com

 

"인시큐어뱅크는 모바일 취약점을 분석할 수 있는 안드로이드 앱"이다.

금융 앱을 기반으로 만들어졌고 다수의 취약점이 있어 이를 식별 , 분석할 수 있다.

안드로이드 앱 취약점 분석 도구로 손꼽히는 앱이다.

 

- 안드로이드 앱과 서버의 통신 방법 이해

- 앱 자체에 존재하는 취약점 이해

- 앱과 서버가 통신 중 발견되는 취약점 이해

- 최종적으로 안드로이드 앱을 가이드라인에 따라 진단

 

 

인 시큐어 뱅크는 서버는 python2.7 에 Flask 프레임 워크를 사용합니다.

인시큐어 뱅크 구성

서버는 python27 : Flask로 구성 <--통신--> 안드로이드 인시큐어 뱅크 앱 

 

취약점 종류

인 시큐어 뱅크는 아래와 같은 취약점을 가지고 있습니다.

01. 취약한 브로드캐스트 리시버 (Flawed Broadcast Receivers)

02. 취약한 인증 매커니즘 (Weak Authorization mechanism)

03. 로컬 암호화 취약점 (Local Encryption issues)

04. 취약한 액티비티 컴포넌트 (Vulnerable Activity Components)

05. 루트 노출 및 우회 취약점 (Root Detection and Bypass)

06. 취약한 콘텐츠 프로바이더 (Insecure Content Provider access)

07. 취약한 웹 뷰 구현 (Insecure Webview implementation)

08. 취약한 암호화 구현 (Weak Cryptography implementation)

09. 앱 패칭 취약점 (Application Patching)

10. 중요 정보 메모리 노출 취약점 (Sensitive Information in Memory)

11. 취약한 로깅 메카니즘 (Insecure Logging mechanism)

12. 페이스트보드 취약점 (Android Pasteboard 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)

 

- 환경 구성

파이썬 2.7을 다운로드하여 바로 해도 되지만,

 

저는 관리의 용이성을 위해 아나콘다에 파이썬 2.7 환경 구성을 진행했습니다.

OS는 Vmware에 Ubuntu 20.04를 설치하여 사용했습니다.

 

아래의 링크에서 아나콘다 설치가 가능합니다.

 

www.anaconda.com/products/individual

 

Anaconda | Individual Edition

Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

저는 리눅스를 사용하기 때문에 리눅스 아나콘다 Installer를 다운로드하겠습니다.

설치 파일을 다운로드하고 실행시킵니다.

 

실행시키면 각각 설정을 물어보고 경로 설정 또한 물어봅니다. 각자 원하는 곳에 지정해준 뒤 설치를 진행해줍니다.

 

 

- 아나콘다 사용법

 

위에서 아나콘다 설치한 아나콘다의 경로로 들어가서

$ source ~/.bashrc

명령어를 입력하면 아나콘다 실행이 됩니다.

 

그 후 conda를 입력했을 때 "command not found" 에러가 출력되신다면 

대부분. bashrc가 수정되지 않아서 그런 것입니다.

. bashrc 파일을 열어서 직접 경로를 추가해주면 됩니다.

 

$ vi ~/.bashrc
export PATH="/home/username/anaconda3/bin:$PATH"

 

아나콘다는 가상 환경을 생성하여 사용합니다.

conda create --name 가상환경이름 --clone 복제할가상환경이름 python=원하는버전

위 명령어를 사용하면 가상 환경이 새로 만들어집니다.

 

만들어진 가상 환경을 사용하기 위해선 아래와 같이 입력하면 됩니다.

conda activate 가상환경이름

 

만약 다시 기본 가상 환경으로 갈려면 onda activate base혹은 conda deactivate를 입력하면 됩니다.

 

이제 가상 환경이 만들어졌으니 인 시큐어 뱅크 서버를 실행시켜봅시다.

 

- 아나콘다를 활용해 인시큐어 뱅크 서버 실행

인시큐어 뱅크는 이 글의 맨 위에 깃허브 링크가 있습니다. 만약 설치를 안 하셨다면 다운로드하고 오세요!!

 

 

새롭게 가상 환경을 만드는것부터 하겠습니다.

$ conda create -n py2 python=2.7 -y # 가상환경 만들어 주기

위의 명령어로 파이썬 버전 2.7이고 이름이 py2인 가상환경을 생성하겠습니다.

 

 

그 후 

$ conda activate py2

위의 명령어를 입력하여 만든 가상환경을 사용하겠습니다. 

 

이제 인 시큐어 뱅크의 서버의 app.py를 실행해주면 됩니다.

하지만 app.py를 실행하기 전 해야 할 작업이 있습니다.

아까 인 시큐어 뱅크는 플라스크 프레임워크를 사용한다고 했습니다.

그 외의 sql, json 등등 다양한 파이썬 라이브러리를 사용하는데, 이것들을 다운로드하여줘야 합니다.

 

총 5개 정도 다운로드하아야 하니 requirements.txt를 만들어 한꺼번에 다운로드하겠습니다.

 

$ vi requirements.txt

위의 사진과 같이 flask, sqlalchemy, simplejson, web.py , cherrypy를 입력해주고 저장해줍니다.

 

$ pip install -r requirements.txt

방금 입력한 파일을 pip install 명령어로 다운로드합니다.

 

그 후 마지막으로

pip install web.py==0.37

web.py==0.37로 설정해줍니다. (python2.7과 호환성을 맞추기 위해)

 

이제 모든 인 시큐어 뱅크 서버를 실행시키기 위해 모든 준비가 끝났습니다.

 

$ python app.py

위의 명령어로 app.py를 실행시킵니다.

포트가 8888번으로 서버가 열렸습니다. 

 

이제 접속해보죠!!

 

 

 

서버에 접속하기 전에 Preferences 설정에 들어갑니다.

서버의 ip를 입력해줍니다.

 

$ ifconfig

우분투에서 ifconfig를 입력하여 서버의 ip를 입력해주면 됩니다.

포트는 8888로 열었기 때문에 8888을 입력하면 됩니다.

 

저 같은 경우엔 Vmware -> Ubuntu20.04 이기 때문에 Vmware의 설정을 브릿지로 해줬습니다.

 

 

인 시큐어 뱅크의 아이디와 비밀번호는 두 가지가 기본으로 제공됩니다.

- 아이디 : dinesh,  패스워드 : Dinesh@123$ 

- 아이디 : jack, 패스워드 : Jack@123$

 

저는 dinesh로 test 하겠습니다.

 

 

 

 

 

로그인 성공!! 

하지만 이 과정에서 아이디와 패스워드를 올바르게 입력해도 로그인이 안 되는 경우가 있습니다. 아무것도 출력 안된 채로.

 

이 문제는 대부분 서버와 연결이 올바르게 되지 않아 응답이 없는 것입니다.

서버의 네트워크 설정을 올바르게 해 주면 성공적으로 될 것입니다.

 

이것으로 인 시큐어 뱅크 환경설정을 마치겠습니다.

감사합니다 :)

 

 

 

Comments