Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
コンテンツコンテンツ
セキュリティ強化ガイド
  1. 前書き
  2. 1 セキュリティと機密保持
  3. I 認証
    1. 2 PAM を利用した認証
    2. 3 NIS の使用
    3. 4 YaST を利用した認証クライアントの設定
    4. 5 389 Directory Server を利用した LDAP サービス
    5. 6 Kerberos を利用したネットワーク認証
    6. 7 Active Directory サポート
    7. 8 FreeRADIUS サーバの構築
  4. II ローカルセキュリティ
    1. 9 物理的なセキュリティ
    2. 10 ソフトウエア管理
    3. 11 ファイルの管理
    4. 12 パーティションやファイルの暗号化
    5. 13 cryptctl を利用したアプリケーション向けのストレージ暗号化
    6. 14 ユーザ管理
    7. 15 cronat の制限
    8. 16 Spectre/Meltdown チェッカー
    9. 17 YaST を利用したセキュリティの設定
    10. 18 Polkit 認可フレームワーク
    11. 19 Linux でのアクセス制御リスト
    12. 20 AIDE を利用した侵入検知
  5. III ネットワークセキュリティ
    1. 21 X Window System と X 認証
    2. 22 OpenSSH によるネットワーク操作の機密保持
    3. 23 マスカレードとファイアウオール
    4. 24 VPN サーバの設定
    5. 25 X Window System で動作する PKI マネージャ XCA による管理
    6. 26 sysctl 変数によるネットワークセキュリティの改善
  6. IV AppArmor による権限の制限
    1. 27 AppArmor の紹介
    2. 28 入門
    3. 29 プログラムに対する予防接種
    4. 30 プロファイルのコンポーネントと文法
    5. 31 AppArmor のプロファイルリポジトリ
    6. 32 YaST を利用したプロファイルの構築と管理
    7. 33 コマンドラインからのプロファイル構築
    8. 34 チェンジハット機能による Web アプリケーションのプロファイル作成
    9. 35 pam_apparmor によるユーザの制限
    10. 36 プロファイルを作成したアプリケーションの管理
    11. 37 サポート
    12. 38 AppArmor 用語集
  7. V SELinux
    1. 39 SELinux の設定
  8. VI Linux 監査フレームワーク
    1. 40 Understanding Linux audit
    2. 41 Linux 監査フレームワークの設定
    3. 42 監査ルールセットの紹介
    4. 43 その他の情報源
  9. A GNU ライセンス
ナビゲーション
適用先 openSUSE Leap 15.6

28 入門 Edit source

お使いのシステムに AppArmor を問題なく配置するには、下記の項目について注意深く考慮する必要があります:

  1. プロファイルを作成するアプリケーションの決定。詳しくは 28.3項 「プロファイルを作成するアプリケーションの選択」 をお読みください。

  2. 必要なプロファイルの作成。概要は 28.4項 「プロファイルの作成と修正」 で説明しています。出力されたプロファイルは、必要に応じて調整する必要がある場合もあります。

  3. 環境が変更された場合や、 AppArmor のレポートツールで記録されたセキュリティイベントへの対応。詳しくは 28.5項 「プロファイルの更新」 をお読みください。

28.1 AppArmor のインストール Edit source

openSUSE® Leap では、インストール時に選択したパターンに関わらず、 AppArmor は既定でインストールされ実行されます。下記に示すパッケージは、 AppArmor の全ての機能を使用するために必要なパッケージの一覧です:

  • apparmor-docs

  • apparmor-parser

  • apparmor-profiles

  • apparmor-utils

  • audit

  • libapparmor1

  • perl-libapparmor

  • yast2-apparmor

ヒント
ヒント

もしもお使いのシステムに AppArmor がインストールされていない場合、後からインストールを行うには apparmor という名称のパターンをインストールしてください。これにより、全ての機能を使用できるようになります。インストールにあたっては、 YaST のソフトウエア管理モジュールか、 zypper のコマンドラインを使用します。 zypper の場合は下記のように入力して実行します:

> sudo zypper in -t pattern apparmor

