OWASP ZAP 2.4 のデータ保存について
※当サイトにはプロモーションが含まれています。

もうすぐリリースされる OWASP ZAP 2.4 では、起動時に以下のダイアログが表示されます。
ZAP起動時に表示されるダイアログ
これは ZAPを使用することで溜まっていくデータをどこにどういう名前で保存するか聞いているのですが、2.3までの挙動で問題なかった人は「No, I do not want to persist this session at this moment in time」を選択し、「Remember my choice and do not ask me again.」にチェックを入れておきましょう。これで 2.3 の時と同じ動作になります。また、これ以外の選択肢については知らなくても特に問題なさそうです。
以下、もう少し知りたい人向けに解説を書いておきます。
概要
OWASP ZAP 2.4 ではデータファイルの名前・保存先の指定方法にいくつかのバリエーションが加わります。既に書いたように、ZAPを起動するとダイアログが表示され、「Do you want to persist the ZAP Session?」という質問に対して、3つの選択肢からどれか1つを選択することになります。ただ、そのダイアログを見ても実際にどういう動作になるのか分かりづらいように感じました。一応ヘルプページ(以下の画像です)で説明されてはいます。
Persist Session ダイアログのヘルプページ
※ 現時点では、こちらから ZAP Weekly をダウンロードすれば、2.4 を試すことができます。
※ ここで言っているデータというのは、ZAPからアクセス・スキャンしたURL・リクエストデータ・レスポンスデータ・検知された脆弱性(と思われる)データ等を指します。ZAPを使っている間に蓄積されていくデータです。[File]メニューの [Open Session…] でこれらのファイルを読み込めば、その時の状況を再現できます。
バージョン 2.3 までの動作
従来は、以下のようにデータが保存されていました。
- ZAPを起動します。
- ZAPを通して検査対象のURLにアクセスしたり、スキャンしたりします。
- 「ユーザーディレクトリ/session」ディレクトリ内にデータが保存され、追加されていきます。
- ユーザーディレクトリのパスについては、OWASP ZAP の Persist session と Snapshot session についてを参照して下さい。
- ZAP 終了時にこれらのデータは削除されます。
- 「ユーザーディレクトリ/session」ディレクトリ内にデータが保存され、追加されていきます。
- どこかの時点で、[File]メニューから [Persist Session] を実行します。
- データを保存するパスと名前を指定します。
- すると、それまで「ユーザディレクトリ/session/」以下に保存されていたデータが指定したパスに指定した名前でコピーされ、以後そちらのデータが更新されるようになります。
- もちろん、ZAP が終了してもこちらのデータは削除されません。
- どこかの時点で、[File]メニューから [Snapshot Session] を実行します。
- 3で指定したディレクトリ内に、その時点での各データファイルが別名でコピーされます。
- 文字通りスナップショットです。
- Snapshot session の動作は 2.4 でも変わっていません。
このデータはサイズが大きくなることが多いので、上記 3のところのコピー処理が重くなることが1つの問題であったようです。また、そもそもZAPを起動する時点で、データをちゃんと残すことが決まっている場合には、わざわざ後からパスを指定してコピーなどせず、最初から決まったパスに保存してくれればいいのにと思っている人がいたかもしれません。
※ 従来の方法については、OWASP ZAP の Persist session と Snapshot session について も参考にして下さい。こちらの内容が分かっていないと、今回の変更もよく分からないかもしれません。
バージョン 2.4 での動作
ということで、「ZAPの中で溜まっていくデータをどこにどういう名前で保存するか」を指定するダイアログが起動時に表示されるようになりました。この設定内容はオプション画面で変更することもできます。
ZAP起動時に表示されるダイアログ
各選択肢の意味は以下です。
Yes, I want to persist this session with name based on the current timestamp
- 「ユーザーディレクトリ/sessions/」以下に 20150312-150328.xxxxx というような、タイムスタンプを使ったフォーマットで各データファイルが保存・更新されるようになります。
- ZAPが終了しても削除されません。
- v2.3 では、この sessions ディレクトリは存在しませんでした。
Yes, I want to persist this session but I want to specify the name and location
- 保存する名前とパスを指定します。
- 以後、ここで指定した各データファイルにデータが追記されるようになります。
No, I do not want to persist this session at this moment in time
- 従来の動作です。
- 必要になった時に、[File]メニューから [Persist session] を実行して、データを保存する名前とパスを指定します。この操作を行うまでは、「ユーザーディレクトリ/session/」以下にデータが保存され、ZAP終了時に削除されます。
Remember my choice and do not ask me again.
- ここにチェックを入れると、ZAP起動時にこのダイアログは表示されないようになります。
オプション/データベース画面
[Tools]メニュー -> [Options] -> [Database] で以下の画面が表示されます。
オプション/データベース画面
ここで動作を変更できます。
- Unspecified
- 指定しません。
- Do not automatically persist と同じ動作になります。
- Persist with timestamped name
- 起動時に表示されるダイアログ内の「Yes, I want to persist this session with name based on the current timestamp」に対応した選択肢です。
- Persist with user specified name
- 起動時に表示されるダイアログ内の「Yes, I want to persist this session but I want to specify the name and location」に対応した選択肢です。
- Do not automatically persist
- 起動時に表示されるダイアログ内の「No, I do not want to persist this session at this moment in time」に対応した選択肢です。
まとめ
毎回の起動時にダイアログが表示されるのは煩わしいので、とりあえず「Remember my choice and do not ask me again.」にチェックを入れておくのがよいのではないでしょうか。
次にどの選択肢にするかですが、「Yes, I want to persist this session with name based on the current timestamp」だと「ユーザーディレクトリ/sessions」以下にどんどんデータファイルが溜まっていってしまいます。かといって「Yes, I want to persist this session but I want to specify the name and location」だと起動する度に保存先のパスと名前を聞かれて面倒です。となると結局「No, I do not want to persist this session at this moment in time」を選んでおくということになり、従来と同じやり方に落ち着きます。ライトな使い方しかしないのであれば、これでよいのではないかと思います。最初からデータを保存する目的がある場合でも、なるべく早い段階で[File]メニューから [Persist Session..] を実行すればよいだけですし。
補足
- 2.4リリース時点では、ここで書いた内容から変更されている可能性がありますので、その場合はなるべく早く修正します。
- Options/Database ダイアログで設定を変更するところは、先週まで (3月9日)の ZAP Weekly ではちゃんと動作しません。このエントリを書くために調べていたらそれに気付いたので報告したらすぐに直してもらえました。現在の ZAP Weekly では直っています。
最終更新日: 2015-3-18


