第10章 fapolicyd を使用したアプリケーションの拒否および許可
ルールセットに基づいてアプリケーションの実行を許可または拒否するポリシーを設定して有効にすることで、効率的に悪意のある一般的に知られていないソフトウェアや、害を及ぼす可能性のあるソフトウェアの実行を回避できます。
10.1. fapolicyd の概要 リンクのコピーリンクがクリップボードにコピーされました!
fapolicyd ソフトウェアフレームワークは、ユーザー定義のポリシーに基づいてアプリケーションの実行を制御します。このフレームワークは、最適な方法で、システム上で信頼されていないアプリケーションや悪意のあるアプリケーションを実行されないようにします。
fapolicyd フレームワークは、以下のコンテンツを提供します。
-
fapolicydサービス -
fapolicydコマンドラインユーティリティー -
fapolicydRPM プラグイン -
fapolicydルール言語 -
fagenrulesスクリプト
管理者は、パス、ハッシュ、MIME タイプ、信頼に基づいて、すべてのアプリケーションに実行ルール allow および deny の両方を監査する定義できます。
fapolicyd フレームワークにより、信頼の概念が導入されます。アプリケーションは、システムパッケージマネージャーによって適切にインストールされると信頼されるため、システムの RPM データベースに登録されます。fapolicyd デーモンは、RPM データベースを信頼できるバイナリーとスクリプトのリストとして使用します。fapolicyd RPM プラグインは、{PackageManagerName} Package Manager または RPM Package Manager のいずれかによって処理されるすべてのシステム更新を登録します。プラグインは、このデータベースの変更を fapolicyd デーモンに通知します。アプリケーションを追加する他の方法では、カスタムルールを作成し、fapolicyd サービスを再起動する必要があります。
fapolicyd サービス設定は、次の構造を持つ /etc/fapolicyd/ ディレクトリーにあります。
-
/etc/fapolicyd/fapolicyd.trustファイルには、信頼できるファイルのリストが含まれています。/etc/fapolicyd/trust.d/ディレクトリーで複数の信頼ファイルを使用することもできます。 -
allowおよびdenyの実行ルールを含むファイルの/etc/fapolicyd/rules.d/ディレクトリー。fagenrulesスクリプトは、これらのコンポーネントルールファイルを/etc/fapolicyd/compiled.rulesファイルにマージします。 -
fapolicyd.confファイルには、デーモンの設定オプションが含まれています。このファイルは、主にパフォーマンス調整の目的で役に立ちます。
/etc/fapolicyd/rules.d/ のルールは、それぞれ異なるポリシーゴールを表す複数のファイルで整理されます。対応するファイル名の先頭の数字によって、/etc/fapolicyd/compiled.rules での順序が決まります。
- 10
- 言語ルール
- 20
- dracut 関連のルール
- 21
- アップデーターのルール
- 30
- パターン
- 40
- ELF ルール
- 41
- 共有オブジェクトルール
- 42
- 信頼された ELF ルール
- 70
- 信頼された言語ルール
- 72
- シェルルール
- 90
- 実行拒否ルール
- 95
- オープン許可ルール
fapolicyd 整合性チェックには、次のいずれかの方法を使用できます。
- File-size チェック
- SHA-256 ハッシュの比較
- Integrity Measurement Architecture (IMA) サブシステム
デフォルトでは、fapolicyd は整合性チェックを行いません。ファイルサイズに基づいた整合性チェックは高速ですが、攻撃者はファイルの内容を置き換え、そのバイトサイズを保持することができます。SHA-256 チェックサムの計算とチェックがより安全ですが、システムのパフォーマンスに影響します。fapolicyd.conf の integrity = ima オプションでは、実行可能ファイルを含むすべてのファイルシステムでファイル拡張属性 (xattr とも呼ばれます) のサポートが必要です。