Linux Capabilities
Linux Capabilities とは何ですか?
Linux CapabilitiesPOSIX.1e ドラフトに基づく Linux カーネル機能で、全能の root 権限を 40 以上の細分化された capability に分割し、プロセスやファイルへ個別に付与できるようにする。
Linux capabilities はカーネル 2.2 で導入され、非特権ユーザーと万能の root という二元論を打破するために設計されました。カーネルは CAP_NET_BIND_SERVICE、CAP_SYS_ADMIN、CAP_NET_ADMIN、CAP_DAC_OVERRIDE、CAP_SYS_PTRACE など約 40 個の個別権限を提供し、プロセスへ付与したり、file capabilities として実行ファイルに刻印したりできます。これらは POSIX.1e ドラフトに準拠します。libcap が提供する userspace ツールには、シェルの capability セットを表示・変更する capsh、ファイル capability を読み書きする getcap・setcap、そして getpcaps があります。Docker や containerd といったコンテナランタイムは既定で一部のみを許可し(CAP_SYS_ADMIN は除外し CAP_NET_BIND_SERVICE は維持)、Kubernetes の Pod Security Standards はさらに厳しく制限します。capabilities は Linux サーバーや CNCF 系ワークロードでの最小権限設計の基盤です。
● 例
- 01
非 root プロセスに CAP_NET_BIND_SERVICE のみを付与し、root でなくとも TCP 80 番ポートをリッスンできるようにする。
- 02
コンテナ内で "capsh --print" を実行し、CAP_SYS_ADMIN がドロップされていることを確認する。
● よくある質問
Linux Capabilities とは何ですか?
POSIX.1e ドラフトに基づく Linux カーネル機能で、全能の root 権限を 40 以上の細分化された capability に分割し、プロセスやファイルへ個別に付与できるようにする。 サイバーセキュリティの ID とアクセス カテゴリに属します。
Linux Capabilities とはどういう意味ですか?
POSIX.1e ドラフトに基づく Linux カーネル機能で、全能の root 権限を 40 以上の細分化された capability に分割し、プロセスやファイルへ個別に付与できるようにする。
Linux Capabilities はどのように機能しますか?
Linux capabilities はカーネル 2.2 で導入され、非特権ユーザーと万能の root という二元論を打破するために設計されました。カーネルは CAP_NET_BIND_SERVICE、CAP_SYS_ADMIN、CAP_NET_ADMIN、CAP_DAC_OVERRIDE、CAP_SYS_PTRACE など約 40 個の個別権限を提供し、プロセスへ付与したり、file capabilities として実行ファイルに刻印したりできます。これらは POSIX.1e ドラフトに準拠します。libcap が提供する userspace ツールには、シェルの capability セットを表示・変更する capsh、ファイル capability を読み書きする getcap・setcap、そして getpcaps があります。Docker や containerd といったコンテナランタイムは既定で一部のみを許可し(CAP_SYS_ADMIN は除外し CAP_NET_BIND_SERVICE は維持)、Kubernetes の Pod Security Standards はさらに厳しく制限します。capabilities は Linux サーバーや CNCF 系ワークロードでの最小権限設計の基盤です。
Linux Capabilities からどのように防御しますか?
Linux Capabilities に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
Linux Capabilities の別名は何ですか?
一般的な別名: POSIX capabilities, Linux caps。
● 関連用語
- identity-access№ 120
BPF LSM
検証済み eBPF プログラムを LSM フックに装着し、システムコール・ファイル・ソケット・capability に対するカスタム MAC 判定を強制できる Linux Security Module。
- identity-access№ 585
カーネルモードとユーザーモード
現代の OS が CPU 上で強制する 2 つの特権レベル。カーネルモード(スーパーバイザ、リング 0)はハードウェアへのフルアクセスを持ち、ユーザーモード(リング 3)は自身のアドレス空間と一部命令のみに制限される。
- cloud-security№ 600
Kubernetes セキュリティ
Kubernetes クラスター(API サーバー、コントロールプレーン、ノード、ワークロード、ネットワーク)を構成ミス・侵害・横移動から守ること。
- vulnerabilities№ 860
権限昇格
本来付与された権限を超える権限を攻撃者が取得できる脆弱性の総称。例として一般ユーザーから管理者への昇格がある。
- cryptography№ 1006
SELinux
米国家安全保障局(NSA)が開発した Linux 用強制アクセス制御フレームワーク。LSM フックとタイプ強制ポリシーで実装される。
● 関連項目
- № 367eBPF セキュリティ