ごあいさつ
こんにちは、Asaです。
ふだんは自社サービス・アプリケーションの脆弱性診断を行うチームで業務サポートとして主に事前の対象調査(クロール業務)を行っています。
開発未経験異業種からの転職で入社後、半年の研修を経て脆弱性診断員としてデビューし、約1年半脆弱性診断業務に従事していました。
その後2年ほど、開発側と診断側の間に立って脆弱性診断に関する諸々の調整を行う「調整チーム」にいて、5年ぐらい前にサポートチームとして現在の「支援チーム」を立ち上げて今に至ります。
このブログは、業務に関連して学んだことをメモする目的で作成したのですが、記事を書こうとしては「わたしごときが知っていることなどまとめて公開したところで誰の役に立つというのか……」とモチベーションが続かず、ほとんど更新してきませんでした。
ただ、最近、弊社の技術人事や別部署の友人たちと会話するなかで、いろいろと思うところがあって、連載という形で記事を書くことにしました。
まず、「うちの仕事って、外部の人に知ってもらうにはちょっと難しいな?」と気づいたのが最初です。
https://hrmos.co/pages/ca-adv-group/jobs/00000252_tech
こちらがわたしのチームの求人情報です。
これでもがんばって伝わる内容になるよう工夫したんですが、読んでもらった人たちからの声は
- どんな仕事なのかイメージしづらい
- 「セキュリティエンジニア」とか「脆弱性診断」とか難しそう
- 必須スキルに「プログラミング学習経験(独学またはスクール卒業生)」が入ってるから自分は対象じゃないなと思ってスキップすると思う
……といったものでした。
特に最後の「プログラミング学習経験」のあたりは、プログラミング経験者ではなくてプログラミング学習の経験がある、という人を求めていて、「一度基本的なWebアプリケーションを開発してみて、どう作ってどう動いてるかがわかる」状態であればOKの認識なのですが、そう読み取るのって難しいですよね(でもグダグダ書くのも違うんかな、というジレンマ……!)
会社のセキュリティに関わる内容なので、普段やっていることを外向けに見せる、ということはできませんが、それでも実際に見てもらった方がイメージはしやすいよな……。
そう考え、わたしは閃きました。
「手元のPC環境で簡単なテストサイトを作って、それに対して『クロールってこんな風にやってるよ』をスクショつきで載せたブログがあれば、少しでも興味を持ってくれた人により詳しく見てもらうこともできるのでは?」
※「ブログのID取得しただけで中身が増えないな〜って悩みもこれで解決する!」とも思いました
それからChatGPT 4oに構成などを相談した結果、全15回の構成でブログを執筆し、わたしたちが日々行っている「事前調査(または、対象調査、クロール業務)」と呼ばれる作業について具体的に紹介する、と決めました。
この連載の目的は下記の3点です。
- わたしたち「支援チーム」がどんな仕事をしているのか知ってもらう
- サイバーセキュリティに興味がある人に、こんな仕事もあると知ってもらう
- ハンズオンをした人は、うちのチームでの研修(簡易版)を体験した状態になる(といいな)
できれば一緒に働いてくれる人が増えると嬉しいなとも思いますが、知ってもらわなければ話にならないので、まず知っていただきたい!
長くなりましたが、そんな理由でこの連載を開始します。
全15回でおさまるか、ちゃんと毎週更新できるのかすでに不安ですが、よろしくどうぞお付き合いくださいませ。
脆弱性診断とは何か、事前調査(対象調査、クロール)とは何か
「ごあいさつ」で散々書いた言葉ですが、ITエンジニア以外の人が読んでくれる可能性も考え、まずは「脆弱性診断」という言葉について簡単に説明したいと思います。
まず「脆弱性」とは、Webアプリケーションやシステムに潜む「悪用できるバグ」を指します。
そして「脆弱性診断」では、対象となるWebアプリケーションやシステムを網羅的に確認して「悪用できるバグ」=セキュリティリスクを発見し、開発側に報告します。
Webアプリケーションやシステムを悪意ある攻撃から守るために行われる重要なプロセスで、これは開発・運営側だけでなく、それらサービスを利用するユーザーを守ることにも繋がります。
インターネットに接続するあらゆるシステムは、脆弱性が存在していると攻撃を受けた際に被害が拡大してしまう可能性があります。
リリース前、機能追加のタイミングや年に1〜2回など定期的に脆弱性診断を実施して発見し、先んじて対処することが大切です。
今回の連載では、この脆弱性診断の多くのステップの中の「事前調査(対象調査、クロール)」に焦点を当てて解説していきます。
支援チームの役割
脆弱性診断は多くのステップから成り立っていますが、その最初のステップとも言えるのが「事前の対象調査」です。
わたしたち「支援チーム」は、この対象調査を主に担当しています。
事前調査(対象調査、クロール)をざっくり説明すると、「脆弱性診断を行う前の準備」ということになります。
具体的に挙げると下記のような内容になります(小難しいこと書いてますが、全15回を終えたら「なるほど、あれね」とわかるようになっているはず……! なので、さらっと流してください)
- 診断対象サービスの疎通確認
- 対象規模(診断対象となるURL数)の把握
- 診断対象のデータを後にツールで確認するために蓄積
- 診断対象の機能の把握
- 脆弱性診断を実施するのに必要な情報の収集、開発側への提供依頼
- 対象となるURL、パラメータの一覧表(URL一覧)を作成
実施前に事前調査(対象調査、クロール)をしっかり行っておくと、脆弱性診断自体をスムーズに進行できることが多いです。
脆弱性診断そのものよりも専門性は低いですが、脆弱性診断を実施するセキュリティエンジニアを支える大切な業務です。
(そしてうちの診断チームのセキュリティエンジニアたちはみんな優しくて「いつもありがとうございます」「助かってます」と労ってくれてすごくやりがいを感じます、こちらこそいつもありがとう〜!)
今後の連載で学べること
この連載では、わたしたち「支援チーム」が日々行っている「事前の対象調査業務」を具体的に、一緒に手を動かしながら体験してもらえることを目標にしています。
そこで「実際に自分の手元のローカル環境でテストサイトを構築し、無料版のBurp Suiteを使って対象調査(クロール作業)をやってみる」という流れで連載を進める予定です。
連載をしていくと、もしかすると多少内容の変更や方向性の修正はあるかもしれませんが、現在のところ下記内容で進めていく予定です。
- 第2回:開発環境のセットアップとツールの導入
- 第3回:テストサイトの設計:全体の構造
- 第4回:テストサイトの実装:HTMLとCSSの基礎
- 第5回:テストサイトの実装:JavaScriptを使った機能追加
- 第6回:テストサイトの実装:バックエンドの構築
- 第7回:ユーザー認証機能の実装
- 第8回:テストサイトでの対象調査準備
- 第9回:対象調査の実施:Burp Suiteを使ったクロールの手順
- 第10回:対象調査結果の確認と整理
- 第11回:ツール診断の結果とテストサイトへの影響の解説
- 第12回:実例紹介:クロール業務から発見される脆弱性
- 第13回:対象調査完了後の脆弱性診断の流れ(ダイジェスト)
- 第14回:「支援チーム」メンバーのキャリアパス
- 第15回:さいごに
次回は、対象調査体験のための準備として、開発環境のセットアップから始めます。
わたしもテストサイト開発は久しぶりなので、がんばってセットアップしていこうと思います。
よろしくお願いします!