freeeの開発情報ポータルサイト

freee Red team 発足から 2024年を振り返ります

こんにちは!PSIRT ( Product Security Incident Response Team ) でお仕事をしています、kaworuです。 この記事は freee Developers Advent Calendar 2024 Advent calendar 21日目です。 今年も残すところあと10日!今日はfreee の Red teamについての記事を書きます。

freee Red teamの発足と模索

Red teamは、攻めの視点からセキュリティを担当する役割です。 対して、守りの役割はBlue teamと表現します。 両チームあって効果が発揮され相互に高め合う関係性から、freeeでは別の組織に分かれておらず、PSIRTの中の役割として存在します。

freee PSIRTのred teamのイメージ 同じPSIRT内で役割を持っており、 左側に攻めの役割としてPSIRT ロゴから Red team赤いティラノサウルスのモチーフ、右側に守りの役割として青いトリケラトプスのモチーフが描かれ、中央にfreeeの雲のイラストが存在する

さかのぼること1年半前の2023年7月より、自分たちは freee の Red teamと宣言しました。 Red team の Mission を定め、最初の1年を「Red team 発足 & 発展への足がかりをかためる」としたものの……正直、何をすれば Red team なのだろうか?という状態での発足でした。

わからないなりに、Red team といえば penetration test(侵入テスト)だろうと、まずは期の目標の一つに定め取り組んでいきます。 結果は、攻撃シナリオを立て、数回のテストを行うにとどまり、それを生業とする状態にはなりませんでした。

要因として、定常業務の負荷ももちろんあるものの、直接的な課題としてはシナリオ立案に注力する一方で、試行が少なかったことが挙げられました。 そしてなにより、Red team自体の課題として、本来であれば攻撃者より内部に通じている利点があるにもかかわらず、その利を活かせていないことがありました。

どんどん試行していこう……専門家の手を借りて、Red teamの取り組みを加速させる

模索するRed teamに対し、Blue teamはこれまでの取り組みがしっかり形になってきました。手応えを感じるシーンが増えてきたこともあり、一度きちんと評価を行いたい状況でした。 とはいえ、Red team は前述のような状況です。そのため、専門家の力を借りて評価を行い、Red team の取り組みを加速させることにしました。

Red team演習での体制を表した図。 右側、攻めの役割Red teamとして専門家、左側、守りの役割Blue teamにPSIRTが位置する

2024年 1月 〜 6月のプロジェクトで、外部の攻撃者の目線で、OSINTと呼ばれる偵察活動からスタートし、実際の侵入テストへと進んでいきます。 この演習のハイライトとしては、SSRF脆弱性に由来した、不正な通信のalertから始まる一連のincident responseです。 詳細は催し*1にてお話しさせて頂いたため、本記事では省略します。

Red team演習のスケジュールが書かれている。1月kickoff, 1-2月OSINT、3-5月侵入テスト、5-6月評価。6月末に報告会が開催され、各項目の合間に準備が進むスケジュール。

演習後 (2024年7月〜)は、受けた指摘の修正や対応の計画を立て、実施していていきました。 あわせて、横並びで問題ないかの点検も行う機会となりました。

一連の流れを通し、また指摘やその対応を通して自分たちが今後Red teamをどのように取り組んでいくべきか、より詳細な道筋に落とす機会となりました。

事業会社ならではのRed teamになろう……内部ならではの利点を生かす

Red team演習を進める傍ら、freeeそのものへの解像度をあげようという取り組みもすすめていきました。 例えば、「Attack Surface Management? はじめました 」について。 ブログ公開当時はタイトルに?がついていた取り組みですが、この1年を経て疑問符は外して良い仕組みにアップデートされています。

内部ならではの利点を活用してRed teamをやっていくのであれば、freeeに特化した偵察の道具があるといいな、ということで ASMと呼びつつも、service inventory のような側面や、freeeの標準構成でないものを見つけられるようなものにも進化してきました。 そんないろいろな面のひとつとして scanner、ASMの面があるような形になっています。

例えば、このような感じに変更のお知らせ*2をslackに通知してくれます。

freee補助金のサービス終了時に、ステータスコードの変更、スキャン結果とそのトリアージ内容についてのお知らせ
(サービスをご利用いただき、ありがとうございました!)

運用のフレームワークとしてはCTEM (Continuous Threat Exposure Management) になってきます。 変化を検出し、トリアージし、穴を塞ぐための仕組みの一つとして活用しています。 そして、未知の脅威がありうるヒント、攻撃をためしていくきっかけとして、Red teamの取り組みを支えてくれているものでもあります。

freee Red team の Mission Vision Value とこれから

最後に、Red team発足時に立てた Missionと、その後活動しながら言語化していった Vision、 Value を紹介します。 freeeの価値基準を意識しながら、Red team のみんなで言葉にしていきました。

Red team MVV Mission freeeの脅威をHack★する Vision freeeの一番最初で最強の脅威になる Value freee のbest friendになる 攻撃=freeeの悪いところを見つけていうからこそ親友のような関係性になろう! Impact最大化のために探索・深化し続ける どんな悪いことができるのかワクワクしながらフットワーク軽く探索・攻撃! 効率化・高度化(深化)し続ける! マジ脅威ドリブン freeeのVisionに対するサイバーセキュリティ上の脅威(=マジ脅威)にフォーカスし続ける!

Red teamでこのMVVの見直しを行っていたときに、 「(Red teamと言えるようになってきたのは)valueに沿った行動ができたからだと思う。」とチーム内でコメントがありました。 少しずつですが、freee の Red teamとしてあれるようになってきたのかな、と考える、そんな発足から〜2024年の振り返りでした。

明日は同じくPSIRTより、blue team の eijiさんの記事です。お楽しみに!!

*1:IERAE DAYS2024 より session "freeeのプロダクトセキュリティとレッドチーム演習"

*2:実際に問題があったスクリーンショットは、ぼかし加工を入れないといけないので、そのまま載せて支障のないお知らせをピックアップしています