デフォルトだとログは再起動で削除される
BurpのスキャンログはLoggerタブに蓄積されますが、Burpを再起動すると削除されます。
また、Capture Filter欄に記載されている通り、デフォルトだとログは100MBまでしか保存されず、古いログから削除されます。
ログのキャプチャーリミットにはUnlimitedを設定できますが、どちらにせよ再起動すると削除されます。
Logger++でのエクスポートは非現実的
ExtenderのLogger++を導入することで、スキャンしたログをエクスポートすることが出来るようになります。
ただし、スキャンのログはファイルサイズが大きくなりがちなので、エクスポートしたとしてもファイルを開くのに難儀します。
例えば約26,000Requestをエクスポートした場合、ファイルサイズは以下のようになりました。
※同時リクエスト数3/遅延1秒で8時間スキャンすると概ね26,000reqになる
- harファイル:約4.0GB
- jsonファイル:約7.5GB
- csvファイル:約6.5GB
ファイル形式によりますが、8時間のスキャン結果をエクスポートすると4.0~7.5GB程度までサイズが膨れ上がります。
ちなみに、この4GBのCSVファイルをエクセルで開こうとしましたが、3分待っても開かなかったので諦めました。
テキストエディタでファイルを開こうとしても同じで、メモ帳では当然のように失敗。
VSCodeで開いても下図のようにエラーが出てダメでした。
画像ではVSCodeの再起動後にメモリを拡張して開けるようになる旨がポップしていますが、再起動後も開けませんでした。
ログファイルはPOSTだと大きくなる傾向がある
上記で挙げた例の約26,000Requestは、ほとんどがGETに対するスキャンでした。
POSTに対するスキャンの場合、約7000Requestで10GBになることもありました。
POSTの場合はRequest bodyのパラメータ分、GETよりパケットが大きくなりがちです。
開けないログファイルを取得しても意味がないので、Logger++でエクスポートするのは諦めました。
スキャンのログ保存の個人的ベストプラクティス
Project options > Misc > Logging のチェックを入れることで、スキャンのログを自動的に保存することが可能です。そのデフォルトの機能を使ってログを保存します。
保存するときはリクエストのみを保存するようにします。最低限何かあった時に確認したい程度なので、リクエストで自分が何をしたのかが分かればよいという考えです。
ただし、これは設定後のスキャンを自動的に保存する機能なので、スキャン後にデータをエクスポートするといった使い方ができないので注意してください。