セキュリティ診断に必須のスキルを網羅的に学べる!セキュリティエンジニア向けオンボーディング

目次
 
Flatt Securityでは、セキュリティエンジニアとして入社したメンバー向けに、セキュリティ診断に必須のスキルを学べるオンボーディングプログラムを用意しています。この記事では、中途入社したlambdasawaさんとそのメンターを務めたei01241さんに、入社後のオンボーディングについて語ってもらいました。

スケジュール感

実際にlambdasawaさんが受けたオンボーディングのスケジュールをご紹介します。
今回の実施期間は、ご本人のコミュニケーションスキルや技術面を考慮して3週間となっていますが、オンボーディングの期間や内容は入社したメンバーのスキルに応じて柔軟に調整しています。

1週目のスケジュール

1日目

最初に、労務担当から労務に関する説明がありました。ここではオフィスの紹介やFlatt Securityの勤怠の付け方などを知っていただきました。
次に、プロフェッショナルサービス事業部長(診断事業のビジネス面での責任者)のtoyojuniさんから会社説明と事業部説明を行いました。詳しい説明内容は以下のスライドに書かれています。
 
その後、メンターから脆弱性診断や報告書の説明をしました。ここでは具体的な脆弱性の内容やFlatt Securityの報告書のフォーマットを示しながらレクチャーを行いました。
そして、PCにSlackやConfluenceなどの業務に利用するツールやBurp Suite Professionalなどの脆弱性診断に利用するツールをセットアップしました。
 
最後に、社内用と社外用の自己紹介を書いていただき、1日目が終わりました。
 

2日目~5日目

1週目は、ハンズオン形式で代表的な脆弱性の学習をしていきました。
メンターに質問するlambdasawaさん
メンターに質問するlambdasawaさん
 
今回は3つの学習コンテンツを使いました。
最初に社内学習ツールであるFlatt Security TrainingでWebの代表的な脆弱性をCTF形式で学習してもらいました。
 
社内学習ツール「Flatt Security Training」
社内学習ツール「Flatt Security Training」
 
社内の技術質問chにスレッドを立てて思考ログを書いてもらっていたため、メンターがいつでも様子を見ることができました。
 
Flatt Security Trainingに挑戦中のlambdasawaさんの思考ログ
Flatt Security Trainingに挑戦中のlambdasawaさんの思考ログ
 
次に、セキュアコーディング学習サービスのKENROを用いて、脆弱なソースコードを修正する堅牢化演習を行いました。
Flatt Securityの社員であれば、KENROは福利厚生として無料で使うことができます。
 
 

2週目のスケジュール

2週目は、社内やられアプリで脆弱性診断の流れ(見積もり→診断→報告書作成)を体験してもらいました。

見積もり

最初に、診断対象をクロールし「リクエスト数」を数える練習をしてもらいました。
Flatt Securityのセキュリティ診断においては、お客様のご要望やご予算を確認した上で、セキュリティエンジニアもセールスと共に提案を作り上げることが多くなっています(最終的な提案内容はセールスが決定します)。
実際のセキュリティ診断ではクロールを行うことはほとんどありませんが、セキュリティエンジニアも見積や提案の考え方を理解すべきため、金額算出の練習を行っています。
 
次に、リクエストの機能を考慮し優先度を付け、3パターンほどの見積もりプランを作成してもらいました。
最後に、それぞれの見積もりプランでリクエスト数に単価を掛けて金額を算出してもらいました。
 
見積算出用のスプレッドシート
見積算出用のスプレッドシート
 

診断

社内診断プラットフォームのORCAsを利用した診断を行ってもらいました。
社内で開発されているセキュリティ診断プラットフォーム「ORCAs」
社内で開発されているセキュリティ診断プラットフォーム「ORCAs」
 
最初に、ORCAsに診断対象のエンドポイントを登録し、エンドポイントに応じた適切なテストケースを追加します。
次に、テストケースの検証後にステータスを更新し、次のエンドポイントに進むという流れです。
 
診断の際に、挙動が怪しい部分が見つかった場合は、対応するやられアプリのソースコードを参照することで、仕様の理解を深めてもらいました。
Flatt Securityのセキュリティ診断は、ソースコード参照をしながら進めます。そのため、挙動をソースコードレベルで理解する練習を行います。
 
 

報告書作成

最後に、診断で見つけた脆弱性の報告書を作成し、レビュー体験をしてもらいました。
報告書作成では、脆弱性の要因をコードレベルで指摘し、脆弱性の再現手順をJavaScriptのPoCを加えて記載しました。
レビュー体験では、レビュアーが先ほど作成した報告書を社内ドキュメントに沿って記述できているかや、再現手順に問題がないか確認を行い、問題がある場合には修正しました。
 
Flatt Securityのセキュリティ診断報告書サンプル
Flatt Securityのセキュリティ診断報告書サンプル
 

