Burp Suiteを用いたWebアプリケーション脆弱性の検知と悪用のスキルを証明する"Burp Suite Certified Practitioner(BSCP)"という試験に合格しました。
本資格が2021年7月から始まったこともあり、OSCPと比べると日本語での合格体験記が少ないので、人生で初めてにはなりますが合格体験記を書いていこうと思います。
本記事よりもわかりやすい記事のリンクを貼りますので、そちらから先に読むのがいいかもしれません。
(※本記事は2024/02現在の情報に基づき作成しています)
- Burp Suite Certified Practitionerについて
- 事前スキルレベル
- BSCP取得までにかかったトータルの時間と費用
- 学習教材と学習方法
- 利用したBurp Suiteの拡張機能
- 利用した外部ツール
- 受験本番
- 反省点
- おわりに
Burp Suite Certified Practitionerについて
そもそもBurp Suite Certified Practitionerとは?
本資格を作成したPortSwiggerによると「Webセキュリティの脆弱性に関する深い知識、脆弱性を悪用するための正しい考え方、そしてそれを実行するために必要なBurp Suiteのスキルを証明することができます」とのことです(詳細:PortSwigger: What is a Burp Suite Certified Practitioner?)
試験の概要
- 試験時間: 4時間
- 費用: $ 99
- 有効期間: 5年間
- 使用ツール:Burp Suite Pro Edition (Free trialでも可)
- 再受験の制約:なし。2日連続でも受験できます。
- 受験予約:必要なし。好きな時間に受験できます。
受験資格
- 受験時点でBurp Suite Pro Edition(有料版)が使用可能なこと
- Web Security AcademyのDashboardにあるExam preparation stepsを完了していること... 等
事前スキルレベル
まだまだ不勉強ですので精進します...
- Webアプリケーション開発経験8ヶ月
- 2023/06: 応用情報技術者試験合格
- 2023/12: 情報処理安全確保支援士試験合格
その他
- TryHackMe: Red Teaming等、基本と攻撃系のLearning Pathsは一通り完了しています。セキュリティ初心者にも優しい学習教材だと思います。
- Proving Grounds Practice: Offensive Security社提供の学習コンテンツです。EasyやIntermediateのLABを15個解いていました。
- TOEIC 800: Web Security Academyの内容は全文英語ですので、ある程度の英語力が求められますが、DeepLなどの翻訳ツールを活用すれば問題ないと思います。
BSCP取得までにかかったトータルの時間と費用
総学習時間
約450時間
総費用
$198 (受験費用$99 × 2)
Burp Suite Pro Editionは年額$449です。
初回に限り30日間のFree trialが利用可能で、私はFree trial期間に合格しました。
学習教材と学習方法
学習教材
Web Security Academy
BSCPの試験問題はWeb Security AcademyのPractitionerレベル以下のLABを改変したものがランダムで出題されます。
XSSやSQLi、Web LLM attack等、30ものトピックがあり、実際にエクスプロイトを試すことができる"LAB"が264個もあります。
完全無料ですが、一部、Burp Suite Pro Edition(有料版)の機能を使わないと解けないLABがあります。
『体系的に学ぶ 安全なWebアプリケーションの作り方 第2版』
私はWeb Security Academyのトピックを一通り進めた後、関連する部分を読み返していました。
Web Security Academyもすでに十分わかりやすいですが、本著を読み返すことで知識が「体系的に」整理される気がします。
学習方法
流れはざっくり以下のようになります:
LABには"Community solution"という動画での解決策があり、序盤は必ず確認していました。便利なBurp Suiteの使い方を学ぶことができるのでご覧になることをお勧めします。特にRana KhalilやIntigritiの動画がお勧めです。
Community EditionではPro Editionで利用可能な、自動で脆弱性を検知・悪用できるScanner等の一部機能が使えません。
私は金銭的な理由でCommunitiy Editionを使いましたが、これにより手動で検知・悪用する経験を積めたので、経験が浅い私にはよかったのかもしれないです。
しかし、すでにある程度知識や経験のある方はPro Editionを使用した方が良いと思います(Pro Editionを使用しても十分に難しいと思います)。
試験範囲はPractitionerレベル以下ですが、Expert LABも学びが多いのでこれからやっていこうと思います。
以下は私の達成状況です。(2024/02/23時点)
⚠️Free trialの注意点
Burp Suite Pro Editionの30日Free trialはGmailなどの個人用メールアドレスでは利用できません。ビジネス用のメールアドレスが必要です。
私は個人用メールアドレスを使用していましたが、その時点でLABの進捗が83%であることを示して、ダメ元でFree trialを利用させてもらえないかとサポートチームに連絡したところ、なんとかFree trialを開始させてもらいました。再現性は低いです(無理ならドメインをレンタルしようと考えていました)。以下はそのときのPortSwiggerからの返信です。
利用したBurp Suiteの拡張機能
- Turbo Intruder
- Burp Suite Community Edition(無料版)で学習を進めるなら、Intruderよりこちらを使った方がいいです。Community EditionにおけるIntruderは、リクエスト数が100を超えると速度が著しく低下しますが、Turbo Intruderを使用すれば、より高速にbrute forceが可能です。
- 使い方など参考の記事や動画です:
- JWT Editor
- Param Miner
- HTTP Request Smuggler
- HackVertor
- InQL - GraphQL Scanner
- Content Type Convertor
- Server-Side Prototype Pollution Scanner
利用した外部ツール
- Insecure deserialization
- SQL Injection: sqlmap
- 学習時は一切使用していません(使っていいとは思ってなかった)。
- GraphQL API vulnerabilities: GRAPHQL VOYAGER
- GraphQLのSchema情報を取得した後、それを視覚化するために使用。
- SSTI (Server-Side Template Injection): SSTImap
受験本番
一度目の受験(2024/02/22)
一度落ちました...。
敗因は2つあり、①自動ツールへの理解不足②リラックス不足です。
2つあるうちの1つのアプリは順調にクリアしました。
2つ目のアプリでは、VictimのHTTPリクエストをキャプチャすることでCookieを窃取してアカウントを侵害する必要がありました(⚠️ネタバレではないです)。
少し手間取りながらも、なんとかCookieを窃取できました。
しかし、獲得したFootholdを安定化させず、すぐにPrivilege Escalationのための自動ツールを走らせてしまいました。
その時、Webアプリが落ちてCookieが無効になったので、もう一度リクエストをキャプチャしました。しかし、何度やってもVictimのリクエストをキャプチャできません。
原因が自動ツールであることに気づいたのは試験終了5分前でした。非常に悔しい経験でした。
二度目の受験(2024/02/23)
合格する自信はあったので翌日に再受験しました。
一度失敗を経験すると不思議と落ち着くものです。自動ツールも必要な時に把握できる範囲で走らせるようにしました。
結果、運もあるとは思いますが、試験が4時間のところを1時間55分でクリアできました。
反省点
挙げ始めたらキリがないですが大体こんな感じです:
- Cheat sheet作成を念頭においておらず、終盤でCheat sheetを作成するときにまとめに時間がかかった
- 各LABのsolutionをメモして参照できるようにしておいた方がいいです。試験は各LABのsolutionをアレンジした問題が出題されます。
- JavaScriptの理解が足りなかった。XSS等で苦労した。
- Obfuscation(難読化)の実践が足りなかった。
- アカウントを侵害したらまずは安定化させるべきだった
- 何かエラーが起きた時でも、すぐに原状回復できるようにしておくという意味。
- エクスプロイト方法を詳細にメモしたり、Victimのパスワードを任意の値に変更しておく等
おわりに
とても楽しみながらWebセキュリティについて広く深く学習できましたが、まだまだ勉強が足りないことがわかったので、意図的に脆弱なWebアプリケーションを開発するなどして理解をさらに深めていけたらと思っています。
Webセキュリティがもっと好きになったので、これからも精進していきます!
ご一読ありがとうございました。
*1:「何も情報がないところからLABを解く」チャレンジのこと