ASP、.net、Java で開発された何百もの Web サイトがあり、セキュリティの抜け穴をチェックするためにサイトの侵入テストを行う外部機関に多額の費用を支払っています。これを行うための (良い) ソフトウェア (有料または無料) はありますか?
または.. このツールの開発に役立つ技術記事はありますか?
ASP、.net、Java で開発された何百もの Web サイトがあり、セキュリティの抜け穴をチェックするためにサイトの侵入テストを行う外部機関に多額の費用を支払っています。これを行うための (良い) ソフトウェア (有料または無料) はありますか?
または.. このツールの開発に役立つ技術記事はありますか?
Web アプリケーション用の自動テスト ツールを使用して進むことができるいくつかの異なる方向性があります。
まず、商用の Web スキャナーがあり、そのうち HP WebInspect と Rational AppScan の 2 つが最も人気があります。これらは「オールインワン」の「ファイア アンド フォーゲット」ツールであり、ダウンロードして内部の Windows デスクトップにインストールし、URL を指定してサイトをスパイダーし、よく知られた脆弱性 (つまり、 Bugtraq をヒットしました)、クロスサイト スクリプティングと SQL インジェクションの脆弱性を調査します。
2 つ目は、ソース コード スキャン ツールです。その中で、Coverity と Fortify がおそらく最もよく知られている 2 つです。これらは、開発者のデスクトップにインストールして、Java または C# のソース コードを処理し、不十分な入力検証など、安全でないコードの既知のパターンを探すツールです。
最後に、侵入テスト ツールがあります。セキュリティの専門家の間で圧倒的に人気のある Web アプリ侵入テスト ツールは、http: //www.portswigger.net/proxy で見つけることができる Burp Suite です。その他には、Spike Proxy や OWASP WebScarab などがあります。繰り返しますが、これを内部の Windows デスクトップにインストールします。これは HTTP プロキシとして実行され、ブラウザでそれを指定します。アクションを記録している間、通常のユーザーと同じようにアプリケーションを使用します。その後、個々のページまたは HTTP アクションに戻って、セキュリティの問題を調べることができます。
複雑な環境で、特に DIY を検討している場合は、侵入テスト ツール を強くお勧めします。理由は次のとおりです。
市販の Web スキャナーは、優れたレポートとともに、多くの「幅」を提供します。でも:
すべてのアプリケーションが異なるため、見落としがちです。
それらは高価です (WebInspect は数万から始まります)。
必要のないものにお金を払っています (90 年代の既知の悪い CGI のデータベースなど)。
それらはカスタマイズするのが難しいです。
ノイズの多い結果が生成される可能性があります。
ソース コード スキャナーは、Web スキャナーよりも完全です。でも:
Web スキャナーよりもさらに高価です。
動作するにはソースコードが必要です。
効果的にするために、多くの場合、ソース コードに注釈を付ける必要があります (たとえば、入力経路を選択するため)。
それらは偽陽性を生み出す傾向があります。
市販のスキャナもソース コード スキャナも、陳腐化してしまうという悪い癖があります。さらに悪いことに、それらが機能したとしても、そのコストは、1 つまたは 2 つのアプリケーション全体をコンサルタントに監査してもらうことに匹敵します。コンサルタントを信頼すれば、ツールよりも優れた結果が得られることが保証されています。
侵入テスト ツールにも欠点があります。
それらは、起動して忘れる商用スキャナーよりもはるかに使いにくい.
Web アプリケーションの脆弱性に関するある程度の専門知識があることを前提としています --- 探しているものを知っている必要があります。
彼らは正式な報告をほとんどまたはまったく作成しません。
一方で:
それらははるかに安価です --- 最高の Burp Suite はわずか 99EU で、無料バージョンがあります。
これらは簡単にカスタマイズして、テスト ワークフローに追加できます。
それらは、アプリケーションを内部から「理解する」のに非常に優れています。
以下は、基本的な Web アプリケーションの侵入テスト ツールで行うことです。
プロキシ経由でアプリケーションにログインする
アプリケーションの主要な機能領域の「ヒット リスト」を作成し、それぞれを 1 回実行します。
侵入テスト アプリケーションで「スパイダー」ツールを使用して、アプリケーション内のすべてのページ、アクション、およびハンドラーを見つけます。
スパイダーが発見した各動的ページと各 HTML フォームに対して、「ファザー」ツール (Burp はこれを「侵入者」と呼んでいます) を使用して、無効な入力を含むすべてのパラメーターを実行します。ほとんどのファザーには、次のような基本的なテスト文字列が付属しています。
SQL メタ文字
HTML/Javascript エスケープとメタ文字
入力フィルターを回避するためのこれらの国際化されたバリアント
既知の既定のフォーム フィールド名と値
既知のディレクトリ名、ファイル名、およびハンドラ動詞
疑わしい応答を探して、結果のエラーをフィルタリングするのに数時間を費やします (1 つのフォームに対して典型的な fuzz を実行すると、1000 個のエラーが生成される可能性があります)。
これは、労力のかかる「ベアメタル」アプローチです。しかし、会社が実際のアプリケーションを所有している場合は、ベアメタル アプローチを使用して、各アプリの各開発サイクルで時計仕掛けのように実行される回帰テスト スイートを構築できるため、成果が得られます。これは多くの理由で勝利です:
セキュリティ テストには、アプリケーションごとに予測可能な時間とリソースが必要になるため、予算を立ててトリアージすることができます。
テストはアプリケーションに合わせて調整されるため、チームは最大限に正確で完全な結果を得ることができます。
商用スキャナーやコンサルタントよりも費用がかかりません。
もちろん、この道を進むと、基本的に自分自身を会社のセキュリティ コンサルタントにすることになります。それは悪いことではないと思います。その専門知識が必要ない場合は、WebInspect や Fortify はいずれにしてもあまり役に立ちません。
ペンテスト ツールについて具体的に質問されたことは承知していますが、それらには十分な回答が寄せられているため (私は通常、AppScan とトレーニング済みのペンテスターを組み合わせて使用します)、ペンテストが「セキュリティの抜け穴をチェックする唯一の方法」ではないことを指摘することが重要だと思います。 」、そして多くの場合、最も効果的ではありません.
ソース コード レビュー ツールを使用すると、コードベースの可視性が大幅に向上し、ペンテストでは検出できない多くの欠陥を見つけることができます。
これらには、Fortify と OunceLabs (高価で、多くの言語に対応)、VisualStudio.NET CodeAnalysis (.NET と C++ に対応、VSTS で無料、まともだが素晴らしいとは言えない)、Java 用の OWASP の LAPSE (無料、まともではない)、CheckMarx (安くはない) が含まれます。 、.NET および Java 用の素晴らしいツールですが、オーバーヘッドが高くなります)、その他多数。
注意すべき重要な点 - (ほとんどの) 自動化されたツールは、すべての脆弱性を見つけるわけではなく、閉じることさえできません。自動化されたツールは、プロのペンテスターが発見する secbug の約 35 ~ 40% を発見することが期待できます。同じことは、自動化されたソース コード レビューと手動のソース コード レビューにも当てはまります。
そしてもちろん、脅威モデリング、設計レビューなどを含む適切な SDLC (セキュリティ開発ライフサイクル) がさらに役立ちます...
McAfee Secure はソリューションではありません。彼らが提供するサービスは冗談です。
下記参照:
http://blogs.zdnet.com/security/?p=1092&tag=rbxccnbzd1
http://blogs.zdnet.com/security/?p=1068&tag=rbxccnbzd1
http://blogs.zdnet.com/security/?p =1114&tag=rbxccnbzd1
Skipfish、w3af、arachni、ratproxy、ZAP、WebScarab : すべて無料で非常に優れた IMO
有料ソリューションに関しては、SpiDynamics WebInspect や、Nikto (無料ソリューションの場合) やその他のオープン ソース ツールについて良いことを聞いています。Nessus は、そのレイヤーも確認する必要がある場合に備えて、インフラストラクチャ用の優れたツールです。Nubuntu(Auditor、Helix、またはその他のセキュリティベースのディストリビューションも機能します)と呼ばれるいくつかのツールを含むライブCDを入手してから、特定のツールのチュートリアルをGoogleで検索できます。ただし、常にローカル ネットワークからスキャンするようにしてください。認証なしで WAN からボックスをスキャンすると、データ センターによってブロックされるリスクがあります。教訓は難しい方法で学んだ。;)
ラットプロキシはどうですか?
複雑な Web 2.0 環境でユーザーが開始した既存のトラフィックの観察に基づいて、潜在的な問題とセキュリティ関連の設計パターンを正確かつ高感度に検出し、自動注釈を付けるように最適化された、半自動化された、大部分が受動的な Web アプリケーション セキュリティ監査ツールです。 .
動的なクロスサイト信頼モデルの考慮事項、スクリプト インクルードの問題、コンテンツ サービングの問題、不十分な XSRF および XSS 防御など、幅広いクラスのセキュリティ問題を検出して優先順位を付けます。
Ratproxy は現在、Linux、FreeBSD、MacOS X、および Windows (Cygwin) 環境をサポートしていると考えられています。
侵入テスト ツールについて具体的に質問されたことは承知していますが、それらには十分な回答が寄せられているため (私は通常、AppScan と訓練されたペンテスターを組み合わせて使用します)、侵入テストが「セキュリティの抜け穴をチェックする唯一の方法」ではないことを指摘することが重要だと思います。 」であり、多くの場合、最も効果的ではありません。
ソース コード レビュー ツールを使用すると、コードベースの可視性が大幅に向上し、ペンテストでは検出できない多くの欠陥を見つけることができます。
これらには、Fortify と OunceLabs (高価で、多くの言語に対応)、VisualStudio.NET CodeAnalysis (.NET と C++ 用、VSTS で無料、まともだが素晴らしいとは言えない)、Java 用の OWASP の LAPSE (無料、まともではない)、CheckMarx (安くはない) が含まれます。 、.NET および Java 用の素晴らしいツールですが、オーバーヘッドが高くなります)、その他多数。
注意すべき重要な点 - (ほとんどの) 自動化されたツールは、すべての脆弱性を見つけるわけではなく、閉じることさえできません。自動化されたツールは、プロのペンテスターが発見する secbug の約 35 ~ 40% を発見することが期待できます。同じことは、自動化されたソース コード レビューと手動のソース コード レビューにも当てはまります。
そしてもちろん、脅威モデリング、設計レビューなどを含む適切な SDLC (セキュリティ開発ライフサイクル) がさらに役立ちます...
ニクトはどうですか?
このタイプのテストでは、何らかのタイプのファズ テスターを実際に調べたいと考えています。SPIKE Proxyは、Web アプリ用のいくつかのファズ テスターの 1 つです。オープンソースで、Python で書かれています。SPIKE の使用に関する BlackHat または DefCON のビデオがどこかにあると思いますが、それらを見つけるのに苦労しています。
Web アプリのテストなどを行うハイエンドのプロフェッショナル ソフトウェア パッケージがいくつかあります。最も一般的なツールの 1 つはCoreImpact です。
自分で侵入テストを行う予定がある場合は、OWASP プロジェクトのドキュメントの多くを読むことを強くお勧めします。具体的には、OWASP Application Security Verification および Testing/Development ガイドです。アプリケーションを徹底的にテストするために必要な考え方は、通常の開発の考え方とは少し異なります (異なるべきであるというわけではありませんが、通常は異なります)。
http://www.nessus.org/nessus/ -- Nessus は、サーバーをより良くする方法を提案するのに役立ちます。プラグインを自分で作成するのは比較的簡単だと思いますが、それ自体でカスタム アプリを実際にテストすることはできません。
Rational App Scan (以前は Watchfire と呼ばれていました) をご覧ください。無料ではありませんが、優れた UI を備えており、非常に強力で、レポートを生成します (オーダーメイドで、Basel2 などの標準コンプライアンス フレームワークに対して)。CI ビルドにスクリプトを作成できると思います。