サイボウズサマーインターン2022 プロダクトセキュリティコース 開催報告

こんにちは!Cy-PSIRTの田口です。

本記事はサマーインターンシップ2022 プロダクトセキュリティコースの開催報告です。
今年は、8月と9月に全2タームでインターンシップを開催しました。 去年に続き、今年もフルリモートで実施しました。

概要

プロダクトセキュリティコースは、第1タームを8月1日〜8月4日、第2タームを9月5日〜9月8日の4日間で開催し、各タームそれぞれ4名の学生にご参加いただきました。
インターンでは、Cy-PSIRTが普段行っている業務をもとにコンテンツを用意しています。今回インターン生の皆さんには、主に以下の内容について体験していただきました。

  • 製品理解・ハンズオン
  • 脆弱性検証
  • 脆弱性評価
  • 外部通報対応

Cy-PSIRTの具体的な業務内容については以下の記事で紹介しています。

blog.cybozu.io

製品理解・ハンズオン ✏️

はじめに、サイボウズ製品や脆弱性について学んでいただきました。
Cy-PSIRTの業務を行う上で、製品への理解は大切です。そのため、製品の基本的な機能や仕様、操作方法について簡単に知っていただきました。
その後、Webアプリケーションの脆弱性と脅威について学び、ハンズオンを行なってもらいました。 ハンズオンでは、過去サイボウズ製品に存在していた脆弱性(改修済み)を再現させ、脆弱性の挙動を確認していただきました。
皆さん、手を動かしながら製品機能や脆弱性について理解を深めていただけたようでした。

脆弱性検証 🔎

脆弱性検証の時間では、普段の業務の流れと同様に以下を順番に行なっていただきました。

  • 要件確認
  • 試験仕様書の作成
  • 検証

要件確認

まずはじめに、要件確認を行いました。 要件確認とは、新規の機能実装や不具合改修、その他製品の変更など、開発チームが実施した要件を確認し、脆弱性検証の要否を判断する業務です。 要件の実例を挙げながら、脆弱性検証が必要となる判断基準や考え方を学んでいただきました。 今回は演習として、cybozu.com共通管理、kintoneGaroonに対しての要件を想定し、皆さんに脆弱性検証の要否と検証観点を考えてもらいました。

要件確認の様子(第1ターム)
要件確認の様子(第1ターム)

試験仕様書の作成

要件確認を経て、脆弱性検証が必要であると判断した要件について試験仕様書を作成します。 検証対象のリクエストについて、パラメータや権限、その他検証観点を洗い出しながらkintoneアプリに書き出していきます。 試験仕様書を作った経験がない方も多かったかと思いますが、皆さん網羅的に検証観点を考察できており素晴らしかったです!

検証

試験仕様書を作成したら、いよいよ検証に入ります。作成した試験仕様書の内容をもとに、Burp Suiteを使いながら一つずつ検証を行います。 インターン生からは、網羅的に検証することの大切さが学びになったとの感想をいただきました。 製品のセキュリティ品質を担保するという面で、PSIRTならではの検証の仕方や考え方を学んでいただく機会になったかなと思います。

ランチ 🍖

2日目のお昼はCy-PSIRTのメンバーとインターン生でランチをしました。 一緒にご飯を食べながら気軽に雑談することで、インターン生のことをより知ることができました。 インターン生の皆さんも、チームの雰囲気を知る機会になったのではないでしょうか。

ランチの様子(第1ターム)
ランチの様子(第1ターム)
ランチの様子(第2ターム)
ランチの様子(第2ターム)

脆弱性評価 🤔

続いては、脆弱性評価の時間です。サイボウズでは、脆弱性の深刻度をスコアリングする手法の一つであるCVSSv3を用いて脆弱性評価を行なっています。インターン生の皆さんには、CVSSv3の考え方やスコアの付け方を学んでいただき、過去サイボウズ製品に存在していた脆弱性を評価してもらいました。

脆弱性評価の様子(第2ターム)
脆弱性評価の様子(第2ターム)

