AppArmor
WhiteIntel は、ダークウェブを活用した検索エンジンで、企業やその顧客が stealer malwares によって 侵害 されていないかをチェックする 無料 機能を提供しています。
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。
彼らのウェブサイトをチェックして、無料 でエンジンを試すことができます:
基本情報
AppArmor は、プログラムごとのプロファイルを介してプログラムが利用できるリソースを制限するように設計されたカーネルの拡張機能であり、アクセス制御属性をユーザーではなくプログラムに直接結びつけることで、強制アクセス制御(MAC)を効果的に実装しています。このシステムは、プロファイルをカーネルにロード することによって動作し、通常は起動時に行われ、これらのプロファイルは、ネットワーク接続、rawソケットアクセス、ファイルアクセスなど、プログラムがアクセスできるリソースを指示します。
AppArmor プロファイルには、次の2つの動作モードがあります:
強制モード:このモードは、プロファイルで定義されたポリシーを積極的に強制し、これらのポリシーに違反するアクションをブロックし、syslog や auditd などのシステムを介してこれらを侵害しようとする試みを記録します。
クレームモード:強制モードとは異なり、クレームモードは、プロファイルのポリシーに違反するアクションをブロックしません。代わりに、これらの試みをポリシー違反として記録しますが、制限を強制しません。
AppArmor の構成要素
カーネルモジュール:ポリシーの強制を担当します。
ポリシー:プログラムの動作とリソースアクセスのルールと制限を指定します。
パーサー:ポリシーをカーネルにロードして強制または報告します。
ユーティリティ:これらは、AppArmor とのやり取りと管理のためのインターフェースを提供するユーザーモードプログラムです。
プロファイルのパス
Apparmor プロファイルは通常 /etc/apparmor.d/ に保存されます。
sudo aa-status
を使用すると、いくつかのプロファイルによって制限されているバイナリをリストすることができます。リストされた各バイナリのパスの "/" をドットに変更すると、言及されたフォルダ内の apparmor プロファイルの名前が取得できます。
たとえば、/usr/bin/man の apparmor プロファイルは /etc/apparmor.d/usr.bin.man にあります。
コマンド
プロファイルの作成
影響を受ける実行可能ファイルを示すために、絶対パスとワイルドカードが許可されています(ファイルグロブを使用するため)。
ファイルに対するバイナリのアクセスを示すために、以下のアクセス制御を使用できます:
r(読み取り)
w(書き込み)
m(実行可能としてメモリマップ)
k(ファイルロック)
l(ハードリンクの作成)
ix(新しいプログラムで別のプログラムを実行し、ポリシーを継承)
Px(環境をクリーンアップした後、別のプロファイルで実行)
Cx(環境をクリーンアップした後、子プロファイルで実行)
Ux(環境をクリーンアップした後、無制限に実行)
変数はプロファイルで定義でき、プロファイルの外部から操作できます。例:@{PROC} および @{HOME}(プロファイルファイルに #include <tunables/global> を追加)
許可ルールを上書きするために拒否ルールがサポートされています。
aa-genprof
簡単にプロファイルの作成を開始するために、apparmor が役立ちます。バイナリによって実行されるアクションを apparmor が検査し、どのアクションを許可または拒否するかを決定できます。 次のコマンドを実行するだけです:
その後、別のコンソールで通常バイナリが実行するすべてのアクションを実行します:
その後、最初のコンソールで "s" を押し、記録されたアクションで無視するか、許可するか、その他を指定します。終了したら "f" を押し、新しいプロファイルが /etc/apparmor.d/path.to.binary に作成されます
矢印キーを使用して、許可するか拒否するかを選択できます
aa-easyprof
また、バイナリの AppArmor プロファイルのテンプレートを作成することもできます:
デフォルトでは、作成したプロファイルでは何も許可されていないため、すべてが拒否されます。たとえば、バイナリが /etc/passwd
を読むことを許可するために /etc/passwd r,
のような行を追加する必要があります。
新しいプロファイルを強制することができます
ログからプロファイルを変更する
次のツールはログを読み取り、ユーザーに検出された禁止されたアクションのうち許可するかどうかを尋ねます:
矢印キーを使用して、許可/拒否/その他を選択できます
プロファイルの管理
ログ
実行可能ファイル service_bin
の /var/log/audit/audit.log からの AUDIT と DENIED ログの例:
次の方法でもこの情報を取得できます:
Docker内のApparmor
デフォルトでDockerのプロファイルdocker-profileがロードされていることに注意してください。
デフォルトでは、Apparmor docker-defaultプロファイルはhttps://github.com/moby/moby/tree/master/profiles/apparmorから生成されます。
docker-defaultプロファイルの概要:
すべてのネットワーキングへのアクセス
権限は定義されていません(ただし、一部の権限は基本的なベースルールを含めることで得られます、つまり#include <abstractions/base>)
任意の**/procファイルへの書き込みは許可されていません**
他の/procおよび/sysのサブディレクトリ/ファイルへの読み取り/書き込み/ロック/リンク/実行アクセスは拒否されます
マウントは許可されていません
Ptraceは、同じapparmorプロファイルによって制限されたプロセスでのみ実行できます
Dockerコンテナを実行すると、次の出力が表示されるはずです:
注意してください。デフォルトでは、apparmor はさえコンテナに付与された権限をブロックします。たとえば、SYS_ADMIN 権限が付与されている場合でも、/proc への書き込み権限をブロックすることができます。なぜなら、デフォルトでは Docker の apparmor プロファイルがこのアクセスを拒否するからです。
apparmorの制限をバイパスするには、apparmorを無効にする必要があります。
デフォルトではAppArmorは、SYS_ADMIN機能を持っていても、コンテナが内部からフォルダをマウントすることを禁止します。
capabilitiesをdockerコンテナに追加/削除できることに注意してください(これはAppArmorやSeccompなどの保護方法によって引き続き制限されます):
--cap-add=SYS_ADMIN
はSYS_ADMIN
機能を付与します--cap-add=ALL
はすべての機能を付与します--cap-drop=ALL --cap-add=SYS_PTRACE
はすべての機能を削除し、SYS_PTRACE
のみを付与します
通常、dockerコンテナ内で特権機能が利用可能であることがわかった場合でも、exploitの一部が機能しない場合は、dockerのapparmorがそれを防いでいる可能性があります。
例
(こちらの例から)
AppArmorの機能を説明するために、次の行が追加された新しいDockerプロファイル「mydocker」を作成しました:
プロファイルをアクティブにするには、以下の手順を実行する必要があります:
プロファイルをリストするには、以下のコマンドを使用できます。以下のコマンドは、私の新しいAppArmorプロファイルをリストしています。
以下のように、AppArmorプロファイルが「/etc」への書き込みアクセスを防いでいるため、「/etc/」を変更しようとするとエラーが発生します。
AppArmor Docker Bypass1
コンテナで実行されているapparmorプロファイルを見つけるには、次のコマンドを使用できます:
その後、次の行を実行して、使用されている正確なプロファイルを見つけることができます:
AppArmor Docker Bypass2
AppArmorはパスベースであり、これは、たとえ**/proc
のようなディレクトリ内のファイルを保護していても、コンテナの実行方法を構成できる場合、ホストのprocディレクトリを/host/proc
**内にマウントすることができ、それはもはやAppArmorによって保護されなくなります。
AppArmor Shebang Bypass
このバグでは、特定のリソースでperlの実行を防いでいる場合でも、最初の行に**#!/usr/bin/perl
**を指定したシェルスクリプトを作成し、ファイルを直接実行すると、任意のコマンドを実行できることが示されています。例:
WhiteIntelは、ダークウェブを活用した検索エンジンで、企業やその顧客がスティーラーマルウェアによって侵害されていないかをチェックする無料の機能を提供しています。
WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。
彼らのウェブサイトをチェックし、無料でエンジンを試すことができます:
Last updated