beginners guide web application penetration testing
侵入テスト 別名ペンテストは、Webアプリケーションで最も一般的に使用されているセキュリティテスト手法です。
Webアプリケーションの侵入テストは、機密データにアクセスするために、内部または外部で不正な攻撃をシミュレートすることによって行われます。
Webの浸透は、エンドユーザーがハッカーがインターネットからデータにアクセスする可能性を見つけ、電子メールサーバーのセキュリティを見つけ、Webホスティングサイトとサーバーがどれほど安全であるかを知るのに役立ちます。
それでは、この記事の内容について説明しましょう。
mp4形式へのyoutubeビデオコンバーター
(画像 ソース )
この侵入テストのチュートリアルでは、次のことを取り上げようとしました。
- Webアプリケーションテストのためのペネトレーションテストの必要性、
- Pentestで利用可能な標準的な方法論、
- Webアプリケーションのペネトレーションテストへのアプローチ、
- 実行できるテストの種類は何ですか、
- 侵入テストを実行するために実行する手順、
- テストに使用できるツール、
- 侵入テストサービスプロバイダーの一部と
- Web侵入テストの認定の一部
推奨される脆弱性スキャンツール:
#1)ネットパーカー
Netsparkerは、使いやすく自動化されたWebアプリケーションセキュリティテストプラットフォームであり、Webサイトの実際の悪用可能な脆弱性を特定するために使用できます。
#二) Kiuwan
SDLCのすべての段階で、コードの脆弱性を見つけて修正します。
Kiuwanは、OWASP、CWE、SANS 25、HIPPAなどを含む最も厳しいセキュリティ標準に準拠しています。 KiuwanをIDEに統合して、開発中に即座にフィードバックを提供します。 Kiuwanは、すべての主要なプログラミング言語をサポートし、主要なDevOpsツールと統合します。
=> コードを無料でスキャンする学習内容:
- 侵入テストが必要なのはなぜですか?
- Web侵入テストの方法論
- Web侵入テストの種類
- Webペンテストアプローチ:
- トップペネトレーションテストツール
- トップペネトレーションテスト会社
- いくつかの侵入テスト認定:
- 結論
- 推奨読書
侵入テストが必要なのはなぜですか?
私たちがセキュリティについて話すとき、私たちが聞く最も一般的な言葉は 脆弱性 。
私が最初にセキュリティテスターとして働き始めたとき、私はこの脆弱性という言葉と非常に頻繁に混乱していました、そしてあなたの多くは、私の読者が同じ船に落ちると確信しています。
すべての読者の利益のために、最初に脆弱性と侵入テストの違いを明らかにします。
だから、何ですか 脆弱性 ?脆弱性は、システムをセキュリティの脅威にさらす可能性のあるシステムの欠陥を特定するために使用される用語です。
脆弱性スキャンまたは侵入テスト?
脆弱性スキャンを使用すると、ユーザーはアプリケーションの既知の弱点を見つけて、アプリケーションの全体的なセキュリティを修正および改善する方法を定義できます。基本的に、セキュリティパッチがインストールされているかどうか、システムが攻撃を困難にするように適切に構成されているかどうかを確認します。
ペネトレーションテストは主にリアルタイムシステムをシミュレートし、許可されていないユーザーがシステムにアクセスできるかどうか、アクセスできる場合はどのような損傷が発生する可能性があるか、どのデータにアクセスできるかなどをユーザーが確認できるようにします。
したがって、脆弱性スキャンは、セキュリティプログラムを改善し、既知の弱点が再発しないようにする方法を提案する探偵制御方法です。一方、侵入テストは、システムの既存のセキュリティ層の全体像を示す予防制御方法です。
どちらの方法にも重要性がありますが、テストの一環として実際に何が期待されるかによって異なります。
テスターとして、テストに取り掛かる前に、テストの目的を明確にすることが不可欠です。目的が明確な場合は、脆弱性スキャンまたは侵入テストを実行する必要があるかどうかを非常に明確に定義できます。
Webアプリのペネトレーションテストの重要性と必要性:
- ペネトレーションテストは、未知の脆弱性を特定するのに役立ちます。
- 全体的なセキュリティポリシーの有効性を確認するのに役立ちます。
- ファイアウォール、ルーター、DNSなどの公開されているコンポーネントのテストに役立ちます。
- ユーザーが攻撃を行うことができる最も脆弱なルートを見つけることができます
- 機密データの盗難につながる可能性のある抜け穴を見つけるのに役立ちます。
現在の市場の需要を見ると、モバイルの利用が急増しており、攻撃の大きな可能性になりつつあります。携帯電話を介してWebサイトにアクセスすると、攻撃が頻繁に発生するため、データが危険にさらされる傾向があります。
したがって、侵入テストは、ハッキングやデータ損失の心配なしにユーザーが使用できる安全なシステムを構築するために非常に重要になります。
Web侵入テストの方法論
この方法論は、テストの実施方法に関する一連のセキュリティ業界のガイドラインに他なりません。テストに使用できる確立された有名な方法論と標準がいくつかありますが、Webアプリケーションごとに異なるタイプのテストを実行する必要があるため、テスターは市場で入手可能な標準を参照して独自の方法論を作成できます。
無料のウェブベースのタイムレコーダーソフトウェア
セキュリティテストの方法論と標準のいくつかは次のとおりです–
- OWASP (オープンWebアプリケーションセキュリティプロジェクト)
- OSSTMM (オープンソースセキュリティテスト方法論マニュアル)
- PTF (侵入テストフレームワーク)
- ISSAF (情報システムセキュリティ評価フレームワーク)
- PCI DSS (ペイメントカード業界のデータセキュリティ基準)
テストシナリオ:
以下にリストされているのは、の一部としてテストできるテストシナリオの一部です。 Webアプリケーション侵入テスト(WAPT):
- クロスサイトスクリプティング
- SQLインジェクション
- 壊れた認証とセッション管理
- ファイルアップロードの欠陥
- キャッシュサーバー攻撃
- セキュリティの設定ミス
- クロスサイトリクエストフォージェリ
- パスワードクラッキング
私がリストに言及したとしても、テスターは上記の従来の基準に基づいて盲目的にテスト方法を作成するべきではありません。
これが例私がそう言っている理由を証明するために。
eコマースWebサイトの侵入テストを依頼された場合、XSS、SQLインジェクションなどのOWASPの従来の方法を使用して、eコマースWebサイトのすべての脆弱性を特定できるかどうかを考えてみましょう。
eコマースは他のウェブサイトと比較して非常に異なるプラットフォームとテクノロジーで動作するため、答えはノーです。 eコマースWebサイトの侵入テストを効果的にするために、テスターは、注文管理、クーポンと報酬の管理、支払いゲートウェイの統合、コンテンツ管理システムの統合などの欠陥を含む方法論を設計する必要があります。
したがって、方法論を決定する前に、どのタイプのWebサイトがテストされると予想され、どの方法が最大の脆弱性を見つけるのに役立つかを十分に確認してください。
Web侵入テストの種類
Webアプリケーションは、2つの方法で侵入テストを行うことができます。テストは、内部または外部の攻撃をシミュレートするように設計できます。
#1)内部侵入テスト–
名前が示すように、内部ペンテストはLANを介して組織内で行われるため、イントラネットでホストされているWebアプリケーションのテストが含まれます。
これは、企業のファイアウォール内に脆弱性が存在する可能性があるかどうかを確認するのに役立ちます。
攻撃は外部でのみ発生する可能性があり、多くの場合、内部の侵入テストが見過ごされているか、それほど重要視されていないと私たちは常に信じています。
基本的には、辞任したが内部のセキュリティポリシーとパスワードを認識している不満を持つ従業員または請負業者による悪意のある従業員攻撃、ソーシャルエンジニアリング攻撃、フィッシング攻撃のシミュレーション、ユーザー特権を使用した攻撃、またはロック解除された端末の誤用が含まれます。
テストは主に、適切な資格情報なしで環境にアクセスし、
#二) 外部侵入テスト–
これらは組織の外部から行われる攻撃であり、インターネット上でホストされているWebアプリケーションのテストが含まれます。
テスターは、内部システムをあまり意識していないハッカーのように振る舞います。
このような攻撃をシミュレートするために、テスターにはターゲットシステムのIPが与えられ、その他の情報は提供されません。公開Webページを検索およびスキャンし、ターゲットホストに関する情報を見つけて、見つかったホストを危険にさらす必要があります。
基本的に、サーバー、ファイアウォール、IDSのテストが含まれます。
Webペンテストアプローチ:
これは、次の3つのフェーズで実行できます。
#1)計画フェーズ(テスト前)
テストを開始する前に、実行するテストの種類、テストの実行方法、QAがツールへの追加アクセスが必要かどうかを判断するなどを計画することをお勧めします。
- スコープの定義– これは、テスト作業を開始する前にテストの範囲を定義する機能テストと同じです。
- テスターが利用できるドキュメント– テスターが、Webアーキテクチャ、統合ポイント、Webサービス統合などを詳述するドキュメントなど、必要なすべてのドキュメントを持っていることを確認します。テスターは、HTTP / HTTPSプロトコルの基本を認識し、Webアプリケーションアーキテクチャ、トラフィックインターセプト方法について知っている必要があります。
- 成功基準の決定– ユーザー要件/機能要件から期待される結果を導き出すことができる機能テストケースとは異なり、ペンテストは別のモデルで機能します。成功基準またはテストケース合格基準を定義して承認する必要があります。
- 以前のテストのテスト結果の確認– 以前のテストが行われたことがある場合は、テスト結果を確認して、過去に存在した脆弱性と、解決するために取られた修正を理解することをお勧めします。これにより、常にテスターの全体像がわかりやすくなります。
- 環境を理解する– テスターは、テストを開始する前に、環境に関する知識を習得する必要があります。この手順により、ファイアウォール、またはテストを実行するために無効にする必要があるその他のセキュリティプロトコルを確実に理解できるようになります。テストするブラウザは、通常はプロキシを変更することによって行われる攻撃プラットフォームに変換する必要があります。
#2)攻撃/実行フェーズ(テスト中):
インターネットプロバイダーによるポートとサービスの制限があってはならないという事実を考えると、Web侵入テストはどこからでも実行できます。
- さまざまなユーザーロールでテストを実行してください– テスターは、異なる特権を持つユーザーに対してシステムの動作が異なる可能性があるため、異なる役割を持つユーザーでテストを実行する必要があります。
- エクスプロイト後の処理方法に関する認識– テスターは、フェーズ1の一部として定義された成功基準に従って、悪用を報告する必要があります。また、テスト中に見つかった脆弱性を報告する定義されたプロセスに従う必要があります。このステップでは、主にテスターがシステムが危険にさらされていることを発見した後、何をする必要があるかを見つけます。
- テストレポートの生成– 適切なレポートなしで行われたテストは、組織にとってあまり役に立ちません。Webアプリケーションの侵入テストの場合も同様です。テスト結果がすべての利害関係者と適切に共有されるようにするには、テスターは、見つかった脆弱性、テストに使用した方法、重大度、および見つかった問題の場所に関する詳細を含む適切なレポートを作成する必要があります。
#3)実行後フェーズ(テスト後):
テストが完了し、テストレポートが関係するすべてのチームと共有されたら、次のリストに取り組む必要があります–
- 修復を提案する– ペネトレーションテストは、脆弱性を特定するだけで終了するべきではありません。 QAメンバーを含む関係チームは、テスターから報告された調査結果を確認してから、修正について話し合う必要があります。
- 脆弱性の再テスト– 修正が行われ、実装された後、テスターは再テストして、修正された脆弱性が再テストの一部として表示されていないことを確認する必要があります。
- 掃除 - ペネトレーションテストの一環として、テスターはプロキシ設定を変更するため、クリーンアップを実行して、すべての変更を元に戻す必要があります。
トップペネトレーションテストツール
さて、あなたはすでに記事全体を読んだので、Webアプリケーションの侵入テストをどのように行うかについて、はるかに良いアイデアが得られたと思います。
教えてください、侵入テストを手動で実行できますか、それともツールを使用して自動化することで常に実行されますか?間違いなく、あなたの大多数は自動化を言っていると思います。 :)
自動化によって速度が向上し、手動による人為的エラー、優れたカバレッジ、およびその他のいくつかの利点が回避されるため、これは真実ですが、ペンテストに関する限り、手動テストを実行する必要があります。
手動テストは、ビジネスロジックに関連する脆弱性を見つけるのに役立ち、誤検知を減らします。
ツールは多くの誤検知を発生させる傾向があるため、ツールが実際の脆弱性であるかどうかを判断するには、手動による介入が必要です。
また読む - Acunetix Web Vulnerability Scanner(WVS)ツールを使用してWebアプリケーションのセキュリティをテストする方法
ツールは、テスト作業を自動化するために作成されています。 Pentestに使用できるいくつかのツールのリストを以下に示します。
その他のツールについては、参照することもできます - すべての侵入テスターのための37の強力な侵入テストツール
トップペネトレーションテスト会社
サービスプロバイダーは、組織のテストニーズに応えるサービスを提供する会社です。彼らは通常、テストのさまざまな分野で優れており、専門知識を持っており、ホストされたテスト環境でテストを実行できます。
以下に、侵入テストサービスを提供する大手企業の一部を示します。
例を含むc#のoopsコンセプト
- PSC (支払いセキュリティコンプライアンス)
- ネトラガード
- Securestate
- CoalFire
- HIGHBITセキュリティ
- Nettitude
- 360
- NetSPi
- ControlScan
- シュコダミノッティ
- 2 |秒
- セキュリティ評価
- セキュリティ監査システム
- ハックラボ
- CQR
いくつかの侵入テスト認定:
Webアプリの浸透認定の認定を取得することに関心がある場合は、以下の認定を選択できます。
- OSWE (攻撃的なセキュリティWebエキスパート)
- GWAPT (GIAC Webアプリケーション侵入テスター)
- CWAPT (認定Webアプリ侵入テスター)
- eWPT (elearnSecurity Webアプリケーション侵入テスター)
結論
このチュートリアルでは、Webアプリケーションに対して侵入テストが実行される方法の概要を示しました。
この情報を使用して、侵入テスターは脆弱性テストを開始できます。
理想的には、侵入テストは安全なソフトウェアの作成に役立ちます。これはコストのかかる方法であるため、頻度を1年に1回に保つことができます。
ペネトレーションテストの詳細については、以下の関連記事をお読みください。
- Webアプリケーションのセキュリティテストのためのアプローチ
- ペネトレーションテスト–サンプルテストケースを含む完全ガイド
- アプリケーションのセキュリティをテストする方法–Webおよびデスクトップアプリケーションのセキュリティテスト手法
以下のペンテストについてのあなたの見解や経験を共有してください。