AppArmor は、Linuxシステム向けのセキュリティフレームワークで、アクセス制御を提供する仕組みです。特に、アプリケーションやプロセスがシステムリソースに対して何をできるかを制限するために使用されます。
AppArmor リポジトリ:
https://gitlab.com/apparmor/apparmor
目次
AppArmorの特徴
- プロファイルベースのアクセス制御
- AppArmorでは、アプリケーションごとにプロファイルを作成し、そのアプリケーションが許可される動作を定義します。
- プロファイルは、テキスト形式で記述され、特定のファイル、ネットワーク、メモリへのアクセスを制限できます。
- 簡単な設定
- 他のセキュリティフレームワーク(例: SELinux)と比べて、設定が簡単でわかりやすいです。
- デフォルトプロファイルを利用するだけで、多くのアプリケーションを保護できます。
- 柔軟な動作モード
- 強制モード(enforce): プロファイルに違反する操作をブロック。
- 許可モード(complain): 違反をログに記録するだけで、実際の動作は許可。
AppArmorの利用シナリオ
- Webサーバーの保護
- NginxやApacheなどのWebサーバーに対し、許可されたファイルやネットワークアクセスのみを実行できるように制限します。
- アプリケーションの隔離
- 特定のアプリケーションを制限することで、侵害された場合でもシステム全体への影響を防ぎます。
- マルウェア対策
- 攻撃者が未知の脆弱性を悪用した場合でも、システム内のリソースへのアクセスを最小限に抑えます。
AppArmorの構成要素
- プロファイル
- 各アプリケーションに適用される設定ファイル。
- 例:
/etc/apparmor.d/
ディレクトリに格納されています。 - プロファイルで制御する内容:
- ファイルシステムへのアクセス。
- ネットワーク通信。
- 実行可能なプログラムの制限。
- モード
- Enforce: プロファイルに違反する動作をブロック。
- Complain: 違反をログに記録するが、動作は許可。
- ツール
aa-status
: AppArmorの現在の状態を確認。aa-enforce
: プロファイルを強制モードに設定。aa-complain
: プロファイルを許可モードに設定。aa-genprof
: 新しいプロファイルを生成。
AppArmorの操作例
1. AppArmorの状態確認
現在のAppArmorの有効性やプロファイルの一覧を確認します。
sudo aa-status
2. プロファイルを強制モードに変更
特定のアプリケーションのプロファイルを強制モードにします。
sudo aa-enforce /etc/apparmor.d/usr.sbin.nginx
3. プロファイルを許可モードに変更
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx
4. 新しいプロファイルを生成
新しいアプリケーション用のプロファイルを作成します。
sudo aa-genprof <アプリケーションの実行ファイルパス>
5. ログの確認
プロファイル違反のログは以下に記録されます。
sudo tail -f /var/log/syslog
AppArmorとSELinuxの比較
特徴 | AppArmor | SELinux |
---|---|---|
設定のしやすさ | 簡単 | 複雑 |
適用方法 | プロファイルベース | ラベルベース |
デフォルトのサポート | Ubuntu、Debian | RHEL、CentOS、Fedora |
用途 | 簡易セキュリティ管理 | 高度なセキュリティ要件 |
AppArmorがデフォルトで有効なディストリビューション
- Ubuntu
- AppArmorはUbuntuでデフォルトのセキュリティフレームワークとして有効化されています。
- Debian
- Debianではインストール可能ですが、デフォルトでは無効化されています。
- OpenSUSE
- AppArmorを利用可能で、簡単に設定が行えます。
結論
- AppArmorは、軽量かつ簡単に利用できるセキュリティフレームワークで、特にセキュリティを向上させたいが複雑な設定を避けたい場合に最適です。
- UbuntuのようなAppArmorをデフォルトで有効にしているディストリビューションでは、基本的なセキュリティ対策を簡単に行えます。
コメント