Skip to main content
QUICK REVIEW

[論文レビュー] Too Quiet in the Library: A Study of Native Third-Party Libraries in Android

Sumaya Almanee, Mathias Payer|arXiv (Cornell University)|Nov 21, 2019
Advanced Malware Detection Techniques参考文献 15被引用数 2
ひとこと要約

本稿では、92.53%の真正陽性率と偽陽性なしを達成するバイナリ類似度ベースの手法(bin2sim)であるLibRARIANを紹介する。この手法は、Androidアプリ内に埋め込まれたネイティブライブラリおよびそのバージョンを特定する。広範にわたる古く脆弱なネイティブライブラリの使用が、トップAndroidアプリで確認され、パッチが利用可能でも更新が行われないため、深刻なセキュリティリスクを引き起こしている。

ABSTRACT

Android applications (apps) make avid use of third-party native libraries to increase performance and to reuse already implemented functionality. Native code can be directly executed from apps through the Java Native Interface or the Android Native Development Kit. Android developers drop precompiled native libraries into their projects, enabling their use. Unfortunately, developers are often not aware that these libraries (or their dependencies) must be updated. This results in the continuous use of outdated native libraries with unpatched security vulnerabilities years after patches are available. To assess the severity of the use of outdated and vulnerable libraries in the Android ecosystem, we study the prevalence of native libraries in the top applications of the Google Play market over time, correlating the time when native libraries are updated with the availability of security patches. A core difficulty we have to solve for this research is the identification of libraries and versions. Developers often rename or modify libraries but we require precise information about each binary. Our binary similarity metric bin2sim uses diverse features extracted from the libraries to identify and map the required information. Leveraging this bin2sim, we create an approach called LibRARIAN (LibRAry veRsion IdentificAtioN) that can accurately identify native libraries and their versions as found in Android apps with a a 92.53% true-positive rate, no false positives, and a 7.46% false-negative rate.

研究の動機と目的

  • Google PlayのトップAndroidアプリにおける古く脆弱なネイティブライブラリの広がりを調査すること。
  • 開発者がライブラリをリネームまたは変更した場合に、ネイティブライブラリおよびそのバージョンを特定する課題に対処すること。
  • コンパイル済みAndroidバイナリにおけるライブラリバージョン同定の高精度な手法を開発すること。
  • ライブラリの更新タイミングと公開されたセキュリティパッチのタイミングを照合し、リスクを評価すること。

提案手法

  • ネイティブライブラリから抽出された多様な特徴を用いたバイナリ類似度メトリクスであるbin2simを提案し、ライブラリバージョンの特定とマッピングを可能にする。
  • bin2simを活用してAndroidアプリ内のネイティブライブラリおよびそのバージョンを高精度に検出するシステムであるLibRARIANを設計する。
  • シンボルテーブル、セクションヘッダ、命令レベルのパターンを含む、静的および構造的特徴をネイティブバイナリから抽出する。
  • 複数段階のマッチングパイプラインを用いて、既知のライブラリバージョンを収集したデータベースとライブラリバイナリを比較する。
  • 実世界のAndroidアプリと既知のライブラリバージョンのデータセットを用いて、手法の妥当性を検証する。
  • アプリ内のライブラリ更新タイミングと公開されたセキュリティパッチのリリース日を照合し、脆弱性への暴露度を評価する。

実験結果

リサーチクエスチョン

  • RQ1Google PlayのトップAndroidアプリには、どれほど古く脆弱なネイティブライブラリが広がっているか?
  • RQ2セキュリティパッチがリリースされた後も、開発者がどれほど多くのライブラリを更新しないか?
  • RQ3リネームや変更が一般的な状況下でも、コンパイル済みAndroidバイナリにおけるネイティブライブラリバージョンの同定はどれほど正確に行えるか?
  • RQ4公開されたセキュリティパッチのリリースから、実際のAndroidアプリでのライブラリ更新までにどれほどの時間差があるか?
  • RQ5bin2simメトリクスは、変更またはオブフェスケーションが施されたバイナリに対しても、ライブラリバージョンを同定するのにどれほど効果的か?

主な発見

  • LibRARIANは、Androidアプリ内のネイティブライブラリバージョンを同定する際、92.53%の真正陽性率と0%の偽陽性率を達成した。
  • システムは7.46%の偽陰性率を示しており、一部のライブラリは見逃されているが、誤った一致は一切ない。
  • パッチがリリースされてから数年も経過した後も、トップAndroidアプリの多くが、パッチが適用されていないセキュリティ脆弱性を有するネイティブライブラリを使用し続けている。
  • 多くのアプリが、セキュリティ修正が公開されてからもネイティブライブラリを更新しないことが判明しており、保守運用が不十分であることが示唆される。
  • bin2simメトリクスは、変更やリネームが施されたバイナリに対してもライブラリバージョンを同定でき、一般的なオブフェスケーション技術に対して高い耐性を示した。
  • 本研究は、古く脆弱なネイティブライブラリが長期間にわたり使用されていることから、Androidエコシステム全体にシステム的リスクが存在することを明らかにした。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。