9種類の侵入テスト[2021年に使用]
今日の企業の世界では、セキュリティが最も一般的な問題になっています。毎日、攻撃者がどのようにコンピュータシステムをハッキングし、すべての重要な情報を盗んだかについて聞いています。
2019年には、米国で1,473件のデータ侵害が報告され、1億6,400万件を超える機密レコードが公開されました。 2020年上半期には、データ侵害の数は540件に達しました。— Statistaレポート
多くの大企業は、セキュリティの弱点と脆弱性を検出するために、独自のシステムで許可されたシミュレートされたサイバー攻撃を実行しています。これは、侵入テスト(略してペネトレーションテスト)と呼ばれるものです。基本的に、その目的は、サイバーハッカーの前にセキュリティの脆弱性と弱点を特定し、それらをできるだけ早く修正することです。
より具体的には、侵入テストでは、実際の攻撃シナリオをシミュレートして、最終的に情報の盗難、資格情報の侵害、またはその他の有害なビジネス結果につながる可能性のあるセキュリティギャップを(安全な方法で)見つけて悪用します。
これは、侵入テストツールを使用して社内で実行することも、侵入テストプロバイダーに外部委託することもできます。このプロセスは通常、セキュリティの専門家がターゲットネットワークを列挙して、脆弱なデバイスやアカウントを検出することから始まります。これは、ネットワーク上のすべてのデバイスをスキャンして、サービスが実行されている開いているポートを探すことを意味します。
侵入のレベルは、セキュリティテスターがターゲットシステムで調査したい操作の種類によって異なります。したがって、テスターは最も関連性の高い種類の侵入テストについて十分な知識を持っている必要があります。
侵入テストは、実行方法、および対象となる資産とコンポーネントに基づいて分類できます。この概要記事では、集中的かつ侵襲的に設計されたさまざまな種類の侵入テストについて説明しました。
使用された方法に基づく侵入テスト
1。ブラックボックステスト
- テストケースはすぐに設計できます
- 特定の種類の欠陥を検出できます
ブラックボックス侵入テストでは、テスターはクライアントのアプリケーション、ネットワーク構成、またはあらゆる種類の内部情報にアクセスできません。彼/彼女は必要な情報を抽出するためにすべての偵察を行います。
このタイプのテストは、ネットワークの外部から悪用可能なシステムの弱点を特定します。これらの弱点を見つけるには、ターゲットネットワーク内で現在実行中のプログラムとシステムを動的に検査する必要があります。
テスターは、自動スキャンソフトウェアと手動侵入テストのさまざまな手法に精通している必要があります。システム構成やアプリケーションのソースコードに関する予備知識がないため、ブラックボックス侵入テスターは、個人的な観察に基づいて、ターゲットネットワークの独自のマップを作成できる必要があります。
知識が限られているため、テスターはシステム内のすべての脆弱性を見つけることができません。これは、このタイプのテストの主な欠点です。テスターがすべての境界を突破できない場合、内部の脆弱性は発見されないままです。
ただし、サーバー構成の誤りや入出力検証エラーなど、特定の種類の欠陥を発見することができます。成功する(より多くの脆弱性を効率的に検出して修正する)には、ブラックボックステストの方法論を他のテストツールと組み合わせる必要があります。
ブラックボックス侵入テストを実施するために市場で入手可能なツールはたくさんあります。たとえば、Wapitiは、一時的なデータを挿入することにより、潜在的な負債についてWebアプリケーションを分析します。
2。ホワイトボックステスト
- より包括的
- コードの最適化と隠れたセキュリティ問題の検出を可能にします
名前が示すように、ホワイトボックス侵入テストはブラックボックステストの反対です。テスターは、アーキテクチャのドキュメント、ソースコード、およびその他のシステム情報に完全にアクセスできます。
テスターは、潜在的な弱点を検出するために利用可能な大量のデータをふるいにかけます。この種のテストには、静的および動的の両方のコードアナライザーとデバッガーを使用できます。
テスターはシステムについて完全な知識を持っているため、最初にテストするモジュールと、テストを実行するために使用する特定のソフトウェアを決定するのに時間がかかります。
JUnit、PyUnit、Seleniumは、最も人気のあるオープンソースのホワイトボックステストツールの一部です。たとえば、Seleniumは、さまざまなブラウザやプラットフォームでWebアプリケーションを検証するために使用されます。
3。グレーボックステスト
- より少ないコストと労力でより重大な脆弱性を特定します
- テストは、デザイナーの視点ではなく、ユーザーの視点から実行されます
これは、ブラックボックスとホワイトボックスの両方の侵入テストの組み合わせです。灰色のボックスペンテスターは、データベースや設計ドキュメントなど、システムの内部に関する知識を持っています。この限られた知識で、彼/彼女はテスト計画を準備しながらより良いテストデータとテストケースを作ることができます。
このタイプのテストは、ブラックボックス評価と比較して、システムのセキュリティのより効率的で焦点を絞った評価を提供します。アプリケーションの不適切な使用または不適切なコード構造に起因する欠陥を特定できます。具体的には、複雑なシステムのすべてのレイヤーに集中することで、コンテキスト固有のエラーを明らかにします。
グレーボックステストは、機能テスト、Webアプリケーション、Webサービス、セキュリティ評価、およびGUIに適しています。 Burp Suiteは、一時的な安全でない場所を攻撃することでアプリケーションの脆弱性を悪用する、人気のあるグレーボックステストツールの1つです。
これら3つのテスト手法の違い
ブラックボックス侵入テスト | グレーボックス侵入テスト | ホワイトボックス侵入テスト |
システムの内部動作に関する知識は必要ありません | システムの内部動作に関する部分的な知識が必要です | システムの内部動作に関する完全な知識が必要です |
隠れたエラーを見つけるのは非常に困難です | 隠れたエラーを見つけるのが難しい | 隠れたエラーを簡単に発見 |
クローズドボックステストまたはデータ駆動型テストとも呼ばれます | 半透明テストとも呼ばれます | クリアボックステスト、構造テスト、またはコードベーステストとも呼ばれます |
最も時間のかからない | 部分的に時間がかかる | 最も包括的で時間のかかる |
入力/出力検証エラーを見つけるのに最適 | データドメインとシステム設計のテストに最適 | アルゴリズム、コード構造、内部境界のテストに最適 |
テストはエンドユーザー、開発者、テスターによって実施されます | テストは独立したテスターと開発者によって実行されます | テストはテスターと開発者によって実行されます |
対象コンポーネントに基づく侵入テスト
1。ネットワークサービスのテスト
- ネットワークとデータの侵害を防止します
- ネットワークとシステムのセキュリティを確保します
ネットワーク侵入テストプロセスでは、さまざまな悪意のある方法を使用してネットワークのセキュリティを調査することにより、アプリケーションとシステムのセキュリティの脆弱性を発見します。
通常、テスターは悪用可能なネットワーク、ホスト、システム、およびデバイス(スイッチやルーターなど)を特定して、弱点を明らかにします。ネットワークには外部アクセスポイントと内部アクセスポイントの両方があるため、外部からリモートで、クライアントサイトでローカルにテストを実行する必要があります。
これは、テスターが組織が対処しているリスクのレベルと、セキュリティ上の欠陥に対処して修正する方法を理解するのに役立ちます。リスクに応じて、テストでさまざまなネットワーク領域をターゲットにすることができます。たとえば、次のことを実行できます。
- ステートフル分析テスト
- ファイアウォール構成のテスト
- ファイアウォールバイパステスト
- DNS攻撃
これらのテストで調査された最も一般的なプロトコルは次のとおりです。
- シンプルメール転送プロトコル(SMTP)
- ファイル転送プロトコル(FTP)
- セキュアシェル(SSH)
- MySQLとSQLServer
システムのサイズと複雑さにもよりますが、ネットワーク侵入テストが完了するまでに1〜4週間かかる場合があります。テスターは、プロジェクトをスコーピングした後にのみ詳細な見積もりを提供できます。
2。 Webアプリケーションの侵入テスト
ウェブアプリの侵入テストを実行する手順
- 設計と構成の両方の脆弱性を特定します
侵入者を特定してブロックします
多くのWebアプリケーションは機密情報を保持しているため、それらを常に安全に保つ必要があります。そのための1つの方法は、ソフトウェア開発ライフサイクル(SDLC)の一部としてWebアプリの侵入テストを含めることです。
侵入テストにより、Webアプリケーション全体と、データベース、バックエンドネットワーク、ソースコードなどのコンポーネント全体の脆弱性を簡単に特定できます。これは、開発者が弱点とエラーを特定して優先順位を付け、それらを軽減する方法を考え出すのに役立ちます。
このタイプのテストには、ターゲットWebアプリに関するデータの収集、ホストネットワークのマッピング、およびインジェクションまたは改ざん攻撃の可能性のあるすべてのポイントの調査が含まれます。 Webアプリの侵入テストを実行する主な理由は次のとおりです。
- 未知の脆弱性を検出する
- ルーターやファイアウォールなど、公開されているコンポーネントを確認します
- 攻撃の可能性がある最も脆弱なルートを見つける
- 情報の盗難につながる可能性のある抜け穴を探します
- 既存のセキュリティポリシーの有効性を確認する
Webアプリの侵入テスト(手動と自動の両方)を実施するためのツールが数多く市場に出回っています。 Vega、Veracode、およびZapは、クイックテストを実行するための最も一般的なものの一部です。
3。ワイヤレスペンテスト
- ワイヤレスネットワークの現実的なセキュリティ体制を決定します
- 脆弱性とセキュリティポリシー/手順に対処します
ワイヤレス侵入テストには、企業のWiFiに接続されているすべてのデバイス間の接続を検出して分析することが含まれます。これには、ラップトップ、スマートフォン、タブレット、プリンター、およびその他のモノのインターネット(IoT)デバイスが含まれます。
セキュリティの抜け穴を発見するために、さまざまなワイヤレスプロトコルとワイヤレスアクセスポイントがテストされています。通常、これらのテストはクライアントのサイトで実施されます。これは、テスターがデバイスにアクセスするためにワイヤレス信号の範囲内にいる必要があるためです。
ほとんどの場合、MACフィルタリングの欠如と不十分なネットワークアクセス制御が原因で、wifiアクセスポイントに脆弱性が見つかります。これらの問題が実際に発生する前に修正するには、セキュリティ体制の有効性をテストして、意図しない弱点を明らかにすることが重要です。
攻撃者が悪用できるワイヤレステクノロジーはWiFiだけではないことを覚えておくことも重要です。いくつかのBluetoothデバイス、Bluetooth Low Energyデバイス、およびZ-waveやDECT(コードレス電話)などのあまり人気のないテクノロジーが一般に公開されています。
4。クライアント側の侵入テスト
- クライアント側ソフトウェアのセキュリティ構成の誤りを検出します
- インバウンドおよびアウトバウンドのネットワークトラフィックを適切に制御できます
これは、テスターがWebブラウザー、Adobe Acrobat、電子メールクライアント、MacromediaFlashなどのクライアント側アプリケーションプログラムの脆弱性を悪用する内部ペンテストです。
このようなテストを特定の間隔で実施するためのルールはありませんが、企業は、新しいITインフラストラクチャまたはクライアント側アプリケーションが追加されたとき、または既存のインフラストラクチャが変更されたときに、侵入テストを実行する必要があります。
クライアント側の脆弱性のほとんどは、ラップトップまたはデスクトップにインストールされているパッチが適用されていないソフトウェアが原因で発生します。一部の攻撃者は更新プロセスを傍受し、元の更新と一緒に悪意のあるコードを送信します。
USBデバイスも悪意のあるファイルや実行可能コードに感染しています。これらのファイルは、被害者が自分のマシンにUSBを接続するとすぐに自動的に実行されます。クロスサイトスクリプティング、フォームハイジャック、クリックジャッキング、HTMLインジェクション、およびオープンリダイレクトは、最も一般的なクライアント側のセキュリティ攻撃の一部です。
これが、クライアント側の攻撃を認識して対応する従業員の感受性とネットワークの能力をテストすることが重要である理由です。
5。外部ペンテスト
- 企業の境界システムのセキュリティ評価
- アプリケーション層とネットワーク層の両方の評価が含まれます
外部侵入テストは通常、標的のシステムやネットワークに事前にアクセスすることなく、攻撃者の視点からテストします。これは、攻撃者が侵入先のマシンにすでに足場を持っている内部侵入テストとは異なります。
外部の侵入テストでは、テスターは外部資産にある脆弱性を利用して内部ネットワークにアクセスしようとします。彼/彼女は範囲内の資産について偵察を行い、範囲内のすべての資産に関するデータを収集します。
このデータには、開いているポート、脆弱性、またはパスワード攻撃に関する従業員の情報が含まれる場合があります。境界が破られると、外部侵入テストの目的が達成され、テスターは内部ペンテストに進みます。
読む:開発者向けの30の便利なバグ追跡ツール
6。ソーシャルエンジニアリング
- 疑いを持たない従業員が会社のセキュリティを危険にさらすのを防ぐ
- 人間の心理を利用して機密データを取得する
ソーシャルエンジニアリングという用語は、人間の相互作用を介して実行されるさまざまな悪意のある活動に使用されます。 (アプリケーションやネットワークの弱点ではなく)人為的エラーに依存しているため、マルウェアベースの侵入よりも予測が難しく、検出が困難です。
この種のテストでは、会社の従業員をだまして機密情報を公開することにより、機密データを取得しようとします。これは、リモートテストまたは物理テストのいずれかで実現できます。
読む:15の最高のテストデータ生成ツール
リモートテストでは、フィッシングメールを従業員に送信したり、誤警報や架空の脅威でデバイスを攻撃したりします。対照的に、物理的なテストには、テールゲーティング、なりすまし、ゴミ釣り、物理的な脅威などが含まれます。
産業技術