fbpx

CL LAB

HOME > CL LAB > AquaSecurity > Linuxカーネルの新たな脆弱性:Cgroups を悪用したコンテナエスケープ #aqua #セキュリティ #コンテナ #linux #cve20220492

Linuxカーネルの新たな脆弱性:Cgroups を悪用したコンテナエスケープ #aqua #セキュリティ #コンテナ #linux #cve20220492

 ★ 6

本ブログは「Aqua Security」社の技術ブログで2022年3月9日に公開された「 New Linux Kernel Vulnerability: Escaping Containers by Abusing Cgroups 」の日本語翻訳です。

Linuxカーネルの新たな脆弱性:Cgroups を悪用したコンテナエスケープ


最近公開された Linux の脆弱性 CVE-2022-0492 は、cgroups における release_agent の取り扱いの欠点に関連しており、状況によってはコンテナのエスケープを許してしまう可能性があるとのことです。幸いなことに、一般的なコンテナ構成では、様々なセキュリティ強化の層が、この脆弱性の実行をブロックします。

しかし、すべての CVE と同様に、パッチを迅速に適用することが重要です。また、一般的に Linux カーネルの脆弱性がそうであるように、影響を受けるすべてのシステムを再起動して、パッチが適用されたバージョンを使用することも重要です。現時点では、Linux ホストのパッチ適用に注意を払うことは、「Dirty Pipe」のような他の重大な脆弱性にも対処する必要があるため、特に重要です。

多層防御の重要性

この脆弱性の詳細については、New Linux Vulnerability CVE-2022-0492 Affecting CgroupsCVE-2022-0492: How Release_Agent Escape Became a Vulnerability など、優れた記事がいくつかあります。 これらの報告から、この脆弱性は、1月の CVE-2022-0185 などの最近の例と同様に、コンテナ化で多層防御技術を使用することの重要性を示していることが分かります。

Docker や類似の技術は、Linux のいくつかの異なるセキュリティメカニズムを使用してプロセスの分離を実現し、セキュリティに対して階層的なアプローチを取っています。名前空間、capability、seccomp、AppArmo 、SELinux はすべて、コンテナエスケープのリスク軽減に一役買っています。

この場合、Docker のデフォルトの seccomp と AppArmor ポリシーの両方が、脆弱性の悪用をブロックします。両方が無効になっている場合のみ、悪用が可能になります。

Docker はデフォルトで AppArmor と seccomp を有効にしますが、Kubernetes はデフォルトで seccomp プロファイルを無効にしています。そのため、Kubernetes の場合は、OPA Gatekeeper や Kyverno などの Mutating Admissioncontroller を使用して、ワークロードごとに、またはクラスターレベルでこれを再度有効にする必要があります。また、現在これをデフォルトで有効にする Kubernetes の機能が開発中です。

ユーザ名前空間のリスク

また、本脆弱性と CVE-2022-0185 の共通点として、ホスト上でユーザ名前空間が有効な場合、悪用が容易になることが挙げられます。ユーザ名前空間は、ホストへのフルアクセスを持たないプロセスに対して、root として動作していると思わせることで、セキュリティを向上させることを意図しています。

リスクもありますが、ユーザ名前空間はさまざまな利点を備えています。しかし、その実装は複雑であり、また、ユーザ名前空間を使用すると、脆弱性のある Linux カーネルのコードパスにアクセスできる可能性があります。

推奨事項

この CVE の影響を軽減するために、企業ができる実用的なアクションは、いくつかあります。

  • 最も重要なことは、すべてのホストに定期的にパッチを適用し、新しいカーネルバージョンが使用されていることを確認するために再起動させることです。
  • すべてのワークロードで、すべてのコンテナセキュリティレイヤーが使用されていることを確認することです。特に Kubernetes の場合、すべてのワークロードに seccomp が設定されていることを確認しましょう。
  • 絶対に必要な場合を除き、コンテナを root ユーザで実行しないでください。
  • ホストの運用にユーザ名前空間を使用しない場合は、この機能がホストレベルで無効になっていることを確認します。

まとめ


Linux カーネルを使用して分離する Docker スタイルのコンテナを使用する際の課題の1つは、これがもたらす攻撃対象領域の大きさでした。CVE-2022-0492 は、実行環境を堅牢化し、利用可能なすべてのセキュリティ層を活用することがいかに重要であるかを示すもう1つの例です。これにより、コンテナにアクセスする攻撃者が、基盤となるホストに侵入するリスクを低減できます。

New call-to-action

CL LAB Mail Magazine

CL LABの情報を逃さずチェックしよう!

メールアドレスを登録すると記事が投稿されるとメールで通知します。

メールアドレス: 登録

※登録後メールに記載しているリンクをクリックして認証してください。

Related post

[無料ウェビナー] GitLab_CI/CDハンズオン_2023111