Android/InsecureBankv2

인시큐어뱅크 앱 취약점 - 개발자 백도어 취약점

박연준 2023. 7. 3. 21:29

인시큐어뱅크 앱 취약점 - 개발자 백도어 취약점

취약점 소개

개발자 백도어 취약점은 개발자가 편하게 사용자처럼 인증이 가능하고 여러 가지 업무를 수행하기 위해 자신만이 들어갈 수 있는 계정, 인증 우회 방법을 말한다.

개발자 본인에게는 편할 수 있지만 추후에 배포용 어플리케이션, 서버 코드에 개발 백도어 코드가 삽입되면 어플리케이션 보안에 매우 취약할 수 있다.

취약점 진단

DoLogin.java 파일을 열고 소스코드를 보면 httppost2를 선언해 username이 devadmin이면 별다은 암호 인증 처리 없이 로그인이 가능하다는 걸 추측할 수 있다.

 

인시큐어 뱅크 앱을 실행시킨 후 devadmin, 123123으로 입력하고 로그인을 시도한다.

 

다음과 같이 devadmin 계정은 아무 비밀번호나 입력해도 인증이 우회되어 로그인 되었음을 확인할 수 있다.

 

서버에도 devadmin 유저가 로그인 했다고 잘 나온다.

 

로그인이 완료되고 난 후 Transfer 을 실행시켜 Get Account를 클릭하면 값이 입력되지 않는다. 이는 개발자 계정으로 로그인 했기 때문인데 인시큐어뱅크 앱에서는 중요 정보 값이 실행되지 않지만 실제 앱에선 개발자 계정으로 로그인해도 중요 정보 값이 실행 되는 경우가 많다.

대응 방안

Dologin.java 파일에서 아래 부분의 if else 구문을 주석 처리한다.

 

서버 코드인 app.py 를 보면 devlogin 부분이 있는데 별 다른 검증 없이 username만 허용되면 어떠한 패스워드를 입력해도 로그인이 가능하다.

이 부분을 주석 처리하면 된다.