モバイルアプリサプライチェーンの脆弱性により、機密性の高いビジネス情報が危険にさらされる可能性
シマンテックが分析したアプリの4分の3以上に、AWSのプライベートクラウドサービスにアクセスに使用できる有効なAWSアクセストークンが含まれていました。
今までに、私たちのほとんどが、サプライチェーンの問題によって何らかの影響を受けてきました。燃料などの価格上昇、配送の遅延、製品の入手困難などは、最近世界中で起こった事件に起因するサプライチェーンの問題の影響の一部に過ぎません。しかし、ソフトウェアや技術インフラの分野では、サプライチェーンの問題から派生する影響は大きく異なります。たとえば、モバイルアプリには、サプライチェーンで生じた脆弱性が潜在して機密情報の漏洩につながる恐れがあり、その情報は、攻撃者が他の攻撃に使用する可能性があります。
モバイルアプリサプライチェーンの脆弱性は、アプリ開発者が故意に、あるいは無意識のうちに加えてしまったことで、開発者はセキュリティのダウンストリームへの影響に気づいていないケースが多く、アプリ利用者のプライバシーだけでなく、時には会社や雇用主のプライバシー、データまでも危険にさらされます。
モバイルアプリサプライチェーンの問題
モバイルアプリケーション開発は、モノのサプライチェーンと同様、ソフトウェアライブラリ、ソフトウェア開発キット(SDK)などの素材を集め、モバイルアプリケーションを製造または開発し、モバイルアプリケーションストアを利用して顧客に提供する、というプロセスを経ることになります。
このブログでは、モバイルアプリに潜む上流工程でのサプライチェーンの問題を検証します。これらの問題は次のとおりです。
- モバイルアプリ開発者が、脆弱性のある外部ソフトウェアライブラリやSDKを無意識に使用している
- 企業がモバイルアプリの開発を外部に委託した結果、脆弱性を抱えてリスクを負うことになる
- チーム間で複数のアプリを開発している企業(多くは大規模企業)が、アプリにチーム横断的な脆弱性ライブラリを使用している
これらサプライチェーンの脆弱性の広がりと範囲を深く理解するために、グローバルアプリコレクションの中で、ハードコード化されたAmazon Web Services(AWS)資格情報を含む一般公開されているアプリを調べました。ハードコード化されたクラウド資格情報は、当社が何年も前から注目している脆弱性の一種で、過去にも広く取り上げてきました。今回は、この問題によって引き起こされるサプライチェーンへの影響を明らかにするため、アプリ開発者がなぜアプリ内でクラウド資格情報をハードコード化するのか、ハードコード化された資格情報はアプリのどこにあるのか、脆弱性に至る一連の流れを追跡し、最後に問題の大きさとその影響について調査しました。
問題の範囲
当社は、AndroidとiOSの両方で、ハードコード化されたAWS資格情報を含む1,859の一般公開されたアプリを確認しました。ほぼすべてがiOSアプリでした(98%)。当社が何年も追跡調査してきたプラットフォーム間の傾向と違いは、おそらくアプリストアの審査慣行とポリシーの違いに関連していると思われます。いずれにせよ、アプリに埋め込まれたAWS資格情報のリスクの範囲と程度を調査しました。その結果、次のことが判明しました。
- 4分の3以上(77%)のアプリに、AWSのプライベートクラウドサービスにアクセスするための有効なAWSアクセストークンが含まれていた
- これらのアプリの半数近く(47%)は、有効なAWSトークンを含んでおり、Amazon Simple Storage Service(Amazon S3)を介して、多くの場合、数百万のプライベートファイルへのフルアクセスを可能にしていた
このブログで後述する例で、どのような個人データが公開されているかを調べますが、メッセージは明確です。ハードコード化されたAWSアクセストークンを持つアプリは脆弱で、アクティブで、深刻なリスクを抱えています。
問題の発生源
そこで、AWSのアクセストークンがなぜ、かつ、アプリ内のいずれにあるのか、また、他のアプリにもあるのかを調査しました。
半数以上(53%)のアプリが、他のアプリと同じAWSアクセストークンを使用していることがわかりました。興味深いことに、これらアプリは、多くの場合、異なるアプリ開発者や会社から提供されていました。これは、サプライチェーンの脆弱性を示唆しており、まさにそのとおりでした。AWSアクセストークンは、アプリの開発で使用された共有ライブラリ、サードパーティSDK、またはその他の共有コンポーネントにたどりつく可能性があります。
残る疑問、「なぜアプリ開発者はハードコード化されたアクセスキーを使用するのか」については、以下のような理由があることがわかりました。
- アプリに必要なアセットおよびリソース(通常は大容量メディアファイル、録画、画像)のダウンロードまたはアップロード
- アプリの設定ファイルへのアクセス、デバイスの登録、デバイス情報の収集、クラウドへの保存
- 翻訳サービスなど、認証を要するクラウドサービスへのアクセスなど
- 特に理由がない、デッドコード、テストに使用され、かつ未削除のまま
アクセスキーが特定のクラウドサービス、アセットへのアクセス権限のみを有する場合(企業向けAmazon S3サービスから公開画像ファイルにアクセスする、など)、その影響は最小となる可能性があります。アプリ開発者の中には、Amazon S3内の単一のバケットやファイルにアクセスするためにハードコード化されたAWSアクセストークンを埋め込んで使用している場合、このようなケースを想定している人もいるかもしれません。問題は、同じAWSアクセストークンがAmazon S3クラウド内のすべてのファイルやバケット、多くの場合、企業のファイル、インフラのファイルやコンポーネント、データベースのバックアップなどを公開することが多いことです。同じAWSアクセストークンを使ってアクセスできるAmazon S3以外のクラウドサービスは言うまでもありません。
企業間取引(B2B)企業がサードパーティSDKを使って自社サービスへのアクセスを提供し、AWSのハードコード化されたアクセスキーを埋め込むと、サードパーティSDKを使うアプリの個人データだけでなく、サードパーティコンポーネントを使う全アプリの個人データも公開されることを想像してみてください残念ながら、以下の事例をご覧いただくとわかるように、このようなケースは決して珍しいことではありません。
ケーススタディ
イントラネットプラットフォームSDK
イントラネットとコミュニケーションプラットフォームを提供するB2B企業が、顧客がそのプラットフォームにアクセスするために使用するモバイルSDKも提供していたことがわかりました。残念ながら、このSDKにはB2B企業のクラウドインフラの鍵も含まれており、B2B企業のプラットフォーム上にある顧客の個人データがすべて公開されてしまいました。その顧客の企業データ、財務記録、従業員の個人データが流出したのです。また、同社が15,000社以上の中堅・中小企業向けに提供しているイントラネットで使用していたファイルもすべて流出しました。
同社はなぜAWSアクセストークンをハードコード化したのか?AWSの翻訳サービスにアクセスするためです。ハードコード化されたアクセストークンを翻訳クラウドサービス用に限定する代わりに、そのトークンを持つ人はB2B企業のすべてのAWSクラウドサービスに自由にアクセスできるようになったのです。
デジタルID・認証
当社は、同じ脆弱性を持つサードパーティのAIデジタルアイデンティティSDKに依存する、iOS上の複数の人気バンキングアプリを発見しました。アプリのデジタルアイデンティティと認証コンポーネントのアウトソースは、一般的な開発パターンです。さまざまな形式の認証を用意し、安全なインフラを維持し、IDにアクセスして管理するという複雑な作業には高額な費用と専門知識が必要になるからです。このケースでは、残念なことに、正しい方法で行われませんでした。
このSDKには、インフラ全体を危険にさらす可能性のあるクラウド資格情報が埋め込まれていました。この資格情報は、SDKを使用するすべての銀行アプリ、金融系アプリに属する個人認証データとキーが公開されてしまう可能性がありました。さらに、認証に使用されるユーザーの生体デジタル指紋と、ユーザーの個人データ(氏名、生年月日など)がクラウド上に公開されました。
さらに、このアクセスキーによって、運用全般に使用されるインフラサーバーとAPIソースコード、AIモデルなどの設計図が公開されました。
SDKを使用した5つのモバイルバンキングアプリで、合計30万件以上の生体デジタル指紋が流出しました。
オンラインゲーム技術プラットフォーム
一般に、すでに事業を展開している企業は、デジタルおよびオンラインサービスを他のB2B企業にアウトソーシングするか、パートナーとして依存しています。これにより、企業は基盤となる技術プラットフォームを構築・サポートすることなく、自社のブランドを迅速にオンライン化することができます。同時に、技術プラットフォームの運営をアウトソーシング企業に依存することで、自社のビジネスデータへのアクセスを独占的に提供しなければならないことも少なくありません。さらに、ブランド全体の評判はもちろんのこと、オンライン上の個人データをアウトソース先が保護してくれることを信頼しなければなりません。
ある大手ホスピタリティエンターテイメント企業が、自社の技術プラットフォームを他社に依存し、さらには同社とスポーツベッティングのジョイントベンチャーを設立していることが判りました。
規制の厳しいスポーツベッティング市場では、オンラインギャンブル向けのインフラ構築とサポートの複雑さは軽視できません。しかし残念なことに、同社はこのジョイントベンチャー企業にその業務へのアクセスを独占的に任せたことで、ゲーム事業、ビジネスデータ、顧客データを世界中に公開してしまったのです。
脆弱性のあるライブラリを使用した合計16種類のオンラインギャンブルアプリは、AWSのすべてのクラウドサービスにおいて、読み取り/書き込み可能なルートアカウントの資格情報とともに、インフラとクラウドサービスを完全に公開していました。
これらのケーススタディで取り上げられた脆弱なアプリを保有するすべての組織には、発見された問題について通知しています。
サプライチェーン上の問題の回避
上記のようなサプライチェーン上の問題点は回避できます。アプリ開発ライフサイクルにセキュリティスキャンニングソリューションを追加すること、アウトソーシングプロバイダを利用する際にはモバイルアプリのリリースごとにアプリの不要な動作、脆弱性などを特定できるモバイルアプリレポートカードを要求、確認することは、潜在する問題の明確化に役立ちます。アプリ開発者は、アプリケーションのSDKとフレームワークをスキャンし、脆弱性や不要な動作の原因を特定するレポートカードを活用してください。

Hock Tanとのインタビュー: Broadcom社長兼CEO
インフラストラクチャ技術の世界的リーダー企業を築き上げる

We encourage you to share your thoughts on your favorite social platform.