はじめに
この記事では、「体系的に学ぶ 安全なWebアプリケーションの作り方(通称:徳丸本)」の理解度を測る「ウェブ・セキュリティ実務知識試験(徳丸実務試験)」に合格した経験を共有します。
これから受験を考えている方、Webセキュリティの学習を検討している方の参考になれば幸いです。
受験の動機
なぜこの試験を受けようと思ったのか
私は現在、セキュリティエンジニア(細かくいうと脆弱性診断士)として働いています。
元々IT業界未経験からプログラミングスクールに通い、Web開発を学んだことがきっかけでセキュリティの道に来たため、セキュリティに関する体系的な知識がない状態でした。
そこで、社内のWebセキュリティチームの先輩方に言われたのが「徳丸本を読め」ということだったのですが、700ページ近くある辞書のような本を読むためのモチベーションがなかなか沸きませんでした。
そこで、「何か目標になるアウトプット先はないかな」と探してみたところ、たまたま徳丸本の理解度を測る試験があることを知り、受けてみようと思うに至りました。
業務でどのようにセキュリティ知識が必要だったのか
私は現在、メインでWebアプリケーションの脆弱性診断をする仕事をしています。
よって、徳丸本で紹介されているような脆弱性の知識は必須と言っても過言ではないくらい重要なため、「辞書的に使う」のではなく、「徳丸本の内容を丸ごと理解する」必要がありました。
本試験では、徳丸本の内容が満遍なく出されるため、そう言った意味で私の需要にマッチした試験であったと言えます。
試験について
注意点(徳丸試験は2種類ある)
私が今回受験したのは、「ウェブ・セキュリティ実務知識試験(徳丸実務試験)」ですが、この他に「ウェブ・セキュリティ基礎試験(通称:徳丸基礎試験)」があります。
名前の通り、後者の「徳丸基礎試験」の方がビギナー向けで、前者の「徳丸実務試験」は実務寄りの試験になっているようです。
私は脆弱性診断をしているため、いきなり「徳丸実務試験」に挑戦をしました。
試験概要
- 試験名:ウェブ・セキュリティ実務知識試験(徳丸実務試験)
- 試験時間:75分
- 出題形式:選択式
- 試験方式:コンピューター上で実施するCBT(Computer Based Testing)方式
- 合格基準:7割正解
- 受験料:一般価格:13,200円(税込) / 学割価格: 6,600円(税込)
上記に関する詳細な情報は、CBT試験を実施しているオデッセイコミュニケーションズのページからご確認ください。
出題範囲
下記に示すように、試験のメインは4章になります。
- 1章 Webアプリケーションの脆弱性とは - 3問
- 2章 実習環境のセットアップ - 0問
- 3章 Webセキュリティの基礎 - 4問
- 4章 Webアプリケーションの機能別に見るセキュリティバグ - 28問
- 5章 代表的なセキュリティ機能 - 7問
- 6章 文字コードとセキュリティ - 1問
- 7章 脆弱性診断入門 - 2問
- 8章 Webサイトの安全性を高めるために - 5問
- 9章 安全なWebアプリケーションのための開発マネジメント - 0問
こちらの情報も、試験の運営団体であるPHP技術者認定機構のページから確認できます。
学習方法
使用した教材
1. 体系的に学ぶ 安全なWebアプリケーションの作り方 第2版(徳丸本)
学習に際して、私は徳丸本以外の本は利用していません。
理解に詰まったことがあれば、Google検索やChatGPTに聞くかで乗り切りました。
特に4章の後半部分は、ソースコードの内容や、文章で言っていることを正確に理解するのが難しくなってくる印象でした。
2. 安全なウェブサイトの作り方
徳丸本6章の「文字コードとセキュリティ」の理解を深めるため、徳丸本で紹介されているIPAのサイトから、該当部分の資料を読みました。
しかし、試験の合格という観点からすると、6章は1問しか出ないこともあり、この資料まで読む必要はないかと思います。
学習の進め方
試験を受けるまでに、徳丸本は2周ほど読みました。
1周目
1周目は下記のようなことに取り組みました。
- 検証環境を構築し、理解が進まない部分があれば手を動かして確認する
- ソースコードはしっかり納得できるまで読み込む
- わからない用語、言葉の意図が読み取れない部分は都度調べ、本に書き込む(赤ペンで書き込む)
1周目が完了した時点で、細かい議論がある程度頭に入っているような状態でした。
2周目
2周目は下記のようなことに取り組みました。
- 手を動かしての確認はせず、ソースコードもサラッと読むにとどめ、「各項目で言わんとしていることは何か」を言語化する練習
- 1周目で書いたメモに対する追記、2周目で得た知識を本に書き込む(青ペンで書き込む)
1つ目に関しては、私は本の目次のタイトルを見て中身の内容が話せるようにしました。
例えば4章であれば、「概要」「攻撃手法と影響」「脆弱性が生まれる原因」「対策」のような構成になっており、その中にさらに項目が複数あるため、「この項目で大事なことは何か」「他の項目と比較して何が違うか」等を意識して(全体を俯瞰して)読むようにしました。
試験直前
青ペンで書いた部分をサラッと確認して、試験に臨みました。
1周目のメモと2周目のメモの色を分けたことで、振り返る際の負担を軽減させました。
試験結果
- 得点:1260点/1500点満点
- 合格ライン:1050点
オデッセイコミュニケーションズのマイページで、結果レポートが確認できます。
※まだ私の手元に届いていないのですが、後日きちんとした合格証が届くようです。
試験に対する所感
全体として、本に出てきたそのままの形で問われる問題というよりかは、本質的に理解しているかを問うような、一捻りあるような問題が多かったように思います。即答できるような問題が少なかった印象です。
徳丸実務試験については、PHP技術者認定機構からの情報(2025年9月21日時点)によると、問題例すら一般公開されていないようですので、どこまで具体的に書いていいのか判断に迷うところもあり、一旦この粒度の記載に止めようと思います。[*1]
1つ言えることとしては、例えば「XSSの脆弱性がどう言ったものなのか理解している」というレベル感より更に踏み込み、下記のように徳丸本全体を俯瞰するようにインプットできると合格に近づくと感じました。
縦に深める
- どう言った攻撃手法があるか
- どう言ったシチュエーション・実装であればその攻撃が成立するのか
- 攻撃手法毎の影響度・危険度はどの程度か
- どう言った対策があるのか
- 対策毎の違いは何か
- 対策の優先度はどの程度か
- 効果の高さ(抜本的な対策なのか保険的対策なのか)
- 対策の難易度
横に広げる
- 他の脆弱性との違いは何か
- 脆弱性が発生するシチュエーション・実装
- 攻撃を受けた際の影響度・危険度
- 対策の差異・類似性
また、試験合格という目標を達成するのであれば、やはり3章~5章を重点的に読み込むのが効率的かと思います。
個人的には、4章をいきなり読もうとすると3章の知識が必要になって進まなくなる場面が多々発生すると感じるので、なるべく3章から読まれることをお勧めします。
まとめ
今回、徳丸実務試験の合格までの過程で、webセキュリティに関する基礎知識が少しずつ付いてきたように思います。こう言ったアウトプットの場があることが、勉強のモチベーションにも繋がり、とても良い機会だと感じました。
Webセキュリティに携わる方はもちろん、Web開発をされる方にもおすすめの資格かと思いますので、気になる方はぜひ受けてみていただければと思います。
参考
[*1] PHP技術者認定機構の情報ページ
ページ内の動画から問題例等が公開されていないことがわかります。
それ以外にも、試験に関する情報が丁寧に解説されているため、試験にご興味のある方は一見の価値ありです。
最後まで読んでいただきありがとうございました!