2023年1月4日、当社はお客様へセキュリティインシデントアラートを発信しました。本文では、本インシデントについて何が起き、何がわかったのか、そして今後のセキュリティ体制を継続的に改善していくための計画について説明いたします。
初めに、このインシデントによりお客様の業務に支障をきたしたことを、心よりお詫び申し上げます。また、当社が調査を行っている間、シークレットのローテーションや無効化を含め、お客様やコミュニティの皆様が柔軟に対応してくださったことに、感謝申し上げます。
まだ対策をとられていないお客様は、お客様のサードパーティーシステムやデータストアへの不正アクセスを防止するため、早めの対策をお願いいたします。責任を持った情報公開を念頭に、スピードと調査結果との整合性のバランスを追及した結果として、本日本インシデント レポートをお届けします。
インシデントレポート目録
- 何が起きたのか
- 攻撃経路が閉鎖され、安全にビルドができるのか
- お客様とのコミュニケーションとサポート
- 自分は影響を受けたのか
- 内部調査をサポートするための詳細情報
- 本件から得られた知見と今後の具体的な対策
- 従業員の責任とシステムの安全対策
- セキュリティのベストプラクティス
- おわりに
何が起きたのか
注: 特に記載のない限り日時はすべてUTC (協定世界時) での記載となります。
2022年12月29日、あるお客様からGitHub OAuthの不審なアクティビティについて報告を受け、CircleCI セキュリティチームはGitHubと協力し調査をいたしました。 2022年12月30日、報告のあったお客様のGitHub OAuthトークンが第三者によって侵害されていたことが判明しました。このお客様はすぐに問題を解決することができましたが、当社は慎重を期し、すべてのお客様に代わってGitHub OAuthトークンをローテーションするプロセスを2022年12月31日に開始しました。GitHubと協力してAPIレートの制限を増やしたものの、ローテーションの進捗は遅々として進みませんでした。この時点では、他のお客様に影響が及んでいるかどうかは不明でした。当社は、証拠を保持したまま、不正な第三者による被害が拡大しないよう注意深く、分析範囲を拡大し調査を続けました。
2023年1月4日までに、当社の調査により、不正な第三者による攻撃の範囲と進入経路が特定されました。現時点で、不正な第三者がCircleCIエンジニアのラップトップに展開されたマルウェアを利用して、有効な2 要素認証でバックアップされたSSOセッションを盗み出したことがわかっています。このラップトップは、2022年12月16日にマルウェアに感染しました。このマルウェアは、当社のアンチウイルスソフトウェアでは検出されませんでした。調査の結果、不正な第三者がセッション Cookie を窃取したため、遠隔地で攻撃の対象となった従業員になりすまし、当社の本番環境の一部にアクセスを拡大することができたことがわかりました。
対象となった従業員は、通常業務の一環として本番環境のアクセストークンを作成する権限を持っていたため、当該の権限を有しない第三者は、お客様の環境変数、トークン、キーなど、データベースやストアの一部からデータにアクセスし、流出させることが可能でした。証拠に基づくと、当該第三者は2022年12月19日に予備調査を行ったと見られます。そして、データの流出が2022年12月22日に発生しました。当社の記録の限りでは、これが当社の本番環境への権限のない第三者による最後のアクセスです。すべてのデータは暗号化された状態で保存されていましたが、第三者は実行中のプロセスから暗号化キーを抜き出し、暗号化されたデータにアクセスできる可能性があることを確認しました。
万全を期すため、当社の内部調査に加えて、第三者のセキュリティ専門家に調査の支援と当社の調査結果の立証を依頼しました。現時点の調査結果は、当社の認証ツール、ネットワークツール、監視ツール、当社のシステムログ、およびパートナー企業から提供されたログ解析に基づいています。
以上に基づき、当社は以下の措置をとりました:
- 2023年1月4日16時35分: アカウントが漏洩した従業員の一切のアクセスを停止しました。
- 2023年1月4日18時30分: 運用に関わる極少数のグループのみにアクセスを制限し、ほぼすべての従業員の本番環境へのアクセスを停止しました。調査中、他の従業員やそのデバイスへ認証情報の漏洩は確認されませんでしたが、可能性のある領域を制限するため、この措置をとりました。
- 2023年1月4日22時30分: 影響を受けた可能性のあるすべての本番環境ホストをローテーションし、クリーンなプロダクションマシンを確保しました。
- 2023年1月5日 03時26分: すべてのプロジェクトAPIトークンを無効化しました。
- 2023年1月6日 05時00分: 2023年1月5日 00時00分以前に作成されたすべてのパーソナルAPIトークンを無効化しました。
- 2023年1月6日06時40分: Atlassianのパートナーとともに、お客様に代わってすべてのBitbucketトークンをローテーションする作業を開始しました。この作業は2023年1月6日10時15分に完了しました。
- 2023年1月7日07時30分: 2022年12月31日04時00分に開始したGitHub OAuthトークンのローテーションが完了しました。
- 2023年1月7日18時30分に、AWSのパートナーと協力して、影響を受けた可能性のあるAWSトークンをお客様に通知する作業を開始しました。この通知は、2023年1月12日00時00分の時点で完了いたしました。
この間、外部調査機関の協力を得てフォレンジック調査を継続し、プラットフォーム上で追加のセキュリティ対策を導入し、お客様の機密保護をサポートするための追加ツール(詳細は後述)をビルド・提供いたしました。
攻撃経路が閉鎖され、安全にビルドができるのか
お客様には安心してビルドを続けていただけると確信しています。
当社では、この攻撃を認識してから、攻撃ベクトルを閉じ、セキュリティの層を増やすために、以下の措置を取りました。
- 今回の攻撃で使用されたマルウェアが示す特定の動作について、MDMおよびA/Vソリューションによる検知とブロックを追加しました。
- セキュリティ対策の強化に伴い、本番環境へのアクセスをごく限られた社員に制限しました。当社では、プラットフォームのセキュリティに自信を持っています。また、他の従業員のデバイスが危険にさらされた形跡はありません。
- 本番環境アクセスを保持する従業員のために、追加のステップアップ認証ステップとコントロールを追加しました。これにより、2 要素認証に基づくSSOセッションが盗まれた場合でも、本番環境への不正なアクセスを防止できるようになりました。
- このシナリオで確認した特定の行動パターンに対して、複数のトリガーとさまざまなサードパーティベンダーを介した監視とアラートを実施しました。
当社では、セキュリティ対策に終わりはないことを認識しています。この特定のベクトルを閉じるだけでなく、潜在的な影響に対する防御を強化するために、強化された継続的なレビューを行っています。
お客様とのコミュニケーションとサポート
2023年1月4日22時30分にすべての本番環境ホストのローテーションが完了した時点で、当社は、攻撃ベクトルと侵害されたホストが残る両方の可能性を排除できたと確信していました。
2023年1月5日02時30分に、インシデントに関するメールを送信し、ブログにセキュリティ通知を掲載し、ソーシャルメディアアカウントとフォーラムを通じてお客様に通知し、推奨するセキュリティ手順の実行方法に関するサポート記事を掲載しました。
当社は、すべてのお客様に、OAuthトークン、Project APIトークン、SSHキーなどを含むシークレットのローテーションを推奨しました(詳しくは、ブログ記事またはディスカッションポストをご覧ください)。
この情報の公表をきっかけに、お客様と積極的かつ継続的なコミュニケーションを開始しました。お客様のご協力により、追加のツールを提供する機会をいただいたことに感謝しております。
私たちは、お客様のフィードバックを受け、新しいツールを開発・リリースし、既存のツールを改良することで、以下のような機能を通じてお客様がより迅速に回避策を実施できるようにしました:
- シークレットローテーションのための実用的なリストを作成するためのシークレットファインディングのスクリプト
- 2つのCircleCI APIへのアップデート
- GitHubのUIとよりマッチするように、チェックアウトキーのSHA-256シグネチャを返すための新しい機能を追加しました。
- お客様が変数のローテーションの成功を確認できるようにコンテキストAPIに
updated_at
を追加しました。
- 無料および有料プランのすべてのお客様が CircleCI プラットフォームのアクティビティを確認するのに役立つ、監視ログ
また、本インシデント発生の周知等当社からのコミュニケーションについて、お客様から改善点をフィードバックいただき感謝申し上げます。
自分は影響を受けたのか
自分のデータは影響を受けているのか?
このインシデントでは、2022年12月22日、お客様のサードパーティシステムの環境変数、キー、トークンを含む情報に、不正なアクセスがあり、一部の情報が流出しました。お客様におかれましては、この間当社のプラットフォーム上にシークレットを保存していた場合は、不正にアクセスされたものと仮定し、推奨される緩和策を講じてください。また、2022年12月16日から2023年1月4日の情報公開以降お客様のシークレットのローテーションが完了した時点までの期間に、お客様のシステムにて不審なアクセスがなかったかをご確認いただくことを推奨します。2023年1月5日以降にシステムに入力されたものは、安全であると考えることができます。
不正アクセスをした者がそのデータを使って、私のシステムにもアクセスしたのか?
このインシデントでは、サードパーティシステムのキーとトークンが流出したため、お客様のシークレットがこれらのサードパーティシステムへの不正アクセスに使われたかどうかは、当社では知り得ることができません。そこで内部調査をサポートするための情報を以下に記載いたします。
このインシデントにより第三者システムへの不正アクセスが発生したと弊社に報告されたお客様は、現時点では5名未満です。
内部調査をサポートするための詳細情報
第三者団体のフォレンジックの協力のもと、お客様の監査・調査に役立つであろう情報を得ることができましたので共有いたします。
重要な日付:
- 第三者による不正なアクセスは最初に2022年12月19日に発生し、実際のデータ流出は2022年12月22日に確認されています。
- 2022年12月19日より前にお客様に影響のあるアクティビティがあった事実は確認されていません。しかし、万全を期すため、侵害が始まった2022年12月16日から、2023年1月4日以降お客様がシークレットのローテーションを完了した時点までの間に、お客様のシステムで通常とは異なるアクティビティがなかったかを調査することを推奨します。
不正アクセスした者による使用が確認されている IP アドレス:
- 178.249.214.10
- 89.36.78.75
- 89.36.78.109
- 89.36.78.135
- 178.249.214.25
- 72.18.132.58
- 188.68.229.52
- 111.90.149.55
不正アクセスした者の使用が確認されたデータセンターとVPNプロバイダー:
- Datacamp Limited
- Globalaxs Quebec Noc
- Handy Networks, LLC
- Mullvad VPN
検索して削除するべき悪質なファイル:
- /private/tmp/.svx856.log
- /private/tmp/.ptslog
- PTX-Player.dmg (SHA256: 8913e38592228adc067d82f66c150d87004ec946e579d4a00c53b61444ff35bf)
- PTX.app
ブロックするべきドメイン:
- potrax[.]com
GitHubの監視ログファイルを調査し確認するべき予期せぬコマンド:
- repo.download_zip
本件から得られた知見と今後の具体的な対策
知見: 当社はサイバー攻撃を検知し阻止するためのツールを備えていますが、セキュリティ体制を強化する余地は常にある。
今回のインシデントでは、すでに当社が導入している認証、セキュリティツール、トレースツールにより、問題を総合的に判断し、緩和することができました。サイバー攻撃の手口が巧妙化するにつれ、当社はあらゆる脅威を想定し、セキュリティ基準を強化しています。そして今後も更にセキュリティツールを積極的に強化していきます。より保守的な姿勢を貫き、不正なアクセスを防ぐため、今後も既存のツールの構成を最適化し、さらにセキュリティの防御体制を強化していく所存です。
具体的な対策:
まず、すべてのお客様に対して、OAuthトークンの定期的な自動ローテーションを開始します。また、OAuthからGitHubアプリに移行し、トークン内でより細かい権限を付与できるようにする予定です。さらに、第三者団体による評価を含め、当社のすべてのツール構成の分析を完了する予定です。さらに、アラートシステムの拡大、セッショントラストの削減、認証要素の追加、より定期的なアクセスローテーションの実施など、さらなる対策を続けています。最後に、システムのアクセス権をより短い期間に限定し、不正侵入から得られるトークンのターゲット価値を徹底的に制限する予定です。
知見: 当社の最先端のセキュリティ機能を、お客様がより簡単に導入できるようにする必要がある。
CircleCIの発展を通じて、当社はお客様のビルドパイプラインのセキュリティを向上させるための機能を導入し続けてきました。高度なセキュリティ機能をお客様に提供する中で、これらの機能の導入を促進するために改善できることがあります。
具体的な対策:
OIDCやIPアドレスの範囲機能など、最新かつ高度なセキュリティ機能を、お客様がより簡単にシームレスに導入できるようにする必要があります。また、トークンの自動期限切れや未使用のシークレットに対する通知など、追加の予防的措置も検討しています。お客様が安全性の高いパイプラインをよりシンプルかつ便利な方法で作成・維持できるようにすることで、お客様がクラウドのあらゆる利点を活用しながらリスクを効率的に管理できるよう努めています。
従業員の責任とシステムの安全対策
巧妙なサイバー攻撃によって、一人の従業員のラップトップが悪用されましたが、このセキュリティインシデントはシステムのエラーによることです。組織としての私たちの責任は、すべての攻撃ベクトルから保護する複数の防御層を構築することです。
セキュリティのベストプラクティス
巧妙な手口の不正アクセスが増え続ける現状に鑑み、当社は、将来起こりうる可能性のある攻撃に対する防御を強化するため、お客様とベストプラクティスを共有することを約束します。以下は、パイプラインのセキュリティを向上させるために、お客様自身で行なっていただける推奨事項です。
- 可能な限りOIDCトークンを使用し、CircleCI に長期間の認証情報を保存しないようにする。
- IP アドレスの範囲機能を利用して、システムへのインバウンド接続を既知のIPアドレスに制限する。
- コンテキストを利用して、共有されたシークレットを統合し、特定のプロジェクトへのアクセスを制限し、API経由で自動的にローテーションさせる。
- 権限付きアクセスや追加のコントロールには、IP制限やIAM管理など、CircleCIプラットフォームをお客様自身のコンピューティングや 環境に接続するためのセルフホストランナーを使用する。
おわりに
システム上で発生したセキュリティインシデントに対し、お忙しい中、直ちに対応してくださったことに心から感謝申し上げます。お客様のご協力もいただき、当社は今後起こり得る攻撃への対策を講じることができました。また、多くのお客様がフォーラムで情報を共有し、サポートしあっていただき、コミュニティの強さと寛容さを実感いたしました。このインシデントに関し、皆様のご協力とご理解に誠に感謝いたします。