Chatwork Creator's Note

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

読者になる

【2021年度】BugBounty報告事例公開

こんにちは。プロダクトセキュリティ部の新沼(@twinuma)です。

最近、息子と一緒にLaQでいろんなものを作ることが楽しいです。初めは何も分からなかったので、学童で日頃遊んで馴染みがあった息子に教えてもらいながら始めました。

さて今回の内容ですが、弊社は2017年からBugBountyを運営しており、ホワイトハッカーから届く報告のトリアージ作業、認定した脆弱性への対応を日々おこなっています。 詳細はこちらをご確認ください。

creators-note.chatwork.com

今回は、(今更ですが)2021年度に脆弱性報告された中から脆弱性認定した報告を公開していきたいと思います。

脆弱性報告サマリー

今回報告する対象期間は、2021年3月1日から2022年4月1日までとしています。
報告数は186件で、うち脆弱性認定した報告は10件でした。

脆弱性報告一覧

以下、認定された一覧です。 報告された脆弱性に対して、社内の認定金額基準に従って認定金額を支払いしています。 今回は対象期間中に、470,000円の認定金額を報告者に支払っていました。

上記一覧から、認定された報告をいくつかピックアップしてみます。

MovableTypeにおけるRCE認定報告

【用語解説】 RCE(Remote Code Execution)とは

文字通り遠隔から任意のコード実行ができる脆弱性のことを指します。 これが見つかると以下のようなリスクが考えられます。

  • リモートからコードが実行できるということは、自由にセキュリティの穴を作ることができる
  • 許可していないのにSSH接続できたり、ファイルを転送するなどのことができるようになる
  • 中のデータを抜き取ることはもちろん、踏み台として別のターゲットへの攻撃に利用されることがある

この脆弱性を利用されると影響が大きいため、BugBountyにより報告された場合はすぐに調査を行う必要があります。

報告認定から対応まで

我々が管理しているサイトのいくつかは、シックス・アパート社が提供しているCMSのMovableTypeを使用しています。
そのいずれかのサイトに対して、RCE(Remote Code Execution)が可能な状態でした。 詳しくは下記の記事をご覧ください。

www.jpcert.or.jp

BugBountyの報告を確認した弊社は、臨時でグループチャットを作成し、関係者と対応について会議を行いました。 CMSを運営しているシックス・アパート社に連絡し状況説明しました。シックス・アパート社での調査の結果、脆弱性がゼロデイであること、JPCERTと公開に向けて調整中であることを確認しました。さらに、翌日に最新版を提供予定であることを確認しました。

最新版公開までの暫定対応として、mt-xmlrpc.cgi の無効化の対応を行いました。

翌日公開されたリリースノートには【Thanks To】にChatworkの名前が記載されていました。

www.movabletype.jp

プロトタイプ汚染報告

【用語解説】 プロトタイプ汚染攻撃とは

攻撃者がJavaScriptオブジェクトのプロトタイプを書き換えることで、情報を盗んだり、オブジェクトの振る舞いを変更したりする攻撃のことです。
詳しく知りたい方は、こちらが分かりやすいです。

jovi0608.hatenablog.com

プロトタイプ汚染攻撃によってスクリプトが実行されるとの報告がありました。

報告認定から対応まで

管理しているサイトの問い合わせフォームにプロトタイプ汚染の脆弱性があるとの報告がありました。 報告内容通りにプロトタイプ汚染攻撃によってスクリプトが実行されることが再現できたので、脆弱性認定を行いました。

BugBountyの報告を確認した弊社は、臨時でグループチャットを作成し、関係者と対応について会議を行いました。 状況を確認したところ、対象ページは現在は利用されておらず不要であるため削除対応しました。

ビジネスロジックに関する報告

こちらの報告はChatworkのロジックに関する報告です。

権限がなくなったグループチャットに存在する過去のタスクに対して操作ができるという報告です。 影響として、権限がなくなったユーザがタスクに対して操作を行うことができるため、現在権限を持っているユーザのタスクに対しても内容の変更や削除が可能になるというものでした。

BugBounty報告の多くは、英語で一般的な脆弱性に関するものですが、ビジネスロジックに対しての報告もたまにあります。 特に日本語でビジネスロジックに対して報告が上がってくるときは、報告内容が正しいため認定となる可能性が高いです。 そのため、BugBountyにより報告された場合は優先度を高く調査を行う必要があります。

報告認定から対応まで

報告内容通りに実行できることが再現できたため、脆弱性認定を行いました。 BugBountyの報告を確認した弊社は、関係者に対応について相談を行いました。 報告内容に基づいて修正を行いリリースを実施しました。

まとめ

BugBountyプログラムを開始して5年になりますが、引き続き継続していきたいと思っています。 また継続的に行うことでBugbounty.jpの認知向上とChatworkのセキュリティに対する取り組みを皆さんにお伝えしていきたいと思っています。

最後までお読みいただきありがとうございました!

プロダクトセキュリティ部では一緒に働いてくれる仲間を募集しています!

hrmos.co