Cy-PSIRTの紹介

こんにちは! サイボウズで製品セキュリティの品質向上に励んでいる小西です。社内でCy-PSIRTと呼ばれている製品セキュリティに関する問題に対応する専門のチームに所属しています。今回は、私が所属しているCy-PSIRTのお仕事について紹介していきたいと思います。

この記事を読んでくださっている人の中には、セキュリティに関係するお仕事に興味があるという人や製品セキュリティの業務を知りたいという人がいらっしゃると思います。

この記事を通して、そのような人にCy-PSIRTが普段どのようにセキュリティの業務に取り組んでいるかについて知ってもらい、製品セキュリティに関するお仕事のイメージを持つ機会としていただければ嬉しいです。

Cy-PSIRTとは

Cy-PSIRTとは、Cybozu inc. Product Security Incident Response Teamの略称です。名前の通りサイボウズ製品のセキュリティに関する問題に対応するチームです。 製品のセキュリティ品質を保ち、向上させることを目的として活動しています。

活動内容

Cy-PSIRTの主な業務は、サイボウズ製品のセキュリティ上の問題を検出・評価することや、脆弱性情報を公開することです。 セキュリティ上の問題を検出した際には製品開発チームに速やかに報告し、その問題が引き起こす現実的なリスクなどについて丁寧に説明することが求められています。また、脆弱性は自社サイト上で情報公開するのに加えて、公的機関へも報告しています。そのため、社内と社外の間のコミュニケーションを行う窓口としての役割もCy-PSIRTでは担っています。

Cy-PSIRTの業務
Cy-PSIRTの業務
ここからはCy-PSIRTが行なっている業務内容について検出、評価、報告、公開に分けて紹介していきます。

検出

Cy-PSIRTでは、自社製品に潜むセキュリティ上の問題を大きく2つに分類しています。 一つは、製品自体に潜む脆弱性であり、もう一つは製品が利用するサードパーティのライブラリに含まれる問題です。 これらの問題を検出するために行っている活動について紹介していきます。

社内検証

社内検証は、私たちCy-PSIRTのメンバーが社内で実施している脆弱性診断のことです。

脆弱性を検出したり、挙動に問題がないことを確認したりするために、製品開発チームで新規に開発された機能や不具合改修された既存の機能に対して基本的には毎バージョンで脆弱性診断を行っています。

具体的には、以下のような手順で実施しています。

  1. 検証対象の把握
  2. 検証観点の洗い出し
  3. 試験仕様書の作成
  4. 検証の実施

検証観点の洗い出しは、機能の要件や仕様書、ソースコード、動作時の挙動などを確認し、どのような脆弱性が対象の機能に潜んでいるかを予測しながら行っています。そして、洗い出された検証観点を基に試験仕様書を作成し、それに基づいて検証を実施しています。検証では、対象となる機能に合わせて手動による確認や自動検証ツールなどを組み合わせて行なっています。

社内検証では、実装されたソースコードや仕様書などの社内ドキュメントを利用して検証を実施できるのがメリットの一つです。

第三者機関による脆弱性診断

Cy-PSIRTではより多角的な検証を行い、さらなる品質向上につなげたいという考えから、専門のセキュリティベンダに脆弱性診断を依頼しています。診断は複数の企業に依頼しており、その内の1社には製品ごとに年1回の監査を実施してもらっています。Cy-PSIRTが行うのは、診断を依頼するためのヒアリングや検証してもらう機能の決定、スケジュールの調整、検出された問題に対する対応などです。

監査結果は、当社の製品セキュリティのサイトを通じて公開しています。

www.cybozu.com

脆弱性報奨金制度

サイボウズでは脆弱性報奨金制度を実施しています。これは、外部のセキュリティ専門家の方々など、より多くの方に製品の脆弱性を調べてもらうことで製品の品質を向上させていくための取り組みです。対象製品に脆弱性と疑われる挙動があった場合に参加者の方にご連絡いただき、脆弱性と判断された場合に報奨金をお支払いする制度です。

脆弱性報奨金制度について詳しく知りたい方は、以下のページをご覧ください。

cybozu.co.jp

