はじめに
こんにちは、PSIRTのまさきちです。
本記事は、サイボウズのエンジニアが技術ブログ記事を毎日投稿するイベント「CYBOZU SUMMER BLOG FES '24」(Newcomer Stage) DAY 9の記事です。
今回はPSIRTの新卒3人が「脆弱性報奨金制度の歩き方」についてご紹介します。
紹介する経緯としては、外部アカウント連携ができ複数社のプログラムへの参加が可能な他社のBug Bountyプラットフォームへの登録に比べて、自社の脆弱性報奨金制度への登録の敷居が高いという認識がありました。そのため、少しでも登録の敷居が低くなるように、新卒の目線でサイボウズの脆弱性報奨金制度について解説しようと思います。
本記事では、以下の内容に沿って各新卒メンバーが執筆を行います。
- はじめに(まさきち)
- 脆弱性報酬金制度とは(まさきち)
- 報告用サイトおよび検証環境の申し込み方法(まさきち)
- 脆弱性を探す上での参考情報(JJ)
- 脆弱性の報告方法(北村)
- 終わりに(まさきち)
この記事を読んでいただければ、検証環境の申し込み方法や脆弱性の報告方法など、サイボウズの脆弱性報奨金制度の始め方がわかるような内容になっています。
本記事に掲載しているスクリーンショットや報酬金は作成時点(2024/08/09)での情報となります。最新の情報は各リンクなどをご参照ください。
脆弱性報奨金制度とは
製品やサービスの脆弱性に関する報告をし、その報告内容に応じた報奨金を受け取れる制度です。 サイボウズでは、下の図のような流れで脆弱性を報告します。
脆弱性報奨金制度に参加して報告するには、アカウントが必要となるため、初回のみアカウントのお申込みをしていただきます。 その後は、検証を行い脆弱性を見つけたら報告していただく流れとなっています。
脆弱性検証環境提供プログラムについて
実際にお客様へ提供している環境とは別に検証用の環境を提供しています。 そうすることで、お客様の環境に影響を与えずに脆弱性を検証することが可能です。
報奨金について
脆弱性の種別によってお支払いする報奨金の金額が変わります。 下記が各製品の脆弱性種別における報奨金額です。
製品・サービス
kintone(*1) cybozu.com共通管理(*1) cybozu.com Store kintone アプリストア |
Garoon(*1) メールワイズ Office |
cybozu.com運用基盤 セキュアアクセス Cybozu Desktop2(Windows版) |
|
---|---|---|---|
RCE | 200万円(固定) | 200万円(固定) | 200万円(固定) |
SQLインジェクション | 40-160万円 | 10-100万円 | |
XSS | 10-40万円 | 5-20万円 | |
インジェクション(SQL以外) | 5-35万円 | 4-20万円 | |
アクセス制御の不備 | 20-80万円 | 5-40万円 | |
モバイルアプリ特有の脆弱性 | 1-200万円 (対象:kintoneモバイル) |
1-200万円 (対象:クラウド版 Garoon モバイル、サイボウズ Office モバイル) |
|
その他 | 1-200万円 | 1-200万円 | 1-200万円 |
(*1)各製品が提供するAPIを含む
Webサイト
金額 | |
---|---|
RCE | 100万円(固定) |
RCE以外 | 2万円(固定) |
詳しくは下記リンクを御覧ください。
ポイントについて
サイボウズでは、ポイント制度を取り入れています。 報奨金とは別にポイントを獲得でき、獲得ポイント数に応じて弊社が定める賞品と交換することができます。
下記が報告により獲得できる基本ポイントの判断基準です。
項目 | ケース | 詳細 | ポイント |
---|---|---|---|
1 | 製品・サービスの脆弱性(RCEは除く) | 製品・サービスの脆弱性が報告された | 10~40 |
Webサイトの脆弱性(RCEは除く) | Webサイトの脆弱性が報告された(※以降の2と3は適用されません。) | 10 | |
RCE | RCEが報告された | 40 | |
2 | 再現手順の的確さ | 報告内容をもとに弊社で決定いたします。 | 0 or 10 |
3 | 影響範囲の明確さ | 報告内容をもとに弊社で決定いたします。 | 0 or 10 |
4 | cybozu.com運用基盤への影響あり | 「cybozu.com運用基盤」へ影響のある脆弱性情報が報告された | 10 |
5 | Cybozu賞 | 年に1度報告内容のうち、弊社で「社内影響度」「緊急度」「インパクト」などを総合的に判断し、選出いたします。(※決定したタイミングでポイントが付与されます。また、ポイントは選出された報告ごとに付与されます。複数の報告が選ばれる可能性もございます。) | 100 |
※ポイントの参考値であり、実際の獲得ポイントは弊社で決定いたします。報告以外にもイベントへの参加や検証実績に応じてポイントを付与する場合があります。
詳しくは下記リンクを御覧ください。 github.com
リアルタイムポイントランキング
報告者の皆さんの獲得したポイント数を集計し、ランキング形式で弊社Xのアカウントなどで公開しています。ランキングの表示名は指定していただくか、匿名からお選びいただけます。
現時点での累計ポイントランキングです🏆
— Cybozu BugBounty (@CybozuBugBounty) 2024年7月24日
こちらでは年に一度の公開を予定しております。
なお、2022年以降に獲得した累計ポイント数となります。
弊社報告用サイトにおいてもポイントランキングを表示しており常時閲覧可能ですので、ぜひご覧ください!https://t.co/92e5CzvWZU pic.twitter.com/g7tAhbUprM
swagリスト
獲得ポイント数に応じて交換できる賞品のリストです。
下記が2024年度の賞品リストです。
必要ポイント | ギフトタイトル |
---|---|
40pt | SwitchBot 温湿度計 |
100pt | AirTag |
150pt | プライベートプログラム招待券/ Private bugbounty program invitation ticket |
200pt | Switchbot カーテン |
430pt | 東プレ REALFORCE R2 テンキーレス「PFU Limited Edition」 |
460pt | SHOKZ OPENCOMM |
510pt | Qrio Lock(Q-SL2) |
730pt | 東プレ REALFORCE R3HH21 |
730pt | 東プレ REALFORCE R3HG11 |
740pt | Happy Hacking Keyboard Professional HYBRID Type-S |
1190pt | Meta Quest 2 128GB |
1400pt | デロンギ 全自動コーヒーメーカー マグニフィカS エントリーモデル |
※開催年によってリスト内の賞品が変わることがあります。
報告用サイトおよび検証環境の申し込み方法
1. 報告用サイトアカウントお申込みフォームにアクセス
- 報告用サイトは、サイボウズのkintoneを使い、報告者様とサイボウズの間で連絡をとるためのサイトです
- Public Form
2. 必要事項を入力する
- 名前
- メールアドレス
- 言語選択
- 招待コード
- 通常の報奨金制度とは異なる条件や限定製品への検証を許可するプライベートプログラムへの招待コードのことです
- 事前に招待コードを受け取った方は入力してください、通常は不要です
- 脆弱性報奨金制度の参加可否
- 報告用サイトアカウントお申し込みフォームでのみ参加可否を表明できます
- 脆弱性検証環境も申し込む
- 脆弱性検証環境の提供を希望される方、または、ご利用中の方は「同意します / I agree」を選択してください
- すでに同一メールアドレスで脆弱性検証環境をお持ちの方は追加での提供はできません
3.「確認画面へ進む」を押してください
4. 入力内容の確認と送信
- 入力した内容が間違っていないか確認してください
- 申込み後数営業日で登録していただいたメールアドレス宛に、アカウントと検証環境の案内メールが届きます
脆弱性を探す上での参考情報
前章では検証環境のアカウント申込方法を説明しました。この章では、検証環境で提供される製品についての概要と製品における過去の脆弱性を、脆弱性を探す上での参考情報として紹介します。
製品理解
検証環境で提供される各製品についての説明はこちらです。
製品 | 概要 | 詳細 |
---|---|---|
cybozu.com共通管理 | cybozu.comの各サービスに共通する項目を一元管理できるサービス | ユーザーや組織の追加・削除、権限設定などのユーザー管理、二要素認証やIPアドレス制限などのセキュリティ管理、OAuthを用いた外部のサービスとの連携に用いることができる。 |
Garoon | 中堅・大企業向けのグループウェア | ・スケジュール・施設予約などの予定管理、ポータル・掲示板などの全社連絡、ワークフローを用いた申請、コミュニケーションなど幅広い機能(参考)。 ・20年以上の歴史があり、サーバサイドはPHPを用いて開発されている(参考)。 |
サイボウズOffice | 「誰でもかんたんに使える」中小企業向けのグループウェア | ・予定管理、全社連絡、申請、コミュニケーションなどの機能が備わっており(参考)、プレミアムコース限定でカスタムアプリが作成できる(参考)。 ・25年以上の歴史があり、サーバサイドはC++と独自のScript言語を用いて開発されている。 |
kintone | 業務アプリが作れるノーコード・ローコードツール | ・データを蓄積・一覧・検索できるデータベース機能と、コミュニケーション機能が備わっている。 ・アプリにおいてはアプリ単位から特定のデータまで、特定のユーザーから組織までを対象として閲覧・編集・削除などの詳細なアクセス権の設定ができる(参考)。 サーバサイドはJava(Spring Framework)を用いて開発されている。 |
メールワイズ | チームでのメール対応を一元管理して効率化ができるメール共有システム | メールの送受信はもちろん、メールのステータス管理機能、コメント機能、対応履歴などの機能が備わっている(参考)。 |
各製品のアップデート情報を参考にすることで、最近追加された機能や最近の修正箇所を確認することができます。脆弱性を探す上ではこれらのアップデート情報も参考になります。
- cybozu.com共通管理: cybozu.com共通APIのアップデート情報まとめ - cybozu developer network
- Garoon: クラウド版 更新情報|サイボウズ Garoon(ガルーン)
- サイボウズ Office: 製品アップデート情報 クラウド版 | サイボウズ Office ユーザーポータル
- kintone: kintone(キントーン)- 主なアップデート | サイボウズの業務改善プラットフォーム
- メールワイズ: アップデート履歴|メール管理・メール共有システムのメールワイズ
過去に報告された脆弱性の例
上記で紹介した製品において、過去に存在していた脆弱性をいくつか紹介します。サイボウズ製品の過去の脆弱性を調べるには、不具合情報公開サイトやセキュリティ情報のお知らせが参考になります。以下では、各製品でここ3年以内に報告された脆弱性の一部を紹介します。
不具合情報公開サイトとセキュリティ情報のお知らせはクラウド版の脆弱性も公開していましたが、2024年5月以降はパッケージ製品(Garoon/サイボウズ Office/メールワイズ)のみを公開対象としております。
cybozu.com共通管理
- [CyVDB-2078]パスワードリセットリンクに関する不適切な認証の脆弱性
- [CyVDB-1669]メールに関する不適切な入力確認の脆弱性
Garoon
- [CyVDB-3165]マルチレポートに関する操作制限回避の脆弱性
- [CyVDB-2514]意図しないファイルが読み込まれる脆弱性
- [CyVDB-3042]複数アプリケーションにおける情報漏えいの脆弱性
サイボウズ Office
- [CyVDB-3641]カスタムアプリに関するクロスサイトスクリプティングの脆弱性
- [CyVDB-2030]HTTPヘッダインジェクションの脆弱性
- [CyVDB-839]ファイル管理に関する閲覧制限回避の脆弱性
kintone
- [CyVDB-1780]アプリに関するサービス運用妨害 (DoS) の脆弱性
- [CyVDB-3080]アプリの設定に関する不適切な入力確認の脆弱性
- [CyVDB-2702]ピープルに関する閲覧制限回避の脆弱性
メールワイズ
- [CyVDB-2654]メール受信に関するサービス運用妨害 (DoS) の脆弱性
- [CyVDB-1308]メールに関するクロスサイトスクリプティングの脆弱性
認証・認可・アクセス制御の不備、クロスサイトスクリプティング(XSS)、DoSなどの脆弱性が多く報告されている印象があります。特にサイボウズではグループウェア特有のアクセス制御の設定不備による脆弱性が確認されるため、注目してみると良いかもしれません。
検証における禁止事項
検証においては、いくつかの禁止事項があります(参考)。
まず、実際にお客様へ提供している環境への脆弱性検証は禁止されています。クラウド製品への脆弱性検証は(サブドメイン).cybozu-dev.comのみ実施可能であり、検証環境内のみ検証が許可されています。また、cybozu.com共通管理のお問い合わせ機能に対する脆弱性検証は実施できません。そして、環境に著しい負荷を与える検証は実施できません。自動検証ツールなどを用いて、検証環境に多数のリクエストを連続で送信するのはNGです。
これらのルールを守った上で安全に脆弱性を探しましょう。
脆弱性の報告
前章を踏まえて、弊社製品に何か脆弱性と思われる挙動を発見した場合には、報告用サイト(cy-bugbounty.cybozu.com)を通じて報告していただきます。この報告をPSIRTでレビューし、脆弱性や有益な報告である場合は、初めに説明したポイントや金額をお渡しする流れになります。
ここでは、脆弱性を見つけた後の報告の仕方や良い報告を書く上でのポイント、報告後のやり取りについて説明します。
脆弱性の報告方法
報告の作成
「報告用サイトおよび検証環境の申し込み方法」で作成した報告用サイトのアカウントでログインします。
脆弱性報告フォームが存在するので、そこから報告を作成します。
報告に書く内容
脆弱性報告フォームを押すと、以下の画面に遷移します。
報告の登録には、「*」がついている箇所の記入が少なくとも必要になります。
必要な登録内容
- ご連絡内容
- 発見した製品が該当する方を選択してください。
- 製品名/サービス名
- 概要
- 報告内容がわかるタイトルを記入してください。
- 再現手順
- 発見した脆弱性を再現する手順を記入してください。
- 事前準備として必要な手順やどの環境にログインして、どういう操作をすれば良いのかを記入してください。
- 報奨金制度の参加要否
以上の内容を記述していただいた上で、保存していただくと、PSIRT内で報告の確認をし、評価しますので、少々お待ちください。
スムーズに報奨金を獲得するコツ
ここまでで、報告方法については理解していただけたと思いますが、報告者、PSIRT共にwin-winになる報告をする上でのポイントを説明します。本制度では、わかりやすい報告を作成していただけると報告者にはポイントの付与があります。そして、PSIRTには再現や評価が容易になったり素早い返信が可能になる、わかりやすい報告を書いてただけるとwin-winなわけです。
わかりやすい報告を書く上で心がけるポイントは以下の3点です。
- 再現手順を細かく、ユーザが行う操作を1つずつ記述する
- 脅威シナリオを考える
- 報告する脆弱性を悪用してどのようなことができるのか、どういうシナリオが考えられるのか、まで説明していただけると、適切な評価が可能になります。
- 画像や動画をPoCファイル欄に添付する
以上のように、わかりやすい報告というのは、往々にして書くのは面倒なものですが、是非心がけていただけると幸いです。
報告後のやり取り
報告していただいた後は、こちらで評価を行い、必要に応じて報告者へ追加の情報をお聞きします。連絡には、報告に紐付いたコメントアプリで管理しており、具体的な方法は報告の上部にまとまっています。
また、通知に気づきやすくなるようにメール設定やkintoneアプリのインストールをお勧めします。メール設定については、報告環境内のFAQに記載しておりますので、適宜ご確認ください。
以上で、報告いただいた脆弱性が認定された場合、無事に報奨金ゲットになります。脆弱性として認定されなくても、弊社として有益な情報として判断された場合にはポイントの付与がされます。ポイントによってswagと交換できますので、たくさんのご報告お待ちしております!!
終わりに
本記事では、サイボウズの脆弱性報酬金制度について説明し、脆弱性を探す上での参考情報や報告する方法について解説しました。サイボウズの脆弱性報酬金制度では、ポイント制度が導入されていたり、検証用の環境が提供されるといった参加者へのメリットがあります。
さらに、サイボウズの脆弱性報酬金制度へ尽力されている方には、イベントの招待も行っており、過去にはバグハン合宿などのイベントも開催しております。
また、今年でサイボウズの脆弱性報奨金制度は10周年を迎えるため、お世話になっている皆さんに向けて10周年記念のイベントなどを検討しています。 これも多くのセキュリティ専門家の方々のご協力のおかげです。ありがとうございます!!! 詳しい内容が決まりましたら告知させていただきますので、よろしくお願いいたします。
このようなメリットがたくさんある脆弱性報奨金制度を運営しておりますので、是非ご参加ください!!