データベーステスト–セキュリティ

データベースセキュリティテストは、セキュリティメカニズムの抜け穴を見つけるために、またデータベースシステムの脆弱性や弱点を見つけるために行われます。

データベースセキュリティテストの主な目的は、システムの脆弱性を見つけ、そのデータとリソースが潜在的な侵入者から保護されているかどうかを判断することです。セキュリティテストは、定期的に実行される場合に、潜在的な脆弱性を効果的に特定する方法を定義します。

データベースセキュリティテストを実行する主な目的は次のとおりです。

  • Authentication
  • Authorization
  • Confidentiality
  • Availability
  • Integrity
  • Resilience

データベースシステム上の脅威の種類

SQLインジェクション

これは、悪意のあるSQLステートメントがデータベースシステムに挿入され、データベースシステムから重要な情報を取得するために実行される、データベースシステムで最も一般的なタイプの攻撃です。この攻撃は、ユーザーアプリケーションの実装における抜け穴を利用します。これを防ぐには、ユーザー入力フィールドを慎重に処理する必要があります。

データベースでの権限昇格

この攻撃では、ユーザーはすでにデータベースシステムに何らかのアクセス権を持っており、データベースシステムで不正なアクティビティを実行できるように、このアクセス権をより高いレベルに上げようとするだけです。

サービス拒否

このタイプの攻撃では、攻撃者はデータベースシステムまたはアプリケーションリソースを正当なユーザーが利用できないようにします。アプリケーションは、アプリケーション、場合によってはマシン全体を使用できなくする方法で攻撃される可能性もあります。

データへの不正アクセス

別のタイプの攻撃は、アプリケーションまたはデータベースシステム内のデータへの不正アクセスを取得することです。不正アクセスには以下が含まれます-

  • ユーザーベースのアプリケーションを介したデータへの不正アクセス
  • 他人のアクセスを監視することによる不正アクセス
  • 再利用可能なクライアント認証情報への不正アクセス

アイデンティティのなりすまし

Identity Spoofingでは、ハッカーはユーザーまたはデバイスの資格情報を使用して、ネットワークホストに対する攻撃を開始したり、データを盗んだり、データベースシステムへのアクセス制御をバイパスしたりします。この攻撃を防ぐには、ITインフラストラクチャとネットワークレベルの緩和策が必要です。

データ操作

データ操作攻撃では、ハッカーがデータを変更して、何らかの利点を得たり、データベース所有者のイメージを傷つけたりします。

データベースセキュリティテスト手法

ペネトレーションテスト

ペネトレーションテストは、セキュリティの抜け穴を見つけて、その抜け穴、その機能、およびデータにアクセスする可能性があることを目的としたコンピュータシステムへの攻撃です。

リスク発見

リスク発見は、損失の種類と脆弱性の発生の可能性に関連するリスクを評価および決定するプロセスです。これは、さまざまなインタビュー、ディスカッション、分析によって組織内で決定されます。

SQLインジェクションテスト

これには、アプリケーションフィールドでのユーザー入力の確認が含まれます。たとえば、「、」、「;」などの特殊文字を入力します。ユーザーアプリケーションのテキストボックスへの入力は許可しないでください。データベースエラーが発生した場合は、ユーザー入力がクエリに挿入され、アプリケーションによって実行されることを意味します。このような場合、アプリケーションはSQLインジェクションに対して脆弱です。

攻撃者はサーバーデータベースから重要な情報にアクセスできるため、これらの攻撃はデータに対する大きな脅威です。WebアプリケーションへのSQLインジェクションエントリポイントを確認するには、ユーザー入力を受け入れることにより、データベースで直接MySQLクエリが実行されるコードベースからコードを見つけます。

SQLインジェクションテストは、ブラケット、コンマ、および引用符に対して実行できます。

パスワードクラッキング

これは、データベースシステムのテストを実行する際の最も重要なチェックです。重要な情報にアクセスするために、ハッカーはパスワードクラッキングツールを使用するか、一般的なユーザー名/パスワードを推測することができます。これらの一般的なパスワードはインターネットで簡単に入手でき、パスワードクラッキングツールも自由に存在します。

したがって、テスト時にパスワードポリシーがシステムで維持されているかどうかを確認する必要があります。銀行や金融のアプリケーションの場合、すべての重要な情報データベースシステムに厳格なパスワードポリシーを設定する必要があります。

データベースシステムのセキュリティ監査

セキュリティ監査は、企業のセキュリティポリシーを定期的に評価して、必要な基準が満たされているかどうかを判断するプロセスです。ビジネス要件に従ってさまざまなセキュリティ標準に従ってセキュリティポリシーを定義し、それらの標準に対して設定されたポリシーの評価を行うことができます。

最も一般的なセキュリティ標準の例は、ISO 27001、BS15999などです。

データベースセキュリティテストツール

市場にはさまざまなシステムテストツールがあり、OSやアプリケーションのチェックをテストするために使用できます。最も一般的なツールのいくつかを以下で説明します。

ZedAttackプロキシ

これは、Webアプリケーションの脆弱性を見つけるための侵入テストツールです。幅広いセキュリティ経験を持つ人々が使用するように設計されているため、侵入テストに不慣れな開発者や機能テスターに​​最適です。これは通常、Windows、Linux、MacOSで使用されます。

パロス

Cookieやフォームフィールドを含む、サーバーとクライアント間のすべてのHTTPおよびHTTPSデータは、これらのスキャナーを使用して傍受および変更できます。クロスプラットフォーム、Java JRE / JDK1.4.2以降で使用されます。

ソーシャルエンジニアツールキット

これはオープンソースツールであり、システム要素ではなく人間の要素が攻撃されます。これにより、攻撃コードを含む電子メール、Javaアプレットなどを送信できます。Linux、Apple Mac OS X、およびMicrosoftWindowsに推奨されます。

スキップフィッシュ

このツールは、サイトの脆弱性をスキャンするために使用されます。ツールによって生成されたレポートは、専門的なWebアプリケーションのセキュリティ評価の基盤として機能することを目的としています。Linux、FreeBSD、MacOS X、およびWindowsに適しています。

ベガ

これは、SQLインジェクション、クロスサイトスクリプティング(XSS)、およびWebアプリケーションの他の脆弱性のインスタンスを見つけるために使用されるオープンソースのマルチプラットフォームWebセキュリティツールです。Java、Linux、およびWindowsに適しています。

ワピティ

Wapitiは、WebアプリケーションのWebページをスキャンし、データを挿入できるスクリプトとフォームをチェックする、オープンソースのWebベースのツールです。Pythonで構築されており、ファイル処理エラー、データベース、XSS、LDAPおよびCRLFインジェクション、コマンド実行検出を検出できます。

Webスカラブ

これはJavaで記述されており、HTTP / HTTPSプロトコルを介して通信するアプリケーションを分析するために使用されます。このツールは主に、自分でコードを記述できる開発者向けに設計されています。このツールはOSに依存しません。