Docker

ドイツのアーヘン工科大学の研究者らは、Docker Hub でホストされている数万のコンテナ イメージに機密情報が含まれており、ソフトウェア、オンライン プラットフォーム、ユーザーが大規模な攻撃対象領域にさらされていることを明らかにする調査結果を発表しました。

Docker Hub は、Docker コミュニティが Docker イメージを保存、共有、配布するためのクラウドベースのリポジトリです。これらのコンテナ作成テンプレートには、Docker にアプリケーションを簡単にデプロイするために必要なソフトウェア コード、ランタイム、ライブラリ、環境変数、構成ファイルがすべて含まれています。

Dockerイメージ作成図
Dockerイメージ作成図(arxiv.org)

ドイツの研究者は、Docker Hub と数千のプライベート レジストリからの 337,171 個のイメージを分析し、約 8.5% に秘密キーや API シークレットなどの機密データが含まれていることを発見しました。

この論文はさらに、公開されたキーの多くが積極的に使用されており、それらに依存する要素(数百の証明書など)のセキュリティを損なっていることを示しています

(うっかり)秘密を暴露してしまう

この調査では、337,171 個の Docker イメージから 1,647,300 レイヤーの大規模なデータセットを構築し、可能な場合は各リポジトリから最新のイメージ バージョンを取得しました。

正規表現を使用して特定のシークレットを検索するデータ分析により、28,621 個の Docker イメージに 52,107 個の有効な秘密キーと 3,158 個の個別の API シークレットが暴露されていることが判明しました。

上記の数値は、テスト キー、API シークレットの例、および無効な一致を除いて研究者によって検証されました。

一致
最終秘密の調査結果(arxiv.org)

公開されたシークレットのほとんど (秘密キーの 95%、API シークレットの 90%) はシングルユーザー イメージに存在しており、意図せず漏洩した可能性が高いことを示しています。

パス

最も大きな影響を受けたのは Docker Hub で、機密漏洩率は 9.0% でしたが、プライベート レジストリから取得したイメージによる機密漏洩率は 6.3% でした。

この違いは、Docker Hub ユーザーがプライベート リポジトリを設定するユーザーよりもコンテナのセキュリティについての理解が一般的に低いことを示している可能性があります。

意味

公開されたキーの使用

次に、研究者らは、攻撃対象領域のサイズを評価するために、公開された秘密の実際の使用状況を判断する必要がありました。

驚くべきことに、公開された秘密鍵に依存する 22,082 件の侵害された証明書が発見され、そのうち 7,546 件は CA 署名付きの秘密証明書、1,060 件は公開 CA 署名付き証明書でした。

これらの証明書は通常、多数のユーザーによって使用され、広く受け入れられているため、1,000 個の CA 署名付き証明書は特に懸念されます。

調査時点では、141 個の CA 署名証明書がまだ有効であり、リスクは若干軽減されました。

公開された秘密が実際にどのように使用されているかをさらに特定するために、研究者らは Censys データベースによって提供された 15 か月分のインターネット全体の測定結果を使用し、侵害されたキーに依存している 275,269 のホストを発見しました。

これらには次のものが含まれます。

  • プライバシーに配慮したモノのインターネット (IoT) データを転送する可能性がある8,674 台の MQTT ホスト19 台の AMQP ホスト
  • 6,672 個の FTP426 個の PostgreSQL3 個の Elasticsearch 、および機密データを処理する3 個の MySQL インスタンス
  • 216 台の SIP ホストがテレフォニーに使用されます。
  • 電子メールに8,165 台の SMTP サーバー1,516 台の POP3 サーバー、および1,798 台の IMAP サーバーが使用されています。
  • 240 台の SSH サーバー24 台の Kubernetes インスタンスが漏洩したキーを使用しており、リモート シェル アクセス、ボットネットの拡張、またはさらなるデータ アクセスにつながる可能性があります。

ホスト

このレベルの暴露は、コンテナのセキュリティにおける大きな問題と、最初にシークレットをサニタイズせずにイメージを作成する際の不注意を浮き彫りにします。

API の公開に関しては、分析の結果、ほとんどのコンテナ (2,920) が Amazon AWS などのクラウド プロバイダーに属しているが、一部は Stripe などの金融サービスに関連していることが判明しました。

ただし、研究者らは、公開された API シークレットをサービス エンドポイントに対して検証する際の倫理的制限を挙げているため、実際に API シークレットが使用されるかどうかは不明です。