Webアプリケーションのデータベースを、Webサーバーを含むサーバー以外のサーバーにインストールすることのセキュリティ上の利点は何ですか?
最初の明らかな利点は、誰かがアプリケーションサーバーを収容するボックスを壊した場合、データベースを収容する同じサーバーへのアクセスが保証されないことです。また、この機能を分離することで、IT(ソフトウェア開発者、管理者など)でのコード変更の影響/環境のさまざまな側面でのポリシーの更新を最小限に抑えることが容易になります。これは決して不十分なコーディングや弱いセキュリティ(SQLインジェクション、デフォルトのユーザー名/パスワード)を修正するものではありません。しかし、全体としてより良いセキュリティ体制を促進します。
インターネットに面したWebサーバーは、LAN /ドメインにアクセスする理由がまったくないため、アクセスを完全に禁止する必要があります。理想的には、DMZ上にある必要があります。
内部向けWebサービスホストは、おそらくLAN /ドメイン(主にデータベース)への制限付きアクセスを必要とします
データベースサーバーはLAN上にある可能性が高いため、攻撃者にとってはるかに価値のあるターゲットになります。おそらく、バックアップする必要がある、Webに加えてさまざまなプログラムからアクセスする必要がある、などです。
基本的に:
インターネット-> Webサイト+サービス+ DBとは、OSの1つの妥協により、攻撃者はデータベース(またはバックアップ)内のすべてのデータを直接引き出したり破壊したりするなど、すべてを制御できることを意味します。そのためにWebインターフェイスを経由する必要はありません。 。
インターネット-> Webサイト+サービス-> DBは、攻撃者がWebサービスの鍵穴を介してデータベースを侵害するか、共有のセキュリティホールがいくつかしかない複数のマシンを侵害する必要があることを意味します。
インターネット-> Webサイト-> Webサービス-> DBの方が良い-攻撃者はWebサイトの鍵穴から見たWebサービスの鍵穴からデータベースを侵害するか、複数(または2つ)を侵害する必要がある!)すべてではなく一部の共有セキュリティホールがあるマシン。
言うまでもなく、最新のパッチとウイルス対策、SQLインジェクションを防ぐためのパラメータ化されたSQL、エントリのホワイトリスト化、長い暗号化ランダムパスワード、暗号化されたデータ、暗号化された接続など、あらゆるレベルで許可されているのと同じくらい安全である必要があります。ハッシュされたパスワード(PBKDF2、bcrypt、scrypt)、暗号化とハッシュのための適切なアルゴリズムの選択、各レイヤー間で開かれている最小ポートのみ、攻撃の痕跡、IDS/IPSソフトウェア/アプリケーションなどのログの確認など。
それはいくつかの計画またはいくつかの演奏(または両方)のセットアップが必要です。
まあ、Webサーバーをデータベースサーバーから分離することにより、ユーザーがWebアプリケーションを悪用して自分の権限を昇格できる場合、ユーザーはデータをいじることができますが、データベースサーバーのセキュリティモデルでのみ可能です。たとえば、顧客データの読み取りと書き込みは可能ですが、Webアプリが行う方法をリバースエンジニアリングできる場合、データベース全体を一括ダウンロードしたり、完全に削除したり、データベースを書き換えて破損/侵害/劣化させたりすることはできません。スキーマ。さらに、データベースサーバーを保護するために設計された新世代のアプリケーション固有のファイアウォールとIDSシステムは、既知の攻撃シグネチャとヒューリスティックに基づいて異常なアクセスを検出およびブロックし、データのクライアントアクセスの侵害から保護します。
これは、データベースサーバーが複数のWebサーバーにデータを提供する場合に便利です。