web-dev-qa-db-ja.com

Webアプリケーションのセキュリティ脆弱性のテスト:ベストプラクティス?

私はWebアプリケーションを開発しています。適切なもののように、私は過去にJoomlaのようなものを使って素晴らしいものを作りましたが、今やようやくPHP、MySQL、CodeIgniterで手を汚しました。

大量のデータを処理する本格的なWebアプリを作成している場合、データ入力を完全にサニタイズするには、どのような予防策を講じる必要がありますか?明らかなトリム、エスケープ、xssクリーニングなどがあることは知っていますが、データベースへの注入を停止するには、他にどのような手法を組み込む必要がありますか?

それだけでなく、すべての入力をテストできる非破壊データベースインジェクションコードはありますか?のように、目に見えるものを注入しますが、実際にはテストデータベースに害を及ぼすことはありませんか?私は正確にはハッカーではないので、これについて少しガイダンスが必要です。

ハッカーがユーザーのデータを破壊または読み取るために使用する他の一般的な方法は何ですか?また、これを自分で確認するにはどうすればよいですか?私は16歳なので、セキュリティコンサルタントを雇うお金はありませんが、コンピューターの経験は豊富です。いくつかのヒントがあれば、いくつかのトリックを実行できると確信しています。

それはたくさんの質問だと思いますが、要約すると、すべてが100%安全であることを確認するために何をしますか?

25
Jack

SQLインジェクションとXSSは、プログラマーが犯す最も一般的な間違いです。良いニュースは、適切なソフトウェアがあれば、自動的にテストするのが最も簡単なことです。ペネトレーションテストを行っているときは、Webアプリケーションの脆弱性を見つけるために Sitewatch または Wapiti を使用します。 Acunetixは高値です。

ただし、自動化されたツールを起動して、すべてが機能することを期待することはできません。選択した[〜#〜] any [〜#〜]脆弱性スキャナーで取らなければならない予防策がいくつかあります。

1)php.iniでdisplay_errors = Onを確認してください。SQLインジェクションテストは、応答ページでmysqlエラーメッセージを表示できることに依存しています。エラーも脆弱性も検出されませんでした!

2)アプリケーションの認証された領域をスキャンします。テスト専用のユーザーアカウントを作成します。 Acuentixには、ログインシーケンスを作成できる簡単なウィザードがあります。 wapitiを使用している場合は、wapitiにCookieを与えるか、wapitiにpostリクエストを送信して起動することができますが、これはちょっと注意が必要です。

[〜#〜] after [〜#〜]アプリケーションをテストしてから、サーバーの構成ミスをテストします。サーバーをテストするには、 OpenVAS を実行する必要があります。これは、現在商用製品となっているNessusの新しい無料バージョンです。次に、これを PhpSecInfo でフォローアップする必要があります。これらのテストは、構成の問題、または古い脆弱なソフトウェアを実行しているかどうかを通知します。

100%安全なものはありません[〜#〜]これまで[〜#〜]。あなたが何をしても、亀裂をすり抜ける脆弱性があります。すべての開発プラットフォームには、ツールでテストできない妥協につながる脆弱性があります。使用するテストツールにもバグがあります。偽の投稿と偽の否定があり、機能しないいくつかのテストがあります。これは、正当な脆弱性を実際に検出する自動化されたCSRFツールを見たことがない良い例です。 AcunetixのCSRFテストは完全に時間の無駄です。

OWASPテストガイド もあります。これについて詳しく説明します。これを OWASP Top 1 と混同しないでください。これも優れたリソースです。 PHPセキュリティガイド は、PHPプログラマーにとっても優れたリソースです。

20
rook

I don't have the money to hire a security consultant since I'm only 16
あなたは16歳ですが、雇うお金がないという意味ではありません:D
誰かを雇う必要はありません。 Webアプリケーションの脆弱性をテストするために使用できる無料のオンラインツールがたくさんあります。

  1. http://www.zubrag.com/tools/sql-injection-test.phpを使用してSQLインジェクションの脆弱性をテストしてみてください

  2. http://www.parosproxy.orgWebトラフィックレコーダー、Webスパイダー、ハッシュ計算機、およびSQLインジェクションやSQLインジェクションなどの一般的なWebアプリケーション攻撃をテストするためのスキャナークロスサイトスクリプティング

  3. HP WebInspectソフトウェア [無料ではありません]パラメータインジェクション、クロスサイトスクリプティング、ディレクトリトラバーサルなどの一般的なWeb攻撃をテストします[グーグルしてみてください]

  4. http://portswigger.net/suite/Burp Suiteは、Webアプリケーションを攻撃するための統合プラットフォームです。これには、アプリケーションを攻撃するプロセスを容易にし、スピードアップするように設計された多数のインターフェースを備えたすべてのBurpツールが含まれています。すべてのツールは、HTTPリクエスト、永続性、認証、アップストリームプロキシ、ロギング、アラート、拡張性を処理するための同じ堅牢なフレームワークを共有しています。

4
Rakesh Juyal

[〜#〜] owasp [〜#〜] をご覧ください。

2
ghostdog74

WebCruiser Web VulnerabilityScannerを使用してSQLインジェクションの脆弱性をスキャンします。WebCruiserはWebセキュリティスキャンツールであるだけでなく、自動SQLインジェクションツール、XPathインジェクションツール、XSSツールでもあります。

1
anonymous