목록앱 진단(Android)/Insecurebank 실습 (8)
보안개구리

[개 요] 'Weak Cryptography implementation'은 암호 알고리즘에 대한 취약점입니다. 암호 알고리즘을 사용할 때는 표준화된 알고리즘을 사용하고, 알고리즘에 결함이 발생한 알고리즘/오래된 암호 알고리즘 보안에 취약하기 때문에 키값을 갖고 있더라도 해독될 수 있습니다. 따라서 암호 알고리즘은- 취약 알고리즘: RC2, RC4, RC5, MD4, MD5, SHA1, DES, 3DES [진단 과정]1) 다음은 LoginActivity.java 파일의 코드중 일부입니다. 아이디와 비밀번호에 해당하는 변수를 입력받아 아이디는 Base64 인코딩을, 비밀번호는 AES로 암호화하고 있습니다. 2) 다음은 문제가 있는 CrytpoClass.java 파일의 코드입니다. AES에서 사용되는 키값을..

[개 요]웹 뷰(WebView)는 안드로이드 개발 시 주로 웹브라우저에서 보이는 화면을 표시하거나 웹 앱 혹은 하이브리드 앱을 개발시 사용됩니다. 웹 뷰를 사용하기 위해서는 인터넷에 엑세스할 수 있는 권한이 필요한데 해당 권한으로 인하여 취약점이 발생할 수 있습니다. [진단 방법]1) Android.Manifest.xml 파일 확인 시 인터넷 사용권한이 존재합니다. 이럴경우 사용자의 민감 정보가 외부 서버로 전송되어 개인 정보, 금융 정보 등이 유출될 수 있고 피싱 공격의 위험성이 존재합니다. [대응 방안] 웹 뷰 취약점의 경우 구글에서 안드로이드 4.3 젤리빈 이하 환경에서의 보안 패치를 중단하였습니다. 때문에 안전한 웹 뷰를 구현하기 위해서는 안드로이드 4.4 킷캣 이상의 버전을 사용해야 하며, 웹 ..

[개 요] 콘텐츠 프로바이더(Content Providers)는 안드로이드 애플리케이션 간에 데이터를 공유하고 관리하는 인터페이스입니다. 안드로이드의 모든 애플리케이션은 기본적으로 다른 애플리케이션이 자신의 데이터에 접근하는 것을 금지하지만, 컨텐츠 프로바이더를 사용하면 다른 애플리케이션이 지정된 권한 내에서 데이터에 접근할 수 있습니다. 모든 컨텐츠 프로바이더는 AndroidManifest.xml의 요소에 정의되며, 접근을 위해서는 URI와 콘텐츠 리졸버(Content Resolver)가 필요하며 컨텐츠 리졸버를 통해 다른 애플리케이션의 컨텐츠 프로바이더에 접근할 수 있습니다. 이때 보안이 취약한 경우, 공격자는 민감한 데이터에 접근하거나 이를 변경할 수 있습니다. [진단 과정]1) Android..

[개 요] 루팅(Rooting)은 안드로이드 기기에서 사용자가 시스템 파일 및 설정에 대한 관리자 권한을 얻는 과정을 의미합니다. 루팅 된 기기는 보안 제한을 우회할 수 있어 많은 앱이 이를 탐지하려고 합니다. 루팅 탐지가 필수적인 금융 앱이나 게임 앱에서는 다음 네 가지 경로를 주로 체크합니다: /system/bin/su /system/xbin/su /system/app/superuser.apk /data/data/com.noshufou.android.su [진단 과정]1) 인시큐어뱅크 앱 로그인 시 "Rooted Device!!"라는 메시지가 화면 하단에 출력됩니다. 이를 통해 해당 앱에서는 루팅 탐지 로직이 존재함을 알 수 있는데 해당 로직을 자세히 확인하기 위해 Jadx를 통해 소스코드를 확인해 ..

