6

デフォルトでは、docker コンテナーが独自のネットワーク スタックに作成されることを理解しています。

--net hostDocker コンテナーを実行するときにフラグを使用して、すべてのホスト ポートを使用できるようにしたいと考えています。

私が知っている欠点:

  1. コンテナー内で実行されているサービスは、同じポートで実行されている他のコンテナー内の他のサービスと競合する可能性があります。
  2. コンテナはネットワーク スタック全体にアクセスできます。

私の質問は、コンテナが完全なネットワーク スタックを使用できるようにした場合、セキュリティにどのような影響があるかということです。

4

1 に答える 1

1

脅威モデル

少しやり過ぎですが、通常は、「安全ではないのでやらないでください」と言うよりも、発生する脅威をモデル化することをお勧めします。

使用事例

Docker コンテナーでゲーム サーバーを管理する Web コントロール パネルを作成しました。基本的に、各コンテナは FTP サーバーとゲーム サーバーを実行します。ホストごとに約 50 個のコンテナーを実行しています。ポートを開く必要があるクライアントのインストール mod。

これは、同じゲーム (Minecraft など) の複数のインスタンスをホストしているように聞こえます。

ただし、モッドは MySQL や MongoDB などの新しいソフトウェアを導入する可能性があり、これは新しい攻撃面が開かれることを意味します。

1 つのコンテナーがホスト上の CPU または GPU をフルに使用するのを防ぐために、プロセス コントロール グループ (cgroups) が有効になっていると仮定します。

悪意のあるアクター

  1. ホスト プロバイダー。
    • 関係ありません。コンテナへの完全なアクセス権があります。ホストが悪意を持っている場合、私たちは失敗します。
  2. ゲームサーバー。
    • 現在、FTP、ゲーム ポート、1 つの mod ポートの 3 つのポートにしかアクセスできません。
    • チーターは、ホストされている他のゲームの SQL にアクセスして、他のゲームでチートを行いたいと考えています。ホストするゲームを作成します。
    • 同じゲームをホストしている可能性が高いため、おそらく現実的な脅威ベクトルではないため、この時点ですべてのユーザーが開発者に悩まされています.
  3. モッド
    • クリプト マイナーを含むように更新され、より多くのホスト リソースが必要です。
    • ハッカーがゲーム XYZ で MongoDB のゼロデイについて聞き、Mongo データベースのポート スキャンを追加
    • 最も現実的なシナリオでは、mod がポンプとダンプのスキームに変わることがあります。
    • シナリオ 1
  4. 偽モッド。
    • #2 と同様に、誰かがゲーム xyz がホストされ、--net host有効になっていることを知っています。詐欺師は、データベースにアクセスして、ローカルの MySQL データベースに保存されているコインの数を変更したり、自分自身を他のインスタンスのモデレーターとして設定したりできることを知っています。
    • 彼らはゲームのインスタンスに料金を支払い、mod をインストールして他のコンテナ インスタンスを効果的にバックドアします。
    • シナリオ 2

使用する--net host

シナリオ 1: クリプト マイナー

以前は、特定のポートのみが公開されていましたが、Mongo で mod を使用するゲームの他のインスタンスは安全でした。パブリック ファイアウォールで Mongo ポートが無効になっている可能性があります。

ただし、現在、すべてのコンテナは を使用して相互にチャットでき、相互--net hostに悪意を持ってトラフィックを送信することを防ぐためにファイアウォールを有効にする必要はありません。

そのため、暗号マイナーだけでなくポート スキャナーも含めるように mod が更新されると、mod は localhost をスキャンし、開いている MongoDB を見つけます。次に、他のコンテナーを引き継ぎ、コンテナーに cgroup が適用されていると仮定して、ホストの CPU/GPU をより多く使用します。

cgroup (プロセス使用率制御グループ) が適用されていない場合、唯一の脅威は追加のアクセスです。

シナリオ 2: チーター mod バックドア

以前は、特定のポートのみが公開されていたので、MySQL で mod を使用するゲームの他のインスタンスは安全でした。パブリック ファイアウォールで SQL ポートが無効になっている可能性があります。

ただし、現在、すべてのコンテナは を使用して相互にチャットでき、相互--net hostに悪意を持ってトラフィックを送信することを防ぐためにファイアウォールを有効にする必要はありません。

そのため、詐欺師が自分のインスタンスに mod をインストールすると、MySQL サーバーに直接アクセスし、保管されているコインの数を増やして金持ちにします。サーバーのモデレーターは、このアクセスを示すゲーム ログがないため混乱しており、サーバーがハッキングされているのではないかと考えています。

概要

要約--net hostすると、アクティブなファイアウォールがある場合、追加の外部アクセスは追加されませんが、ホスト上で実行されているコンテナー間の分離が減少します。つまり、悪意のあるコンテナーをホストしている場合、悪意のないコンテナーが攻撃される可能性が高まります利用される。

こちらもご覧ください

于 2021-11-30T16:19:19.697 に答える