목록분류 전체보기 (420)
외로운 Nova의 작업실
- 취약점 소개 매니페스트 파일에 debuggalbe 이 true로 설정되어 있으면 중대한 보안 결함이 발생할 수 있습니다. - 취약점 진단 매니페스트파일을 보겠습니다. dz> run app.package.manifest com.android.insecurebankv2 application 태그 부분을 보겠습니다. 보게되면 debuggable이 true로 되어있습니다. 이는 보안 위협을 줄 수 있습니다. 이와 관련해서는 다음에 배워보겠습니다. - 취약점 대응방안 앱을 배포하기전에 매니페스트파일의 debuggable 부분을 체크하고 false로 설정합니다.
- 디바이스 관리자 앱을 활용한 홈버튼 기능 마비 디바이스 관리자 앱에대한 권한을 얻으면 홈버튼과 뒤로가기 버튼을 마비시킬 수 있다고합니다. 한번 만들어보겠습니다. package com.example.lockmalware import android.app.Activity import android.app.admin.DevicePolicyManager import android.content.ComponentName import android.content.Context import android.content.Intent import android.os.Build import android.os.Bundle import android.provider.Settings import android.view.V..
- 취약점 소개 키보드 캐시이슈는 사용자가 중요 정보를 클립보드에 저장하면 제삼자가 이러한 정보를 획득할 수 있는 취약점 입니다. 이 취약점을 악용하면 이전에 중요 정보를 복사하여 인증에 성공한 다른 사용자의 인증 정보를 활용해서 별다른 인증 절차없이 제삼자도 인증에 성공할 수 있습니다. 이러한 취약점이 있는 이유는 클립보드 접근 권한이 따로 없어서 아무나 클립보드에 접근할 수 있기때문입니다. - 취약점 진단 clipper 앱을 다운받아줍니다. https://m.apkpure.com/kr/clipper-clipboard-manager/org.rojekti.clipper/download/78-APK 이후 nox 에 설치해줍니다. 그런 다음 인시큐어 뱅크에서 계좌번호를 복사해줍니다. 이제 clipper에 가..
- 취약점 소개 로그는 서비스가 정상작동 하지않을때 고치기위해서 디버깅의 정보로 사용되는 중요한 정보입니다. 하지만, 사용자의 개인정보나 비밀정보를 로깅해버리면, 공격자가 로그를 보고 개인정보를 탈취할 수 있습니다. adb를 통해 로그를 확인할 수 있으며, 안드로이드 커널은 로그와 관련된 4가지 버퍼를 관리하고 있습니다. 그 종류와 특징은 아래와 같습니다. Main : 메인 앱 로그로서 앱이나 플랫폼 내부에서 android.util.Log 클래스로 기록된 로그 Event : 시스템에서 발생하는 이벤트 정보를 위한 로그 Radio : 이동통신망과 관련된 이벤트 정보 system : 안드로이드 플랫폼 내부의 하위 레벨에 있는 시스템이나 디버깅을 위한 로그 - 취약점 진단 먼저, 로그인시 로그인 계정이 남는지..
- 연구 개요 플레이스토어에서 어플을 보다보면 공부잠금 어플이라고해서 일정 시간을 설정하면 그 시간동안 핸드폰으로 아무것도 할 수 없게 만드는 어플이 있습니다. 이러한 기능을 악용해서 패스워드를 입력해야만 앱이 꺼지고 핸드폰을 사용할 수 있게하는 앱을 만들어서 패스워드 값으로 돈을 요구하는 LockMalware에대해서 구현해보는 연구를 해보겠습니다. - 메뉴바를 숨기고 뒤로가기 버튼 기능 마비 첫번째 시도에 넣어볼 것은 뒤로가기랑 홈버튼을 숨기고 뒤로가기 버튼을 눌렀을때 작동이 되지않는 앱을 만들고 홈 버튼 기능을 마비시키는 기능을 넣어보겠습니다. 비밀번호는 간단하게 1234로 했습니다. import android.os.Build import android.os.Bundle import android.v..
- 취약점 소개 앱을 실행하고 다양한 작업을 하게되면 힙 영역에 정보들이 남습니다. 이 힙 메모리 영역을 덤프해서 분석하면 유의미한 정보를 얻을 수 있습니다. 즉, 다른 앱이 금융권앱의 힙 메모리 영역을 덤프해서 공격자 서버로 보낸다면 아이디나 패스워드같은 정보를 얻을 수 있습니다. - 취약점 진단 먼저 앱을 켜서 계좌로 송금하는 작업을 해보겠습니다. 이를 해야 힙에 정보가 남습니다. 이후 메모리 덤프를 위해 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..
- 취약점 소개 Android 4.3 이하 환경에서 WebView와 관련된 알려진 취약점이 있습니다. WebView는 개발자가 애플리케이션 내에 웹 콘텐츠를 표시할 수 있도록 하는 Android 시스템의 구성 요소입니다. 주목할만한 취약점 중 하나는 "JavaScript 인터페이스" 문제입니다. Android 4.3 이하에서 JavaScript가 활성화된 WebView를 사용하는 앱은 Java 개체를 WebView에서 실행되는 JavaScript 코드에 노출할 수 있습니다. 앱이 입력을 적절하게 검증 및 삭제하지 않았거나 노출된 Java 개체를 통해 액세스할 수 있는 중요한 정보가 있는 경우 잠재적인 보안 위험이 발생할 수 있습니다. - 취약점 진단 만약 아래와 같은 소스코드를 포함한 webview 소스..
- 취약점 소개 이용자로부터 입력값을 받아 html을 만들고 pdf를 만들게 될때, 이용자의 입력값을 검증하지않으면 html에서 xss 공격을 실행할 수 있습니다. - 취약점 진단 cup과 Bin을 쇼핑몰에서 사게되고 영수증을 보게되면 우리는 서버에게 패킷으로 아래와 같은 패킷을 보냅니다. 이후 pdf 파일로 아래처럼 보여줍니다. 이때 패킷내에 title 값을 아래와 같이 변경하면 파일의 내용이 나옵니다. - 취약점 대응 패킷값이 유효한 값인지 검증후에 html을 만들어야합니다.