ThreatFabric 연구진은 Hirudo라는 새로운 안드로이드 악성코드를 발견했다. 이 악성코드는 기존 뱅킹 트로이목마의 기능과 완전한 원격 제어 도구의 기능을 결합한다. 현재 이 악성코드는 인도네시아의 8개 뱅킹 앱을 표적으로 삼고 있으며, 중국, 인도, 멕시코, 모로코, 태국의 은행을 공격하도록 조정될 가능성을 보여주는 내부 지표도 확인됐다.
Hirudo는 기기에서 로그인 정보를 훔치는 데 그치지 않고, WebRTC를 통해 화면을 실시간으로 보고, 접근성 서비스를 이용해 휴대전화를 제어하며, 전면 및 후면 카메라에 접근할 수 있도록 한다. 또한 문자 메시지를 수집하며, 여기에는 최대 90일을 대상으로 하는 초기 검사와 특정 은행 및 지갑 발신자 목록이 포함된다.
악성코드는 어떻게 휴대전화에 도달하는가?
Hirudo는 쇼핑 앱, 성인 동영상 시청 앱 또는 짧은 드라마 앱처럼 정상적으로 보이는 애플리케이션에 내장된 드로퍼를 통해 배포되며, 소셜 미디어를 통해 홍보된다. 애플리케이션이 설치되면 드로퍼는 기기에 Hirudo가 있는지 확인한 뒤, 존재하지 않으면 악성 페이로드를 설치한다.
특정 인도네시아 뱅킹 앱이 발견되면 악성코드는 가짜 업데이트 메시지를 표시한 다음 실제 앱을 제거하고 표적 은행에 연결된 변조 버전을 다운로드한다. 그 결과 사용자는 일반적인 뱅킹 앱을 사용하고 있다고 생각하지만, 가짜 버전은 절도와 제어를 위한 인터페이스로 작동한다.
앱 내부의 무결성 검사 우회
변조 버전에는 앱 호출을 가로채는 엔진이 포함되어 있으며, 이를 통해 앱 자체에서 디지털 서명 검사, 접근성 서비스, 화면 캡처 및 Play Integrity 검사를 비활성화하려 한다. 연구진에 따르면 이 엔진은 안드로이드가 요구하는 서명 인증서를 원래 인증서로 교체하고 테스트 서명을 숨길 수 있다. 또한 접근성 서비스 조회에 빈 목록을 반환해 공격자의 서비스를 검사에서 보이지 않게 만든다.
이 방식의 중요성은 대응 지점을 기기 검사에서 교체된 앱 자체의 무결성 메커니즘으로 옮긴다는 데 있다. 따라서 교체된 앱이 생성하는 신호는 그 자체만으로 신뢰할 수 없으며, 엔진을 재사용할 수 있다는 점은 다른 애플리케이션과 지역을 대상으로 공격을 확장하는 일을 용이하게 할 수 있다.
금융 기관이 검토해야 할 사항은 무엇인가?
- Play Integrity를 검증하고 그 결과를 서버에서 강제 적용해야 한다. 다만 올바른 결과만으로 충분한 증거로 간주해서는 안 된다. Hirudo가 자체 서버를 통해 검증 요청을 전달할 수 있기 때문이다.
- 사기 패턴을 탐지하기 위해 다층적 행동 분석을 사용해야 하며, 행동 데이터가 없는 경우에도 조사할 가치가 있는 신호로 취급해야 한다.
- 접근성 및 화면 캡처 신호를 단독 차단 조건이 아닌 보조 증거로 간주하고 위험도 산정에 포함해야 한다.
- 로그인, 인증 정보 복구, 수취인 생성 및 결제 승인 과정에서 거래 위험 통제를 유지해야 한다. 변조된 로컬 결과는 서버의 결정을 대신할 수 없기 때문이다.
금융 기관에 대한 실질적인 경고는 악성코드가 앱 자체를 교체하고 제어 구성 요소를 숨길 수 있는 상황에서 앱 내부의 단일 검사에 의존하는 것만으로는 더 이상 충분하지 않다는 점이다. Hirudo 운영자와 감염 규모에 대해 이용 가능한 세부 정보는 원문 자료에 언급되어 있지 않으므로, 실제 캠페인 범위를 추정하는 데 한계가 있다.