목록Android/InsecureBankv2 (4)
R136A1
4. Local Encryption Issues [사전 지식] 앱 개발을 진행하다보면 데이터를 저장하여 관리해야 할 상황에 직면한다. 이 때 데이터의 양이 크거나, 중요한 데이터는 서버나 DB, 파일의 형태로 저장을 하면 되겠지만 간단한 설정 값이나 문자열 같은 데이터는 DB에 저장하기에는 부담스럽다. 이런 경우 안드로이드에서 기본적으로 제공되는 SharedPreferences를 사용하여 관리하면 편리하게 사용이 가능하다 위치: /data/data/{앱의 패키지 명}/shared_prefs/{기록파일명}.xml 앱 폴더 내에 저장되므로, 앱을 삭제하면 당연히 데이터도 삭제된다. SharedPreferences를 사용해 객체를 생성하고, 메소드를 사용하여 생성하고, 삭제하고, 수정할 수 있다. [발생 기능..
약한 인증 매커니즘. 쉽게 예를 들면 계정 정보를 수정할 때, 관리자 페이지에 접근할 때 비밀번호를 한번 더 입력받지 않거나 추가적인 인증 과정 없이 사용자를 신뢰하여 중요한 정보를 변경할 수 있게 함 (웹에서도 나타남) 모바일에서는 액티비티를 기반으로 인증과정을 건너뛸 수 있다. 기능 분석하기 약한 인증 매커니즘은 취약점 찾기 없이도 찾아낼 수 있다. Insecurebank의 기능에는 1. Transfer(송금) 2. View Statement(상태 보기) = 송금 내역 3. Change Password(비밀번호 변경) 특히 1. Transfer과 3. Change Password의 경우 민감한 정보를 다루므로 추가적인 인증 절차가 필요하다. Transfer의 경우 추가적인 인증 절차 없이 From A..
개념 인텐트 Intent: 다른 app component에 action을 요청할 때 사용하는 메시지 오브젝트 - 암시적 인텐트 implicit intent: action을 지정해놓고, 그것을 실행할 수 있는 app을 기기 전체에서 찾음 ex) Intent intent = new Intent(ACTION값); - 명시적 인텐트 explicit intent: 특정 app component(앱 안의 특정 activity, service)를 지정함 ex) Intent intent = new Intent(getApplicationContext(), 특정 액티비티.class); => 두 인텐트는 인자값으로 구분됨. 특히 implicit intent에서 startActivity(intent);가 아닌 this.sen..
안드로이드 4대 구성요소 Activity, Service, Content Provider, Broadcast Receiver drozer에서attacksurface를 통해 취약한 곳을 확인하면 4대 구성요소에 있는 취약점 개수가 출력된다. Broadcast Receiver: 안드로이드 디바이스에서 이벤트가 발생할 때 보내는 "브로드 캐스트 신호(intent)"를 받아 처리함 사용하기 위해서는 AndroidManifest.xml에 별도로 Receiver를 선언해야 한다. 직접 점검하기 xml을 보기 위해 jadx-gui에 apk 파일을 올린다 Insecurebank에서 receiver는 2개 선언되어 있다. 위에 있는 com.android.insecurebankv2.MyBroadCastReceiver를 주..