kusshi’s blog

学生エンジニアの日記

サイボウズのインターンシップでPSIRTの仕事について学びました

2023年8月に開催されたサイボウズ株式会社のサマーインターンシップに参加し、 手厚いサポートの元、脆弱性検証や評価の基本的な考え方、セキュリティ業務におけるコミュニケーションの重要さを学びました。 また、サイボウズの理念や、Cy-PSIRTの攻めの取り組みについて知ることができました。 学んだことについてまとめます。

参加までの経緯

3月頃、人事の方と関連イベントで知り合ったのがファーストコンタクトでした。 イベント内の企業プレゼンと座談会で、サイボウズのセキュリティへのこだわりや、モブプロ文化について耳にし、興味を持ちました。

イベント終了後には、セキュリティエンジニアの方(後のメンターさん)との面談の機会を頂きました。 面談でお話させていただく中で、自社製品のセキュリティにコミットする働き方に興味を持ち、インターン選考への参加を決めました。

参加決定後にはインターン生と現場社員の方の顔合わせ会がありましたが、私は参加できませんでした。残念です…

インターンシップの内容

今回参加したインターンシップは、Cybozu Internship 2023 Engineer & Designer のプロダクトセキュリティコース第1タームです。 2023年8月28日から8月31日までの4日間、オンラインで開催されました。

インターンの内容は、サイボウズのプロダクトセキュリティを担当するCy-PSIRTの業務を座学講義と演習で学ぶものです。 講義では、各業務に詳しい社員の方から直接取り組みから考え方までを知ることができました。 演習では、実際に脆弱性のあった過去のバージョンのサイボウズ製品を動かしながら脆弱性の検証や評価を行いました。

プログラムについてはメンターの方が書いた記事に詳しく掲載されています。 記事は2022年のものですが、基本的には同じ内容です。

blog.cybozu.io

その他にも、社員の方との会食、社長の青野さんとの「ザツダン」など、会社の雰囲気を知ることのできるコンテンツがありました。

学んだこと

検証や評価の基本的な考え方

プロがどのようなことを考えながら脆弱性の検証、評価に取り組んでいるのか知りました。

基本的なWebアプリケーションの脆弱性は、ユーザからの入力が別のどこかで出力されることで発生します。 演習を通して、脆弱性を作り込まないための戦略として、不正な値を入力させないことと、入力値を出力する際に発火させないことの両方の対策があると考えました。 この点についてどう考えているのか伺ったところ、前者での対策をより重視しているとの回答を頂きました。

また、脆弱性の評価については正直あまり知らなかったので、漠然と知っていただけのCVSSがどのようなものなのか分かるようになりました。 プログラム全体を通して、「CVSSは4.3に収束しがち」というちょっとした肌感覚や、評価そのものの難しさ、CVSSでの評価が脆弱性の深刻さや対応の優先順位を決める上で完全でないことなどを知りました。

さらに、CVSSが完全でないのであれば、何のために評価を行うのかと疑問に思い、振り返り会や懇親会の場で詳しくお話を伺いました。 様々なご意見を頂きましたが、脆弱性の公表を重視しているため、必然的にCVSSを使うことになるのが一番の理由だと認識しました。 また、自分で評価を行ってみた結果として、抜け漏れなく評価を行うためのフレームワークとしては十分有用だと感じました。 実際、プロダクトチームに評価した脆弱性の修正を依頼する際には、評価値よりも評価の根拠を詳しく伝えるとのことでした。 演習で得た実感としては、根拠をもってCVSS評価をしようとすれば、トリアージに必要な情報を提供することができるように感じました。

総じて、疑問や考察に対してメンターの方から手厚いフィードバックを頂き、多くの考え方を吸収できました。

セキュリティ業務におけるコミュニケーションの大切さ

脆弱性検証では、モブプログラミングの知見を活かした「モブ検証」形式で演習を進めました。 他のインターン生と二人一組になりつつ、社員の方にアドバイスを頂きながら共同作業で検証しました。

blog.cybozu.io

脆弱性関連の業務は絶対的な方法がなく、コミュニケーションを取りながら進めることが効果的であることを感じました。 検証の方法は経験則によるところがあるそうで、実際、演習でもモブ形式により見落としを減らすことができました。 評価においても、前節の通りCVSSなどの指標は完全なものではないため、判断の根拠などを伝え合うことが何より重要です。 また、社外のバグハンターの方から報告された脆弱性の再現手順を実際に試す中で、報告された手順の形式にばらつきがあり、意思疎通に難しさがあることを体感しました。

サイボウズとCy-PSIRTについて感じたこと

理念と文化に嘘がない

青野さんとの「ザツダン」では、事前に募集された質問に沿って、直接会話させていただきました。 青野さんはインターン生ともとても気さくに話してくださり、風通しのよさが本物なのを感じました。 理念に行きつくまでのエピソードや、なぜそれを大切にしているのかについても詳しく伺うことができ、本気でチームワークあふれる社会を創ろうとしているのだとわかりました。

対外的な取り組みへのこだわり

Cy-PSIRTの業務では、対外的な取り組みに力が入っている点が印象的でした。

サイボウズは日本におけるバグバウンティプログラム実施企業の先駆けとしても知られていますが、 報奨金制度を運営するにとどまらず、バグハンターの方を招待して実施する「バグハン合宿」なるイベントなどにも取り組んでおり、外部通報への本気度を感じさせられます。

blog.cybozu.io

上で述べた通り、報告された脆弱性の再現手順は必ずしも理解しやすいものばかりでないことを実感したため、 ハンターの方と近い距離で関係を作るこのような取り組みへの想いを理解できました。

セキュリティは基本的に守りの分野ですが、Cy-PSIRTの対外的な取り組みからは攻めの姿勢を感じられました。

サイボウズインターンのおすすめポイント

来年以降、サイボウズインターンへの参加を検討している方向けへおすすめしたいポイントを書いておきます。

サポートがとても手厚い

インターンの4日間は、メンターの方にいつでもなんでも聞ける体制となっていました。 個々人での演習中もマイクカメラオフでZoomが繋がっており、不安なく進められました。

金銭面でも、社員の方とのランチや最終日の懇親会では補助が出ました。社員の方のお話を聞きながら食べるお寿司は格別でした。 そしてお給料やノベルティまでもいただけます。ありがたいことこの上ないです。

優秀な他のインターン生との交流

他のインターン生とは、モブ検証やランチなどで色々お話させていただきました。 他の皆さんが本当に優秀なことはもちろんですが、やってきたことや志向性、課題への取り組み方にも少しずつ違いがあり、とてもいい刺激になりました。

まとめ

サイボウズとプロダクトセキュリティの仕事について濃密に学べたインターンでした。 社員の皆さん、他のインターン生の皆さん、4日間ありがとうございました。