web-dev-qa-db-ja.com

データベースリークを検出する方法

Webサイトは日々ハッキングされ続けており、Webサイトの所有者が「影響を受けるユーザーのパスワードが侵害された可能性がある」と反応していると聞いています。このような漏洩を開示するほとんどのサイトは、どの情報が侵害されたかを正確に把握しており、影響を受けるのはユーザーのごく一部です。

すべてのセットアップで、すべてを1つのデータベースに保存します。ハッカーがデータベースにアクセスした場合、何が侵害されたかを確認するにはどうすればよいですか。

私の質問は、データベースのリークをデータベースで監視するにはどうすればよいですか?いくつかの攻撃ベクトルがあります。ユーザーが私のコードのバグを見つけ、私の管理インターフェイスにアクセスする可能性があります。その場合、ログが役立ちます。しかし、攻撃が私のデータベースに接続し、必要なSQLクエリを送信した場合はどうなるでしょうか。サーバー全体が危険にさらされた場合はどうなりますか?ログを削除したり、アクションを非表示にしたりすることもできます。このようにして、ユーザーが不平を言うまで、ハッキングされたことを知ることすらできませんでした。

私のセットアップではPostgresを使用していますが、1つのスタックにバインドされていない緩和/検出ソリューションを望んでいました。

4
Matt3o12

これは通常、運、テクノロジー、手を振ることの組み合わせです。

データベースサーバーがハッキングされた(たとえば、ギガバイトがインターネットに転送されたこと、ネットワークプロバイダーによって検出された事実など)ことがわかります。次に、データベースでのアクティビティを追跡するログ(「誰かがDBにアクセスした」から実際のクエリに至るまで)がある場合があります。その後、できれば、何がリークしたかおおまかに想像できます。

別の例は Data Loss Prevention の使用です。これは数年前に輝かしい日々を送っていましたが、実際には有用なものを実際に検出できなかったテクノロジーです(一般的に言えば、転送されるもののパターンを探していました)。それが機能するように配置する必要がある制約を考慮すると、ほとんど何もキャッチできないことは驚くことではありません。しかし、これは1つの技術的可能性です。

別のケースは、あなたが あなたのデータはPastebinにある であることに気付いた(または誰かがあなたに言った)場合です。

考えられるシナリオがたくさんあることがわかります。

環境を最新の状態に保つことに加えて、主な防御策は、すべてをログに記録し、データベースのすぐ近くにない場所でログを記録することです(ハッキング後もそこにとどまります)。自家製のソリューション(ファイアウォールゾーンの集中化されたsyslogサーバー)または商用のソリューション( PapertrailSplunk Cloud 、...)を使用できます。次に、これらのログを監視して、異常なパターンを探します。

5
WoJ