목록전체 글 (420)
외로운 Nova의 작업실
- 취약점 소개 앱을 실행하고 다양한 작업을 하게되면 힙 영역에 정보들이 남습니다. 이 힙 메모리 영역을 덤프해서 분석하면 유의미한 정보를 얻을 수 있습니다. 즉, 다른 앱이 금융권앱의 힙 메모리 영역을 덤프해서 공격자 서버로 보낸다면 아이디나 패스워드같은 정보를 얻을 수 있습니다. - 취약점 진단 먼저 앱을 켜서 계좌로 송금하는 작업을 해보겠습니다. 이를 해야 힙에 정보가 남습니다. 이후 메모리 덤프를 위해 PID를 알아야합니다. 아래 명령어로 PID를 알아냅니다. adb -e shell ps | grep inse PID가 6494인 것을 알았습니다. 이제 메모리 덤프를 해보겠습니다. adb shell am dumpheap 6494 /sdcard/Download/insecurebankv2_mem 649..
- 취약점 소개 요즘 배포되는 안드로이드 모바일 악성코드는 정상적으로 서비스되고 있는 앱을 조작하여 사용자 개인 정보를 포함해 원하는 데이터를 얻기위한 코드들만 삽입해서 사용하고 있습니다. 따라서 기업들은 조작하지못하도록 자사의 앱 변조방지 솔루션들을 도입하고 있습니다. 만약, 변조방지 솔루션을 사용안한다면 어떻게 조작하는지 알아보겠습니다. - 취약점 진단 과정 먼저 apk 파일을 디컴파일 해줍니다. apktool d app-release.apk app-release 폴더에 들어가게되면 디컴파일된 파일들이 있습니다. 이중에서 not rooted device!! 라는 문구를 위조하기 위해 postLogin.smali 파일을 찾아줍니다. C:\Android-InsecureBankv2-master\Insecu..
- 취약점 소개 해당 취약점은 암호 알고리즘에대한 취약점입니다. 알고리즘을 사용할때는 아래와 같은 것을 고려해야합니다. 어떤 암호알고리즘을 사용할 것 인가 키값은 어떻게 할 것인가 솔트값은 어떻게 할 것 인가 초기화 벡터는 어떻게 할 것인가. 알고리즘에도 취약한 알고리즘이 있을 수 있어서 안전한 알고리즘을 사용해야합니다. 또한, 키값은 하드코딩이 아닌 소프트코딩으로 진행하는 것이 좋으면 항상 변경되야합니다. 솔트값은 항상 사용하는 것이 좋습니다. 초기화 벡터는 알고리즘을 수행한이후 계산해서 사용하고, 끝나면 0으로 채워놓는 것이 좋습니다. insecurebankv2에서는 암호알고리즘을 잘 사용하고 있는지 봐보겠습니다. - 취약점 진단 LoginActivity.class 파일의 일부분을 보겠습니다. pro..