インターン生の皆さんは、脆弱性を評価した経験はあまりないかと思いますが、あらゆる脅威や攻撃シナリオを想定し根拠を持ってスコアリングすることができていました。
後半では、算出したスコアやどのような考え方をしたのかお互いに共有する時間を設けました。 他の人のスコアを見て、評価は想定するシナリオによって異なるということを感じていただけたかと思います。Cy-PSIRT内でも、各評価項目の考え方やスコアの付け方について議論になることがよくあります。他の人の意見を聞いたり議論をしたりすることで、より公正な評価を行うことができます。
この時間を通して、スコアをつけることの難しさや脅威の考え方など脆弱性評価について新たな学びを得る機会になっていれば嬉しいです!

外部通報対応 📢

最後は外部通報対応の時間です。この時間では、サイボウズが運営している脆弱性報奨金制度の対応業務を体験していただきました。外部通報対応は、製品理解、脆弱性の再現確認や検証、脆弱性評価など、これまでの時間で体験した業務の理解が必要になってきます。 過去に外部から報告された内容を用い、「トリアージ」「再現確認」「評価」の一連の流れを体験していただきました。
Cy-PSIRTメンバーで演習のレビューを行いましたが、皆さんこれまで学んだ内容を活かしながら的確に対応できており素晴らしかったです! インターン生からも、レビューがOKで返ってきた時インターンでの学びが認められた感じがして嬉しかったとの声をいただきました。
実際にあった報告を手を動かして対応してみることで、脆弱性報奨金制度の運営側を知っていただくよい機会になったかなと思います。

成果報告会 🏆

最終日の夕方は、成果報告会を実施しました。今年は例年と異なり、kintoneアプリを使った形式で実施しました。 インターン生の皆さんには、「やったこと」「学び、気づき」「やってみたいこと」「感想」をベースに、各コンテンツについて事前に振り返りを記入していただきました。 成果報告会では、その振り返りの内容をもとに各コンテンツについての学びや感想を共有していただきました。

成果報告会の様子(第2ターム)
成果報告会の様子(第2ターム)

4日間のインターンを通して多くの学びや気づきがあったようで、Cy-PSIRT一同大変嬉しかったです!

懇親会🍺

最終日の夜は懇親会を行いました。去年に続き、Cy-PSIRTメンバーに聞いてみたいことを事前に登録していただき、その内容をもとに雑談しながら夕食を食べました。 業務のことからそれ以外のことまで幅広い話題で盛り上がり、よい交流の場になりました。

懇親会の様子(第1ターム)
懇親会の様子(第1ターム)

いただいた感想

今回のインターンでは、第1タームと第2タームそれぞれ4名の方にご参加いただきました。 参加者からいただいた感想を一部ご紹介いたします。

あっという間の4日間で「もう終わり?!」という感じです。それも4日間のインターンの内容がすごく濃くて楽しいものだったからだと思います。インターンではコンテンツ担当者やメンターの方々の説明やサポートがとてもわかりやすく、かみ砕いで説明してくれるのでスムーズに理解でき、とても勉強になりました。


業務の流れや、社内の雰囲気について知ることができてよかったです。私はこれが初めてのインターン参加で最初は不安がありましたが、演習や振り返りなど全てアプリ化されており、資料や説明もわかりやすく、インターンに集中することができました。


4日間という短い期間でしたが、非常に多くの学びがある有意義な時間でした。コンテンツに関しては、サイボウズでしか学べないような製品品質を向上する仕組みを深く知れるように組まれており、今後のキャリアを考える上で非常に参考になりました。 またPSIRTチーム内の交流などで雰囲気の良さがわかり、インターンに参加しないとわからないようなところまでしれて楽しかったです。

まとめ

去年に続き今年もオンラインでの開催となりましたが、2タームとも無事に終えることができました。 4日間と短い期間でしたが、会社の雰囲気やプロダクトセキュリティのことを知るよい機会になったのではないかなと思います。 インターンで用意されているコンテンツは、どれもCy-PSIRTの実際の業務に基づいた実践的な内容になっています。 ご参加いただいたインターン生の皆さんには、この経験や得た学びをこれからの活動に役立てていただけると嬉しいです。 今後の活躍を期待しております!

Cy-PSIRTでは一緒に働く仲間を募集中です。ご興味のある方は以下をご覧ください。

cybozu.co.jp