Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cy-PSIRTの取り組み

8,236 views

Published on

Cybozu Meetup #7 の発表資料です。
https://cybozu.connpass.com/event/63652/presentation/

サイボウズ脆弱性報奨金制度
https://cybozu.co.jp/products/bug-bounty/

Published in: Software
  • Be the first to comment

Cy-PSIRTの取り組み

  1. 1. Cy-PSIRT の取り組み Ikue Yamanishi
  2. 2. 自己紹介 ▌Ikue Yamanishi(@MtIkutea) ▌品質保証部 Cy-PSIRT 所属 ▌やっていること 社内のセキュリティテストの調整、脆弱性の評価(CVSS)、検証環境提供プログラム や報奨金制度の運営、外部通報の問い合わせ対応、脆弱性公開等… ▌好きなもの 愛犬(キノ 4歳7ヶ月)、バンド、旅行 2
  3. 3. Cy-PSIRTとは? Cy-PSIRTでどんな業務を行っているのかを紹介します。
  4. 4. Cy-PSIRT ▌Cybozu inc. Product Security Incident Response Team Cy-SIRT 及び、東京品質保証部の検証グループ下に所属する、製品のセキュリ ティ品質向上を目的として活動するチームです。 Point Of Contact(社外との窓口)としての役割があります。  サイボウズ脆弱性報奨金制度  バグハンター合宿  公的機関への脆弱性情報の届出  社内への脆弱性情報の共有・相談 等
  5. 5. PSIRT の取組内容 検出 受付 公開 その他 セキュリティテスト ソフトウェア 属性情報管理 脆弱性情報 の受付 脆弱性の評価 情報の公開 公的機関への 届け出 報奨金制度 の運営 検証環境提供プ ログラムの運営 5
  6. 6. 脆弱性の検出 ▌新しい製品の開発や新機能の追加時に脆弱性を検出し開発にフィードバック することで製品の品質向上を目指す  社内検証 社内で実施するセキュリティテスト、自動ツール及び手動での検証を実施しています。  外部検証 外部に依頼するセキュリティテスト、海外の企業に検証を委託しています。  外部監査 各製品、年に一度、外部の監査機関に検証を依頼し攻撃者の観点で脆弱な箇所を 発見できるかどうかを調査しています。  ソフトウェア属性情報管理 社内で利用しているサードパーティ製品を集約し、脆弱性情報を収集します。
  7. 7. ソフトウェア属性情報管理 ▌社内で利用しているサードパーティ製品情報を集約し、開発完了時・ 週次でセキュリティ情報の確認を行う  開発完了時にサードパーティ製品の情報をデータベースに収集し、都度更新す る  利用しているサードパーティ製品に脆弱性があった場合、関係するプロダクトへ連 絡する 現在は手動で実施しています。効率の良いセキュリティ情報収集のために、ツールの導 入にも取り組んでいます。
  8. 8. 脆弱性情報の受付 ▌「脆弱性BOX」と呼ばれる kintone のアプリで脆弱性情報を集約 ▌脆弱性情報の影響を評価することで脆弱性が製品に与える深刻度を CVSSv3を使って評価
  9. 9. 脆弱性情報の公開 ▌外部の方へ製品セキュリティに関係する情報を公開  脆弱性情報の公開(不具合情報公開サイト)  改修された脆弱性情報の一覧公開(サイボウズからのお知らせ)  脆弱性認定ガイドライン  公的機関(IPA)からの脆弱性情報の公開(JVN)  自社製品の届出(例: JVN#19241292 )  利用しているサードパーティ製品の影響状況の公開(例:JVNTA#94087669)  外部通報の謝辞掲載(品質の向上にご協力いただいた皆様)  セキュリティ監査結果の結果報告
  10. 10. 検証環境提供プログラム ▌本番環境への影響を考慮いただくことなく、安全に検証いただくために本 番環境とは回線およびサーバーを物理的に分離したシステムを提供して いる  検証環境(クラウド)のお渡し 毎月のリリースのたびに検証環境も更新しています!たまに障害やメンテナンスで 止まりますがご了承ください…。  検証用ライセンスのお渡し ▌検証環境提供プログラムについて https://cybozu.co.jp/products/bug-bounty/#TestingEnvironmentProgram
  11. 11. Cy-PSIRT で実施しているセキュリティテスト セキュリティテストは、社内検証・外部検証・外部監査の3段 構えで実施しています。
  12. 12. セキュリティテストの位置づけ ▌各製品の試験期間中にセキュリティテストを実施しており、通 常の機能試験でアクセス権の不備、セキュリティテストでその 他の脆弱性を検出します。
  13. 13. 社内検証(試験仕様書) ▌セッション・リクエスト・パラメーター単位で網羅的に検証を実施 試験仕様書に沿って検証を進めていきます。決まった攻撃コードを入力し一つ一 つ結果を確認していきます。
  14. 14. 社内検証(検証手順) ▌検証の実施方法を手順化したアプリに沿って実施 今後Webアプリケーション脆弱性診断ガイドラインの内容に合わせる予定です。
  15. 15. 外部検証 ▌外部の脆弱性検証を実施する企業に委託 社内検証とは別で、外部にセキュリティテストを依頼しています。社内検証とは異 なり、網羅的な検証ではなく、複数のツールを利用した検証を実施いただいていま す。 弊社HPの検証は外部検証のみ実施しております。
  16. 16. 外部監査 ▌攻撃者の観点からの指摘 外部の監査機関に検証を依頼し攻撃者の観点で脆弱な箇所を発見できるかど うかを調査しています。 監査結果は改修完了次第、 弊社HPに掲載しています。 セキュリティ監査結果
  17. 17. Cy-PSIRT の工夫 サイボウズのサイボウズによるサイボウズのための取り組み。
  18. 18. Cy-PSIRT の工夫 ▌情報の管理 ▌業務の提案 ▌他チームや社外の方との調整
  19. 19. 情報の管理(とにかく管理する情報が多い!) ▌情報もろもろ  製品の脆弱性  バグハンターからの問い合わせ  報奨金のお支払い  謝辞への掲載  サードパーティ製品の脆弱性  公開する脆弱性  セキュリティテストのスケジュール  検証環境提供プログラムの利用者  検証環境提供プログラムのメンテナンススケジュール どなど・・・・ とりあえずやってたら収拾がつかない\(^o^)/
  20. 20. 情報の管理(サイボウズでよかった) ▌kintone アプリを利用 必要な情報を業務の分類毎にアプリを作って 管理しています。 利用しているアプリの一部…!!!
  21. 21. 情報の管理(脆弱性情報) ▌脆弱性情報は脆弱性BOXと呼ばれるアプリを利用 脆弱性識別番号 は自動採番 製品を選択 プロダクト側で管理して いる不具合管理アプリ 外部からの問い合わせを 管理しているアプリ 脆弱性についての詳細を記載 どこから報告された 脆弱性かを選択
  22. 22. 情報の管理(CVSSv3 を使った評価) CVSS計算用のアプリを使って脆弱性を評価。便利で す。 脆弱性BOXに評価内容が 表示されます 改修後に公開された記事の 情報も表示されます 無事公開されました
  23. 23. 情報の管理(業務内容) ▌業務の種類も多いので誰が何をどうするかを明文化 業務の主担当 業務に携わる人 業務フロー 業務に必要なドキュメントのありか 業務に必要なやり取り場所 明文化するためのアプリを作っています。明文化することで、業務について誰が把握して いるのか、誰に相談すれば良いのかを把握でき、異動が多い場合でも引き継ぎも楽にな ります。
  24. 24. 情報の管理 kintone を制するものは情報を制します。
  25. 25. 業務の提案(未熟なチームで何から始めれば…) ▌できたてほやほやな Cy-PSIRT 現時点で出来ていることは最低限のこと。品質向上の為の取り組みもまだまだ。 新しくやるべきことは多いです。 品質を向上するために他にどんなことをすれば良いか 報奨金制度を盛り上げるには 外部の方とより関わりを持つ方法 チームメンバーの技術力の底上げ 既存の業務を効率化させるためのツール導入
  26. 26. 業務の提案(あっさり実現されます) ▌あっさり承認された例  自動検証に使うツールを購入したい  Black Hat 行きたい  Hardening 行きたい  報奨金制度でやりたいことがある  サードパーティ製品の脆弱性調査を自動化したい などなど…
  27. 27. 業務の提案(思いついたらすぐ提案する) ▌提案するために… 思いついたらとりあえずやる すぐ出来ないなら思いついた時に書き込める場所を用意しておく 正社員でもアルバイトでも派遣でも気軽に意見を言えて取り組める状態にする 現在の取り組みを分析して足りないところを補う チーム外の人からも探る 外のイベントから情報収集
  28. 28. 業務の提案 気軽に取り組める環境を整える!(目標)
  29. 29. 他チームや社外の方との調整(調整多い…) ▌POC(point of contact)業務=調整… 製品に関する決定権を Cy-PSIRT は持たないので、決定権を持つプロダクトとの調整 も多いです。バグハンターや公的機関とのやり取りも発生します。 サイボウズからの脆弱性情報いつ公開するか JVNからの脆弱性情報いつ公開するか 怪しい挙動…脆弱性と認定して良いのか仕様なのか? 報告いただいた脆弱性をサイボウズの共通仕様にした方がいいかどうか 評価方法を変える(CVSSv2→v3)時の各方面との調整 新しいツールの導入に際して開発者と相談
  30. 30. 他チームや社外の方との調整(やはりサイボウズで良かった) ▌基本はオンラインでやりとり。オンラインはツールが重要。ここでも kintone。 PSIRTの非公開スペース。適切な場所で話し合えば情報が追いやすいです。
  31. 31. 他チームや社外の方との調整(社外の方ともkintone) ▌ゲストスペースを使った社外の方との調整 メールでのやり取りは少なく、ゲストスペースに他社の方を招待してやり取りを行っていま す。
  32. 32. 他チームや社外の方との調整(問い合わせの対応) ▌アプリでやり取りの時系列・進捗をチェック 問い合わせ管理アプリを使っています。メールのやり取りはメールワイズ。
  33. 33. 他チームや社外の方との調整(気をつけていること) ▌ステークホルダーが多いため各方面の意見の橋渡しをして折衷案を探す 社外の方と社内の意見がずれることは多い 同じ会社でもチームが違うと意見がずれることも…? ▌どこで誰と調整するかを明確にする 誰に確認するべきか決めておかないと議論が進まない どこ(のスレッド)で確認するか決めておかないと後々情報が追えない ▌複雑化する案件は時系列でやりとりをまとめておく バグハンターと社内のやり取りは特に情報が分散してあとで追い難くなります…
  34. 34. 他チームや社外の方との調整 正しく伝わるように情報整理をして意見を正しく伝える! とはいえ、試行錯誤の連続です。 とある脆弱性の永い議論 https://www.slideshare.net/Mtikutea/ss-70116839
  35. 35. まとめ Cy-PSIRT は報奨金制度の対応を行っているチーム 実は報奨金制度以外にも色々やっていてやろうとしている セキュリティテストは手厚めで頑張っている Cy-PSIRTはサイボウズ製品で成り立っていて自社製品が大好き セキュリティエンジニアも募集しているので是非サイボウズへ…!

×