質問

当社には、ASP、.net、Java で開発された Web サイトが何百もあり、セキュリティの抜け穴をチェックするために外部機関に多額の費用を払ってサイトの侵入テストを行っています。これを行うための(良い)ソフトウェア(有料または無料)はありますか?

または..このツールの開発に役立つ技術記事はありますか?

役に立ちましたか?

解決

Web アプリケーションの自動テスト ツールを使用して進むことができる方向はいくつかあります。

まず、 商用ウェブスキャナ, そのうち、HP WebInspect と Rational AppScan の 2 つが最も人気があります。これらは「オールインワン」の「ファイアアンドフォーゲット」ツールで、社内の Windows デスクトップにダウンロードしてインストールし、URL を指定してサイトをスパイダー化し、既知の脆弱性 (つまり、 Bugtraq にヒットしました)、クロスサイト スクリプティングと SQL インジェクションの脆弱性を調査します。

第二に、 ソースコードスキャンツール, そのうち、Coverity と Fortify がおそらく最もよく知られている 2 つです。これらは、Java または C# ソース コードを処理し、不十分な入力検証など、安全でないコードの既知のパターンを探すために開発者のデスクトップにインストールするツールです。

最後に、 侵入テストツール. 。セキュリティ専門家の間で断然最も人気のある Web アプリ侵入テスト ツールは Burp Suite です。これは次の場所にあります。 http://www.portswigger.net/proxy. 。他には、Spike Proxy や OWASP WebScarab などがあります。繰り返しますが、これを社内の Windows デスクトップにインストールします。これは HTTP プロキシとして実行され、ブラウザでプロキシを指定します。通常のユーザーと同じようにアプリケーションを使用し、アクションを記録します。その後、個々のページまたは HTTP アクションに戻って、セキュリティ上の問題を調査できます。

複雑な環境、特に DIY を検討している場合、 侵入テストツールを強くお勧めします. 。その理由は次のとおりです。

商用 Web スキャナは、優れたレポート機能とともに、多くの「幅広さ」を提供します。しかし:

  • アプリケーションはそれぞれ異なるため、何かを見落とす傾向があります。

  • これらは高価です (WebInspect は数万ドルから始まります)。

  • 必要のないもの (90 年代の既知の不良 CGI のデータベースなど) にお金を払っていることになります。

  • カスタマイズするのは難しいです。

  • ノイズの多い結果が生じる可能性があります。

ソース コード スキャナーは、Web スキャナーよりも徹底的な処理を実行します。しかし:

  • Web スキャナよりもさらに高価です。

  • 動作するにはソースコードが必要です。

  • 効果を発揮するには、多くの場合、ソース コードに注釈を付ける必要があります (たとえば、入力経路を選択するため)。

  • 誤検知が発生する傾向があります。

市販のスキャナーとソース コード スキャナーはどちらも、シェルフウェアになるという悪い癖があります。さらに悪いことに、たとえ機能したとしても、そのコストは、1 つまたは 2 つのアプリケーション全体をコンサルタント会社に監査してもらうのと同じくらいです。コンサルタントを信頼できれば、ツールよりもコンサルタントからより良い結果が得られることが保証されます。

侵入テスト ツールには欠点もあります。

  • これらは、ファイアアンドフォーゲット型の商用スキャナよりもはるかに使いにくいです。

  • 彼らは、Web アプリケーションの脆弱性に関するある程度の専門知識を前提としています。何を探しているのかを知っておく必要があります。

  • 彼らは正式な報告書をほとんど、またはまったく作成しません。

一方で:

  • それらははるかに安価です。最も優れた Burp Suite の価格はわずか 99 ユーロで、無料版もあります。

  • これらは簡単にカスタマイズしてテスト ワークフローに追加できます。

  • これらは、アプリケーションを内部から「理解する」のに非常に優れています。