28.2 AppArmor の有効化/無効化 Edit source

AppArmoropenSUSE Leap を新規にインストールしている環境であれば、自動的に設定され動作しています。 AppArmor の状態を切り替えたい場合は、下記のようにして行います:

YaST サービスマネージャを使用する方法

システムの起動時に実行されるスクリプト群から、 AppArmor の起動スクリプトを追加したり削除したりすることで、有効かと無効を切り替えます。この場合、変更は再起動後に適用されることになります。

AppArmor の設定ウインドウを使用する方法

YaST の AppArmor コントロールパネルを使用して、動作中のシステム内から有効化と無効化を切り替えることができます。変更は即時に適用されます。コントロールパネルでは、 AppArmor に対して起動もしくは停止のイベントを送信することができるほか、システムの起動時のスクリプト群から AppArmor の起動スクリプトを追加したり削除したりすることもできます。

AppArmor を恒久的に無効化したい (システムの起動時に実行されるスクリプト群から取り除きたい) 場合は、下記のようにして行います:

  1. YaST を起動します。

  2. システム › サービスマネージャ を選択します。

  3. apparmor と書かれた行を探してマウスの左ボタンで選択し、ウインドウの下部にある 有効/無効 を押します。これで 有効 と書かれていた列が 無効 になります。

  4. OK を押して閉じます。

これで AppArmor がシステムの起動時に開始されなくなり、再度 有効 が設定されるまで、動作しなくなります。有効に戻したい場合は、 YaST サービスマネージャ を利用して同様の手順を実施してください。

動作中のシステムで AppArmor の状態を切り替えたい場合は、 AppArmor の設定ウインドウをお使いください。ここでの設定は即時に反映され、システムを再起動しても切り替え後の状態が保持されます。 AppArmor の状態を切り替えるには、下記の手順を実施します:

  1. YaST を起動して、 AppArmor の設定 を選択し、メインウインドウ内の 設定 を選択して 起動 を押します。

  2. AppArmor を有効化したい場合は、 AppArmor を有効にする のチェックボックスにチェックを入れます。無効化したい場合はチェックを外します。

  3. 終了 を押すと設定を保存して終了することができます。

28.3 プロファイルを作成するアプリケーションの選択 Edit source

お使いの環境で攻撃を受ける可能性のあるプログラムのみが、保護を必要とするプログラムとなります。それらに該当するアプリケーションのみに対してプロファイルを作成してください。一般的な例としては、下記のようなものがあります:

ネットワークエージェント
Web アプリケーション
cron ジョブ

どのプロセスがネットワークポートを開いて動作していて、プロファイルを作成する必要があるのかを知りたい場合は、 rootaa-unconfined を実行します:

例 28.1: aa-unconfined の出力
19848 /usr/sbin/cupsd not confined
19887 /usr/sbin/sshd not confined
19947 /usr/lib/postfix/master not confined
1328 /usr/sbin/smbd confined by '/usr/sbin/smbd (enforce)'

上記の例では、いくつかの行に対して not confined と書かれていますが、これらのプログラムに対して独自のプロファイルを作成する必要があることを示しています。また、 confined by と書かれているプログラムは、既に AppArmor による保護が適用されているプログラムであることを示しています。

ヒント
ヒント: さらなる情報

プロファイルを作成するアプリケーションを選ぶための方法について、詳しくは 29.2項 「予防接種を行うプログラムの決定」 をお読みください。

28.4 プロファイルの作成と修正 Edit source

openSUSE Leap での AppArmor には、あらかじめ設定済みのプロファイル集が提供されていて、主要なアプリケーションに対して保護が行われています。これに加えて AppArmor を使用することで、任意のアプリケーションに対してプロファイルを作成することができます。

プロファイルの管理方法には 2 種類のものがあります。一方は YaST の AppArmor モジュールが提供するグラフィカルなフロントエンドで、もう一方は AppArmor スイート自身が提供するコマンドラインツールです。 YaST では AppArmor プロファイルに対する基本的な機能のみを提供するのに対して、コマンドラインツールはより細かくプロファイルを更新したり修正したりすることができます。

