セキュリティの
学び場

SHIFT SECURITY セキュリティの学び場 ニュース解説 『メルカリの「Codecov」利用に起因する不正アクセス詳細調査、新たに38件の外部流出確認』

『メルカリの「Codecov」利用に起因する不正アクセス詳細調査、新たに38件の外部流出確認』

目次
  • 今回の解説ニュース
  • 大きく3つの段階を経てインシデントに発展
  • コーディング時にセキュリティの観点で気を付けるべきポイント

こちらの記事は、セキュリティ専門家の松野によるニュース解説ラジオ「今日の10分セキュリティラジオ」の放送内容を文字起こししご紹介しています。

今回の解説ニュース

『メルカリの「Codecov」利用に起因する不正アクセス詳細調査、新たに38件の外部流出確認』

株式会社メルカリは8月6日、5月21日に公表したコードカバレッジツール「Codecov」利用に起因する第三者からの不正アクセスによる同社のソースコードの一部及び一部顧客情報の流出について、調査結果を発表した。(記事はこちら)

【お届けするニュースはサイバーセキュリティ専門ニュースサイト「ScanNetSecurity」の提供でお送りしています。】

フリマアプリのメルカリが利用していた外部サービスに不正アクセスがあり、ソースコードが漏洩してしまったインシデントの調査が完了したということです。社会的な課題であるサプライチェーン攻撃に関連する被害となりますので、内容について再度見ていきましょう。

サプライチェーン攻撃とは、ターゲットとなる組織が依存する外部サービスやソフトウェアを攻撃することで目的を達成するものです。外部サービスへの依存度が増す中、自組織のセキュリティ対策が及ばない範囲でインシデントが発生してしまうため、対策が難しい攻撃の一つと言われています。

今回のインシデントでは、メルカリ自体やソースコードを保存していたGitHubには脆弱性は確認されておらず、GitHubと連携するコードカバレッジツールCodecovに脆弱性があり、その影響を受ける形でGitHubからメルカリのソースコードが漏洩してしまったということです。

事態を悪化させたのは、ソースコードに顧客情報などが書かれていたことで、追加で確認された39件を加えて、最終的には27,927件の顧客情報などが漏洩するインシデントに発展してしまいました。まさに、サプライチェーンリスクが顕在化した典型例であると言えます。

大きく3つの段階を経てインシデントに発展

今回のサイバー攻撃は、大きく3つの段階を経てインシデントに発展しています。それぞれの段階について説明します。

  • 第1段階
  • Codecovへのサイバー攻撃です。具体的には、CodecovのBash Uploaderが実行するカバレッジファイルをアップロードするスクリプトが何者かの手によって改ざんされていました。Codecovへの侵入経路については確認することができませんでした。
  • 第2段階
  • 認証情報の取得具体的には、CodecovのスクリプトがCI環境の環境変数に設定された情報をすべて攻撃者のサーバへ転送する内容に改ざんされていました。環境変数にはGitHubの認証情報なども含まれていることが考えられます。
  • 第3段階
  • GitHubへの不正アクセスです。不正に入手した認証情報を使ってGitHubに保存されたソースコードが取得されていました。今回のインシデントではソースコードに顧客情報なども書かれていたことから、被害が拡大してしまいました。

考えられる対策としては、Codecovで実行されるスクリプトが改ざんされていないことを常に確認することになりますが、あくまでもCodecovが保持しているスクリプトであれば、利用者側で対応することは難しかったのかもしれません

コーディング時にセキュリティの観点で気を付けるべきポイント

コーディング時にセキュリティの観点で気を付けるべきポイントは、ソースコードに機密情報をハードコードしないことです。また、ソースコードのセキュリティリスクを洗い出す方法として、ホワイトボックステストがあります。

ハードコードとはプログラムを開発する際に、特定の値をソースコードの中に直接書くことです。パスワードやAPIキーなどの機密情報をそのままハードコードしてしまった場合、ソースコードが漏洩した際に第三者に悪用されてしまう可能性があるため注意が必要です。今回のインシデントで、顧客情報をソースコードへ書く必要があったかは不明ですが、仮に機密情報をソースコードへ書く必要がある場合、暗号化するなどして仮にソースコードが漏洩しても機密情報が漏洩しない対策が必要です。

また、ソースコードに潜在するセキュリティリスクを洗い出す方法として、ホワイトボックステストがあります。ホワイトボックステストとは、システムやソースコードの中身を把握した上で行うテストです。対義語として、内部構造を把握しないで行うブラックボックステストがあり、それぞれテストを行う人と目的に違いがあります。ホワイトボックステストは内部構造を理解した上でリスクを洗い出すために、主に開発者が行います。ブラックボックステストは、開発した本人では気が付くことができないリスクを洗い出すために、主に第三者が行います。

これらは、どちらが必要というよりも、開発の初期段階で開発者がホワイトボックステストを行い、リリース前の最終工程で第三者がブラックボックステストを行うことが一般的です。ホワイトボックステストは一部、ツールで自動化できる範囲もありますので、開発言語に合わせて探してみるといいかもしれません。

Voicyでニュース解説ラジオ配信中!

今日の10分セキュリティラジオにて毎週月・水・金にセキュリティの最新ニュースを取り上げ解説を行っています。隙間の時間の情報収集にぜひお役立てください!

この記事の著者 セキュラジチーム

話題になっているセキュリティニュースやセキュリティに関する疑問を専門家の解説と個性豊かなパーソナリティたちがお送りしています。1日10分で、気軽にセキュリティの知識を深めることができます。放送は月曜・水曜・金曜の朝7時15分。

\ 記事をシェアする /

Contact

お見積り・ご相談など、お気軽にご相談ください

ご相談・ご質問はこちら

お問い合わせ

お見積り依頼はこちら

お見積り依頼

資料請求はこちら

資料請求

お電話でのご相談はこちら
(平日10:00~18:00)

TEL.050-5532-3255
サイトTOPへ