본문 바로가기

Android16

앱 취약점 - 로컬 암호화 이슈 분석 취약점 개요 안드로이드 애플리케이션은 실행되는 도중에 특정 정보들을 저장해야 할 때가 있습니다. 만약 개인 정보 같은 중요한 정보를 저장하려고 한다면, 어떠한 안전한 방법으로 저장할 지 고민해야 할 것입니다. 평문으로 저장한다면 공격자에게 중요한 정보가 노출될 수 있기 때문입니다. 대부분 중요한 정보의 저장을 위해 암호화를 사용합니다. 이번 글에서는 안드로이드 앱이 암호화하는 과정에서 어떤 취약점이 발생하는지 확인해보겠습니다. 취약점 진단 인시큐어뱅크 앱의 로그인 화면입니다. Login 버튼 밑의 Autofill Credentials 를 누르면 직전에 로그인했던 ID와 password를 불러와서 자동으로 입력해줍니다. 이런 기능이 실행된다는 것은 앱의 내부에 해당 ID와 비밀번호가 저장되어 있기에 가능합.. 2021. 8. 14.
앱 취약점 - 취약한 인증 메커니즘 분석 및 대응 방안 취약점 개요 취약한 인증은 정상적인 인증 절차를 우회하여 비정상적인 인증으로 접근 권한을 취득하는 취약점을 말한다. 일반적으로 다음과 같은경우 발생합니다. 적절하지 않은 앱 퍼미션(권한) 설정 여부 서비스 권한 상승 행위에 대한 통제 여부 기능에 대한 제한 또는 우회 금지 여부 불필요하거나 사용하지 않는 액티비티 제거 여부 인텐트 사용데 대한 안정성 여부 마스터 키 취약점 대응 여부 취약점 분석 인시큐어뱅크 앱을 이용하여, 로그인 인증 없이 권한을 우회해 보겠습니다. 해당 액티비티를 보면 android:exported="true"로 설정이 되어있습니다. 이 경우 다른 액티비티에서 인증 없이 접근이 가능합니다. adb를 사용해 확인해보겠습니다. 명령어 : < adb shell am start [앱이 설치된.. 2021. 8. 13.
앱 취약점 - 브로드캐스트 리시버(Broadcast Receiver) 결함 분석 취약점 개요 브로드캐스트 리시버(Broadcast Receiver)는 다양한 이벤트에서 발생하는 브로드캐스트 신호를 받아 처리하는 역할을 수행합니다. 신호를 받으면 애플리케이션에 미리 정의 해놓은대로 작업을 수행합니다. 하지만, 악의적인 의도로 브로드캐스트를 생성하여 외부에서 보내는 이벤트를 악의적으로 수행하게 할 수 있기 때문에 해당 취약점은 점검이 필수적입니다. 취약점 진단 과정 취약점 진단을 진행할 인시큐어뱅크 앱의 AndroidManifest.xml 파일에 있는 리시버 선언 부분입니다. 위 코드에서 브로드캐스트의 이름은 theBroadcast 이며, 해당 브로드캐스트 신호를 받으면 MyBroadCastReceiver에 설정된 작업을 수행하게 되어있습니다. 그리고 android:exported="t.. 2021. 8. 12.
드로저(Drozer)를 활용한 앱 취약점 진단 | part.2 - 컴포넌트 분석 1. 액티비티(Activity) 분석 명령어 : -- 노출된 액티비티를 보여줍니다. 위와 같이 5개의 노출되어있는 액티비티들이 출력되었습니다. 이제, 실제로 액티비티를 실행시킬 수 있는지 테스트 해보겠습니다. 명령어 : 명령어를 통해 디바이스에서 패스워드 변경 창이 나왔습니다. 원래는 로그인을 한 후에 이 화면을 볼수 있고 Username 부분에 자신의 ID가 입력되어있지만, 노출된 액티비티로 인해 Username 입력값이 채워지지 않은채로 패스워드 변경 화면이 실행이 되어버리기 때문에 다른 유저의 패스워드를 임의로 변경할 수 있는 위험이 .. 2021. 8. 11.