第13章 fapolicyd を使用したアプリケーションの拒否および許可

ルールセットに基づいてアプリケーションの実行を許可または拒否するポリシーを設定して有効にすることで、効率的に悪意のある一般的に知られていないソフトウェアや、害を及ぼす可能性のあるソフトウェアの実行を回避できます。

13.1. fapolicyd の概要

fapolicyd ソフトウェアフレームワークは、ユーザー定義のポリシーに基づいてアプリケーションの実行を制御します。このフレームワークは、最適な方法で、システム上で信頼されていないアプリケーションや悪意のあるアプリケーションを実行されないようにします。

fapolicyd フレームワークは、以下のコンテンツを提供します。

  • fapolicyd サービス
  • fapolicyd コマンドラインユーティリティー
  • fapolicyd RPM プラグイン
  • fapolicyd ルール言語
  • fagenrules スクリプト

管理者は、パス、ハッシュ、MIME タイプ、信頼に基づいて、すべてのアプリケーションに実行ルール allow および deny の両方を監査する定義できます。

fapolicyd フレームワークにより、信頼の概念が導入されます。アプリケーションは、システムパッケージマネージャーによって適切にインストールされると信頼されるため、システムの RPM データベースに登録されます。fapolicyd デーモンは、RPM データベースを信頼できるバイナリーとスクリプトのリストとして使用します。fapolicyd RPM プラグインは、DNF 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.confintegrity = ima オプションでは、実行可能ファイルを含むすべてのファイルシステムでファイル拡張属性 (xattr とも呼ばれます) のサポートが必要です。

関連情報