취약점 개요
안드로이드 다중 사용자 로그인 취약점은 서로 다른 모바일 단말기에서 하나의 아이디로 로그인이 가능한 취약점이다.
안드로이드의 다른 취약점과 달리 다중 사용자 로그인 취약점은 위험도가 상당히 낮으며 서비스에 따라 취약점으로 분류하지 않은 경우가 있다.
하지만, 모든 앱에 취약점으로 분류하지 않은 것은 아니고 서비스 용도, 위험이 발생할 가능성이 존재한다면 취약점으로 분류해야 한다.
만약, 비밀번호가 취약하게 설정되어 있어 무작위 대입 공격이나 비밀번호 추측 공격을 시도하여 계정이 유출되었다면 비밀번호를 변경하지 않는 한 계속 악용할 소지가 있다.
웹 모의해킹 시 관리자 페이지는 화이트 리스트에 등록된 아이피만 접근을 허용하며 다중 사용자 로그인을 시도하게 되면 세션이 자동으로 끊어진다. 즉, 다중 사용자 로그인은 무조건 취약점으로 분류하면 안 되고, 상황에 따라 분류해야 한다.
취약점 진단
인시큐어뱅크(InsecureBankv2)는 상대방의 계좌로 입금, 계좌 내역 조회, 비밀번호 변경 등 금융 정보를 거래하는 안드로이드 앱이다. 다른 사용자가 자신의 아이디로 로그인을 하면 비밀번호를 변경하거나 금융 거래가 가능하다.
안드로이드 애뮬레이터를 두개 생성해서 모바일 앱을 실행 후 동일한 계정으로 로그인을 하면 세션이 끊어지지 않고 계속 유지된다. 또한, 일정 시간 동안 작업을 수행하지 않을 경우 자동으로 로그아웃을 하는 기능도 존재하지 않는다.
대응 방안 및 검증
다중 사용자 로그인 취약점은 금융 목적에 따라 중요하게 취급되는 모바일 앱에 서로 다른 모바일 단말기에서 동일한 아이디로 로그인이 가능하며 세션이 끊어지지 않아 발생한다.
이를 해결하려면 서로 다른 모바일 단말기에서 로그인에 성공한 아이디가 2개 이상이라면 세션이 끊어지도록 설정해야 한다.
다중 사용자 로그인 취약점 |
다중 사용자 로그인이 되지 않도록 설정 |
다중 사용자 로그인이 발생 시 새로운 기기에서 로그인이 시도되었다는 메시지를 메일로 제공 |
▶ 안드로이드 컴포넌트 취약점 (Android Activity)
▶ 안드로이드 컴포넌트 취약점 (Android Broadcast Receiver)
▶ 안드로이드 컴포넌트 취약점 (Android Content Provider)
▶ 안드로이드 백업 취약점 (Android Backup)