ウェブ・セキュリティ基礎試験(徳丸基礎試験)に合格した話
概要
2021 年 12 月 19 日(日)にウェブ・セキュリティ基礎試験(以下、徳丸基礎試験)に合格したので、その勉強方法、試験の感想についてまとめます。
ウェブ・セキュリティ基礎試験とは
概要
公式説明によると、以下のように説明されており、「体系的に学ぶ安全な Web アプリケーションの作り方」(以下、徳丸本)をもとにした、ウェブ・セキュリティの基礎的な知見を問う試験です。
700 点 / 1000 点(28 問 / 40 問)で合格します。自分は 725 点(29 問)で合格しました。ギリギリでした。
全世界で稼働している Web サイトは 5 億サイトになりました。企業にとっても重要な位置づけになるため、サイバー攻撃の対象となるケースも増え、攻撃手法も複雑かつ巧妙になってきています。よってウェブ・セキュリティに対する対策は以前よりまして緊密且つ迅速に施さなければなりません。ユーザ、開発者に対してより一層のウェブ・セキュリティに対する意識と知見を高めるべく、本試験を実施いたします。本試験の主教材はウェブ・セキュリティの名著として知られる徳丸浩氏による「体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版」を採用し、本書を基本的な出題範囲として基礎的な知見を問う試験と実務知識を問う試験を実施いたします。
また、実践的な知識を問う試験として、ウェブセキュリティ実務試験(徳丸実務試験)が計画されており、2021 年 12 月現在ではベータ版が何回か実施された後です。
一般にはまだ実施されていないそうです。
2022 年 4 月 17 日追記
一般にも実施開始されました。
申し込み方法
以下の odyssey のサイトで申し込み方法が記載されています。
試験内容
以下のようになっており、4択問題です。
試験時間 | 1時間 |
説文数 | 40 問 |
合格 | 70%正解 |
徳丸先生の YouTube チャンネルより、予行問題が公開されています。
勉強方法
まず、徳丸本を一周(7章以外)することにしました。知り合いと勉強会を計画し、範囲を決めて予習し日曜日に認識合わせをするという形式で読み進めました。10 月 3 日(日)から 12 月 5 日(日)まで 10 回開催された勉強会で読みきれるようなページ分担して読み進めました。勉強会でグーグルスライドに勉強範囲の内容を要約(または写経)することで知識の体系化し、脆弱性を再現できるソースコードが記載されているため、逐次実行しながら動作で脆弱性を理解していきました。そして、気になった項目の感想、事例などを ScrapBox に書き出すなどして、印象付けによる定着をはかりました。期間は、3 ヵ月で 100 時間ほどでした。
一周終えたあとは、個人で勉強をしました。12 月 5 日(日)から 12 月 19 日(日)までの間は、第 4 章の内容を重点的に復習しました。この期間の勉強時間は 10 時間から 15 時間ほどでした。
また、徳丸先生の YouTube チャンネルには、参考になる動画が多数アップロードされているので、みておくことをお勧めします。
他には副読本として、Web ブラウザセキュリティを読みました。
正直なところ、ウェブ・セキュリティ基礎試験の範囲外が多いです。
しかし、Origin(SOP、CORS など)やセキュリティを強化する HTTP ヘッダなど、重複する部分を他の角度から学べるほか、モダンな攻撃手法についても知ることができたのでおすすめです。
当日の持ち物について
以下を持っていきました。自分は受験票が不要でしたが、会場によって違うようです。
- 写真付きの身分証
- odyssey の ID とパスワード
試験の感想
箇条書きで述べていきます。
試験全体の感想
試験を受けたとき、試験内容以外の感想です。
- odyssey の ID とパスワードは紙に書いてよかった(携帯を確認するのは手間になりそうだった)
- 時計は不要(テスト画面の左下に残り時間が出た)
- メモはできない
- テスト画面右上に後で見返すチェックボックスがある
- 試験結果はその場で通知され、印刷もしてくれる(ここで印刷したものは、odyssey のサイトでも印刷できる。6週間ぐらいで正式な合格証が送られる)
試験内容の感想
試験内容の感想は以下です。正直、想定よりも難易度が高かったです。
- 第4章(セキュリティバグ)が 7 割ほど、第3章(Origin 系)第 5 章(認証、認可、etc)第 8 章(Web サイトの安全性を高めるために)が1割ほど、第9章が 1 問だけ出題された印象です
- 「適切なもの」「適切でないもの」の違いは、太字で表示してくれないので、読み違いに注意
- 2 択まで絞りやすいが、さらに選ぶには十分な理解が必要
- 20 分くらいでさーっと解ける。その後、復習は 3 回しました
- 解説がないのでほしかった
試験を受けて反省点
- 脆弱性の原因、発生箇所、影響範囲は、混合しやすいので体系的に図や表にまとめて、一目で比較できるようにするべきだった
- 試験全体の中で出題量が多く、2択まで絞ったあとに迷いやすいのでやるべきった
試験全体を振り返って
徳丸本と徳丸基礎試験を通じてセキュリティだけでなく、副次効果として Web アプリケーションに必要な基礎的な知識も獲得できました。Web 系エンジニアになって日が浅い人にもとりあえず読んでほしいです。試験問題は、いかに体系的に理解できたかを問われており、受けるつもりがなくても徳丸本を読み始めた方には理解度チェックとして受験することを推奨します。
個人的な話ですが、徳丸本を読み始めたときのゴールの 1 つに設定していたので、無事合格してうれしいです。セキュリティの勉強はこれで終わりではなく、これからも継続的な学習とキャッチアップをしていく予定です(試験を満点をとれませんでしたし)。それでも無限に続くようなセキュリティの勉強を 1 つの区切りとして、終えられることができてよかったです。
Discussion