9

アプリをファジングしたり、脆弱性をスキャンしたりする自動化された方法を探しています。私のハッキングの知識は 0 であると仮定してください。また、ソースはローカルホストにあるため、インターネット接続に依存せずにローカルでファジングする方法が必要です。セキュリティの専門家からヒントや推奨事項を教えてもらえますか? どのオプションが最適かわかりません。

編集:

答えてくれてありがとう。私はより具体的になりたいと思いますが(質問に役立つため)、意見に影響を与えたり、特定の製品を宣伝しているように聞こえたりすることはありません. 私はwapitiのようなものを探しています(名前を言うのは申し訳ありませんが、SQL インジェクションについて学ぶ、xss などのこれまでの回答は、明らかにこの質問に対する本当の「専門家」の回答ではないため、名前を言及する必要がありました。私はすでにこれらについて知っています (真剣に) 、この質問は、セキュリティについてソルトを知らない人が尋ねるように聞こえますか? )

私はテストすべきかどうかを尋ねているのではなく、どのようにテストすべきかを尋ねています。私はすでに自動化を組み込むことを決定しました (そして、誰かが役に立たないことを証明する専門家の回答をくれない限り、この決定を後戻りすることはできません) ので、自動化したいという私の決定を尊重してください. コンパイルされたすべての xss、sql インジェクションなどのハック リストを調べて、自分のサイトに対して自分で手動で試したくはありません (ハッカーでさえそのようにハッキングしません)。質問を受けた人へのスーパー余分なポイント。

一部の人々は、なぜ学ぶだけではないのかと尋ねています。 (私が知っている) ベスト プラクティスは、ハッキングを知っていることと同じではありません。フリップコインだと主張したい人もいますが、私は絶対に同意しません:)したがって、「ハッカーの考え方」を持つ誰かによる保護ツールが必要です. 実際、あなたも試してみるべきです;)知っている人からの専門家の回答をお願いします.

4

7 に答える 7

7

脆弱性の自動スキャンを行うサービスがあります。すべてを把握できるわけではありませんが、問題を特定するのに役立ちます。最善の策は、これらのサービスのいずれかを使用して、いくつかのセキュリティのベスト プラクティスを学ぶことです。

SQL インジェクションクロス サイト スクリプティングについて学び始めます。これらは、最大かつ最も簡単に修正できる脆弱性です。

防御的なプログラミングは、すべてのプログラマーが学ぶべきスキルです。

これらの問題を自分で理解することに代わるものはありません。

于 2009-10-20T18:40:19.853 に答える
3

質問に厳密に答えるには、ツールを使用してテストする必要があります。使用できるツールには主に2つのタイプがあります。実行中のウェブサイトをアクティブにプローブするセキュリティスキャナーと、ウェブアプリの構築に使用するソースコードで実行される静的分析ツールです。

簡単に言うと、wapitiやburpなどのセキュリティスキャンツールが必要です。このようなツールは、サイトに固有のセキュリティテストを動的に構築して実行します。手動で自分のサイトを悪用しようとすることもできますが、それには多くの時間がかかり、価値がありません。それぞれの問題はそれが適用されるサイトに固有であるため、既知のxssまたはsqlインジェクションの問題のリストを調べることは無意味です。さらに、これらのツールは、より厳密なセキュリティストレステストを提供するよりも、サイトを攻撃する可能性があります。

