Snowblind 모바일 악성코드
Snowblind로 추적되는 새로운 Android 악성 코드는 보안 기능을 악용하여 민감한 사용자 데이터를 관리하는 앱의 현재 변조 방지 보호 기능을 우회합니다. Snowblind는 접근성 서비스의 오용을 감지할 수 없도록 대상 애플리케이션을 다시 패키징하는 것을 목표로 합니다. 이를 통해 악성코드는 자격 증명과 같은 사용자 입력을 캡처하거나 원격 제어권을 얻어 악의적인 활동을 수행할 수 있습니다.
Snowblind가 다른 Android 악성코드와 다른 점은 애플리케이션 무결성 검사를 위해 Android에서 사용하는 Linux 커널 기능인 'seccomp'(보안 컴퓨팅)를 활용한다는 것입니다. 이 기능은 애플리케이션 재패키징과 같은 안전하지 않은 작업으로부터 사용자를 보호하기 위한 것입니다.
보안 기능을 악용하여 장치를 손상시키다
Snowblind를 분석한 결과 Linux 커널 기능인 'seccomp'를 활용하여 Android 애플리케이션을 공격하는 혁신적인 방법이 드러났습니다. Seccomp는 애플리케이션이 수행할 수 있는 시스템 호출(syscall)을 제한하여 공격 표면을 줄이는 보안 메커니즘입니다. Google이 Android 8(Oreo)에 처음 통합한 seccomp는 모든 Android 애플리케이션의 상위 프로세스인 Zygote 프로세스 내에서 구현되었습니다.
Snowblind는 특히 변조 방지 메커니즘에 앞서 로드되는 기본 라이브러리를 주입하여 민감한 데이터를 처리하는 애플리케이션을 대상으로 합니다. 파일 액세스에 일반적으로 사용되는 'open()'과 같은 시스템 호출을 가로채기 위해 seccomp 필터를 설치합니다. 대상 애플리케이션 APK의 변조 검사 중에 Snowblind의 seccomp 필터는 승인되지 않은 syscall을 방지하고 잘못된 syscall 인수를 나타내는 SIGSYS 신호를 트리거합니다.
탐지를 우회하기 위해 Snowblind는 SIGSYS용 신호 처리기를 설치합니다. 이 핸들러는 스레드의 레지스터를 검사하고 수정하여 악성코드가 'open()' 시스템 호출의 인수를 조작할 수 있도록 합니다. 연구원들은 이 조작이 APK의 변경되지 않은 버전을 볼 수 있도록 변조 방지 코드를 리디렉션한다고 설명합니다.
seccomp 필터는 표적 접근 방식으로 인해 성능에 미치는 영향과 운영 공간을 최소화하므로 사용자가 일반적인 애플리케이션 사용 중에 이상 현상을 감지할 가능성이 거의 없습니다.
Snowblind를 통해 공격자는 다양한 유해한 작업을 수행할 수 있습니다.
Snowblind 공격에 사용된 방법은 상대적으로 알려지지 않은 것으로 보이며 연구원들은 대부분의 앱이 이를 방어할 수 있는 장비를 갖추고 있지 않다고 지적합니다. 이러한 유형의 공격은 은밀하게 작동하여 로그인 자격 증명을 손상시킬 수 있는 심각한 위험을 초래합니다. 게다가 이 악성코드는 이중 인증, 생체인식 확인과 같은 중요한 앱 보안 기능을 비활성화하는 기능도 갖추고 있습니다.
공격자는 이 기술을 활용하여 일반적으로 사용자 상호 작용이 필요한 작업을 자동화하여 민감한 화면 정보에 액세스하고, 장치를 탐색하고, 애플리케이션을 조작하고, 보안 프로토콜을 우회할 수 있습니다. 또한 개인 식별 정보와 거래 데이터를 추출할 수도 있습니다.
Snowblind 공격 캠페인이 애플리케이션에 미치는 영향의 정도는 여전히 불분명합니다. 또한, 향후 다른 위협 행위자가 이 방법을 채택하여 Android 보호를 회피할 수 있다는 우려도 있습니다.