주요 콘텐츠로 건너뛰기
x

종합적인 Android 바이너리 스캔을 통해 Google Play 스토어에서 가장 인기 있는 앱 700개 중 5개 중 1개에서 알려진 보안 취약점이 발견 되었습니다.

2018년 4월 24일  바이너리 레벨 오픈 소스 소프트웨어 보안 및 컴플라이언스 분야의 글로벌 리더인 InsignaryGoogle Play 스토어에서 가장 인기 있는 700개의 Android 앱에 대해 최근 실시한 종합 바이너리 코드 스캔 결과를 공개하였습니다. Insignary Clarity™의 고유한 Fingerprint 기반 바이너리 스캐닝 기술을 활용하여 알려진 오픈 소스 보안 취약점에 대한 Android 패키지 키트(APK) 파일을 분석했습니다. 조사 결과에 따르면 Google Play 스토어에서 제공되는 가장 인기 있는 Android 5개 중 약 1개에 해커가 악용할 수 있는 알려진 보안 취약성이 존재 하는 것으로 알려진 오픈 소스 구성 요소가 포함되어 있었습니다. 사용자는 무료 사이트 www.TruthIsIntheBinary.com을 방문하여 APK 파일을 장치에 설치하기 전에 잠재적인 소프트웨어 취약성이 포함되어 있는지 스스로 테스트 해 볼 수 있습니다.

오늘날의 소프트웨어 개발 및 공급망 환경에서는 소프트웨어에 어떤 오픈 소스 구성 요소가 포함되어 있는지 아는 것이 거의 불가능했습니다. Clarity 바이너리 파일(소비자가 실제 사용하는 소프트웨어 형태)의 모든 오픈 소스 구성 요소를 카탈로그화하고 알려진 보안 취약성이 있는 것으로 알려진 구성 요소를 보고할 수 있는 최초의 도구입니다.”라고  insignary Inc.의 강태진(TJ) CEO가 말했습니다. “우리 툴이 엔터프라이즈 소프트웨어에서 작동하는 동안, 우리는 오늘날 쉽게 얻을 수 있는 앱들의 코드에 잠복해 있는 알려진 다 수의 보안 취약점을 입증하기 위한 좋은 방법 이라고 생각했습니다. 시연을 위해 Google Play 스토어에서 가장 인기 있는 700개의 앱을 다운로드 기준으로 조사하기로 했습니다. 검사한 Android 앱의 20%에 보안 취약점이 있는 것으로 알려진 오픈 소스 구성 요소가 있는 것으로 나타났습니다. 소비자와 기업이 스마트폰에 의존하는 만큼 앱 개발자가 취할 수 있는 가장 기본적인 보안 예방 조치, 즉 알려진 보안 취약성이 없는 업데이트된 소프트웨어 버전을 배포하지 않는다는 사실에 놀랐습니다.”

연구과정
20184월 첫째 주 동안 Insignary의 연구 개발 팀은 Google Play 스토어에서 가장 인기 있는 700개 앱의 APK 파일을 스캔했습니다. 팀은 '게임', '생산성', '소셜', '엔터테인먼트', '교육' 35개의 주요 Android 앱 카테고리에서 각각 가장 인기 있는 20개의 앱을 선택했습니다

