MASTG-TEST-0222 位置独立コード (PIC) が有効でない (Position Independent Code (PIC) Not Enabled)
概要
このテストケースでは、アプリの ネイティブライブラリ が、メモリ破損攻撃に対する一般的な緩和技法である 位置独立コード (PIC) を有効にせずにコンパイルされているかどうかをチェックします。
Android 5.0 (API レベル 21) 以降、Android は すべてのダイナミックリンクされた実行可能ファイルが PIE をサポートすること を必須としています。
Build System Maintainers Guide - Additional Required Arguments: API 21 以降、Android は位置非依存実行可能ファイルを必須としています。Clang はデフォルトで PIE 実行可能ファイルをビルドします。リンカーを直接呼び出す場合や Clang を使用しない場合は、リンク時に
-pie
を使用します。
手順
アプリのコンテンツを抽出します (アプリバイナリの探索 (Exploring the App Package))。
各共有ライブラリで コンパイラが提供するセキュリティ機能の取得 (Obtaining Compiler Provided Security Features) を実行し、"pic" または選択したツールで使用される対応するキーワードを grep で検索します。
結果
出力には PIC が有効か無効かをリストする可能性があります。
評価
PIC が無効になっている場合、そのテストケースは不合格です。
Last updated
Was this helpful?