3週目のスケジュール

やられアプリの想定解を読み、振り返りをしました。この想定解には過去の実例を参考にした脆弱性が含まれているため、加えて過去の社内ドキュメントを読むことで理解を深めてもらいました。
また、社内ブログに蓄積されている診断テクニック集を読んで学習を進めてもらいました。
 
▼様々な社内ブログ記事を書き、診断テクニックを社内に広めているakiymさんのインタビュー記事
 

オンボーディング後

診断の業務フローを身に付けたあとは、実際に診断案件に参加してメンターと同じエンドポイントを見てもらい、診断の結果や報告書を共有して勉強をしてもらっています。また、メンターの結果と自分の結果を比較しながら、レビューや議論も行ってます。
この過程を繰り返すことで、診断方法や気を付けるべきポイントを身につけてもらっています。

lambdasawaさんのある1日のスケジュール

9:00      出勤
9:00-10:00  Slack・スケジュールチェック、技術情報のキャッチアップ
10:00-12:00 セキュリティ診断
12:00-13:00 休憩
13:00-16:00 セキュリティ診断
16:00-17:00 社内勉強会
17:00-18:00 セキュリティ診断
18:00    退勤

オンボーディングを実際に受けてみて

オンボーディング期間を終えたlamdbasawaさんに、オンボーディングの感想を聞いてみました。
 
ーー 診断に必要なスキルが身につきましたか?
そう思います。
Flatt Security Trainingには基礎的な要素が一通り揃っています。また、ちょっとした発想の転換が必要な課題もあって、ブラックボックスやツールだけでの診断では不十分なケースがあることも実感できるコンテンツになっています。
KENROではFlatt Security Trainingとは異なり、堅牢化演習で学べる知識が役立ちました。Flatt Securityの報告書では脆弱性の存在を伝えるだけではなく、根本的な対策もお伝えするため、防御の知識は攻撃の知識と同様に必要だと思いました。
世の中のやられアプリには古典的な実装のものもありますが、Flatt Securityのやられアプリはモダンな作りで、実際の診断で必要な知識が身につくコンテンツになっていました。
報告書作成では、技術面に関する知識は書籍やWebサイトに多く存在していますが、報告書作成スキルに関してフィードバックをもらえる機会は非常に少ないため、診断前に安心感が得られました。
 
ーー 質問はしやすい雰囲気でしたか?
みんな人柄が良いので話しかけやすい雰囲気でした。メンターが「今どんな感じですか」と定期的にコミュニケーションを取る機会を作ってくれました。他のオフィスの方は、ちょうど自分が困ってるタイミングで助け舟を出すようなコミュニケーションを取ってくれていました。そのため、そのタイミングで自然に質問することができたと思っています。
メンター以外との関わりとしては、自分はオフィスに行くようにしているので、お昼ごはんは皆と食べに行くようにします。
リモートワークの方のためのコミュニケーション施策によって、月水金は15分間雑談する時間があります。
Flattではイベント類が多くあるので、社外の方とコミュニケーションする機会があります。
 
ーー スケジュールに負担感はありませんでしたか?
特に負担は感じることなかったです。
細かい部分はトレーニングの進捗に応じて適宜メンターと相談して調整していました。時間があればORCAsの既存の報告書を読むようにしていたので、暇になることも無かったです。
 
ーー ドキュメントは整理されていましたか?
スタートアップということもあり、完全な状態ではありませんでしたが、良くも悪くもスタートアップ感があると思いました。
 
ーー コンテンツの難易度はどうでしたか?
自分の場合は、事前にBSCPやOSWEなどでトレーニングはしていたので、難しすぎると感じることはありませんでした。社内のコンテンツには、それらの試験でもカバーされていないような範囲も含まれていたり、それなりに手の込んだ演習課題も存在していたり、程よい負荷となるようなコンテンツでした。
 
ーー Flatt Securityの診断の特徴でもある”ソースコードの参照”を体験してみて、どうでしたか?
診断対象のコードを確認できると診断の効率は非常に良くなると感じました。コードは診断対象に関しての理解を深めるために役立ちますし、怪しい箇所に目星をつけてそこを重点的にテストすることができます。診断の質を高めるためにも、攻撃者より効率的に脆弱性を見つけるためにも、ソースコードの参照は必要不可欠と言っても過言ではないと思います。
 
ーー ORCAsの使い心地はどうでしたか?
脆弱性診断に最適化されたタスク管理ツールという印象で、運用でカバーしなくてもシームレスにやりたいことができるため、非常に使いやすいです。診断に特化していない通常のタスク管理ツールでも運用でカバーすればORCAsの機能と似たようなことは実現できるかもしれませんが、そういった対応は組織が大きくなるに連れて崩壊しがちな印象があります。そういった意味でも、優れたツールだと思いました。