전체 글61 안드로이드 모의해킹) 애플리케이션 디버깅 기능 안드로이드 디버깅 모드의 설정 여부에 따라 발생 AndroidManifest.xml : 안드로이드 애플리케이션의 각종 정보를 기술 개발자들이 개발 당시 편의 상 디버깅 옵션을 true로 지정했을 경우 취약점이 발생 취약점 진단 과정 adroidMainfest.xml 파일 추출 후 어떠한 정보를 포함하고 있는지 파악 최상위 폴더에 위치 사용되는 모든 컴포넌트 정보 최소한의 SDK 버전 추가적인 라이브러리 등 필수 정보 정의 디컴파일 adb pull 명령어를 사용하여 앱을 apk 파일로 추출한 후 apktool 툴을 사용하여 실질적인 디컴파일 필요 앱이 설치된 위치를 파악하기 위해 앱의 목록 출력 (pm list) /data/app/com.android.insecurebankv2--QgKf7h0T_Fpdgv.. 2020. 9. 9. 안드로이드 모의해킹) 안드로이드 키보드 캐시 이슈 사용자가 중요 정보를 클립보드에 저장하면 공격자가 이러한 정보를 획득할 수 있는 취약점 키보드 캐시 : 안드로이드의 TextView와 같은 컴포넌트에서 사용자가 중요 정보를 클립보드에 복사할 수 있을 때 임시로 복사한 데이터를 저장하는 곳 이 기능을 악용하면 이전에 중요 정보를 복사하여 인증에 성공한 다른 사용자의 인증 정보를 활용하여 별다른 인증 절차 없이 제삼자도 인증에 성공 가능 취약점 진단 과정 중요 정보 복사 기능이 있는지 확인 후 클리퍼와 같은 클립보드에 접근 가능한 앱ㅇ르 설치한 후 정보 복사 시 중요 정보가 노출죄는지 확인 역시 한번에 될리가 없지 멍텅구리. 어플 다운로드 먼저 받아야한다 이거다 https://www.apk20.com/apk/95059/v/63301 다운로드 완료 첫화면인데.. 2020. 9. 8. 안드로이드 모의해킹) 안전하지 않은 로깅 메커니즘 로그 : 서버에서 운영되는 서비스들이 실행되는 상태나 특정 프로그램을 사용한 사용자의 행위나 흔적을 파일 또는 출력을 통해 남기는 행동 검색 기록 같은 경우는 중요하진 않지만 로그에 중요 정보가 남게 되면 정보가 유출되는 것 안전하지 않은 로깅 메커니즘은 민감 데이터나 노출되면 안 될 정보들을 로그로 남길 경우에 발생하는 취약점(사용자의 ID/PW, 카드 정보 등) 안드로이드 로그 관리법 커널 안 로거라는 커널 드라이브는 main, radio, event, system 네가지 버퍼 관리 사용자 공간에 있는 앱들은 보안 정책에 의해 커널의 버퍼에 접근할 수 없기 떄문에 /dev 에 리눅스 디바이스 노드들을 제공하여 관리 main 메인 앱 로그, 앱이나 플랫폼 내부에서 android.util.Log 클래스로.. 2020. 9. 8. 안드로이드 모의해킹) 메모리 내 민감한 정보 저장 메모리 : 주기억장치, 물리적 메모리 램을 가리킴, 휘발성이기 대문에 프로그램이 종료되면 데이터들도 삭제됨 취약점 진단 - 안드로이드의 메모리 할당 방법은 기본적으로 안드로이드에서는 자바 가상 머신을 사용하지 않고 달빅 가상 머신을 사용하여 앱을 구현함 - 동작에 필요한 만큼의 메모리를 할당하고 더 사용해야 하나면 프로세스당 허용된 메모리 한계 안에서 필요한 만큼의 메모리를 할당 - 허용된 메모리의 한계 이상을 사용하면 OOM(Out Of Memory) 에러 발생 - Dalvik heap allocated 영역을 분석해야함 : 맵이 실행되는 동안 참조하고 정보를 저장하는 메모리 영역 - 실행 중인 앱의 메모리 영역에서 어떤 방법으로 데이터를 추출하고 어떤 데이터들이 노출되는지 확인하기 1) 메모리 포렌식.. 2020. 9. 3. 안드로이드 모의해킹) 취약한 암호화 실행 암호 알고리즘에 대한 취약점 인코딩을 통해 계정 비밀번호와 같은 민감 데이터를 감추어 보내는 것 취약하다고 알려진 알고리즘 : RC2, RC4, RC5, MD4, MD5, SHA1, DES, 3DES 취약점 진단 과정 loginActivity.java 파일에서 아이디는 base64 비밀번호는 aes 암호화 하는 것 확인 가능 위 코드에서 주의 깊게 봐야 할 클래스는 CryptoClass AES에 사용된느 키 값을 String 변수에 그대로 넣는 방식으로 하드코딩하여 취약점 노출 코드 내부에 상수 형태로 암호화키를 노출하면 모바일에서 자바 언어 특징으로 인해 암호화키를 노출할 위험성이 커짐 키 값을 노출하고 싶지 않을 때는 해시 함수를 사용하는 것이 안전, 키값을 외부 디렉터리에서 불러오면 안전 초기화 벡.. 2020. 7. 29. 안드로이드 모의해킹) 안전하지 않은 웹 뷰 실행 웹 뷰 : 안드로이드 개발 시 주로 웹 브라우저에서 보이는 화면, 웹 뷰를 실행하려면 인터넷에 액세스 할 수 는 권한 필요 취약점 진단 칼리 리눅스 이용 아이 귀여워 귀여운 오리가 나왔음 웹 뷰의 취약점 모듈 실행 취약점 실행 전 필요 옵션 설정 로컬 호스트의 IP설정 우선 아이피 확인 옵션 확인 가능 공격에 사용할 URL 설정 필요 exploit이나 run을 통해 실행 가상 디바이스에서 메타스플로잇에서 설정한 http://192.168.64.130:8080/xitcsk 로 들어가기 흠 뭔가 이상함 웨않데 네일할뤠 2020. 7. 28. 안드로이드 모의해킹) 안전하지 않은 콘텐츠 프로바이더 접근 안드로이드의 모든 앱들은 기본적으로 다른 앱에서 자신의 데이터에 접근하는 것을 금지 그러나 콘텐츠 프로바이더를 이용하여 자신의 데이터에 다른 앱이 접근하거나 부여한 권한대로 이용하도록 할 수 있음 콘텐츠 프로바이더 다른 앱의 데이터베이스나 파일에 접근할 수 있는 인터페이스 제공 주로 프로세스 간 통신으로 다른 앱과 데이터 공유 이 기능을 사용하기 위해서는 앱에서 프로바이더가 선언되어야 함, Androidmanifest.xml의 요소에 속함 content://로 시작 정상적인 경우 : 대상 앱의 데베에 접근하지 못하고 사용자가 원하는 항목에만 접근하도록 하여 공유 가능 비정상적인 경우 : 공격자는 민감 데이터에 접근하여 저장된 데이터를 마음대로 조회하거나 변경할 수 있게 됨 취약점 진단 과정 앱에 콘텐츠 .. 2020. 7. 28. 안드로이드 모의해킹) 루팅 탐지 및 우회 루트 노출 및 우회 취약점 : 안드로이드 디바이스 시스템 권한을 얻는 것 리눅스 기반 운체의 경우 시스템의 루트 권한 취득이 가능하지만 안드로이드의 경우 보안상의 이유로 우트 권한을 막아 놓았으며 이로인해 행위의 제한이 생김, 이러한 제한을 풀거나 우회하기 위해서는 시스템 권한을 루팅으로 획득 필요 기기를 루팅하면 슈퍼 유저의 건한으로 하드웨어 성능 조작, 제조사 및 통신사 기본 앱 삭제, 시스템 권한을 이용한 다양한 디바이스 조작 가능 루팅된 기기는 디바이스 내부의 민감한 정보에 접근 가능 취약점 진단 과정 루팅 체크가 필수적인 금융 앱이나 게임 앱에서 주로 체크하는 경로 /system/bin/su /system/xbin/su /system/app/superuser.apk /data/data/com.n.. 2020. 7. 28. 안드로이드 모의해킹) 액티비티 컴포넌트 취약점 앱의 액티비티가 보안적으로 취약하게 선언되어 있으면 로직을 무시하고 공격자가 필요한 액티비티를 강제로 호출하며 해당 취약점을 악용하는 경우 권한이 없는 사용자가 특정 액티비티에 접근하여 권한 없이 특정 기능을 활성화할 수도 있음 선언된 액티비티를 확인한 후 ADB와 드로저로 취약하게 선언된 액티비티를 호출하여 해당 앱의 취약성 여부를 확인 취약점 진단 과정 선언된 activity에 포함된 exported 속성 중요하게 봐야함 exported 값이 포함되어 있지 않은 경우에는 기본적으로 false로 설정 선언된 액티비티에 intent-filter가 포함되면 true 상태로 변경되어 다른 애플리케이션에서 exported=true 상태인 액티비티 실행 인시큐어뱅크 애플리케이션에 선언된 액티비티를 확인하기 위해.. 2020. 7. 28. 안드로이드 모의해킹) 로컬 암호화 이슈 평문 저장 시 정보가 공격자에게 누출될 수 있어 암호화 하여 저장하는 것이 중요 취약점 진단 과정 버튼 클릭 시 자동으로 비밀번호 입력 사용된 계정은 앱의 내부에 저장되어 있을 것으로 추정 앱의 데이터가 저장되는 곳에서 확인 mySharedPreferences.xml 내용 확인 com.android.insecurebankv2_preferences.xml 내용 확인 하나씩 확인하기 귀찮다면 애뮬레이터 -> PC 복사 후 확인 C:\Users\pushj\AppData\Local\Android\Sdk\platform-tools\com.android.insecurebankv2\shared_prefs 암호화된 계정 확인 base64 디코딩 이용 취약점 대응 방안 AES 256 암호화 방법 사용 암호화 : Stri.. 2020. 7. 28. 이전 1 2 3 4 5 6 7 다음