それぞれのアプリケーションに対してプロファイルを作成するには、下記の手順を実施します:

  1. root になり、 aa-genprof プログラム名 と入力して実行し、 AppArmor に対してアプリケーションの大まかなプロファイルを作成させます。

    もしくは、 YaST › セキュリティとユーザ › AppArmor の設定 › 手作業でプロファイルを追加 を選択し、プロファイル対象のアプリケーションのパスを入力して、基本的なプロファイルを作成してもかまいません。

    基本的なプロファイルが新しく作成され、学習 (learning) モードに設定されます。学習モードとは、プログラムの動作がログに記録されるものの、プロファイルによる制限が課されないモードのことを指します。

  2. あとはアプリケーションの動作を一通り行い、 AppArmor に対して動作の細かい仕組みを学習させます。

  3. その後、 aa-genprof 内で S を押し、 ステップ 2 で生成されたログファイルを AppArmor に分析させます。

    AppArmor はアプリケーションの動作時に記録されたログファイルを読み込み、記録されたそれぞれのイベントに対してアクセス権の設定可否を尋ねます。ここでは、ファイル名を直接指定するだけでなく、グロブ (ワイルドカード) も使用することができます。

  4. アプリケーションの複雑さにも依存しますが、 ステップ 2ステップ 3 を繰り返し実行する必要がある場合もあります。いったんプロファイルを作成したあと、その設定でさらにアプリケーションを動作させ、そこで出力されたログを元にさらにプロファイルを更新する、という作業を繰り返します。アプリケーションの動作範囲を正確に記録するには、何度も繰り返す必要があるかもしれません。

  5. aa-genprof を終了すると、作成したプロファイルは強制 (enforce) モードに設定されます。これによりプロファイルが適用され、 AppArmor はそれにあわせて制限されるようになります。

    不平 (complain) モードにある既存のプロファイルを持つアプリケーションに対して aa-genprof を開始した場合、このプロファイルは学習サイクルを終了するまでの間、学習モードに設定されます。プロファイルのモード変更について、詳しくは 33.7.3.2項 「aa-complain: 不平モード (学習モード) への突入」33.7.3.6項 「aa-enforce: 強制モードへの突入」 をお読みください。

制限の設定されたアプリケーションを実際に利用してみて、プロファイルが正しいことを確認してください。通常、制限の設定されたプログラムは全く問題なく動作し、 AppArmor の制限が課されていることにも気がつかないレベルで動作します。しかしながら、アプリケーションの動作に何らかの異常が見つかった場合は、システムログを調べて AppArmor の制限が原因で発生したものでないかどうかをご確認ください。お使いのシステムで使用しているログの仕組みにもよりますが、一般的には下記の場所に AppArmor のログが記録されます:

/var/log/audit/audit.log
journalctl | grep -i apparmor コマンドの出力
dmesg -T コマンドの出力

プロファイルを調整したい場合は、対象のアプリケーションに関連するログメッセージを再度分析してください。詳しくは 33.7.3.9項 「aa-logprof: システムログのスキャン」 をお読みください。このとき、問い合わせが表示されたら、アクセス権を設定するか制限を設定するかを選択してください。

ヒント
ヒント: さらなる情報

プロファイルの作成や修正に関する詳しい情報については、 第30章 「プロファイルのコンポーネントと文法 , 第32章 「YaST を利用したプロファイルの構築と管理 , 第33章 「コマンドラインからのプロファイル構築 の各章をお読みください。

28.5 プロファイルの更新 Edit source

ソフトウエアの仕様やシステムの設定は、日々変わっていきます。そのような背景から、 AppArmor のプロファイル設定についても、日々調整を加える必要があることがあります。 AppArmor では、システムログを調査してポリシー違反やその他の AppArmor イベントを検出し、それにあわせてプロファイルを調整することができます。プロファイルの定義範囲を超えるアプリケーション動作に対応したい場合は、 aa-logprof をお使いください。詳しくは 33.7.3.9項 「aa-logprof: システムログのスキャン」 をお読みください。

このページを印刷