반응형
설명
하드코딩이란 개발 편의를 위해 입력받는 값을 프로그램 소스 코드 내에 데이터를 직접 입력해서 저장한 것이다.
안드로이드 앱은 디컴파일이 가능하여 관리자 계정, 암호화키와 같은 중요 정보를 코드 내 주석 등으로 노출할 경우
쉽게 확인할 수 있다.
취약점 진단
DoLogin.java & ChangePassword.java
인시큐어뱅크의 로그인 인증과 비밀번호를 변경을 하는 파일로서
소스 코드 내에 주석에 사용자 계정과 패스워드가 평문으로 노출되어 있다.
CryptoClass.java
사용자에게 입력받은 로그인 비밀번호를 AES 알고리즘으로 암호화 하는 클래스로서
AES 암호화 키가 노출되어 있다. AES 알고리즘은 대칭키 기반 암호화 방식으로 송수신자 사이의 공개키를 가지고
AES 암호화 키가 노출되어 있다. AES 알고리즘은 대칭키 기반 암호화 방식으로 송수신자 사이의 공개키를 가지고
전송된 데이터를 암호화 및 복호화를 한다. 소스코드에서 "This is the super secret key 123" 문자열을
key 변수에 저장하고 있는데, key 변수가 암호화 및 복호화를 할 때 사용되는 중요한 대칭키이다.
따라서 키 값이 노출되면 공격자에 의해 비밀번호가 복호화 될 수 있다.
대응방안
①
중요 정보가 하드코딩되지 않도록 제거해야 한다. ②
중요 키 값이 소스 코드 내에서 사용되어야 한다면, 해당 값은 암호화해야 한다.③
개발자용 테스트 계정 등 개발에 사용한 정보에 주의를 기울여 개발해야 한다.
반응형
'해킹-보안 > 모바일' 카테고리의 다른 글
안전하지 않은 로깅 취약점 (2) | 2020.12.06 |
---|---|
로컬 암호화 취약점 & SD 카드 저장소 취약점 (0) | 2020.12.06 |
녹스 Burp 인증서 설치 (0) | 2020.12.04 |
인시큐어뱅크 앱 설치 (1) | 2020.12.04 |
MSFVenom으로 Android apk에 페이로드 삽입하기 (1) | 2020.09.29 |