Menu Close

4.2.2.4.4. チェッカーの基本の強化

強化チェッカーはデフォルトで有効になっています。--disable-hardened コマンドラインオプションを使用すると、強化チェッカーを無効にできます。

4.2.2.4.4.1. チェッカーオプションの強化

annocheck プログラムは、以下のオプションを確認します。

  • レイジーバインディングは、-z now リンカーオプションを使用して無効にします。
  • プログラムには、メモリーの実行可能な領域にスタックがありません。
  • GOT テーブルの再配置は読み取り専用に設定されます。
  • プログラムセグメントには、読み取り、書き込み、実行のパーミッションビットセットがすべて含まれていません。
  • 実行可能なコードに対する再配置はありません。
  • ランタイム時に共有ライブラリーを見つけるランパス情報には、/usr で root となるディレクトリーのみが含まれます。
  • このプログラムは、annobin ノートが有効な状態でコンパイルされています。
  • プログラムは、-fstack-protector-strong オプションを指定してコンパイルされています。
  • プログラムは、-D_FORTIFY_SOURCE=2 でコンパイルされています。
  • プログラムは、-D_GLIBCXX_ASSERTIONS でコンパイルされています。
  • プログラムは、-fexceptions を有効にしてコンパイルされています。
  • プログラムは、-fstack-clash-protection を有効にしてコンパイルされています。
  • プログラムは、-O2 以降でコンパイルされています。
  • プログラムには、書き込み可能で保持されている再配置はありません。
  • 動的な実行ファイルには動的セグメントがあります。
  • 共有ライブラリーは、-fPIC または -fPIE でコンパイルされています。
  • 動的な実行可能ファイルは、-fPIE でコンパイルされ、-pie でリンクされています。
  • 利用可能な場合は、-fcf-protection=full オプションが使用されていました。
  • 利用可能な場合は、-mbranch-protection オプションが使用されていました。
  • 利用可能な場合は、-mstackrealign オプションが使用されました。
4.2.2.4.4.2. 強化チェッカーの無効化

次のセクションでは、強化チェッカーを無効にする方法を説明します。

手順

  • 強化チェッカーなしでファイルのノートをスキャンするには、以下を使用します。

    $ annocheck --enable-notes --disable-hardened file-name

    file-name を、ファイルの名前に置き換えます。