OWASP ZAP
OWASP ZAPを使う
Burp Suiteを使って、アプリケーションの脆弱性診断を、と思っていたのですが、
Burp SuiteのUIは、日本語化出来るらしいのですが、OWASP ZAPはデフォルトで日本語表示できる、というのもあり、Burp Suiteとの機能比較も兼ねて、OWASP ZAPをセットアップ。
セットアップは、以下を参考にさせて頂きました。
基本的には、
・インストール
・プロキシの設定
・証明書の設定
という流れは、Burp Suiteと同じ。
OWASP ZAPにはJavaが必要で、Javaが32bit版の場合、ダウンロードするOWASP ZAPも32bitにする必要がある。
Burp Suiteとの違い
Burp Suiteと同じようなイメージいたのですが、いきなり戸惑いました。
Burp Suiteの場合、Webサイトにアクセスすると、Interceptがオンになっているので、ブラウザが表示されない。OSWASP ZAPでは、普通にブラウジングできる。
デフォルトで、すべてのHTTP通信をパッシブスキャンしている、とのこと。
ここで重要になってくるのが、「モード」の考え方。
「プロテクトモード」にすべし。
「標準モード」・「攻撃モード」では、ブラウジングした瞬間に、アクティブスキャンが発動するらしい。不正アクセスと通報されるリスクもあるので、ここは気を付けたい。
「セーフモード」・「プロテクトモード」では、コンテキストに指定したURLに対してのみ、以下が実行できるようになる。
- Spidering
- Active Scanning
- Fuzzing
- Force Browsing
- Breaking (intercepting)
- Resending requests
ZAP HUD
OSWASP ZAP経由でブラウジングしていると、以下の画面が起動する。
HUD = Heads Up Displayの略らしく、ブラウジングしているページの脆弱性の確認を、そのページ内でするためのUI。
ZAPの操作することなく、Webページをブラウジングしながら結果を見られるのは、秀逸だと思います。
スキャン自体は問題ないけれど、難点は、肝心のレポート出力で文字化けがあって読めない部分がある。日本語UIのせいなのか、解消を期待したい。
更なる自動化
OWASP ZAPで、パラメーターを改変したリクエストの再送などもできるが、Burp Suiteにある、Intruderのような手動+自動での攻撃機能は見あたらない。
自動化に重心が置かれているように見え、
などが可能となっている。
GitHub Actionsなどを使えば、アプリケーションのデプロイ時に、ZAPによるセキュリティチェックを適用し、脆弱性診断をパスしないと、公開されない、というフローを作ることも可能になる。
まとめ
OWASP ZAPで、全体のスキャンをして、ビジネスロジックの欠陥などは、Burp Suiteで個別にチェックしていくと、広い範囲をカバーしつつ、深い診断が可能する、という使い分けが必要と思う。