サプライチェーン上で埋め込まれるバックドア検査の必要性
1.はじめに
近年、サプライチェーンリスクが声高に叫ばれています。サイバーセキュリティの分野において、もっとも一般的なサプライチェーンリスクは、セキュリティ対策の甘い取引先の企業にサイバー攻撃を仕掛け、そこを踏み台にして本命の企業に侵入し攻撃するようなサプライチェーン攻撃でしょう。こちらについては、「標的は中小企業!? サプライチェーン攻撃」として解説しております。
こういったサプライチェーン攻撃以外にも、見過ごせないのが、ソフトウェアやIoT機器などの製品を製造する過程(サプライチェーン)において、バックドアやマルウェアといった不正な機能が埋め込まれるサプライチェーンリスクです。バックドアとは、文字通り正規の手続き(ID、パスワードなど)を必要とせずコンピュータにアクセスできる裏口の事です。バックドアが存在すると、サイバー攻撃者が防御機能をすり抜けてコンピュータ内に侵入することが出来るようになります。もし、自社製品にバックドアが埋め込まれていることを知らずに販売してしまい、バックドアを悪用したサイバー攻撃による被害が出れば、ブランドイメージを損なうだけでなく、製品の回収や、修正にも多大なコストがかかります。さらに、顧客がバックドアを埋め込まれた製品を使用すれば、情報窃取やマルウェア感染などの二次被害、三次被害を発生させるかもしれません。ここでは、サプライチェーンリスクやバックドアの脅威について解説し、メーカーの出荷前や、ユーザー組織の利用前などにおけるバックドア検査の必要性をご説明します。
2.サプライチェーン攻撃とは
まずは、「標的は中小企業!? サプライチェーン攻撃」で紹介したサプライチェーン攻撃の簡単なおさらいをしましょう。
大企業やグローバル企業を標的とするサイバー攻撃は跡を絶ちませんが、最近ではこれらの企業のセキュリティ対策が充実してきたため、直接攻撃を仕掛けても成功しづらくなってきています。そこで、サイバー攻撃者は守りの堅い“本命”の企業ではなく、それよりもセキュリティ対策の甘いつまりは、攻撃に対するハードルが低いサプライチェーン上の別企業にサイバー攻撃を行い、そこを踏み台にして本命に侵入し攻撃する手法を取るようになりました。
これが、一般的にいわれるサプライチェーン攻撃です。
3.サプライチェーン上で埋め込まれるバックドア
次にサプライチェーン上で埋め込まれるバックドアにはどんなものがあるでしょうか?これは大きく分けて、攻撃者により裏口が意図的に埋め込まれる場合と、開発者が保守などの正当な目的で作り込んだ機能が悪用される場合の2つが考えられます。どちらも結果として、ユーザーがインターネットに接続して利用を開始すると、攻撃者に侵入を許してしまう裏口であるということに変わりません。それぞれについて、例を交えて解説します。
3.1. 攻撃者に仕込まれる裏口
こちらは、広く利用されているソフトウェア等を開発している企業に何らかの手段で侵入し、そこで開発しているソフトウェアやファームウェアにバックドアを仕込むことで、様々な組織に侵入する経路を埋め込む攻撃手法です。侵入の手法として、セキュリティ対策の甘いサプライチェーン上の企業に侵入するところまでは、一般的にいわれるサプライチェーン攻撃と同じ手法が使われることもあります。ややこしいですね。
例えば、オープンソースの汎用プログラミング言語であるPHPの開発に使われていたサーバーに攻撃者が侵入し、特定のヘッダに対し秘密の文字列が含まれているリクエストを送信すると、任意のPHPコードが実行できるバックドア機能をこっそりと埋め込んだという事件が過去にありました。
また、悪意を持った機能を実装するのではなく、任意のコマンドが実行できるような脆弱性を意図的に残しておくという手段もありえます。
どちらの場合も、攻撃者のみが実行できるように、バックドアが悪用可能となる条件をいくらでも複雑にできます。この場合、製品やシステムの機能テストや、品質検査、脆弱性検査等でバックドアを発見することは困難です。
3.2. 保守・デバッグ目的の機能の残存
攻撃によるものではなく、開発者によりデバッグ効率化のために作成された安易なユーザー名とパスワードのアカウントの消し忘れや、保守作業のために任意のコマンドを実行できるような隠し機能などにより、悪意なくバックドアを仕込んでしまうケースもあります。
4. バックドア以外にもこんな不正な機能が埋め込まれることも
前述のような、正規の手続きを経ずにシステムにログインできたり、任意のコマンドを実行できるバックドアだけでなく、以下のような高度な不正機能が埋め込まることも考えられます。
4.1. マルウェア
システムへのアクセスや任意のコマンド実行ができるバックドアではなく、マルウェアに感染させ、C2サーバー(※)と通信して攻撃者により自由に攻撃目的に沿った行動をとることを可能にしてしまうという事例もあります。2020年に大きな話題となった、SolarWinds社の監視ツール「Orion」が感染していた「SUNBURST」というマルウェアが代表例といえるでしょう。
SUNBURSTは、製品の自動更新時に18,000もの組織に配布されてしまいました。このマルウェアは、ダウンロード後すぐには活動を開始しないで、バージョンアップ初期の集中監視を回避し、動作環境がテスト環境でないことを確認した後で、対象組織の情報を収集して攻撃すべき組織(政府機関等)を選別し、初めて本格的な攻撃を開始するという大変高度な機能を持っていました。また、マルウェアを埋め込む手段として、出荷前の製品にマルウェアを仕込んだケースも確認されています。
※C2サーバー・・・別名C&C(Command and Control)サーバー。サイバー攻撃者によって、通信先のコンピュータを制御したり、命令を出したりするサーバーのこと
4.2. 盗聴(情報窃取)
バックドアやマルウェアのように、攻撃者からの働きかけを受け取るような複雑な機能ではなく、ただ情報を収集して送信するだけの機能が実装されていた例もあります。下図のように、持っているだけで位置情報やSMSの内容などを収集し、定期的に攻撃者のサーバーに送信する機能を攻撃者が出荷前に実装した事例が、主にモバイル端末で確認されています。また、クレジットカードの決済組織に対して、クレジットカード番号と有効期限とセキュリティコードを抜き取り外部に送信する機能を埋め込む事例は過去から何度も繰り返されております。
5. 通常の脆弱性診断やペンテストでは検出が困難
サプライチェーン上で埋め込まれるバックドアの特徴として、攻撃者が実装したもの、開発者が意図せず実装してしまったもの、どちらの場合も、通常の脆弱性診断やペネトレーションテスト(ペンテスト)(※)では検出が困難であるということが挙げられます。通常の脆弱性診断やペンテストは、攻撃者が外部から攻撃することを前提としており、すでにバックドアが埋め込まれていることを想定していないからです。例えば先ほど例に挙げた、位置情報やSMSの内容などを収集し定期的に攻撃者のサーバーに送信する機能の場合、攻撃者が外部から攻撃・操作をする必要がないため、外部からの攻撃を前提とした脆弱性診断やペンテストでは、検出することができません。
※ペネトレーションテスト・・・実際にシステムにサイバー攻撃を仕掛け侵入を試みることで、システムの脆弱性を検証するテスト手法。
6. FFRIセキュリティの実績
FFRIセキュリティは、こういったサプライチェーン上で埋め込まれるバックドアを含む不正な機能の検出を目的とした検査を強みとしています。 不正機能検出の過去実績を基に、サプライチェーン上で埋め込まれる不正機能の多岐にわたる実装方法とその検出方法をマッピングしたリストを作成しています。このリストから各機器やソフトウェアに合った項目を選出し、不正な機能が埋め込まれていることを前提としたシナリオを作成、そのシナリオに沿った検査することで、不正な機能を検出します。
実績として、FFRIセキュリティでは、令和2年度以降、以下の内閣官房セキュリティセンターの不正機能(バックドア)に関する調査を受託しています。