toplogo
Sign In

안드로이드 JNI 전역 참조는 여전히 취약점이 존재: 공격 및 방어


Core Concepts
안드로이드 시스템 서비스에서 JNI 전역 참조를 과도하게 생성하여 서비스 중단 공격(DoS 공격)을 수행할 수 있는 취약점이 여전히 존재한다.
Abstract
이 논문은 안드로이드 JNI 전역 참조 취약점에 대해 다룹니다. 새로운 JNI 전역 참조 소진 DoS 공격 기법을 제안했습니다. 이 공격은 최신 안드로이드 버전(Android 10)에서도 효과적입니다. JGREAnalyzer라는 정적 분석 도구를 개발했습니다. 이 도구는 시스템 서비스 API를 체계적으로 분석하여 JNI 전역 참조 취약점을 찾아냅니다. Android 10에서 148개의 시스템 서비스 중 12개 서비스에서 21개의 취약점을 발견했습니다. 이 중 9개는 권한 없이도 공격이 가능합니다. 취약점의 근본 원인을 분석하고, 전역 참조 개수 제한을 통해 JGRE 공격을 완화할 수 있는 새로운 방어 기법을 제안했습니다.
Stats
안드로이드 10에서 148개의 시스템 서비스 중 12개 서비스에서 21개의 취약점이 발견되었다. 이 중 9개 취약점은 권한 없이도 공격이 가능하다.
Quotes
"안드로이드 시스템 서비스에 대한 DoS 공격이 쉽게 수행될 수 있고, 심각한 결과를 초래할 수 있다." "기존 방어 기법은 체계적이지 않아 우회될 수 있다."

Key Insights Distilled From

by Yi He,Yuan Z... at arxiv.org 05-02-2024

https://arxiv.org/pdf/2405.00526.pdf
JNI Global References Are Still Vulnerable: Attacks and Defenses

Deeper Inquiries

이 취약점이 실제로 악용되어 안드로이드 생태계에 어떤 영향을 미칠 수 있을까?

이 취약점이 실제로 악용되면 안드로이드 시스템 서비스가 다운될 수 있으며, 시스템이 다시 부팅되어야 할 수도 있습니다. 이는 사용자 경험을 저해하고 안정성 문제를 초래할 수 있습니다. 또한, 이 취약점을 이용하여 악의적인 앱이 시스템을 공격하고 개인 정보를 탈취하거나 악의적인 활동을 수행할 수도 있습니다. 이는 안드로이드 생태계 전반에 심각한 보안 위협을 초래할 수 있습니다.

이 취약점을 완전히 해결하기 위해서는 어떤 근본적인 변화가 필요할까?

이 취약점을 완전히 해결하기 위해서는 안드로이드 시스템 서비스의 설계 및 구현 방식을 변경해야 할 수 있습니다. 먼저, JNI Global Reference Exhaustion (JGRE) 공격에 취약한 시스템 서비스들을 식별하고 보안 취약점을 수정해야 합니다. 또한, 시스템 서비스의 IPC 인터페이스를 보다 엄격하게 제어하고 권한 검사를 강화하여 악의적인 앱의 공격을 방지해야 합니다. 더 나아가, Java Native Interface (JNI)를 보다 안전하게 사용할 수 있는 방안을 모색하고 구현해야 할 것입니다.

이 취약점이 발견되지 않은 다른 시스템 서비스에도 유사한 문제가 존재할 수 있을까?

이 취약점은 JNI Global Reference를 사용하는 시스템 서비스에서 발견되었지만, 다른 시스템 서비스에서도 유사한 문제가 발생할 수 있습니다. 다른 시스템 서비스에서도 JNI를 사용하여 Java 객체를 관리하고 전달하는 경우, 메모리 누수나 자원 과다 소비로 인한 시스템 다운 문제가 발생할 수 있습니다. 따라서 안드로이드 시스템 전반에 걸쳐 JNI 및 JNI Global Reference 사용에 대한 보안 취약점을 주의깊게 검토하고 보완해야 할 필요가 있습니다.
0
visual_icon
generate_icon
translate_icon
scholar_search_icon
star