基本的な Web アプリケーションに対して侵入テスト ツールを使用して行うことは次のとおりです。

  1. プロキシ経由でアプリケーションにログインする

  2. アプリケーションの主要な機能領域の「ヒット リスト」を作成し、それぞれを 1 回実行します。

  3. 侵入テスト アプリケーションで「スパイダー」ツールを使用して、アプリケーション内のすべてのページ、アクション、およびハンドラーを検索します。

  4. スパイダーが発見した動的ページと HTML フォームごとに、「ファザー」ツール (Burp はこれを「侵入者」と呼んでいます) を使用して、無効な入力を含むすべてのパラメーターを実行します。ほとんどのファザーには、次のような基本的なテスト文字列が付属しています。

    • SQLメタキャラクタ

    • HTML/JavaScript エスケープとメタキャラクター

    • 入力フィルターを回避するためのこれらの国際化されたバリアント

    • よく知られているデフォルトのフォームフィールド名と値

    • よく知られているディレクトリ名、ファイル名、およびハンドラー動詞

  5. 数時間かけて結果のエラーをフィルタリングし (1 つのフォームに対して通常のファズを実行すると、1000 個のエラーが生成される可能性があります)、疑わしい応答を探します。

これは労働集約的な「ベアメタル」アプローチです。しかし、会社が実際のアプリケーションを所有している場合は、ベアメタル アプローチを使用して、各アプリの開発サイクルごとに時計仕掛けのように実行される回帰テスト スイートを構築できるため、ベアメタル アプローチは効果的です。これはさまざまな理由から勝利です。

  • セキュリティ テストにはアプリケーションごとに予測可能な量の時間とリソースがかかるため、予算を立てて優先順位を付けることができます。

  • テストはアプリケーションに合わせて調整されるため、チームは最大限に正確で完全な結果を得ることができます。

  • 商用スキャナーやコンサルタントよりもコストがかかりません。

もちろん、この道を歩むと、基本的には会社のセキュリティ コンサルタントになることになります。それは悪いことではないと思います。そのような専門知識が必要ない場合、WebInspect や Fortify はいずれにしてもあまり役に立ちません。

他のヒント

特にペネトレーション テスト ツールについて質問されたことは承知していますが、それらについては十分に答えられているので (私は通常、AppScan と訓練を受けたペネトレーション テスターを組み合わせて使用​​しています)、次のことを指摘することが重要だと思います。 侵入テストは「セキュリティの抜け穴をチェックする」唯一の方法ではなく、多くの場合、 最も効果的ではない.

ソース コード レビュー ツールを使用すると、コードベースの可視性が大幅に向上し、ペネトレーション テストでは検出できない多くの欠陥を発見できます。

これらには、Fortify と OunceLabs (高価で多くの言語に対応)、VisualStudio.NET CodeAnalysis (.NET と C++ 用、VSTS 付きで無料、まともだが素晴らしいとは言えない)、OWASP の Java 用 LAPSE (無料、まあまあではない)、CheckMarx (安くはない) が含まれます。 、.NET および Java 用の fanTASTic ツール (ただしオーバーヘッドが高い)、その他多数。

注意しなければならない重要な点は、(ほとんどの) 自動化ツールではすべての脆弱性が検出されるわけではなく、脆弱性の近くにさえ到達しないことです。自動ツールは、プロのペンテスターに​​よって発見される secbug の約 35 ~ 40% を発見すると期待できます。自動化と手動のソースコードレビュー。

そしてもちろん、脅威モデリング、設計レビューなどを含む適切な SDLC (セキュリティ開発ライフサイクル) はさらに役立ちます...

マカフィー セキュアは解決策ではありません。彼らが提供するサービスは冗談です。

以下を参照してください:

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

有料ソリューションに関しては、SpiDynamics WebInspect だけでなく、Nikto (無料ソリューションの場合) やその他のオープンソース ツールについても良い評判を聞いています。Nessus は、その層もチェックする必要がある場合に備えて、インフラストラクチャ用の優れたツールです。Nubuntu と呼ばれるいくつかのツールが収録されたライブ CD を入手し (Auditor、Helix、またはその他のセキュリティ ベースのディストリビューションも機能します)、Google で特定のツールのチュートリアルを検索します。ただし、必ずローカル ネットワークからスキャンしてください。許可なく WAN からボックスをスキャンすると、データ センターによってブロックされる危険があります。教訓は苦労して学んだ。;)

