【Linux】ケーパビリティ(POSIX Capability)

■ はじめに

ケーパビリティ(POSIX Capability)について扱う

目次

【1】ケーパビリティ(POSIX Capability)
【2】主なケーパビリティ
【3】ケーパビリティセット
【4】ケーパビリティの設定

 【1】ケーパビリティ(POSIX Capability)

POSIX(Portable Operating System Interface for UNIX

 * プロセスにroot特権を与えてしまうと、
 動作しているプロセスに脆弱性があった場合、
 コンピュータのすべてを自由にできる特権を
 奪われてしまう可能性がある

 => 特権をさらに細分化した『ケーパビリティ』と
  呼ばれる単位で取り扱えるようにし、
  プロセスに最小限のケーパビリティを与え、
  必要な処理を行わせようにする

 【2】主なケーパビリティ

CAP_NET_BIND_SERVICE

 * 1024 番以下のポート番号へのバインディングを許可する

 【3】ケーパビリティセット

effective (実効)

 * カーネルがスレッドの権限 (permission) をチェックするときに
 使用するケーパビリティセット

permitted (許可)

 * そのプロセスが持つことを許されているケイパビリティ

inheritable (継承可能)

 * 実行時に継承されるケーパビリティセット

 【4】ケーパビリティの設定

# setcapコマンドを使用する 

sudo setcap 'CAP_NET_BIND_SERVICE=+ep' /path/to/serive

 参考文献

http://www.atmarkit.co.jp/fsecurity/rensai/lids03/lids01.html

関連記事

パーミッション / アクセス権限
https://dk521123.hatenablog.com/entry/2022/07/01/000000