この記事では、特殊なユーティリティとその拡張機能を使用して、侵入テストプロセスを最適化および自動化する方法について説明します。
侵入テストは条件付きで2つの段階に分けることができます。
- 自動テスト;
- 手動テスト。
自動テストの長所と短所
長所:
自動テストを使用すると、原則として、テスト時間が大幅に節約され、Webアプリケーションの大部分を短時間でカバーできます。
多数のチェック。 自動システムには、膨大な数の攻撃パターン、脆弱性の兆候が含まれており、原則として拡張可能です。
ファイルとフォルダーの列挙、パスワードの選択-ここでは、すべてが明確だと思います。
スケジュールされたスキャンとインベントリ手順-自動システムはこれらの目的に最適です。
短所:
誤検知応答。 非常に多くの場合、正式な標識に導かれたスキャナーは、そこにない脆弱性を明らかにします。 このジャンルの古典-単一ページアプリケーションをスキャンすると、スキャナーはすべてのリクエストに対して200レスポンスコードを受け取り、実際には存在しない脆弱性の長いリストを表示します。
彼らは「非常にうるさい」。 サイトがスキャンされると、Webサーバーのログに多くのイベントが生成され、攻撃の特定が容易になります。
Webサーバーの負荷。 自動スキャンによってWebサーバーに顕著な負荷がかかる場合があり、これによりWebアプリケーションの動作が不安定になる可能性があります(ただし、このマイナスはWebサーバーの構成に関係します)。
保護によるブロック。 原則として、自動化システムの機能は開発者になじみがあり、設計時にそれらを考慮します。 その結果、ブロックが発生します(ユーザーエージェント、スキャナートークン、または要求頻度による)。
論理エラーを考慮に入れないでください。
脆弱性の手動検証が必要です。
Webアプリケーション向けに最適化された効果的な自動システムの構築
自動システムを可能な限り効率的にするには、次の機能が必要です。
- サードパーティモジュールの使用を含む機能の拡張。
- マルチフォーマットのテスト結果。
- テスト結果のインポート/エクスポート;
- 標準化されたテスト結果;
- 結果を比較する機能。
- システムをより複雑なシステムに統合する機能。
これらの要因により、要件と目標を満たすシステムを構築できます。
「完成したシステム」の例として、前述のスパルタを引用できます。 テストを可能な限り効果的で制御可能にし、脆弱性を快適に検証するには、すべてのシステムコンポーネント、テスト対象アプリケーションのアーキテクチャ、およびソリューションの接続性を考慮する必要があります。
ユーティリティをポンプ
最適な基盤として、Webアプリケーションをテストするための2つのクロスプラットフォームシステム(手動モードと自動モードの両方)で停止することをお勧めします。OWASPZAP(無料版)とBurpSuite(無料+有料版)です。
これらのシステムと従来のスキャナーの最も重要な違いは、動作の原則です。スキャナーは、直接「サイトにヒット」し、脆弱性の特定の兆候を識別し、多くの場合Webアプリケーションの巨大なセクションをスキップします。 また、ZapとBurpは、サイトのすべての領域を追加できるプロキシメカニズムとして機能します(組み込みのスパイダーと手動のアプリケーションサーフィンの両方)。 また、重要な機能は、各リクエストをオンザフライで解析する機能です。
これらのアプリケーションの大きな利点は、プラグイン/コンポーネントを使用して拡張できることです。
- アプリケーションストア(既製のソリューション);
- サードパーティモジュールの統合(アプリケーションストア外);
- 独自の記述(特定のプロジェクト用にカスタマイズ)。
アプリケーションの例として、次の特性を持つ脆弱なWebアプリケーションを検討することを提案します。
- 既知のCMS;
- プラグイン/コンポーネントのサポート。
- 脆弱性が含まれています(OWASP A1-SQLインジェクションを含む)。
- 保護具が含まれています。
このデータに基づいて、次のコンポーネント(最小セット)を選択して使用する必要があります。
Owasp ZAP:
インストール済み:
以下を確立する必要があります。
ここで、上記のリストに示されている脆弱性の特定と悪用に役立つツールを選択する必要があります。
げっぷスイート:
正直なところ、Owasp ZapよりもBurpの方が好きなので、これについて詳しく説明します。
CMSとインストールされているコンポーネントを特定し、古いバージョンを特定し、WAFをバイパスしてSQLインジェクションを悪用しようとするタスクを完了する必要があります。
まず、Webアプリケーションのテスト方法を順守する必要があります。 前回のDefで発表されたDef Con HUNT Burp Suite Extensionは、これに役立ちます:
- 特定のクラスの脆弱性の一般的なパラメーターを定義します。
- Burp Suite内でテスト方法を整理します。
次に、Vulners.com( isox 、 avleonov-すばらしいツールに感謝)のプラグイン(既にBAppストアに追加されている)を使用します。
また、SQLインジェクションの拡張ファジングセット(無料バージョンでは使用できません-sqlなど)も役立つ場合があります。
次に、SQLマップはインジェクションの巻き戻しを高速化するのに役立ちます-統合するには、SQLiPyプラグインを使用する必要があります。
WebアプリケーションがWAFによって保護されていることはわかっています。WAFおよびWafバイパス拡張機能が役立つ場合があります。
また、Vladimir Ivanovのプラグインburp-xss-sql-pluginもお勧めします 。
自動化ツールとして、組み込みスキャナーを使用するか、 Burp Automatorツールを使用できます。
要件:
- げっぷ-rest-api
- げっぷスイートプロフェッショナル
- slackclient
このツールは、Burp Suiteをベースとして使用してチェックを自動化します。
$ python burpa.py -h ################################################### __ / /_ __ ___________ ____ _ / __ \/ / / / ___/ __ \/ __ `/ / /_/ / /_/ / / / /_/ / /_/ / /_.___/\__,_/_/ / .___/\__,_/ /_/ burpa version 0.1 / by 0x4D31 ################################################### usage: burpa.py [-h] [-a {scan,proxy-config}] [-pP PROXY_PORT] [-aP API_PORT] [-rT {HTML,XML}] [-r {in-scope,all}] [--include-scope [INCLUDE_SCOPE [INCLUDE_SCOPE ...]]] [--exclude-scope [EXCLUDE_SCOPE [EXCLUDE_SCOPE ...]]] proxy_url positional arguments: proxy_url Burp Proxy URL optional arguments: -h, --help show this help message and exit -a {scan,proxy-config}, --action {scan,proxy-config} -pP PROXY_PORT, --proxy-port PROXY_PORT -aP API_PORT, --api-port API_PORT -rT {HTML,XML}, --report-type {HTML,XML} -r {in-scope,all}, --report {in-scope,all} --include-scope [INCLUDE_SCOPE [INCLUDE_SCOPE ...]] --exclude-scope [EXCLUDE_SCOPE [EXCLUDE_SCOPE ...]]
その結果、スキャンに関するレポートを受け取ります:
おわりに
私は意図的にw3af(または有料のアナログ)のような既製のスキャナーを考慮せず、既存の機能に使用を制限する(およびオプションのチェックボックスを設定する)作業を許可しますが、最も人気のあるプロキシBurp Suiteユーティリティの興味深いプラグインと改善を明らかにしようとしました効果的なツール。
自動テストツールを可能な限り効率的に使用するには、より正確なシステムチューニングを行うための手動検証ベースが必要です。