web-dev-qa-db-ja.com

PHPアプリケーションのセキュリティ監査を実行する方法は?

セキュリティを監査したいPHPアプリケーションがあります。一般的なセキュリティの問題のほとんどに精通していますが、見逃していないことを確認したいと思います。

自己監査を実行するにはどのような手順を踏む必要がありますか?どのようなツールがありますか?サードパーティの監査人を見つける最良の方法は何ですか?何かお勧めですか?

ホワイトボックス/コードレビュー監査とブラックボックス/ペンテストの両方に興味がありますか?

44
VirtuosiMedia
27
M.S. Dousti

まず、げっぷプロキシ、パロスなどのインタラクティブなWebプロキシから始める必要があります。
私自身、私は Fiddler に部分的です。どちらのツールを選択しても、これにより、すべての要求/応答フローを検査し、JavaScript後の要求と対話できます。始めるのに最適な場所。

結局、私は OWASPのコードクローラー がPHPもサポートすることになると思います...しかし、今のところ、このための無料の自動化ツールには慣れていません。今...
もちろん、大手ベンダーの1つに行くこともできます。 Fortify、Ounce Labsなど-しかし、それは非常に高価で、ワームの別の缶...

11
AviD

GoogleのSkipfishを見てみましょう: http://code.google.com/p/skipfish/wiki/SkipfishDoc

6
Nev Stokes

たくさんのツールがあり、ペンテストに何を使うかは個人的な好みです。だから私や他の人が言ったものをすべて試して、あなたに最も合うものを選んでください。

セキュリティコードのレビュー(ホワイトボックステスト)には、 [〜#〜] rips [〜#〜] を使用することをお勧めします。私が試した中で最高です。

ブラックボックステストを行うには、インターセプトプロキシが必要です。それらはたくさんありますが、Windowsを使用している場合は Fiddler を参照することをお勧めします。 Burp / WebScarab / Zed Attack Proxy も素晴らしいです。インジェクションテストの一部を自動化する場合は、 fuzzdb からいくつかの一般的なペイロードを取得します。

また、FirebugやChromeデベロッパーツールなどのブラウザーアドオンをよく理解してください。これらは非常に役立ちます。

最後に、 Open Penetration Testing Bookmarks Collection からブックマークを試します。これは膨大なリストです(ツールがいくつあるかがわかるように)が、内部には多くの宝石があります。

6

見逃さないようにしたい場合は、実際の専門家に見てもらうのが最善の方法です。開発者がベストプラクティスに従っていないことに気付いていない、または一般的な「安全な」プラクティスは実際にはまったく安全ではないことを理解できないWebサイトで発生する問題が多すぎます。 (たとえば、「単一引用符をバックスラッシュ単一引用符に置き換える限り、SQLをパラメータ化する必要はありませんよ!」)。

会社の場合は、外部のテスト会社に依頼して、アプリケーションのテストを行ってください。彼らはそれほど高価ではなく、ほとんどの問題を見つけるでしょう。何百日も時間を無駄にして従業員に全額の給与をトレーニングするよりも、侵入テスト会社を雇う方が会社は安上がりですsomeバグを見つける方法は確かに顧客データが大幅に侵害された後、会社を再建します。

3
SecurityMatt