web-dev-qa-db-ja.com

ホスティングプロバイダーは、あるWebサイトの侵害が別のWebサイトの侵害を引き起こすのをどのように防ぐのですか?

ホスティングプロバイダーのサーバーを攻撃する目的で、脆弱なWebサイトを作成する可能性がありますか?

したがって、私が最近質問した上記の質問では、1つの脆弱なWebサイトが同じサーバー上の他のすべてのWebサイトへの扉を開くのを防ぐには、ユーザーの特権を制御する何らかの方法が必要であるという結論に達しました。

したがって、共有Webホスティングでこれがどのように実現されるのか疑問に思いました。このOSはWindowsのUACなどに基づいていますか、それとも概念的にどのように機能しますか?

これはサーバーによって異なる可能性があることを理解していますが、このスレッドの大きさを理解するために、ホスティングプロバイダーの防御のオプションを理解したいと思います。

45

この質問は少し広いですが、少し広い回答でもまだ役に立ちます。答えは、あなたが話しているホスティングの「種類」に依存します。以下に分類する3つの主要な種類がありますが、使用する名前が業界標準の名前であるとは限りません。ただし、概念は全体的にかなり一般的です。

  1. 共有ホスティング(これはJeroenが彼の回答で語るホスティングの一種です)
  2. VPSホスティング(別名仮想プライベートサーバー)
  3. 専用ホスティング

共有ホスティング

共有ホスティングセットアップでは、多くのウェブサイトが同じOSの同じインスタンスで実行されており、通常、同じシステム上に異なるユーザーアカウントを持つことで、異なる「ウェブサイト」が分離されます。 cPanelとPleskは、このようなセットアップを管理する2つの一般的なソフトウェアシステムです(ただし、PleskはVPSホスティングの管理にも使用できます)。その結果、システムの2つの主要な側面を保護することに注意する必要があります。ユーザーアカウントが適切に分離されていることを確認し(Jeoroenの優れた回答を参照)、コンテナーマネージャー(Plesk、cPanelなど)を確認します。弱点はありません。これらのツールには時々独自の脆弱性があり、誰かがコンテナー管理ソフトウェアに侵入した場合、通常は物理サーバーへのルートアクセス、または最悪の場合はそのサーバーによって管理されているすべてのサーバーへのルートアクセスが発生します。システム。また、ユーザーにコマンドラインアクセスを許可する場合は、OS自体の潜在的な権限昇格の脆弱性を心配する必要があります。

VPSホスティング

VPS(仮想プライベートサーバー)ホスティングを使用すると、物理サーバー自体が何らかの仮想化ソフトウェアを実行し、完全な別のオペレーティングシステムを実行する「仮想マシン」をいくつでも実行できます。これらの種類のセットアップを管理するツールのいくつかの例は、KVMハイパーバイザーまたはXENハイパーバイザーです。この種類のセットアップの利点は、エンドユーザー(別名ホスティング会社の顧客)に与えることです)独自のシステムを完全に制御します。理論的には、必要なオペレーティングシステムをインストールし、完全なルート/管理アクセス権を持ち、必要なソフトウェアをインストール/管理できます。ハイパーバイザーは、各仮想OSを他のOSから分離し、互いに完全にサンドボックス化します。理論的には、侵害された1つのホストが他のホストに影響を与えることは不可能になります。もちろん、実際には完全ではない場合があります。(私は信じます)それはよりまれであり、悪用することは困難ですが、ハイパーバイザー自体が独自の悪意のある攻撃者がシステム全体を制御することができる脆弱性(SpectreとMeltdownはハイパーバイザーに関連していた-h/t phyrfox)他と同様に、システムを最新の状態に保つことが重要です。

専用ホスティング

一部のホスティングプロバイダーは、基本的にハードウェアを管理し、インターネットアクセスを提供する専用ホスティングを提供しています。選択したOSをサーバーにインストールし、基本的にはroot/adminアクセス権を付与します。これはもはや共有ホスティングではないため、影響を受ける他の誰もいないため、明らかにこれはあなたの質問にすぐには関連しません。ただし、これらはまだネットワーク内にあるため、適切なネットワークアクセス制御は常に必須です(これは他のすべてのホスティングインスタンスにも当てはまります)。

