10 年以上にわたり、攻撃者は SQL インジェクションを使用して無数のデータベースに侵入し、アカウント データやトランザクションの詳細などの情報を盗んできました。

SQL インジェクション攻撃は新しい現象ではなく、セキュリティ専門家はそれを十分に防ぐことができます。しかし、世界中のデータ侵害のほぼ 97% には依然として、インジェクションSQLある時点で。

SQL インジェクションに対抗するには、攻撃の誤検知を発生させることなく、同時に進行中の攻撃を見逃すことなく、何が正常なアクセスで何が異常であるかを識別する効果的なアプローチを取る必要があります。

最近 Enterprise Networking Planet でレビューされた DB Networks の SQL インジェクション管理ソリューションなど、このタイプのアプローチを使用する製品が登場しています。

そうは言っても、SQL インジェクション攻撃の可能性を軽減するには、いくつかのベスト プラクティスが必要であることは明らかです。

1. 入力を信用しない

簡単に言うと、SQL エンジンへの入力はすべて検証される必要があります。つまり、組織は、パラメータ化されたクエリを使用して SQL を構築することを要求する安全なコーディング ガイドラインを作成し、施行する必要があります。このガイドラインは、入力データから実行可能コードを分離することで SQL インジェクション攻撃を防ぐ、コーディング集約的な手法です。

2. エラーメッセージを慎重に作成する

攻撃者は、データベースをより効果的に攻撃する方法を理解するために、不適切に作成されたエラー メッセージを使用することがよくあります。開発者とデータベース管理者は、予期しない入力があった場合に、エラーとして返される情報を考慮する必要があります。たとえば、「ユーザー名に数字を含めることはできません」というログイン エラーが返された場合、攻撃者は盗まれたユーザー アカウント情報を悪用する方法について洞察を得ることができます。

3. データベースとアプリケーションに完全なパッチを適用した状態を維持する

セキュリティパッチは定期的に適用する必要があります。ただし、パッチ適用は最も見落とされているセキュリティ技術の 1 つです。これは、不適切な管理、サプライヤーへの通知の欠如、またはこれらとその他の要因の組み合わせが原因である可能性があります。多くの人にとって、唯一の解決策は、手作業による作業を排除するパッチ管理システムを実装することですが、手作業は失敗しがちです。

これらのベスト プラクティスは良いスタートですが、他のプラクティスも考慮する必要があります。これら 3 つの実践には追加のコストがかかる可能性がありますが、侵害の発生を防ぐことができれば、長期的には最終的に役に立ちます。

4. ネットワーク監視ツールを実装する

アプリケーション レベルでアクセス アクティビティを監視すると、攻撃が発生していることをすぐに示すことができます。エラーの増加やアクティビティの増加などの単純な手がかりを使用して、進行中の攻撃を管理者に警告できます。

5. フィルタリングツールを実装する

リアルタイム セキュリティ アプリケーションは監視システムと連携して攻撃が発生したときにブロックし、疑わしいトラフィックをフィルタリングしてデータベース アクセスを拒否できます。