Cy-PSIRTでは、脆弱性報奨金制度の運営に関わる全ての業務を行なっています。具体的には報告された問題に対してのトリアージ(再現確認や対応方針を決めること)や評価の対応、支払い、謝辞公開などです。毎年ルールを見直しており、その度に状況に応じた制度設計を行い、様々な施策を検討しています。過去には、プライベートプログラムやバグハン合宿を開催しました。バグハン合宿については過去の記事をご覧ください。

blog.cybozu.io

ソフトウェア属性情報管理

ソフトウェア属性情報管理は、サイボウズ製品が利用するサードパーティのライブラリに含まれる問題を検出する業務です。

ライブラリの情報を定期的に収集し、脆弱性情報を確認する業務を実施しています。脆弱性情報をより早く収集できるように様々なツールを利用しています。また、収集した脆弱性情報を対象のライブラリを利用している製品の開発チームに連絡し、必要に応じてライブラリのアップデートなどの対策を講じてもらっています。

評価

検出された問題が脆弱性に該当するかを検討し、脆弱性と認定された場合にはCVSSによる評価を行っています。評価は、複数人でのレビューや議論を通じて決定しています。

報告

Cy-PSIRTの報告には大きく分けて2種類あります。まず、1つ目は製品を開発している社内の製品開発チームや関係するチームに対して検出した脆弱性の情報を報告する業務です。もう1つは、検出された脆弱性の改修後にJPCERT/CCなどの外部の公的機関に対して脆弱性情報を届け出る業務です。

公開

脆弱性が改修された新しいバージョンのリリース後、Cy-PSIRTでは脆弱性情報を外部に公開しています。具体的な業務としては、公開する文面の作成やJPCERT/CCなどの外部の公的機関への届け出などを行なっています。この活動により広く情報を共有し、製品を利用されている方に必要な対応を実施してもらう目的があります。特にCy-PSIRTでは積極的な情報公開に力を入れています。

この業務により公開された脆弱性情報は、当社の不具合情報公開サイトやJVNなどの公的機関のサイトで公開されています。

kb.cybozu.support

その他の取り組み

モブ検証

Cy-PSIRTの社内検証では、モブ形式での新しい検証方法を部分的に取り入れています。

これは、モブプログラミングの知見を活かした検証方法です。モブプログラミングに関しては、過去の記事をご参照ください。モブ検証では、検証を担当するチームが実際に検証を実施するドライバーと検証に関してアドバイスを行うナビゲータの役割に分かれます。ドライバーは自身がどのような観点で検証をしているかについて話しながら検証を進めていきます。一方で、ナビゲータはドライバーが実施している検証内容を見ながら、検証に対する理解やアドバイスなどを行なっていきます。このように一つの検証を複数のメンバーで一緒に確認しながら進めていくのがモブ検証です。

モブ検証では、様々な観点で検証できたり、他のメンバーからのアドバイスを通じて知識をチーム内で共有することができたりするというメリットがあります。結果、検証の品質を一定に保つことやチーム全体での検証能力を向上させることができる取り組みとなっています。

外部イベントへの参加や社内勉強会の開催

Cy-PSIRTでは新しいセキュリティ情報の収集や検証能力の向上のため国内、国外問わずセキュリティイベントやカンファレンスへの参加を所属メンバーに推奨しています。これまでに、Code BlueやHardening、BlackHat、AppSecなどに参加しています。

また、社内勉強会を開催したり、セキュリティに関係する本やWeb上に公開されているドキュメントを輪講したりもしています。これらの活動によりメンバー全体での検証能力の向上や知識の共有を進めることに力を入れています。

おわりに

Cy-PSIRTは、サイボウズ製品のセキュリティに関する問題に対応するチームであり、セキュリティ面での品質を向上させる活動に取り組んでいます。

この記事を読んでいただき検証以外にも様々な業務をしているんだなと思った方もいらっしゃると思います。

私もチームの一員となって、Cy-PSIRTが検証以外にも様々な業務をしていることや社内・社外を問わず多くのチームと積極的にコミュニケーションをすることが多いチームであることを知り驚きました。また、業務を進めていく中で自身が取り組んだものが直接製品の品質向上に繋がっていくことが実感できるチームだと感じています。

今回の記事を通して、製品セキュリティのお仕事であるCy-PSIRTの業務内容についてイメージや興味を持ってもらえれば嬉しいです。

製品のセキュリティ面での品質を向上させることに興味がある方をCy-PSIRTではお待ちしております!

cybozu.co.jp