Основні поняття
본 연구는 새롭게 구축된 CVE 기반 벤치마크 및 기존 합성 벤치마크를 활용하여 11가지 무료 안드로이드 SAST 도구의 성능을 분석하고, 도구 개발자와 사용자에게 실질적인 제안을 제공합니다.
Анотація
본 연구 논문은 안드로이드용 정적 애플리케이션 보안 테스팅(SAST) 도구의 성능을 종합적으로 분석하고 비교합니다. 연구진은 99개의 기존 정적 분석 도구 중 엄격한 기준에 따라 11개의 무료 오픈소스 안드로이드 SAST 도구를 선정했습니다. 이후, 각 도구의 메타데이터를 검토하여 다양한 취약점 유형을 67개의 일반/공통 유형으로 통합하고, 도구 보고서를 표준화된 형식으로 조정하여 자동화된 비교를 가능하게 하는 VulsTotal이라는 플랫폼을 개발했습니다.
연구 목표
본 연구는 다음과 같은 연구 질문에 답하고자 합니다.
- RQ1: SAST 도구는 VulsTotal에서 지원하는 통합된 취약점 유형을 얼마나 잘 커버하는가? 사용된 벤치마크에서 취약점 유형의 커버리지는 어떠한가?
- RQ2: CVE에 문서화된 안드로이드 취약점 환경은 선택된 SAST 도구에서 제공하는 커버리지와 일치하는가? GHERA 및 MSTG&PIVAA는 어떠한가?
- RQ3: 다양한 벤치마크에서 이러한 SAST 도구의 취약점 탐지 효과는 어떠한가? 이러한 도구는 동일한 취약점 유형에 대해 어떻게 작동하는가?
- RQ4: 이러한 SAST 도구의 시간 성능은 어떠한가?
방법론
연구진은 11개의 SAST 도구를 사용하여 GHERA, MSTG&PIVAA, 그리고 새롭게 구축된 CVE 기반 벤치마크를 스캔했습니다. CVE 기반 벤치마크는 292,776개의 CVE 항목을 수동으로 분석하여 구축되었으며, 250개의 안드로이드 관련 CVE와 229개의 APK, 34개의 취약점 유형을 포함합니다. VulsTotal 플랫폼을 사용하여 도구의 성능을 유형 커버리지, 유형 일관성, 탐지 효과 및 시간 성능과 같은 다양한 차원에서 평가했습니다.
주요 결과
- 취약점 유형 커버리지: 평가된 도구 중 어느 것도 67개의 통합된 취약점 유형을 모두 커버하지 못했으며, 가장 높은 커버리지는 67%에 불과했습니다.
- 취약점 유형 일관성: 합성 벤치마크(GHERA, MSTG&PIVAA)에 주입된 취약점 유형과 도구에서 지원하는 유형 간에 큰 차이가 있었습니다.
- 탐지 효과: 도구는 주로 패턴 매칭 방법을 사용하여 취약점을 탐지했으며, CVE 기반 벤치마크와 GHERA에서 발견된 시나리오 관련 논리적 취약점 유형(예: 입력 유효성 검사 취약점)을 탐지하는 데 어려움을 겪었습니다.
- 시간 성능: 바이트코드 기반 SAST 도구가 소스 코드 분석을 사용하는 대부분의 SAST 도구보다 빠르게 스캔했습니다.
결론
본 연구는 안드로이드 SAST 도구의 성능을 종합적으로 분석하고, 도구 개발자와 사용자에게 유용한 정보를 제공합니다. 특히, 단일 도구만으로는 포괄적인 취약점 스캔을 수행할 수 없으며, 여러 도구를 함께 사용하는 것이 중요하다는 것을 강조합니다. 또한, 기존 벤치마크와 실제 CVE 데이터 간의 불일치를 지적하고, 현실적인 벤치마크를 구축하는 것의 중요성을 강조합니다.
Статистика
본 연구에서는 99개의 안드로이드 SAST 도구 중 11개의 무료 오픈소스 도구를 선정했습니다.
연구진은 67개의 일반/공통 취약점 유형을 정의했습니다.
APKHunt는 67개 유형 중 45개(67%)를 커버하여 가장 높은 커버리지를 보였습니다.
JAADAS는 15개 유형(22%)만 커버하여 가장 낮은 커버리지를 보였습니다.
CVE 기반 벤치마크는 250개의 CVE, 229개의 APK, 34개의 취약점 유형을 포함합니다.
"Use Invalid Server/Hostname Verification" 유형은 CVE에서 가장 많이 발견되었으며, 1,449개의 라벨이 할당되었습니다.