私はオンラインのWebサーバーを荒らされました、彼らは私のホストされたWordPressサイトから侵入し、そこから特権がエスカレートされました。
WordPressをDockerに配置すると、WordPressエクスプロイトのリスクを軽減するための適切な方法になりますか?
P2kが言ったように、dockerはWordpressの問題を解決しません。しかし、特権昇格のリスクを軽減することを意味する場合答えは「はい」になるはずです。
コンテナー(LXC、openVZ、Solarisゾーンなど)の主な機能の1つは、まさに権限の分離です。 Dockerは、さまざまなコンテナー(およびqemu、またはchroot!)に対する単なる汎用フレームワークです。このようにして、Dockerベースのシステムは、選択した基盤よりも安全になることはありません。 LXC(Dockerの有無にかかわらず)を使用している場合は、LXC実装のセキュリティレベルを取得します(これは多少不完全ですが、安全のためにapparmorまたはSElinuxを使用する必要があります)。
コンテナテクノロジーを使用すると、攻撃者をゲートで止めるしかし、あなたのゲート(ワードプレス)は無駄になります。ただし、侵害されたマシン全体よりも、ずっとウェブサイト(コンテナ)を復元する方が簡単です。
それにもかかわらず、適切に設計されたapparmor設定の下でウェブサーバーとデータベースサーバーを実行し、基本的なセキュリティルールを維持する場合(必要でない限り、どこにも書き込みアクセスはなく、頻繁にパッチを適用し、mod_securityなどのWAFを使用します)、とにかくまともなセキュリティレベルに到達できますコンテナ使用のオーバーヘッド。
IMO:コンテナーシステムの使用とコンテナーシステムとしてのDockerの使用:ここでIMOに対処するためのポイントが本当にあるので、私は2つの部分でこの質問に答えます。
他の回答で述べたように、コンテナシステムだけを使用しても、セキュリティは向上しません。ただし、コンテナーシステムを使用すると、他の侵害を検出するのに簡単かつ効果的であることが証明されるアクションを実行でき、迅速かつ早期に行動できるようになります。
tripwireまたは類似のものをインストールする: Tripwire (または [〜#〜] ossec [〜#〜] のようなツールもログファイルをスキャンして不審なアクティビティがないか確認します。)ファイルシステムに含まれるさまざまなファイルのハッシュを含むデータベースを作成します。これは、予期しないファイルの変更を検出できるようにするための設計です。たとえば、攻撃者がシステムに侵入してWordpressファイルの置き換えを開始した場合などです。これらのツールの弱点は、攻撃者が適切な権限を取得できた場合、データベースを変更してその変更を隠すことができることです。
コンテナーの主な利点は、ゲストファイルシステムが直接であり(VMで頻繁に必要とされる一部のソフトウェアを介してではなく)、ホストファイルシステムにアクセスできることです。ゲストはアクセスできません。これは、ホストでTripwireのようなツールを実行してゲストのファイル変更を監視するという夢の状況です。独自のデータベースが安全である間、異常な変更を直接検出できます(Wordpressサーバーの場合、ゲストシステムの権限をエスカレートし、コンテナをエスケープし、ホストシステムの権限を再度エスカレートして、ついにTripwireデータベースにアクセスできるようにします。
ログを外部化:サーバーは、いわゆるログファイルにすべてのアクティビティを記録します。小規模なシステムでは、これらのログファイルは同じホスト上にあり、主に/var/log
ディレクトリにあります。これらのファイルは、システムの妥協を隠すための攻撃者の直接的な標的です( [〜#〜] ossec [〜#〜] これらのファイルを定期的に解析し、警告メールを送信して次の場合に警告することができますログに記録されている不審なアクティビティ)。
企業環境は専用の別のマシンに投資してすべての環境からログを収集できますが、コンテナーは、ゲスト環境の外部にログを保存するためのsyslog
をセットアップする安価で安全な方法を提供し、攻撃者によるアクセスをはるかに少なくします。
これらは単なる例です。実際のところ、コンテナーは、システムのセキュリティを処理する方法に大きな柔軟性を提供します。
最初の注意として、ますます多くの人々がDockerをセキュリティ指向のコンテナと見なさなくなっています。以下を参照してください:
Docker自体はLXCに基づいています(いくつかの制限があります。以下を参照)。基本的に、LXCではなくDockerを使用するか、本格的なスタンドアロンLXCを使用するか(または、LXCに依存している可能性がある代替ソリューションに移動します).
選択するソリューションに関係なく、機能とセキュリティの間には常にトレードオフがあります。機能が多ければ多いほど、セキュリティは低くなります。
したがって、Dockerが提供するneed機能が必要な場合は、それで問題ありません。ただし、本当にそれらが必要ない場合は、軽量の代替品について2度考えてみてください。まったく同じジレンマが、Qemu/KVMスタンドアロンを使用するか、Libvirtをインストールするかを選択する必要があるハードウェア仮想化でも発生することに注意してください。
補足ソフトウェアスタックを追加する限り:
したがって、これによってDockerの使用や、他の種類の野心的な複雑なプロジェクトの構築が妨げられることはありません。ただし、信頼するソフトウェアによってもたらされる機能を評価する必要があります。
ベルとホイッスルでいっぱいの迷宮システムを使用している人をあまりにも頻繁に目にしますが、実際にはほんの少ししか知りません。それは妥協の扉です。
Wordpressをドッカーに入れると、Wordpressエクスプロイトのリスクを軽減するための適切な方法になりますか?
いいえ-脆弱なトップレイヤーがまだあるのに、ベースレイヤーの変更で何かが改善されるのはなぜですか?
データやサービスの分割などにいくつかの概念を適用できます。しかし、それは別の話です。また、サービス(WordPressはこちら)に変更はありません。
繰り返しになりますが、セキュリティ侵害はWordPressにありました。したがって、唯一の解決策は、アプリケーションを交換するか、それを強化することです。 (定期/高速更新。(不要な)プラグインを削除してください。など)