다음은 몇 가지 주요 결과입니다.

  • 바이너리 스캔은 상위 소프트웨어 공급업체가 Google Play 스토어에서 사용할 수 있는 Android 앱에 보안 취약성이 있는 오픈 소스 구성 요소 버전이 포함되어 있음을 나타냅니다. 검사된 700개의 APK 파일 중 136개에 보안 취약점이 포함되어 있습니다.
  • 보안 취약점이 있는 APK 파일의 57%에는 "심각도 높음" 등급의 취약점이 포함되어 있습니다. 이는 배포된 소프트웨어 업데이트가 잠재적인 보안 위협에 여전히 취약하다는 의미입니다.
  • 보안 취약점이 있는 136개의 APK 파일 중 86개에는 openssl과 관련된 취약점이 포함되어 있습니다.
  • 보안 취약점이 있는 136개의 APK 파일 중 58개에는 ffmpeg libpng와 관련된 취약점이 포함되어 있습니다. 이러한 오픈 소스 구성 요소의 보급은 모바일 애플리케이션에 많은 이미지와 비디오가 있기 때문일 수 있습니다.
  • 흥미롭게도 스캔된 APK 파일 중 3개에는 보안 취약점이 있는 5개 이상의 바이너리가 포함되어 있습니다. 취약점이 있는 대부분의 APK 파일에는 보안 취약점이 있는 1-3개의 바이너리가 포함되어 있습니다.
  • "게임" 범주의 상위 20개 앱 중 70%에는 보안 취약점이 포함되어 있습니다
  • "스포츠" 카테고리의 상위 20개 앱 중 30%에는 보안 취약점이 포함되어 있습니다.
  • 이 연구는 5개의 APK 파일 중 1개가 사용 가능한 OSS 구성 요소의 올바른 최신 버전을 활용하지 않는다는 것을 보여줍니다.

오픈 소스 커뮤니티는 이전에 나열된 거의 모든 보안 취약점을 해결하기 위해 새 버전의 구성 요소를 만들었습니다. 소프트웨어 개발자 및 공급업체는 이러한 버전을 사용하여 심각한 기업 손실을 초래할 수 있는 데이터 위반 및 후속 소송을 방지할 수 있습니다. 흥미롭게도 Insignary는 다양한 공급업체와 논의하는 동안 한 줄씩 수동으로 패치를 적용하는 것을 선호하는 몇몇 개발자를 만났습니다.

취약점을 해결하기 위한 이 임시적인 접근 방식은 다른 사람들도 사용할 수 있지만 예외적인 상황으로 봐야 할 것 입니다. 또한 이 방법으로 해결이 되더라도 Android 앱 개발자는 바이너리를 스캔하여 알려진 모든 보안 취약점을 포착하고 해결하는지 확인하는 것이 좋습니다.

Insignary의 발견은 Android 앱 개발자가 올바른 구성 요소 버전을 사용하지 못하는 두 가지 가능성을 제시합니다. 그들은 오픈 소스 소프트웨어 취약성 문제를 인식하지 못하거나 보안 취약성을 포함하는 것으로 알려진 오픈 소스 구성 요소를 정확하게 찾고 보고하는 프로세스 또는 도구가 없습니다.

Android APK 파일을 검사하는 데 사용되는 도구에 대하여
이 연구를 효과적이고 정확하게 수행하기 위해 Insignary는 알려진 예방 가능한 보안 취약점에 대해 소프트웨어 바이너리를 사전에 스캔할 수 있는 보안 솔루션인 Clarity™를 활용하는 동시에 라이선스 규정 준수 문제도 식별했습니다. 소스 코드나 리버스 엔지니어링 없이 바이너리 수준에서 작동하는 고유한 Fingerprint 기반 기술을 사용합니다. 이를 통해 소프트웨어 개발자, VAR(Value Added Reseller), 시스템 통합업체 및 소프트웨어 배포를 감독하는 MSP는 소프트웨어 제공 전에 예방 조치를 적절하고 쉽게 취할 수 있습니다.

InsignaryClarity는 바이너리 코드에서 “fingerprint“를 스캔하여 검사한 다음 수많은 오픈 소스 저장소의 오픈 소스 구성 요소에서 수집된 Fingerprint와 비교한다는 점에서 특이합니다. 체크섬 또는 해시 기반 바이너리 스캐너와 달리 Clarity는 각 CPU 아키텍처에 대한 별도의 체크섬 또는 해시 정보 데이터베이스를 유지할 필요가 없습니다. 이것은 레거시 바이너리 스캐너에 비해 Clarity의 유연성과 정확성을 크게 향상시킵니다.

구성 요소와 해당 버전이 ClarityFingerprint 기반 일치를 통해 식별되면 NVD와 같은 수많은 데이터베이스에 분류된 180,000개 이상의 알려진 보안 취약성과 간단히 비교 할 수 있습니다. Clarity는 또한 바이너리 코드의 "퍼지 매칭"을 제공하고 LDAP, RESTful API Jenkins와 같은 자동화 서버를 지원합니다.