Istioが2022年セキュリティ監査の結果を公開

Istioのセキュリティレビューで、Go標準ライブラリのCVEが発見されました。

2023年1月30日 | 執筆者:Craig Box - ARMO、Istio製品セキュリティワーキンググループ

Istioは、プラットフォームエンジニアが本番Kubernetes環境でセキュリティポリシーを適用するために信頼しているプロジェクトです。私たちはコードのセキュリティに細心の注意を払い、堅牢な脆弱性プログラムを維持しています。私たちの取り組みを検証するために、定期的に外部によるプロジェクトレビューを依頼しており、2回目のセキュリティ監査の結果を公開できることを嬉しく思います。

監査人の評価は、**「Istioは、セキュリティに対して強力かつ持続可能なアプローチを持つ、よくメンテナンスされたプロジェクトである」**というものでした。重大な問題は発見されませんでした。レポートのハイライトは、Goプログラミング言語の脆弱性の発見でした。

Cloud Native Computing Foundation が、8月にCNCFに加盟した後に提供された特典として、この作業に資金を提供してくれたことに感謝します。OSTIFによって調整され、ADA Logicsによって実行されました。

スコープと全体的な調査結果

Istioは2020年に最初のセキュリティ評価を受けました。データプレーンであるEnvoyプロキシは、2018年と2021年に個別に評価されています。そのため、Istio製品セキュリティワーキンググループとADA Logicsは、以下の範囲を決定しました。

今回も、レビューで重大な問題は発見されませんでした。評価では、11のセキュリティ問題が発見されました。高2件、中4件、低4件、情報1件です。報告されたすべての問題は修正済みです。

上記の観察に加えて、監査人は、Istioがセキュリティの取り扱いにおいて高いレベルの業界標準に従っていることを指摘しています。特に、彼らは以下の点を強調しています。

解決策と教訓

Goのリクエストスマグリングの脆弱性

監査担当者は、IstioがHTTP/2 Over Cleartext(h2c)を使用してトラフィックを受け入れる可能性がある状況を発見しました。これは、HTTP/1.1で暗号化されていない接続を確立し、HTTP/2にアップグレードする方法です。h2c接続用のGoライブラリはリクエスト全体をメモリに読み込み、これを回避するにはリクエストをMaxBytesHandlerでラップする必要があると指摘しています。

このバグを修正する際に、Istio TOCメンバーのJohn Howardは、推奨される修正によってリクエストスマグリングの脆弱性が導入されることに気づきました。そのため、GoチームはCVE-2022-41721を公開しました。これは、この監査で発見された唯一の脆弱性です。

Istioはその後、全体でh2cアップグレードサポートを無効にするように変更されました。

ファイル取得の改善

発見された最も一般的な種類の問題は、Istioがネットワーク経由でファイルを取得することに関連するものでした(たとえば、Istio OperatorがHelmチャートをインストールする場合、またはWebAssemblyモジュールダウンローダー)。

これらのコードパスを実行するには、攻撃者はHelmチャートまたはWebAssemblyモジュールのURLを指定できる十分な権限を持っている必要があります。そのようなアクセス権があれば、悪用する必要はありません。すでに任意のチャートをクラスターにインストールしたり、任意のWebAssemblyモジュールをプロキシサーバーのメモリにロードしたりする可能性があります。

監査人とメンテナーはどちらも、Operatorはインストール方法として推奨されないことに注意してください。これは、クラスター内で高特権コントローラーを実行する必要があるためです。

その他の問題

発見された残りの問題は次のとおりです。

詳細については、完全なレポートを参照してください。

2020年レポートのレビュー

Istioの最初のセキュリティ評価で報告された18件すべての問題が修正されていることが判明しました。

ファジング

OSS-Fuzzプロジェクトは、オープンソースプロジェクトが無料のファズテストを実施するのを支援します。Istioは、継続的に実行されている63個のファザーでOSS-Fuzzに統合されています。このサポートは、2021年後半にADA LogicsとIstioチームによって構築されました

評価では、「IstioはOSS-Fuzzで継続的に実行されるかなりのファズテストスイートを持つことから大きな恩恵を受けている」と述べており、セキュリティクリティカルなコードでさらなるファジングの恩恵を受けるいくつかのAPIを特定しました。この作業の結果、6つの新しいファザーが貢献されました。監査の終わりまでに、新しいテストは**30億回**以上実行されました。

SLSA

Supply chain Levels for Software Artifacts(SLSA)は、改ざんを防ぎ、整合性を向上させ、ソフトウェアパッケージとインフラストラクチャを保護するための標準と制御のチェックリストです。整合性保証を向上させる一連のレベルで構成されています。

Istioは現在、来歴アーティファクトを生成しないため、SLSAレベルの要件を満たしていません。SLSAレベル1に到達するための作業は現在進行中です。参加をご希望の場合は、Istio Slackに参加して、テストおよびリリースワーキンググループにご連絡ください。

参加する

Istio製品セキュリティに関与したり、メンテナーになりたい場合は、ぜひご参加ください!公開会議に参加して、問題を提起したり、Istioを安全に保つために行っていることについて学んでください。

この記事を共有する