Uncategorized

Polkit

thatisgraffiti

Linuxを扱う際に、Polkitによる警告を受けますが、そういえば、Polkitがなんなのか理解できていないため、今回勉強します!
Polkit(旧称PolicyKit)は、LinuxやUnix系OSにおいて、非特権プロセス(一般ユーザー)と特権プロセス(管理者権限を持つプロセス)の間で権限昇格やアクセス制御を柔軟に管理するためのコンポーネントです。Polkitは「sudo」や「su」と同じく、特定の操作に対して権限を与える役割を担いますが、より細かな権限設定やポリシー管理が可能です

Polkitは主に以下の用途で利用されます。

  • 一般ユーザーに特定の管理操作(例:電源管理、ドライブのマウント)を許可または禁止する
  • GUI環境(GNOMEやKDEなど)での権限制御
  • サービスやデーモンの権限昇格要求の管理

Polkitの仕組み

Polkitは「polkitd」というデーモンが中心となり、各種リクエストに対して設定ファイル(ポリシー)に基づき許可・拒否の判断を行います。また、pkexecコマンドを利用することで、sudoのように特定コマンドを昇格権限で実行することも可能です

Polkitの脆弱性「PwnKit」(CVE-2021-4034)

2022年1月、Polkitのpkexecコマンドに重大な脆弱性「PwnKit」(CVE-2021-4034)が発見されました

脆弱性のポイント

  • pkexecは多くのLinuxディストリビューションにデフォルトで搭載されている
  • 悪用が非常に容易で、一般ユーザーがroot権限を取得できる恐れがある
  • 2009年から12年以上にわたり存在していた
  • polkitデーモンが稼働していなくても攻撃可能
  • 影響範囲はRHEL6~RHEL8、CentOS、Ubuntu、Debian、Fedoraなど主要ディストリビューション

この脆弱性により、攻撃者はroot権限で任意のコードを実行できるため、サーバーの完全な乗っ取りやマルウェア感染など、深刻な被害につながるリスクがあります

脆弱性への対策

  • 各ディストリビューションから提供されるパッチを速やかに適用することが最重要です
  • パッチが提供されていない場合は、該当バイナリの権限変更や一時的な緩和策(仮想パッチなど)を検討してください
  • インストール済みのpolkitのバージョン確認やアップデートは以下のコマンドで行えます
rpm -qa | grep polkit
yum update polkit
(ディストリビューションによってコマンドが異なる場合があります)

Polkitの活用例

  • 一般ユーザーに電源管理操作を禁止する
  • ドライブのマウントやアンマウントを一般ユーザーに許可する
  • GUI経由での管理操作を柔軟に制御する

設定例やルール作成については、各ディストリビューションの公式ドキュメントや関連ブログを参照してください

まとめ

PolkitはLinux/Unixシステムの権限管理を細かく制御できる強力なツールですが、重大な脆弱性が発見されることもあるため、常に最新のセキュリティ情報に注意し、適切な対策・運用を心がけましょう

ABOUT ME
記事URLをコピーしました