こんにちは!Cy-PSIRTの田口です。
本記事はサイボウズ サマーインターンシップ2024 プロダクトセキュリティコースの開催報告です。
今年は8月に1ターム、昨年と同様にフルリモートで開催しました。
概要
プロダクトセキュリティコースは8月26日〜29日で開催し、3名のインターン生にご参加いただきました。 インターンでは、普段Cy-PSIRTが行っている業務をベースにコンテンツを構成しており、以下の内容をインターン生の皆さんに体験していただきました。
- 製品理解・ハンズオン
- 脆弱性検証
- 脆弱性評価
- 外部通報対応
Cy-PSIRTの具体的な業務内容は以下の記事で紹介しています。
また、今年はLT会や雑談会、今年Cy-PSIRTに配属されたメンバーとの座談会など、インターン生と社員との交流の機会を多く設けました。さらに昨年に引き続き、PSIRTの取り組みを紹介する時間や、社内環境の一部をご覧いただきながらチームや業務の雰囲気を感じていただく時間も設けました。
本記事では一部のコンテンツを抜粋してご紹介します。紹介していないコンテンツについては、昨年のブログに記載されている場合もありますので、ぜひそちらも参考にしてください。
製品理解・ハンズオン
はじめに、サイボウズ製品やWebアプリケーションの脆弱性について学んでいただきました。 Cy-PSIRTの業務においては、あらゆる場面で製品理解が欠かせません。そのため、各製品の機能や使い方について、まずは簡単に説明を行いました。 その後、脆弱性の概要や原理について学び、ハンズオンを行なっていただきました。ハンズオンでは、過去にサイボウズ製品に存在していた脆弱性(修正済み)を再現し、その挙動を確認していただくことで、脆弱性についての理解を深めていただきました。
脆弱性検証
この時間では、Cy-PSIRTにおける脆弱性検証の流れを演習形式で体験していただき、検証業務の一連のプロセスである下記の業務について学んでいただきました。
- 要件確認
- 試験仕様書作成
- 脆弱性検証
要件確認
まずは要件確認です。要件確認とは、開発チームが実施した各要件に対して、脆弱性検証が必要かどうかを判断する業務です。通常、Cy-PSIRTでは、開発により生じた製品の変更点に対して脆弱性検証を実施しています。そのため、脆弱性検証のプロセスにおける最初のステップとして、この要件確認を実施する必要があります。(製品によっては開発チームが脆弱性検証の要否を判断している場合もあります)今回の演習では、要件の実例をもとに脆弱性検証が必要となる判断基準や考え方を学んでいただきました。
試験仕様書作成
要件確認によって「脆弱性検証が必要である」と判断された要件に対して、脆弱性検証を実施するための準備を行います。具体的には、検証対象に対してどのような検証を行うかを記載する「試験仕様書」を作成します。試験仕様書では、リクエスト、コンポーネント、パラメータといった単位で、Webアプリケーションで発生しうる一般的な脆弱性から、製品固有のロジックやアクセス権限に関する検証まで、あらゆる検証観点を考慮しkitnoneアプリに列挙していきます。演習では、インターン生に必要な検証観点を考えてもらい、実際に試験仕様書を作成していただきました。
脆弱性検証
試験仕様書を作成後、いよいよ検証に入ります。 作成した試験仕様書の内容をもとに、Burp Suiteを使いながら一つずつ検証を行っていきます。 実際の脆弱性検証では、自動検証ツールと手動検証を組み合わせて行うことが多いですが、今回の演習では手動検証にフォーカスして体験していただきました。インターン生の中には、ペイロードの意図や効率化について考えながら検証を進めている方、脆弱性検証における属人性の観点で疑問を抱く方もいらっしゃいました。ツールの使い方や検証方法といった技術的な部分だけでなく、脆弱性検証の運用面にも目を向けながら取り組まれており、非常に素晴らしい姿勢だと感じました。
脆弱性評価
続いては、脆弱性評価の時間です。サイボウズでは、脆弱性の深刻度をスコアリングする手法の一つであるCVSSv3を用いて脆弱性評価を行なっています。インターン生の皆さんには、CVSSv3の考え方やスコアの付け方を学んでいただき、過去サイボウズ製品に存在していた脆弱性を評価していただきました。
後半では、自身が行った評価をもとに考え方やシナリオについてインターン生同士で意見交換を行っていただきました。他の人の意見を聞くことで、想定するシナリオや脆弱性の捉え方が人によって異なることを実感できたと思います。実際にCy-PSIRT内でも、各評価項目に対する考え方やシナリオについてよく議論がありますが、他の人の意見を取り入れつつ議論を重ねることで、より公正な評価を行うことができると考えています。脆弱性評価の講義や演習を通して普段とは異なる視点で脆弱性について考える良い機会になっていれば嬉しいです。
外部通報対応
最後のコンテンツは外部通報対応です。この時間では、サイボウズが運営している脆弱性報奨金制度の対応業務を体験していただきました。 外部通報対応は、脆弱性の再現確認や検証、脆弱性評価、また製品に対する理解など、これまでの時間で学んだ知識が必要となる集大成です。まず、脆弱性報奨金制度の仕組みや実施することの意義を学んでいただき、その後「トリアージ」「再現確認」「評価」の一連の流れを演習していただきました。この時間を通して、脆弱性報奨金制度を実施することの価値に興味を持たれた方や、再現手順の書き方に新たな気づきを得た方もいらっしゃいました。脆弱性報奨金制度の運営側の視点を知る良い機会となっていれば幸いです。
関連して、新しくCy-PSIRTに入ったメンバーが執筆した「サイボウズ脆弱性報奨金制度の歩き方」の記事も掲載します。ご興味があればぜひご覧ください!
座談会・LT会
新しくCy-PSIRTに配属された3名のメンバーとインターン生との座談会を実施しました。就活の話や、サイボウズに入社してからの経験談など、より親しみやすい雰囲気の中で様々な話題に触れることができたのではないでしょうか。インターン生にとって、就活や入社後の具体的なイメージが湧く、有意義な時間となっていれば嬉しく思います。
座談会の後にはLT会も実施し、社員から以下のテーマについて発表を行いました。
- 社会人歴5ヶ月目のぺーぺーが思う学生時代の過去の自分に伝えたい大事なスキル
- インシデントハンドリングのおはなし
- LLM連携機能のテストペイロード表を作った話
スキルや考え方の話、そしてセキュリティのリアルな現場での取り組みなど、より深いトピックについて知る貴重な機会になったのではないでしょうか。
成果報告会
最終日の夕方は、kintoneアプリを使った形式で成果報告会を実施しました。 インターン生の皆さんには、「やったこと」「学び、気づき」「やってみたいこと」「感想」をベースに、各コンテンツについての学びや感想を共有していただきました。
成果報告会後、夜は懇親会を行いました。 業務のことから業務以外の話題までとても盛り上がり、楽しく雑談しながら夕食を食べました。
いただいた感想
インターン生からいただいた感想をご紹介します。
4日間という非常に短い時間でしたが、具体的な業務からサイボウズの社風まで非常に多くのことを学べた時間になりました。 コンテンツを通して技術的に多くの学びを得られたことはもちろん、青野さんを始めとして、多くの社員の方とコミュニケーションを取れる機会が用意されており、インターンでしか聞けないような話を沢山聞くことができ、非常に楽しい4日間でした。
・脆弱性診断や評価についてもっと勉強したいと思った.
・全体を通して,PSIRTのお仕事やkintoneの使い方についてよく知れた.
・オンラインインターンだと雑談の機会は少ないと思っていたが,ティータイム*や雑談会で社員の方々とお話しできて雰囲気がよくわかった.
業務理解だけではなく,メンターが所属する部署(あるいはチーム)の人と雑談という形でチームの雰囲気や価値観をたわいもない話の中で知れる機会が沢山あって密度が濃い時間でした.楽しかったです!!
*ティータイム:インターン期間中、コンテンツの合間に任意の小規模な雑談会を2回設け、より自由に話せる機会を用意していました。
おわりに
今年も無事にプロダクトセキュリティコースのインターンを開催することができました。 4日間という短い期間で、コンテンツも盛りだくさんでしたが、インターン生の皆さんは終始集中力を保ち、熱心に取り組まれていたことがとても印象的でした。 また、インターン生同士で交流を深める様子も見られ、非常によい雰囲気でインターンを実施できたことを大変嬉しく思っています。 会社やチームの雰囲気、ユーザー企業ならではの視点、そしてプロダクトセキュリティに関する理解が深まる機会となっていれば幸いです。 このインターンで得た経験や学びが、今後の皆さんの成長や活動に役立つことを願っています。そして、皆さんの今後のご活躍を心から楽しみにしています!
Cy-PSIRTでは一緒に働く仲間を募集中です!ご興味のある方は以下をご覧ください。