Arachniは陳腐化に向かっています。次世代の後継者EcsypnoコードネームSCNRを試してみてください!
| バージョン | 1.6.1.3 |
|---|---|
| ホームページ | http://arachni-scanner.com |
| ブログ | http://arachni-scanner.com/blog |
| github | http://github.com/arachni/arachni |
| ドキュメント | https://github.com/arachni/arachni/wiki |
| コードドキュメント | http://rubydoc.info/github/arachni/arachni |
| サポート | http://support.arachni-scanner.com |
| 著者 | Tasos Laskos(@zap0tek) |
| ツイッター | @Arachniscanner |
| 著作権 | 2010-2022 Ecsypno |
| ライセンス | Arachni Public Sourceライセンスv1.0-(ライセンスファイルを参照) |
Arachniは、侵入テスターと管理者がWebアプリケーションのセキュリティを評価するのを支援することを目的とした、機能のフルでモジュール式の高性能Rubyフレームワークです。
それは賢明であり、スキャンプロセス中のWebアプリケーションの動作から監視および学習することで訓練し、結果の信頼性を正しく評価し、誤検出をインテリジェントに識別(または回避する)ために、多くの要因を使用してメタ分析を実行することができます。
他のスキャナーとは異なり、Webアプリケーションの動的な性質を考慮して、Webアプリケーションのサイクロマティックな複雑さのパスを移動する際に引き起こされた変化を検出し、それに応じてそれ自体を調整することができます。このようにして、それ以外の場合は非人間が検出できない攻撃/入力ベクトルは、シームレスに処理できます。
さらに、統合されたブラウザ環境により、クライアント側のコードを監査および検査することも、JavaScript、HTML5、DOM操作、Ajaxなどのテクノロジーを豊富に使用する非常に複雑なWebアプリケーションをサポートすることもできます。
最後に、シンプルなコマンドラインスキャナーユーティリティから、スキャナーのグローバルな高性能グリッド、スクリプト監査を可能にするルビーライブラリ、マルチユーザーマルチスキャンWebコラボレーションプラットフォームまで、非常に多くのユースケースをカバーするのに十分な用途が広いです。
注:Arachniは主にWebアプリケーションのセキュリティを対象としているという事実にもかかわらず、カスタムコンポーネントを追加して、汎用のスクレイピング、データマイニングなどに簡単に使用できます。
Check 、 report 、 plugin開発者は、目標を達成するために必要なインフラストラクチャを提供しながら、最小限の制限を課してコンポーネントを簡単かつ迅速に作成および展開できます。
さらに、彼らは、統一されたフレームワークの下でRuby言語を最大限に活用することを奨励されています。
さらに、その同じフレームワークを他のRubyライブラリと使用して、新しいスキャナーの開発につながるか、高度にカスタマイズされたスキャン/監査シナリオやスクリプトスキャンの作成に役立ちます。
フレームワークの一部はかなり複雑ですが、直接対処する必要はありません。ユーザーやコンポーネントの開発者の視点から、すべてがシンプルで簡単に見え、パワー、パフォーマンス、柔軟性を提供します。
シンプルなコマンドラインユーティリティスキャナーから、直感的でユーザーフレンドリーなWebインターフェイスおよびコラボレーションプラットフォームまで、Arachniは最も驚きの原則に従い、多くのフィードバックとガイダンスを提供します。
Arachniは、Webアプリケーションのセキュリティ問題を自動的に検出するように設計されています。予想されるのは、ターゲットWebサイトのURLであり、しばらくすると、その調査結果が表示されます。
autologin 、 login_script 、またはproxyプラグインを介して初期ログインが実行されたとき)。Arachniには、HTML5、JavaScript、Dom Manipulation、Ajaxなどのテクノロジーを使用する最新のWebアプリケーションに十分なカバレッジを提供するために、統合された本物のブラウザ環境が含まれています。
バニラDOMおよびJavaScript環境の監視に加えて、Arachniのブラウザは人気のあるフレームワークにフックして、ログに登録されたデータの消化を容易にすることもできます。
本質的に、これによりArachniがDOMとJavaScriptデバッガーに変わり、DOMイベントとJavaScriptデータと実行フローを監視できます。その結果、システムはDOMベースの問題をトリガーして特定できるだけでなく、その時点でのページの状態に関する多くの情報を伴うものになります。
関連情報は次のとおりです。
DOMWindow )。decodeURIComponent() )。本質的に、問題を特定するために適切なタイミングでブレークポイントを設定したかのように、お気に入りのデバッガー(たとえば、FireBug)が提供するほぼ同じ情報にアクセスできます。
ブラウザクラスターは、リソースのブラウザ分析を調整するものであり、通常、高性能でかなり時間がかかる操作を実行できるようにします。
構成オプションは次のとおりです。
このシステムは、統合されたブラウザ環境により、最新のWebアプリケーションに優れたカバレッジを提供できます。これにより、人間と同じようにクライアント側のコード(JavaScriptなど)を大量に使用する複雑なアプリケーションと対話できます。
それに加えて、どのブラウザ状態の変更がプログラムされているブラウザ状態の変更についても知っています。
可能なすべてのページとその状態を検査することにより(クライアント側のコードを使用する場合)、Arachniは次の要素とその入力を抽出して監査することができます。
<form>要素に属さないが、代わりにJSコードを介して関連付けられている入力グループとボタングループ。<input>要素。http://example.com/#/?param=val¶m2=val2 ://example.com/#/?param=val¶m2=val2http://example.com/#/param/val/param2/val2Arachniは、ワークフローに適合し、既存のインフラストラクチャと簡単に統合するように設計されています。
プロセスに必要な制御レベルに応じて、RESTサービスまたはカスタムRPCプロトコルを選択できます。
どちらのアプローチでも:
MessagePackシリアル化。<form>要素に属さないが、代わりにJSコードを介して関連付けられている入力グループとボタングループ。<input>要素。GETおよびPOST HTTPメソッドの両方を使用して要素を監査できます。Arachniは非常にモジュール式システムであり、異なるタイプのいくつかのコンポーネントを使用して職務を遂行しています。
必要に応じてシステムの動作と機能を調整するためにバンドルされたコンポーネントを有効または無効にすることに加えて、ユーザーが作成したコンポーネントを追加して、ほぼすべてのニーズに合わせて機能を拡張できます。
利用可能な帯域幅を効率的に使用するために、Arachniは初歩的なプラットフォームフィンガープリントを実行し、適用されるペイロードのみを使用してサーバー側の展開されたテクノロジーに監査プロセスを調整します。
現在、次のプラットフォームを特定できます。
また、ユーザーは、システムが可能な限り効率的になるのを支援するために、追加のプラットフォーム(DBサーバーなど)を指定するオプションもあります。または、フィンガープリントを完全に無効にすることができます。
最後に、Arachniは常に注意を払っていないため、特定のプラットフォームを特定できない場合、利用可能なすべてのペイロードを送信します。
チェックは、セキュリティチェックとログの問題を実行するシステムコンポーネントです。
アクティブチェックは、入力を介してWebアプリケーションに関与します。
sql_injection ) - エラーベースの検出。sql_injection_differential )。sql_injection_timing )。no_sql_injection ) - エラーベースの脆弱性検出。no_sql_injection_differential )。csrf )。code_injection )。code_injection_timing )。ldap_injection )。path_traversal )。file_inclusion )。response_splitting )。os_cmd_injection )。os_cmd_injection_timing )。rfi )。unvalidated_redirect )。unvalidated_redirect_dom )。xpath_injection )。xss )。xss_path )。xss_event )。xss_tag )。xss_script_context )。xss_dom )。xss_dom_script_context )。source_code_disclosure )xxe )。パッシブチェックファイル、フォルダー、署名の存在を探します。
allowed_methods )。backup_files )。backup_directories )common_admin_interfaces )。common_directories )。common_files )。http_put )。unencrypted_password_form )。webdav )。xst )。credit_card )。cvs_svn_users )。private_ip )。backdoors )。htaccess_limit )。interesting_responses )。html_objects )。emails )。ssn )。directory_listing )。mixed_resource )。insecure_cookies )。http_only_cookies )。password_autocomplete )。origin_spoof_access_restriction_bypass )form_upload )localstart_asp )cookie_set_for_parent_domain )hsts )のStrict-Transport-Securityヘッダーがありません。X-Frame-Optionsヘッダーがありません( x_frame_options )。insecure_cors_policy )。insecure_cross_domain_policy_access )insecure_cross_domain_policy_headers )insecure_client_access_policy ) html )。xml )。text )。json )marshal )yaml )afr )プラグインはモジュラー形式でシステムに追加の機能を追加します。これにより、コアは無駄のないままで、誰でも任意の機能を簡単に追加できます。
proxy ) - Webアプリと、AJAX監査、ロギングイン、および/または監査の範囲の制限を支援するブラウザの間のリクエストと応答を分析します。autologin )。login_script )。http_dicattack )。form_dicattack )。cookie_collector ) - 変更のタイムラインを確立しながら、Cookieを追跡します。waf_detector ) - 通常の動作のベースラインを確立し、RDIFF分析を使用して、悪意のある入力が行動の変化を引き起こすかどうかを判断します。beep_notify ) - スキャンが終了したときにビープ音を鳴らします。email_notify ) - スキャンの最後にSMTPを介して通知(およびオプションでレポート)を送信します。vector_feed ) - 監査対象の要素を作成するベクトルデータを読み取ります。ベクトル/要素ごとに非常に専門的/狭い監査を実行するために使用できます。ユニットテストや他の数億個のものに役立ちます。script ) - デバッグや一般的なハッカーに使用されるプラグインの範囲の下に、外部Rubyスクリプトをロードして実行します。uncommon_headers ) - ログをログにしないヘッダー。content_types ) - 興味深い(おそらくリークされた)ファイルの識別を支援するサーバー応答のコンテンツタイプを記録します。vector_collector ) - スキャンスコープ内にあるすべての見られた入力ベクトルに関する情報を収集します。headers_collector ) - 指定された基準に基づいて応答ヘッダーを収集します。exec ) - 異なるスキャン段階で外部実行可能ファイルを呼び出します。metrics ) - スキャンとWebアプリケーションの複数の側面に関するメトリックをキャプチャします。restrict_to_dom_state )に制限 - URLフラグメントに基づいて、監査を単一のページのDOM状態に制限します。webhook_notify ) - スキャンの最後にhttpにwebhookペイロードを送信します。rate_limiter ) - レート制限HTTPリクエスト。page_dump ) - yamlとしてページデータをディスクにダンプします。 デフォルトのプラグインは、すべてのスキャンに対して実行され、 /plugins/defaults/の下に配置されます。
autothrottle )-scan中にHTTPスループットを動的に調整して、帯域幅を最大限に活用します。healthmap ) - 各クロール/監査済みのURLの健康を示すサイトマップを生成しますプラグイン/plugins/defaults/meta/スキャン結果で分析を実行して、信頼性を判断するか、コンテキスト情報または一般的な洞察を追加します。
timing_attacks ) - 影響を受けた監査ページが最初から異常に高い応答時間を返したときに、タイミング攻撃によって明らかにされる問題の通知を提供します。また、頑丈な処理を実行するページに対するDOS攻撃の危険性を指摘しています。discovery ) - 発見チェックによって記録された問題で異常検出を実行し、該当する場合は誤検知の可能性を警告します。uniformity ) - 入力消毒の中心点がないことを示唆する多くのページで均一に脆弱な入力を報告します。トレーナーは、Arachniが実行するスキャンから学習し、その知識を監査中にその知識を取り入れることができるようにするものです。
チェックには、誘導するHTTP応答からフレームワークを個別に強制的に学習させることができます。
ただし、Arachniは、どのリクエストが新しい要素を発見したり攻撃したりする可能性が高く、それに応じて適応する可能性が高いため、通常は必要ありません。
それでも、これはFuzzerチェックの貴重な資産になる可能性があります。
rake specを実行してすべての仕様を実行できます。または、以下を使用して選択的に実行できます。
rake spec:core # for the core libraries
rake spec:checks # for the checks
rake spec:plugins # for the plugins
rake spec:reports # for the reports
rake spec:path_extractors # for the path extractors
警告してください、コア仕様には、システムのグリッド/マルチインスタンス機能をテストする必要があるため、マシンの獣が必要になります。
注:チェック仕様は、タイミング攻撃テストのために完了するのに何時間もかかります。
GitHubの問題を使用してバグを送信し、サポートポータルを介してサポートを取得します。
(作業を開始する前に、ソースコードを操作する手順をお読みください。)
仲間のコードモンキーズからのヘルプを喜んで受け入れます。これらは、コードを提供するために従う必要がある手順です。
git checkout -b <feature-name> experimental )に基づいて機能ブランチを開始します。rake spec:core for the Core Libsまたはrake specのすべてのコア)。Arachni Public Sourceライセンスv1.0-詳細については、ライセンスファイルをご覧ください。