Database-testing-security
データベーステスト-セキュリティ
データベースのセキュリティテストは、セキュリティメカニズムの抜け穴を見つけるために、またデータベースシステムの脆弱性または弱点を見つけるために行われます。
データベースセキュリティテストの主な目的は、システムの脆弱性を発見し、そのデータとリソースが潜在的な侵入者から保護されているかどうかを判断することです。 セキュリティテストは、定期的に実行される場合、潜在的な脆弱性を効果的に識別する方法を定義します。
データベースセキュリティテストを実行する主な目的は次のとおりです-
- 認証
- 承認
- 守秘義務
- 可用性
- 誠実さ
- 回復力
データベースシステム上の脅威の種類
SQLインジェクション
これは、悪意のあるSQLステートメントがデータベースシステムに挿入され、データベースシステムから重要な情報を取得するために実行されるデータベースシステムでの最も一般的な攻撃です。 この攻撃は、ユーザーアプリケーションの実装で抜け穴を利用します。 これを防ぐには、ユーザー入力フィールドを慎重に処理する必要があります。
データベースの特権の昇格
この攻撃では、ユーザーは既にデータベースシステムで何らかのアクセス権を持っているため、データベースシステムで許可されていないアクティビティを実行できるように、このアクセスのレベルを上げることのみを試みます。
サービス拒否
このタイプの攻撃では、攻撃者は正当なユーザーがデータベースシステムまたはアプリケーションリソースを利用できないようにします。 また、アプリケーションを攻撃することもできます。これにより、アプリケーションが、場合によってはマシン全体が使用できなくなります。
データへの不正アクセス
別のタイプの攻撃は、アプリケーションまたはデータベースシステム内のデータへの不正アクセスを取得することです。 不正アクセスには次が含まれます-
- ユーザーベースのアプリケーションを介したデータへの不正アクセス
- 他人のアクセスを監視することによる、への不正アクセス
- 再利用可能なクライアント認証情報への不正アクセス
なりすまし
アイデンティティスプーフィングでは、ハッカーはユーザーまたはデバイスの資格情報を使用して、ネットワークホストに対する攻撃を開始したり、データを盗んだり、データベースシステムへのアクセス制御をバイパスしたりします。 この攻撃を防ぐには、ITインフラストラクチャとネットワークレベルの軽減が必要です。
データ操作
データ操作攻撃では、ハッカーがデータを変更して何らかの利点を得るか、データベース所有者のイメージを傷つけます。
データベースセキュリティテストのテクニック
侵入テスト
侵入テストは、セキュリティの抜け穴を見つけ、潜在的にシステム、その機能、およびデータへのアクセスを取得することを目的とした、コンピューターシステムに対する攻撃です。
リスク発見
リスク発見は、損失の種類と脆弱性の発生の可能性に関連するリスクを評価および決定するプロセスです。 これは、さまざまなインタビュー、ディスカッション、分析によって組織内で決定されます。
SQLインジェクションテスト
これには、アプリケーションフィールドでのユーザー入力の確認が含まれます。 たとえば、ユーザーアプリケーションのテキストボックスに「、」や「;」などの特殊文字を入力することは許可されません。 データベースエラーが発生すると、ユーザー入力が何らかのクエリに挿入され、アプリケーションによって実行されます。 このような場合、アプリケーションはSQLインジェクションに対して脆弱です。
攻撃者はサーバーデータベースから重要な情報にアクセスできるため、これらの攻撃はデータに対する大きな脅威です。 WebアプリケーションへのSQLインジェクションエントリポイントを確認するには、いくつかのユーザー入力を受け入れて、データベースで直接MySQLクエリが実行されるコードベースからコードを見つけます。
SQLインジェクションテストは、ブラケット、カンマ、および引用符に対して実行できます。
パスワードクラッキング
これは、データベースシステムのテストを実行する際の最も重要なチェックです。 重要な情報にアクセスするために、ハッカーはパスワード解読ツールを使用するか、一般的なユーザー名/パスワードを推測できます。 これらの一般的なパスワードはインターネットで簡単に入手でき、パスワードクラッキングツールも自由に使用できます。
したがって、テスト時にパスワードポリシーがシステムで維持されているかどうかを確認する必要があります。 銀行および金融アプリケーションの場合、すべての重要な情報データベースシステムに厳格なパスワードポリシーを設定する必要があります。
データベースシステムのセキュリティ監査
セキュリティ監査は、定期的な間隔で会社のセキュリティポリシーを評価し、必要な基準が守られているかどうかを判断するプロセスです。 セキュリティポリシーを定義するために、ビジネス要件ごとにさまざまなセキュリティ標準に従うことができ、それらの標準に対する設定されたポリシーの評価を行うことができます。
最も一般的なセキュリティ標準の例は、ISO 27001、BS15999などです。
データベースセキュリティテストツール
市場にはさまざまなシステムテストツールがあり、OSおよびアプリケーションチェックのテストに使用できます。 最も一般的なツールのいくつかを以下で説明します。
Zed Attack Proxy
Webアプリケーションの脆弱性を見つけるための侵入テストツールです。 幅広いセキュリティ経験を持つ人々が使用するように設計されているため、侵入テストを初めて使用する開発者や機能テスターに最適です。 通常、Windows、Linux、Mac OSで使用されます。
パロス
Cookieやフォームフィールドなど、サーバーとクライアント間のすべてのHTTPおよびHTTPSデータは、これらのスキャナーを使用して傍受および変更できます。 クロスプラットフォームのJava JRE/JDK 1.4.2以上で使用されます。
ソーシャルエンジニアツールキット
これはオープンソースのツールであり、システム要素ではなく人間の要素が攻撃されます。 電子メール、Javaアプレットなどを送信できます。 攻撃コードが含まれています。 Linux、Apple Mac OS X、Microsoft Windowsに適しています。
スキップフィッシュ
このツールは、サイトの脆弱性をスキャンするために使用されます。 ツールによって生成されたレポートは、専門的なWebアプリケーションのセキュリティ評価の基盤として機能することを目的としています。 Linux、FreeBSD、MacOS X、およびWindowsに適しています。
Vega
これは、WebアプリケーションのSQLインジェクション、クロスサイトスクリプティング(XSS)、およびその他の脆弱性のインスタンスを見つけるために使用される、オープンソースのマルチプラットフォームWebセキュリティツールです。 Java、Linux、およびWindowsに適しています。
ワピチ
Wapitiは、WebアプリケーションのWebページをスキャンし、データを挿入できるスクリプトとフォームをチェックする、オープンソースのWebベースのツールです。 Pythonで構築され、ファイル処理エラー、データベース、XSS、LDAPおよびCRLFインジェクション、コマンド実行検出を検出できます。
Webスカラベ
Javaで書かれており、HTTP/HTTPSプロトコルを介して通信するアプリケーションの分析に使用されます。 このツールは、主に自分でコードを作成できる開発者向けに設計されています。 このツールはOSに依存しません。