lambdasawa

この記事の目的

最近、 Burp Suite Certified Practitioner (BSCP) というセキュリティ系の試験を受けて合格しました。
この試験に関する情報があまり出回っていないようなので、どのような試験なのかを伝えられればと思います。

また、セキュリティを自身の専門分野として持っている人がこの試験を受けていることが多いようですが、自分の場合はセキュリティの専門家というわけではなくて普通の Web エンジニアとして働いています。

そういった目線での受験レポートは新鮮で価値のあるものになるのではないかと思います。

Burp Suite Certified Practitioner (BSCP) とは

Burp Suite という主に Web アプリケーションの脆弱性診断に使われるアプリケーションが存在します。
これは業界的にはほぼデファクトスタンダードと言っていい存在ではないかと思います。

この Burp Suite を開発している PortSwigger 社が提供している試験が BSCP です。
この試験では Web セキュリティに関する知識が以下のような方式で問われます。

脆弱性の発生原理、見つけ方、悪用のされ方、(誤った)典型的な防御のバイパス手法などを理解して、時間内にそれを示す必要があります。

受験をする条件として PortSwigger が提供する Web Security Academy 上でいくつかのタスクを完了させる必要があります。
Web Security Academy では各脆弱性についての解説と、その脆弱性を利用した攻撃を実践できる Lab と呼ばれる環境が提供されます。 完了させるべきタスクは以下の 4 つです。

試験費用は 99 USD です。
ただしそれに加えて、無償の Burp Suite Community Edition ではなく有償の Burp Suite Professional Edition を 449 USD で購入する必要があります。

なので 99 + 449 で約 550 USD ほどかかることになります。
Burp Suite の Professional Edition に興味が無い方にとっては、もしかしたら割高かもしれません。
自分の場合は技術力向上のための投資としては許容できる金額だと判断しました。

勉強内容

とにかく基本は PortSwigger の Web Security Academy でした。
Learning Path のページから適当なトピックを 1 つ選んで、解説を読んで、Lab を解くという作業を全てのトピックに対して行いました。

Lab に関しては Apprentice, Practioner, Expert の 3 つの難易度がありますが、 Practioner 以下の難易度に設定されている Lab は全て解きました。
受験に必要な 4 つのタスクのうち Step 1 と Step 2 ではいくつかの Lab を解くことが要求されていますが、これだけをやって試験に合格する Web エンジニアの割合は多くないと思います。
(脆弱性診断の経験がある方などは違うと思います)

Practioner までの Lab は 200 以上あって全て完了するのはそれなりに時間がかかります。
しかしほとんどの Lab で何かしら新しい学びがあるようになっているので、個人的には楽しみながら解くことができました。

例えば SQL インジェクションは古典的な脆弱性であるため当然知ってはいたのですが、 sleep ベースの SQL インジェクションが実際にどのようなペイロードで悪用されうるのかということに関しては、ぼんやりとした認識がある程度でした。
こういったぼんやりとした知識全般が Web Security Academy でより明確になったと感じています。

苦手意識がある脆弱性の攻略に関しては Web Security Academy 以外のリソースも活用しました。
具体的には主に Hack The Box Academy を活用しました。
Hack The Box Academy も Web Security Academy と同様に、脆弱性の解説とそれを実験できる環境がセットで与えられるような学習リソースです。

解説に関してはどちらか片方を読めば事足りると思いますが、追加の Lab を求めている場合には Hack The Box Academy を活用するのも有効だと思います。
ただし、PortSwigger の Web Security Academy は無償であるのに対し、 Hack The Box は有償です。
金額に関してはトピックごとに異なる価格での従量課金制となっており、 1 トピックあたり最大 50 USD くらいの金額です。

PortSwigger の Web Security Academy に関しては本当によくできた資料だとは思うのですが、 Burp Suite 以外のツールについての案内は薄いので、その点が Hack The Box Academy で補えたのが良かったです。

その他 HackTricksPayloads All The Things といった資料もよく参考にしていました。

一つの脆弱性について、それを探す時間も悪用に成功させる時間も含めて 40 分程度です。これは十分に長いとは言い難いです。
なのでチートシートを用意しておくことも有効です。
自分の場合は他の方が公開している体裁の良いチートシートを見つけたので本番の試験では主にそれを利用しましたが、一応は自分自身でチートシート作成をしました。
チートシートを書こうとするとちゃんと理解できていない事柄に関しては手が止まってしまうので知識の穴が見つかりますし、知識の整理にも役立つので、本番で使わなかったとしてもチートシートを書くという行為自体は有益だと思います。

受験した感想

(前提としてネタバレ防止的な意味で試験の具体的な内容について書けないことはご了承ください)

自分のような立場としては簡単すぎず難しすぎず丁度よい難易度だったなーと感じました。

こんな感じで時間ギリギリな感じでした。

App 1 Stage 3 を完了して App 2 Stage 1 に移るときは、時間制限があるという緊張の中でまた 1 から脆弱性を探すのかと思ってやや脱力してしまい、さっきと同じ能力をまた発揮できるだろうかという不安も感じました。
しかしここまでのペースはそんなに悪くない (単純に問題数で試験時間を割った値で考えると、12 分ほど余裕がある) し、もし不合格ならまた 1 からやり直す必要があると思うと、そんな考えはすぐに拭えました。

App 2 Stage 1 では脆弱性を見つけるのにも上手く悪用したペイロードを作るのにも時間がかかってしまい、ここで時間内に終わらないのではないかという不安は強まりました。
しかし無事にここは突破できて、Stage 2 と Stage 3 は特に酷いハマり方はせず、なんとか時間内に全てのタスクを完了することができました。

土曜日の正午頃に受験して、火曜日の夕方に合格を通知するメールが来ました。

攻略した脆弱性について試験を終えてから振り返ってみると、基本的には素朴なものが多かったかなという印象です。
Web Security Academy に書いてある全ての内容を理解/記憶していれば、ほぼ間違いなく合格すると思います。
Web セキュリティを専門としていて経験豊富な人がこの試験を受けたとしたら、4 時間の試験時間を使い切ることはなくて 1~2 時間前後で解き終わるのではないかと思います。

とはいえ、この試験は全てのタスクをクリアしないと合格にならないので、 BSCP に挑む前の自分を含めて平均的な Web エンジニアがいきなり受験して合格するのは難しいと思います。
この試験に合格したということは、そういった知識を新たに身につけられたということなので受験してよかったかなと思っています。

まとめ

普通の Web エンジニアがセキュリティについての知見を深めるためのロードマップの一例として、この記事が参考になれば幸いです。 分かりやすい目標を立てて新しい知識を獲得していく過程が楽しかったので、今後しばらくは Offensive Security Web Expert (OSWE) に向けて精進していこうと思います。

参考資料など