[개 요] 안드로이드 액티비티는 애플리케이션을 구성하는 가장 기본적인 구성단위 중 하나로, 안드로이드 애플리케이션과 사용자 간의 상호 작용에 필요한 기능을 제공합니다.(ex. 전화, 이메일) 각 액티비티는 독립적으로 동작하기 때문에 현재 액티비티에서 다음 액티비티를 실행하는데 액티비티가 보안적으로 취약하게 선언되어 있으면 로직을 무시하고 공격자가 필요한 액티비티를 강제로 호출하며, 해당 취약점을 악용하는 경우 권한이 없는 사용자가 특정 액티비티에 접근하여 특정 기능을 활성화할 수도 있습니다. [진단 과정]1) drozer를 이용하여 외부에 노출된 액티비티가 있는지 확인한 결과 5개의 액티비티가 외부에 노출되어 있는 것을 확인하였습니다.- 명령어 : run app.activity.info -a com.an..

[개요] 로컬 암호화 이슈란 디바이스에 저장된 데이터가 적절히 암호화되지 않아 발생하는 보안 문제로 주요 이슈는 다음과 같습니다.- 취약한 암호화 알고리즘: 강력하지 않은 암호화 알고리즘 사용 시 공격자가 쉽게 데이터를 해독할 수 있습니다.- 암호화 키 관리 문제: 암호화 키가 안전하게 저장되지 않거나 쉽게 추측 가능한 경우, 암호화의 효과가 무력화될 수 있습니다.- 부분적 암호화: 데이터의 일부분만 암호화되거나, 중요하지 않은 데이터만 암호화되어 민감한 정보가 노출될 위험이 있습니다.- 디폴트 설정 사용: 개발 시 암호화 관련 기본 설정을 변경하지 않으면 보안 취약점이 발생할 수 있습니다. [진단 과정]1) 인시큐어뱅크 앱 첫 로그인 화면에서 'Autofill Credentials' 버튼 클릭 시 마..

[개요] 취약한 인증 메커니즘은 정상적인 인증 절차를 우회하여 비정상적인 인증으로 접근 권한을 취득하는 취약점으로 일반적으로는 다음과 같은 경우에 해당합니다. - 적절하지 않은 앱 퍼미션 설정 여부 - 서비스 권한 상승 행위에 대한 통제 여부 - 기능에 대한 제한 또는 우회 금지 여부 - 불필요하거나 사용하지 않는 액티비티 제거 여부 - 인텐트 사용에 대한 안정성 여부 - 마스터 키 취약점 대응 여부 [진단 과정]1) 인시큐어뱅크앱을 다운받을 시 같이 다운받은 AndroidLabServer 내 mydb.db 파일을 SQLite를 통해 확인합니다. 2) 이 때 accounts 테이블을 확인하면 account_number는 계좌번호고 balance는 잔액입니다. 3) jack이라는 계정으로 로그인 후 Tra..

[개 요] 브로드캐스트 리시버는 안드로이드 4대 컴포넌트 중 하나로, 안드로이드 디바이스에서 이벤트가 발생하면 브로드캐스트 신호를 보내는데, 이 신호를 받아 처리하는 역할을 수행합니다. 애플리케이션에서 발생하는 브로드캐스트를 받기 위해서는 브로드캐스트 리시버가 설정되어 있어야 하며, 신호를 받는 경우 애플리케이션에 정의해 놓은 작업을 수행합니다. (ex: 전화 및 메시지 수신, 배터리 부족, 사진 촬영 및 캡처 등) 이때 공격자가 임의의 브로드캐스트를 생성하여 원하는 정보를 가로채거나 조작할 수 있는데 이를 브로드캐스트 리시버 결함이라고 합니다.[진단 과정]1) 먼저 AndroidManifest.xml 내 태그를 확인합니다. 해당 태그는 브로드캐스트 리시버 컴포넌트를 정의한 태그로 특정 인텐츠를 수신하..