データベースサーバー上の侵害された管理者アカウントからのデータ開示を防ぐ方法を誰かと話していました。他の人は、データベース内の保存データを暗号化することを提案しました。それは良い考えのように思えますが、それがこのシナリオのデータを保護するかどうかはわかりませんでした。
私の考えでは、攻撃者が管理者アカウントを持っている場合は、暗号化キーにアクセスすることもできます。典型的な構成では、これは事実でしょうか?管理と使用が依然として実用的である一方で、システムが機能しないように設計できますか?ログイン時に管理者にキーを提供してもらうことはできましたが、そのセキュリティへの影響については無知です...
私の脅威モデルは次のとおりです。正規の管理者アカウントのユーザー名とパスワードが侵害されています。攻撃者はそのアカウントを使用してリモートでログインし、データベースをダウンロードします。 MFAやその他のアクセス制御がここで保護することを理解していますが、それらが失敗したか、さもなければ回避されたと想定しています。ここでの暗号化の効果に興味があるだけです。
これは間違いなく実装固有の詳細に帰着することに気づきましたが、データベース管理に精通していないため、架空のシステムの詳細な設定を提供するのに苦労しています。
はい、そのようなシステムは存在します。 Application-Level Encryption と呼ばれます。そのシステムでは、暗号化キー(または少なくともKey-Encrypting Key、またはKEK)はアプリケーションでのみ使用できます。データはデータベースに保存される前にアプリケーションによって暗号化され、暗号化されたblobはデータベースから取得されてアプリケーションによって復号化されます。
これの利点は、一種の二重制御であり、データベース全体に対して大きな制限なしにバルクアクションを実行できるDBAは、暗号化されたデータのみを抽出できます。 KEKを保持するアプリケーション管理者は、データベース内のあらゆるものを復号化できますが、断片的に機能するがバルクでは機能しない承認されたインターフェースに制限されます。これにより、復号化されたデータの悪用が実行されにくくなり、検出が容易になります。
また、主にデータベース内の暗号化されたデータのプレーンテキストの特性をインデックス化または検索できないという欠点もあります。また、それをサポートするためにアプリケーションとデータベースを作成する必要があります。ディスク全体またはデータベース全体の暗号化とは異なり、スイッチを切り替えるだけでは簡単ではありません。
データベースサーバーには、システム管理者アカウントとデータベース管理者アカウントの2つの異なる管理者アカウントが存在できます。 @ gowenfawrの回答 はすでにデータベース管理のケースに対処しているため、システム管理のケースに焦点を当てます。
その場合、あなたは負けました。システム上のすべてのファイルに対するフルアクセス権があるため、管理者からマシンを保護することはできません。サーバーは通常、無人再起動をサポートしているため、アプリケーションはデータベースの復号化キーを抽出できなければならず、管理者権限を持つユーザーは、アプリケーションユーザーになりすます可能性があるため、そのキーも抽出できる必要があります。
いくつかの緩和方法があります。 1つは、データがクライアント側で暗号化される場合です。その場合、アプリケーションは暗号化されたデータのみを処理し、クリアテキストのデータにアクセスすることはできないため、マシンやデータベースへのフルアクセスがあっても、何も復号化することはできません。これは非常に安全ですが、かなり不便な方法です。ユーザーがキーを紛失すると、データは確実に失われます。そのため、システム管理者は通常、それらを無視するセキュリティモデルには非常に消極的です。
他の方法では難読化のみを行うことができます。鍵または少なくとも復号化手順がマシンにアクセスできる必要があります。攻撃者が実際にクリアテキストデータを抽出する前にドアを閉めることができるようにするには、非常に複雑にすることができますが、明らかに正当なアクセスを分析するグローバルセキュリティシステムがある場合にのみ意味があります。アカウントが異常な方法で使用されたときに警告を発します。あなたは古典的な脅威リスク/緩和コストの質問で終わります...
最善の方法は、データベースサーバーとアプリケーションサーバーのマシンと管理者を分離することです。この方法では、データベースマシンは復号化キーを認識しないため、データベース管理者はそれを抽出できません。また、アプリケーション管理者はデータベースからすべてを抽出する方法がありません。ただし、アプリケーションがアクセスできるデータにはアクセスできます。単に異なる管理グループを持つことにはコストがかかり、ここでも脅威リスク/緩和コストの質問が適用されます。
私の脅威モデルは次のとおりです。正規の管理者アカウントのユーザー名とパスワードが侵害されています。攻撃者はそのアカウントを使用してリモートでログインし、データベースをダウンロードします。
ネットワークへのリモート接続はすべて2FAで保護する必要があります(特に管理接続)。これはあなたの脅威を緩和します。さらに、ビジネスニーズに応じて、VPNからのアクセスを拒否したいと思いますVLAN to any VLAN which it contains thesensitive data such as the DB。 。仮想企業の場合、これは不可能かもしれません。
私の脅威モデルは次のとおりです。正規の管理者アカウントのユーザー名とパスワードが侵害されています。攻撃者はそのアカウントを使用してリモートでログインし、データベースをダウンロードします。 MFAやその他のアクセス制御がここで保護することを理解していますが、それらが失敗したか、さもなければ回避されたと想定しています。ここでの暗号化の効果に興味があるだけです。
暗号化の使用に関しては、暗号化キーを安全なボールトに保存し、必要に応じて役割ベースのアクセスを提供できます。これにより、問題の特定のDBのリスクが軽減されますifこの管理者は、このDBの管理者ではありません。