こちらの記事は、セキュリティ専門家の松野によるニュース解説ラジオ「今日の10分セキュリティラジオ」の放送内容を文字起こししご紹介しています。
株式会社メルカリは8月6日、5月21日に公表したコードカバレッジツール「Codecov」利用に起因する第三者からの不正アクセスによる同社のソースコードの一部及び一部顧客情報の流出について、調査結果を発表した。(記事はこちら)
【お届けするニュースはサイバーセキュリティ専門ニュースサイト「ScanNetSecurity」の提供でお送りしています。】フリマアプリのメルカリが利用していた外部サービスに不正アクセスがあり、ソースコードが漏洩してしまったインシデントの調査が完了したということです。社会的な課題であるサプライチェーン攻撃に関連する被害となりますので、内容について再度見ていきましょう。
サプライチェーン攻撃とは、ターゲットとなる組織が依存する外部サービスやソフトウェアを攻撃することで目的を達成するものです。外部サービスへの依存度が増す中、自組織のセキュリティ対策が及ばない範囲でインシデントが発生してしまうため、対策が難しい攻撃の一つと言われています。
今回のインシデントでは、メルカリ自体やソースコードを保存していたGitHubには脆弱性は確認されておらず、GitHubと連携するコードカバレッジツールCodecovに脆弱性があり、その影響を受ける形でGitHubからメルカリのソースコードが漏洩してしまったということです。
事態を悪化させたのは、ソースコードに顧客情報などが書かれていたことで、追加で確認された39件を加えて、最終的には27,927件の顧客情報などが漏洩するインシデントに発展してしまいました。まさに、サプライチェーンリスクが顕在化した典型例であると言えます。
今回のサイバー攻撃は、大きく3つの段階を経てインシデントに発展しています。それぞれの段階について説明します。
考えられる対策としては、Codecovで実行されるスクリプトが改ざんされていないことを常に確認することになりますが、あくまでもCodecovが保持しているスクリプトであれば、利用者側で対応することは難しかったのかもしれません
コーディング時にセキュリティの観点で気を付けるべきポイントは、ソースコードに機密情報をハードコードしないことです。また、ソースコードのセキュリティリスクを洗い出す方法として、ホワイトボックステストがあります。
ハードコードとはプログラムを開発する際に、特定の値をソースコードの中に直接書くことです。パスワードやAPIキーなどの機密情報をそのままハードコードしてしまった場合、ソースコードが漏洩した際に第三者に悪用されてしまう可能性があるため注意が必要です。今回のインシデントで、顧客情報をソースコードへ書く必要があったかは不明ですが、仮に機密情報をソースコードへ書く必要がある場合、暗号化するなどして仮にソースコードが漏洩しても機密情報が漏洩しない対策が必要です。
また、ソースコードに潜在するセキュリティリスクを洗い出す方法として、ホワイトボックステストがあります。ホワイトボックステストとは、システムやソースコードの中身を把握した上で行うテストです。対義語として、内部構造を把握しないで行うブラックボックステストがあり、それぞれテストを行う人と目的に違いがあります。ホワイトボックステストは内部構造を理解した上でリスクを洗い出すために、主に開発者が行います。ブラックボックステストは、開発した本人では気が付くことができないリスクを洗い出すために、主に第三者が行います。
これらは、どちらが必要というよりも、開発の初期段階で開発者がホワイトボックステストを行い、リリース前の最終工程で第三者がブラックボックステストを行うことが一般的です。ホワイトボックステストは一部、ツールで自動化できる範囲もありますので、開発言語に合わせて探してみるといいかもしれません。
今日の10分セキュリティラジオにて毎週月・水・金にセキュリティの最新ニュースを取り上げ解説を行っています。隙間の時間の情報収集にぜひお役立てください!
お見積り・ご相談など、お気軽にご相談ください
サイトTOPへ