web-dev-qa-db-ja.com

`--vm-driver = none`で起動されたMinikubeクラスターがCSRFに対して脆弱なのはなぜですか?

--vm-driver=noneオプションを指定してMinikubeインスタンスを起動すると、次の警告が表示されます。

WARNING: IT IS RECOMMENDED NOT TO RUN THE NONE DRIVER ON PERSONAL WORKSTATIONS
    The 'none' driver will run an insecure kubernetes apiserver as root that may 
    leave the Host vulnerable to CSRF attacks

ホストが脆弱なのはなぜですか?そのような攻撃はどのように機能しますか?

9
Niel de Wet

クロスサイトリクエストフォージェリは攻撃です。

これにより、ユーザーが誤って資格情報を使用して状態変更アクティビティを呼び出すようになります。

引数--vm-driver=none

このドライバーを使用して、VMではなくホストでKubernetesクラスターコンポーネントを実行できます。

ミニクベ内部の攻撃に関する文書はほとんどありません。基本的に、--vm-driver=noneを使用すると、kubectlの構成と資格情報はルート所有になり、ホームディレクトリで使用できるようになります。それらを移動し、適切な権限を設定する必要があります。また、これらの種類の攻撃から保護するために通常使用される秘密のトークンは、攻撃者が簡単にアクセスできるためです。コンポーネントを移動してアクセス許可を設定しないと、リクエストをrootとして導入するときに、混乱した代理としてapiserverを使用する際の潜在的なベクトルになる可能性があります。

最も危険な部分は次のとおりです。--vm-driver=noneはプロセス全体をrootとして公開します。 kubeapiはrootとして実行されています。攻撃者がそれを悪用して、ルートとして実行されるカーネル内で動作するプロセスを制御できる場合、そして私たちが知っているように、攻撃者はシステムの所有者になり、CSFR攻撃だけでなくゲートウェイになる可能性があります。

また、セキュリティはminikubeの優先事項ではないことにも言及する価値があります。これは、セキュリティに重点を置いたものが必要な場合に学習するためのツールであるため、 kubeadm これは:

は、既存のインフラストラクチャでベストプラクティスのKubernetesクラスタをブートストラップするためのツールキットです。

CSRFの実装とこの種の攻撃の実行に関するKubernetes開発者の歴史的な会話を次に示します。

Web攻撃に対するハードマスターAPI#10351

これが私が見つけたものです。GitHubで開発者に質問し、問題を埋めてより正確な情報を入手することをお勧めします。

6
aurelius

ここで答えを見つけることができます: https://minikube.sigs.k8s.io/docs/reference/drivers/none/

セキュリティが低下したミニクベは、インターネット上で利用できる可能性のあるサービスを開始します。予期しないアクセスからホストを保護するためのファイアウォールがあることを確認してください。例:apiserverはTCP *:8443kubeletはTCP *:10250および*:10255kube-schedulerはTCP *:10259kube-controllerはTCP *:10257にリッスンしますコンテナはファイルシステムへのフルアクセスを持っている可能性があります。コンテナはコンテナエスケープを使用して、ホスト上で任意のコードを実行できる可能性がありますCVE-2019-5736などの脆弱性。minikubeのリリースを最新の状態に保ってください。

0
Sébastien PRAT