使用できる主なツールは、静的分析ツールと動的分析ツールの2つです。静的分析ツールはソースコードを読み込み、データがアプリをどのように流れるかを把握し、セキュリティの問題を探します。根本的に、ほとんどのセキュリティ問題は、ユーザーがアプリケーションの不適切な部分に流入する一部のデータを制御できるようにすることです。そのため、アプリが実行されておらず、停止の問題にぶつかっても、静的分析方法で「推測」して試行します。各コードパスを出力すると、良好な結果が得られます。静的分析ツールは言語に依存し、ほとんどが高価です。無料のものには、fxcop(C#)、PMD、findbugs(java)があります。http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysisを参照してください。

動的分析ツール(より一般的には「セキュリティスキャナー」と呼ばれます)では、Webアプリに対してテストを実行できるように、Webアプリをセットアップする必要があります。これはあなたが望むもののように聞こえます。ここでの私のお気に入りのツールはげっぷです。いくつかの無料のツールには、同様に良いワピチが含まれています。これらのツールは、アプリがデータを処理する方法を調べ、入力を探し、脆弱性をトリガーするために悪意のあるデータでそれらを埋めます。テストの例は、反映されたクロスサイトスクリプティングをテストするためのもので、スキャナーはページを見て、すべてのクエリ文字列値、Cookie値、フォーム値などにjavascriptを挿入し、ページをレンダリングして、悪意のあるjavascriptがエコーバックされたかどうかを確認します。ページ。

ファザーは必要ないか、必要ないでしょう。ファジングツールは、多くの解析コードがある場合に主に役立ちます。そのため、ファジングはWebアプリには最適ではありませんが、作成しているプロトコルには適しています。上記のセキュリティスキャナーツールには制限されたファジング機能があり、おそらくこれ以上は必要ありません。ファザーの作成にも時間がかかります。ファザーは、c / c ++コードでより多くのものを見つけることがよくあります。これは、すでに正しいことを実行するために組み込まれているライブラリが少ないためです。Webアプリの場合、いわば「ファザーが再生する余地」が少なくなります。

于 2009-10-20T23:32:03.130 に答える
0

ファジングとは何か、どのようにアプローチしたいかを知っていても、ソフトウェアの脆弱性や欠陥を徹底的にテストおよび評価するために必要なスキルに必ずしもつながるとは限りません。自動化されたテストを使用する必要がありますが、新しい入力パスや相互作用などを見つけたときに、ツールが実行しているテストを変更する調整された方法で行います。

基本的に、私が言いたいのは、これを真の付加価値にしたいのであれば、自分が何をしているのかを知る必要があるということです. ツールを選択して実行するだけで、良い結果が得られると期待することはできません。あなたは、あなたと一緒に、またはあなたのために働くために、この種のテストを行う誰かを必要としています. ツールは有用ですが、当業者が使用した場合にのみ有用な結果を生み出すことができます。

于 2009-10-26T23:44:20.257 に答える
0

私は自分のアプリケーションのためにこのトピックを長年研究してきましたが、最近、PAROS に基づいた素晴らしいツールを見つけました (上記の他の回答を参照してください)。

OWASP の ZAP であり、アヒルの実です。

あなたができる最善のことの1つは、ZAPをプロジェクトの自動化/ビルドに統合して、ビルドを行うたびにテストが実行されるようにすることです.

さらに良いことに、Selenium 自動テストの隣に置いて、テストするページを「収集」し、それらを徹底的にスキャンすることができます!

非常によく文書化されていますが、ページごとに数百のテストを実行するため、高速な PC が必要です。サイト全体を処理している場合は、時間がかかる場合があります。

他にも検討したいツールがいくつかあります

私はこのツールを見つけました....恐ろしく使いやすく、非常に包括的です。

ZAP で「誤検知」と思われるものを取得するたびに、SQLmap を使用してページをスキャンし (Python の使用方法を理解する必要があります。簡単で、数時間かかりました)、SQLmap は誤検知を検証します。または脆弱性を見つけます。

于 2012-09-13T20:07:15.067 に答える
0

私は Paros を使用しました - http://www.parosproxy.org/ - 無料で使いやすく、エラーの原因、考えられる修正、およびそれを複製する方法 (通常はリンク) の両方が表示されます。

サイト全体を簡単に構成してスパイダーします。ローカル インストールもスパイダーできます。

ギーも付いています。

古いですが、良くて簡単です。

WAPITI を設定しようとしましたが、私には難しすぎました。

于 2012-07-30T17:36:15.220 に答える
0

自動化に夢中になる前に (おそらく理解できない結果が生じる可能性があります)、代わりに安全なコードの記述を読み、間違っていることを特定することを学ぶことをお勧めします。開始するためのチュートリアルを次に示します。

http://php.net/manual/en/security.php

それができない場合は、余裕があればコードをセキュリティ会社にアウトソーシングすることをお勧めします。

幸運を!

于 2009-10-20T18:41:16.957 に答える
0

C を知っていれば, スパイクを扱うことができます. エンドユーザーが触れる可能性のあるものはすべて手動でオーバーフローをチェックするのが常に良いです. 通常の %x%x%x テストはフォーマット文字列攻撃をテストします.静的分析に熱心であること。

PeachFuzz と SPIKE はどちらも十分に文書化されています。

そうしないと、自分で書くのは簡単です。

于 2009-10-20T19:02:49.747 に答える