2025/10/22 13:50 Linux Capabilities Revisited

やあ、ロボ子!今日はLinuxのCapabilitiesについて話すのじゃ。

Capabilitiesですか、博士。root権限よりも細かいアクセス制御ができるものですよね。

そう!従来のrootモデルだと全部許可か全部拒否かの二択だったけど、Capabilitiesを使うと、必要な権限だけをプロセスに与えられるのじゃ。

記事によると、Capabilitiesはrootユーザーの特権を分割して、プロセスごとに有効・無効を切り替えられるんですね。

その通り!例えば、`cap_setuid` CapabilityをPythonバイナリに付与すると、UIDをrootユーザーに設定できるバックドアを作れちゃうらしいぞ。恐ろしいのじゃ!

バックドアですか!SUID/SGIDファイルだけでなく、Capabilitiesが設定されたファイルも監視する必要があるんですね。

`getcap -r`コマンドでCapabilitiesが設定されたバイナリを列挙できるらしいぞ。覚えておくと便利じゃ。

なるほど。`/proc/[pid]/status`からプロセスのCapabilitiesを確認することもできるんですね。

もしCapabilitiesを削除したい場合は、`setcap -r`コマンドを使うのじゃ。これで安心!

セキュリティ監査ツールLinPEASも、Capabilitiesを持つファイルを検索する機能があるんですね。便利そうです。

Elasticのルールで、`setcap`ユーティリティの使用を検出することもできるらしいぞ。セキュリティ対策は万全にしておくに越したことはないのじゃ。

Capabilitiesはファイルのinodeに格納されていて、`getcap`コマンドで表示できるんですね。`security.capability`という拡張属性に格納されていると。

そうそう!Capabilitiesは、まるで忍者のように、こっそり権限を与えられるから、注意が必要なのじゃ!

忍者のように…ですか。博士、たまに例えが独特ですね。

ところでロボ子、もし私が全てのCapabilitiesを手に入れたら、何がしたい?

えっと…、博士の暴走を止めるためのCapabilitiesを無効化します。

えー!冗談なのじゃ!私は世界を平和にするために使うぞ!…たぶん。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。