ネットワーク管理

追加して編集:ネットワークセキュリティに関する最後のポイントは、言及する価値があります。シャードホスティング、VPSホスティング、専用ホスティングのいずれを使用しているかに関係なく、ホスティング会社は本質的に外部ネットワークへの内部ネットワークアクセスを提供しています。明確なアクセス制御がない場合、これは、ホスティングサービスを使用するすべてのユーザーが、ネットワーク上の他のシステムをスキャンして、独自のOSの脆弱性がないかどうかを確認できることを意味します。たとえば、VPSインスタンスの1つがネットワーク上の他のインスタンスを見つけ、OSのネットワークレベルの脆弱性(heartbleed /など)を介してアクセスできる場合、仮想化レイヤーがその上で実行されている仮想サーバーを完全に分離できるかどうかは重要ではありません。 eternalblue)。大規模なホスティング会社の多くでは、あなた(ホスティングを使用している人)がネットワーク内にVPC(仮想プライベートクラウド)をセットアップして、システムをインターネットや他のネットワーク上のシステムから分離することができます。彼らのネットワークルールが実際に約束どおりに機能すると仮定すると、これはエンドユーザーに自分自身を保護する追加の方法を提供します。おそらく、より大規模なサービスプロバイダーも、自身のネットワーク内からの悪意のあるネットワークトラフィックを検出し、アカウントを適切にシャットダウンできるアクティブなネットワークセキュリティを備えています。

つまり、心配する必要のある脆弱性の種類は、ホスティング構成に大きく依存します。もちろん最近では、大規模なホスティングプロバイダー(サーバーレスインフラストラクチャ)からのまったく新しい多数のホスティングオプションがあり、それらには独自の完全に個別の懸念事項のリストがありますが、上記では、ホスティングの種類に関する主要な懸念事項を概説していると思いますマインド。

52
Conor Mancone

ホスティングプロバイダーのサーバーを攻撃する目的で、脆弱なWebサイトを作成することはできますか?

はい、これは間違いなく可能です。私はこれをLinuxベースのホスティングソリューションでしか経験していないので、そのシナリオでの経験のみを共有できます。

DirectAdmin/Pleskを実行していた共有ホスティングサーバー全体を何度か侵害したことがあります。

これは、ファイルとフォルダの権限が不十分であったため、システム上のすべてのユーザーが他のユーザーのホームディレクトリ(誰でも読み取り可能)に対する読み取りアクセス権を持っていたため、ドメインフォルダとpublic_html/private_htmlサブフォルダ。

共有サーバー上のドメインの1つが脆弱なアプリケーションを実行している場合、たとえば、ユーザーが安全でない方法でファイルをアップロードできる場合、Webシェルをアップロードすることが可能です。

攻撃者がWebシェルにアクセスできるようになり、ファイル/フォルダーのアクセス許可が適切に設定されていない場合、攻撃者はファイルシステム全体を閲覧できます(フォルダーがもちろん誰でも読み取り可能である限り)。

ファイルとフォルダーのアクセス許可をできるだけ厳密に構成し、特定のドメインのみに対する脆弱性を含めることをお勧めします。

19
Jeroen

これは広義の質問であり、ウェブホストが実際にこの問題から十分に保護されていることを前提としています。

典型的な共有Webホスティングは以下を使用します:

  • Apache mod_suexec
  • PHPセーフモードopen_basedirおよびPHPに組み込まれた同様の手段。これが、ほとんどすべての共有ホスティングオファーにphpが含まれている理由の1つですが、Perl、python、Rubyなどはほとんどありません。
  • Fastcgiを使用して複数のphp-fpmインスタンスを実行している可能性があります。これらは、対応するユーザーのファイルを読み取り(および書き込み)できる限り、Webサーバー以外のホストで実行することもできます。
  • ユーザーの家に対する制限付きのアクセス許可。

これにはまだ改善の余地がたくさんあります。それはより良いオファーによって作られ、より悪いオファーによって無視されます。

5
allo