Skipfish、w3af、arachni、ratproxy、ZAP、WebScarab :すべて無料で非常に優れたIMO

http://www.nessus.org/nessus/ -- Nessus は、サーバーを改善する方法を提案するのに役立ちます。カスタム アプリを単独でテストすることはできませんが、プラグインは比較的簡単に自分で作成できると思います。

を見てみましょう Rational App スキャン (以前は Watchfire と呼ばれていました)。無料ではありませんが、優れた UI を備えており、非常に強力で、レポート (特注で Basel2 などの標準コンプライアンス フレームワークに準拠したもの) を生成し、CI ビルドにスクリプトを組み込むことができると思います。

どうでしょうか ニクト ?

このタイプのテストでは、何らかのファズ テスターを実際に使用する必要があります。 スパイクプロキシ Web アプリ用のいくつかのファズ テスターのうちの 1 つです。これはオープンソースであり、Python で書かれています。SPIKE の使用に関する BlackHat または DefCON のビデオがどこかにいくつかあると思いますが、見つけるのが困難です。

Web アプリのテストなどを行うハイエンドのプロフェッショナル ソフトウェア パッケージがいくつかあります。最も人気のあるツールの 1 つは次のとおりです。 コアインパクト

ペネトレーション テストを自分で行う予定がある場合は、本書の多くの内容を読むことを強くお勧めします。 OWASP プロジェクトのドキュメント. 。具体的には、OWASP アプリケーション セキュリティ検証およびテスト/開発ガイドです。アプリケーションを徹底的にテストするために必要な考え方は、通常の開発の考え方とは少し異なります (異なるべきというわけではありませんが、通常は違います)。

どうですか ラットプロキシ?

複雑なWeb 2.0環境での既存のユーザー開始トラフィックの観察に基づいて、潜在的な問題とセキュリティ関連の設計パターンの正確で敏感な検出、および自動注釈のために最適化された、半自動化されたパッシブWebアプリケーションセキュリティ監査ツール。 。

ダイナミッククロスサイトの信頼モデルの考慮事項、スクリプトインクルージョンの問題、問題に役立つコンテンツ、XSRFおよびXSS防御の不十分なものなど、幅広いクラスのセキュリティ問題を検出および優先順位を付けます。

Ratproxy は現在、Linux、FreeBSD、MacOS X、および Windows (Cygwin) 環境をサポートすると考えられています。

特に侵入テスト ツールについて質問されたことは承知していますが、それらには十分に答えられているので (私は通常、AppScan と訓練を受けた侵入テスターを組み合わせて使用​​しています)、侵入テストが「セキュリティの抜け穴をチェックする唯一の方法ではない」ということを指摘することが重要だと思います。 」と考えられますが、多くの場合、最も効果的ではありません。

ソース コード レビュー ツールを使用すると、コードベースの可視性が大幅に向上し、ペネトレーション テストでは検出できない多くの欠陥を発見できます。

これらには、Fortify と OunceLabs (高価で多くの言語に対応)、VisualStudio.NET CodeAnalysis (.NET と C++ 用、VSTS 付きで無料、まともだが素晴らしいとは言えない)、OWASP の Java 用 LAPSE (無料、まあまあではない)、CheckMarx (安くはない) が含まれます。 、.NET および Java 用の fanTASTic ツール (ただしオーバーヘッドが高い)、その他多数。

注意しなければならない重要な点は、(ほとんどの) 自動化ツールではすべての脆弱性が検出されるわけではなく、脆弱性の近くにさえ到達しないことです。自動ツールは、プロのペンテスターに​​よって発見される secbug の約 35 ~ 40% を発見すると期待できます。自動化と手動のソースコードレビュー。

そしてもちろん、脅威モデリング、設計レビューなどを含む適切な SDLC (セキュリティ開発ライフサイクル) はさらに役立ちます...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top