サイバーセキュリティ研究者らは、90万件を超えるKubernetesコンソールのインスタンスがインターネット上に露出していることを発見した。
Cybleの研究者らは検出した、数十万の組織を危険にさらす可能性がある、設定不備のKubernetesインスタンスを。研究者らは、オープンソースのコンテナオーケストレーションプラットフォームにおいて、露出を示す複数の指標を発見した。
- KubernetesDashboard
- Kubernetes-master
- Kubernetes Kube K8
- Favicon:2130463260, -1203021870
脅威ハンティングの調査から、リスクの露出について次のような一般的な知見が得られた。
- 米国の露出件数が突出して最も多く(65%)、中国(14%)、ドイツ(9%)が続く
- 使用されている主要なポートは443、10250、6443
こちらも読む:コンテナセキュリティの主要ソリューション
Kubernetesのセキュリティ問題とリスク
Kubernetesは非常に広く利用されているコンテナオーケストレーションシステムだ。その名称は、ギリシャ語で「かじ取り役」を意味する言葉に由来する。この技術を指す言葉として、「K8s」または「K-eights」も使われている。
多くの組織は、「ポッド」と呼ばれる自己完結型の単位を使ってKubernetesでアプリケーションを管理している。ポッドは互いを認識せずに、他の単位と共通のリソースを共有する。例えば、「npm start」や「go run」のプロセスをポッドで管理し、CPUやRAMの一部を共有できる。
K8sは、マイクロサービスとその設定ファイルで構成されることが多いコンテナのデプロイ、管理、スケーリングに役立つ。ワークロードが増減しても、Kubernetesが状況に自動で対応できる。
そのため、Kubernetesにおける重要なセキュリティ要素はアクセス制御だ。設定を誤ると、望ましくない情報開示につながる可能性があり、攻撃者はそれを利用してコンテナから脱出し、権限を昇格させることさえできる。また、KubernetesはAPI、CLIコマンド、ユーザーインターフェースを提供しており、ハッカーにとって魅力的な攻撃対象になり得る。
Cybleは今回のスキャンについて、「露出しているすべてのインスタンスが攻撃に対して脆弱である、あるいは機密データの喪失につながることを必ずしも意味しない」としつつ、「企業を将来、脅威アクター(TA)にとって魅力的な標的にしてしまう可能性がある、一見単純な設定ミスが存在することを浮き彫りにするものだ」と説明した。
Kubernetesを保護する方法
すべてを予測することはできないが、Kubernetesのポッドを安全にするための有効な対策がある。
- root以外のユーザーのみを許可する
- 定期的に脆弱性スキャンをコンテナに対して実施する(設定ミスを発見できる)
- 設定ファイルにハードコードした認証情報を使う代わりにKubernetes Secretsを使用する
- 匿名ログインを無効にする
- 認証を強化する。特に、デフォルトで有効になっていない場合は必ず強化する
- すべてのセキュリティパッチを更新して適用する。
- 不要、または使用されなくなったコンポーネントを削除する
また、Kubernetes APIが返すエラーコードには特に注意が必要だ。ハッカーは、それらを使って、さらなる攻撃を試みられるかどうかを判断する可能性が高い。例えば、Kubernetesのコントロールプレーンとノード間の通信を処理するKubelet APIが、認証されていないリクエストを受け付けながら403エラーを返す場合、ハッカーはおそらく攻撃をやめるだろう。
しかし、401を返す場合は、別のエクスプロイトを試みる可能性がある。そのようなエラーは、Kubernetesクラスターがその環境で機能していることを示すからだ。
Cybleの結果からは、「ステータスコード200を返すKubernetesインスタンス799件の小規模なサブセットが存在し、これらは外部の攻撃者に完全に露出していることが明らかになった。この場合、脅威アクターはパスワードなしでKubernetes Dashboard上のノードにアクセスし、すべてのSecretsにアクセスしたり、操作を実行したりできる」ことが判明した。
次の記事:コンテナとKubernetesのセキュリティに関するベストプラクティス





