web-dev-qa-db-ja.com

Webサーバーをデータベースから分離する利点

Webアプリケーションのデータベースを、Webサーバーを含むサーバー以外のサーバーにインストールすることのセキュリティ上の利点は何ですか?

8
lisa17

最初の明らかな利点は、誰かがアプリケーションサーバーを収容するボックスを壊した場合、データベースを収容する同じサーバーへのアクセスが保証されないことです。また、この機能を分離することで、IT(ソフトウェア開発者、管理者など)でのコード変更の影響/環境のさまざまな側面でのポリシーの更新を最小限に抑えることが容易になります。これは決して不十分なコーディングや弱いセキュリティ(SQLインジェクション、デフォルトのユーザー名/パスワード)を修正するものではありません。しかし、全体としてより良いセキュリティ体制を促進します。

11
Woot4Moo
  • インターネットに面したWebサーバーは、LAN /ドメインにアクセスする理由がまったくないため、アクセスを完全に禁止する必要があります。理想的には、DMZ上にある必要があります。

    • これにより、インターネットに面したWebサーバーを「所有」している攻撃者が、ネットワークの残りの部分を攻撃するのを防ぐことができます。
    • もちろん、HA(高可用性)、DR(災害復旧)、およびパフォーマンス上の理由から、必要な数だけ使用できます。
    • 中:WAN/DMZ境界に対する厳密なルールと「To LAN」DMZ/LANトラフィックの完全な禁止、および「DMZへ」DMZ/LANトラフィックに対する厳密なルールなど。
    • 詳細:「外部」DMZ WAN/OuterDMZとOuterDMZ/InnerDMZの両方の境界に対する厳密なルール、または同様のもの。
  • 内部向けWebサービスホストは、おそらくLAN /ドメイン(主にデータベース)への制限付きアクセスを必要とします

    • データベースに対してドメインタイプ認証を使用していない場合でも、ドメイン上に存在する必要はありません
    • もちろん、HA(高可用性)、DR(災害復旧)、およびパフォーマンス上の理由から、必要な数だけ使用できます。反復回数が多い本当に良いパスワードハッシュ(PBKDF2、bcrypt、scrypt)を使用する場合は、さらに処理を行うか、RAMここで必要です。
    • これは、インターネットに面したWebサーバーよりもLANを攻撃するための優れたプラットフォームですが(同じボックス、またはより悪いことに、同じサイトでない限り)、データベースポートを介したデータベースボックスへのアクセスは非常に制限されているはずです。アンチウイルスの更新をプルする機能とアンチウイルスの警告をプッシュする機能など.
    • 基本:これは、インターネットに面したWebサーバーなどをホストするのと同じOSインスタンスです。
    • 中:これもDMZにあり、WAMからのインバウンドトラフィックを完全に保護し、WAN WAN/DMZ境界へのアウトバウンドの両方に厳格なルールがあります。 DMZ/LAN境界などの厳格なルール。
    • 上級:これは「内側」にありますDMZ= OuterDMZ/InnerDMZとInnerDMZ/LANの境界の両方に厳密なルールがある、または類似しています。
  • データベースサーバーはLAN上にある可能性が高いため、攻撃者にとってはるかに価値のあるターゲットになります。おそらく、バックアップする必要がある、Webに加えてさまざまなプログラムからアクセスする必要がある、などです。

    • いつものように、SQLインジェクションはインターネットからデータベースに直接アクセスします。 SQLをパラメーター化してください!
    • LANとインターネット上のこのサーバーと他のサーバーとの間に複数の明確に定義された最小限のアクセス許可レイヤーがあり、適切な設計と実装により、データベースサーバーへの攻撃にかかる労力が増加し、攻撃の成功率が大幅に低下します。

基本的に:

  • インターネット-> Webサイト+サービス+ DBとは、OSの1つの妥協により、攻撃者はデータベース(またはバックアップ)内のすべてのデータを直接引き出したり破壊したりするなど、すべてを制御できることを意味します。そのためにWebインターフェイスを経由する必要はありません。 。

  • インターネット-> Webサイト+サービス-> DBは、攻撃者がWebサービスの鍵穴を介してデータベースを侵害するか、共有のセキュリティホールがいくつかしかない複数のマシンを侵害する必要があることを意味します。

  • インターネット-> Webサイト-> Webサービス-> DBの方が良い-攻撃者はWebサイトの鍵穴から見たWebサービスの鍵穴からデータベースを侵害するか、複数(または2つ)を侵害する必要がある!)すべてではなく一部の共有セキュリティホールがあるマシン。

言うまでもなく、最新のパッチとウイルス対策、SQLインジェクションを防ぐためのパラメータ化されたSQL、エントリのホワイトリスト化、長い暗号化ランダムパスワード、暗号化されたデータ、暗号化された接続など、あらゆるレベルで許可されているのと同じくらい安全である必要があります。ハッシュされたパスワード(PBKDF2、bcrypt、scrypt)、暗号化とハッシュのための適切なアルゴリズムの選択、各レイヤー間で開かれている最小ポートのみ、攻撃の痕跡、IDS/IPSソフトウェア/アプリケーションなどのログの確認など。

それはいくつかの計画またはいくつかの演奏(または両方)のセットアップが必要です。

6

まあ、Webサーバーをデータベースサーバーから分離することにより、ユーザーがWebアプリケーションを悪用して自分の権限を昇格できる場合、ユーザーはデータをいじることができますが、データベースサーバーのセキュリティモデルでのみ可能です。たとえば、顧客データの読み取りと書き込みは可能ですが、Webアプリが行う方法をリバースエンジニアリングできる場合、データベース全体を一括ダウンロードしたり、完全に削除したり、データベースを書き換えて破損/侵害/劣化させたりすることはできません。スキーマ。さらに、データベースサーバーを保護するために設計された新世代のアプリケーション固有のファイアウォールとIDSシステムは、既知の攻撃シグネチャとヒューリスティックに基づいて異常なアクセスを検出およびブロックし、データのクライアントアクセスの侵害から保護します。

これは、データベースサーバーが複数のWebサーバーにデータを提供する場合に便利です。

2
RI Swamp Yankee