検索
ニュース

1000本以上のAndroidアプリが認証情報を無防備な状態で保存、Comparitechが調査認証情報やWebフックを平文でハードコード

人気のAndroidアプリケーション2500本について機密認証情報の扱いをComparitech.comの研究者が調べたところ、1057本では少なくとも1つの機密認証情報が無防備な状態で保存されていることが明らかになった。

Share
Tweet
LINE
Hatena

 「Google Playストア」で提供されている人気アプリケーション2500本のうち1057本では、少なくとも1つの機密認証情報(アクセストークンやパスワードなど)が無防備な状態で保存されていた。比較サイトComparitech.comが2021年4月19日(現地時間)、同社の研究者の調査結果として明らかにした。

 「認証情報」は、エンドユーザーがアプリケーションやWebサイトにログインする際に必要な電子メールアドレスやパスワードといった情報と思われがちだ。だが、アプリケーション自体がファーストパーティーやサードパーティーのサーバ、API、その他のエンドポイントへの接続認証に使用するパスワードやトークンなども認証情報に含まれる。


流出したFedExのAPIキー キー自体は赤く塗りつぶしてある(出典:Comparitech.com

 Comparitech.comの研究者は、多くのアプリケーションが認証情報やWebフック(トリガーの対象となったときにアプリケーションから送信される自動メッセージ)を平文でハードコードしていることを発見した。このため、ユーザーはもちろん、同じ端末にインストールされている他のアプリケーションから簡単にアクセスできてしまう。研究者はオープンソースツールの「APKLeaks」と「Quark Engine」を使って、Google Playストアの人気アプリケーション2500本について、機密情報の保存方法を分析した。

 分析対象のアプリケーションが無防備な状態で保存していた認証情報には、次のようなものがあった。

  • Amazon Web Services(AWS)APIキー
  • Facebookトークン
  • GitHubトークン
  • Google APIキー
  • Twitter OAuthトークン
  • PayPal APIキー
  • Twilio APIキー
  • Slack Webフック
  • Heroku APIキー
  • MailChimpキー
  • 他の汎用(はんよう)APIキー
  • アプリケーションの機密情報
  • カスタムAPIキー

 この他、無防備なFirebaseサーバやAWSバケットを指すIPアドレスも発見した。

 このような欠陥のある認証情報ストレージは、悪意あるハッカーによって悪用される恐れがある。アプリケーションAPIへの不正アクセスと悪用、機密データの窃盗、ユーザーに対するフィッシング、マルウェアの拡散などの危険性がある。

 Comparitech.comは、アプリケーションによるAPIトークンとWebフックの保存方法に見つかった問題点を次のように説明している。

APIトークンが悪用される


API認証情報(出典:Comparitech.com

 多くのAndroidアプリケーションはAPIを用いて、他のアプリケーションのデータや機能にアクセスしている。例えば、ホテル比較アプリケーションは各ホテルのAPIを使って、予約可能日や宿泊料金のデータを取得する。APIアクセスには通常、機密のAPIキーまたはトークンによる認証が必要になる。

 Comparitech.comの研究者は、API認証情報を無防備な状態で保存しているアプリケーションが多いことを発見した。あるアプリケーションは、認証情報を定数として保存していた。これでは、他のアプリケーションから読み取られたり、悪意のある操作によって変更されたりする可能性がある。


API認証情報が定数として保存されていたケースもあった(出典:Comparitech.com

 研究者は、ハードコードされた認証情報を実際に操作して、「アプリケーションがトークンをリクエストし、取得するプロセス」をさかのぼることに成功した。あるケースでは、米国の有名な配送サービス会社のAPIトークンを発見し、これを用いて、荷物を追跡するためのプライベートAPIエンドポイントにアクセスできた。研究者はそこで調査作業をストップしたが、「攻撃者が同じ脆弱(ぜいじゃく)性を突いて、機密の顧客情報を盗む可能性がある」と指摘している。

 APIトークンは、認証情報スタッフィング攻撃に使われることが増えている。認証情報スタッフィングは通常、盗まれた認証情報を使って、botがそれらのパスワードやトークン、キーを共有する他のアカウントにアクセスすることを含む。APIエンドポイントは、認証情報スタッフィング攻撃の標的になりやすい。

Webフックの危険性

 WebフックはSMS通知に似ている。カスタムコールバックを利用して、アプリケーションの動作を補強することが可能だ。

 カスタムコールバックはサードパーティーのユーザーや管理者によって管理され、これらのユーザーや管理者は、元のアプリケーションの開発者とは無関係な場合もある。Webフックは多くの場合、「Facebook Messenger」や「Slack」のようなチャットアプリケーションで使われるが、バグ追跡やバージョン管理の自動化にも用いられている。

 Comparitech.comの研究者はハードコードされたWebフックに対する攻撃手法を発見した。

 ビジネスチャットアプリケーションとして広く使われているSlackは、ユーザーのフィードバックを受け入れるために、ハードコードされたWebフックを使用する。研究者は、大量のリクエストをWebフックに送り付け、サーバに過負荷をかけ、サービス妨害(DoS)攻撃を引き起こすことに成功した。

 研究者によると、サイバー攻撃者が同様のリクエストを用いてマルウェアペイロードを仕込み、データベースを勝手に公開したり、アプリケーションサーバに悪意あるスクリプトをアップロードしたりする恐れがあるという。


SlackのWebフック(出典:Comparitech.com

 SlackのWebフックに対する別の攻撃も考えられる。実在しないユーザーからの偽フィードバックを送信することで、開発者を誤解させる可能性もある。さらに、攻撃者が悪意あるWebサイトへのリンクを含むフィッシングメッセージを送信する危険性もある。

Androidアプリケーションの機密情報を安全に保存するには

 Comparitech.comの研究者はAndroid開発者に対し、認証情報を保存する際に役立つアドバイスを示した。

  • 必要な認証情報保存機能の大部分を、「Android Keystore API」を使って実装する
  • コミット時には認証情報とWebフックを除外する。後で全ての必要なキーを「apikey.properties」に追加し、アプリケーション自体の中から適切な方法でそれを読み込むようにする
  • 認証情報スタッフィング攻撃で使われないように、認証情報は必ず固有のものを使用する
  • 「ProGuard」を使って難読化し、デコンパイルによる機密情報の抽出を困難にする
  • アプリケーションの一部をネイティブコードで実装するためのツールセット「Android NDK」(Android Native Development Kit)に機密情報を保存し、デコンパイルやリバースエンジニアリングを困難にする

Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

  1. 「Appleの暗号化アルゴリズム」を盗用し、2カ月以上検出されなかったステルス型マルウェアの正体とは
  2. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  3. 2025年、LLMの脆弱性が明確になるなど、セキュリティとクラウドに関する8つの変化
  4. 2025年に押さえるべきセキュリティの重要論点をガートナーが発表 新しいリスク、脅威、環境の変化、法規制などの動きを把握する指標に使える
  5. “ゼロトラスト”とトラスト(信頼性)ゼロを分かつものとは――情報セキュリティ啓発アニメ「こうしす!」監督が中小企業目線で語る
  6. Google Cloud、2025年のサイバーセキュリティ予測を発表 AIがサイバー攻撃にもたらす影響とは?
  7. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  8. 経営層の約7割が「セキュリティ対策は十分」一方で6割以上がインシデントを経験、1位の要因は?
  9. よく聞く「複雑化するサイバー攻撃」は具体的にどう複雑なのか? 一例を医療系企業のランサム事例とともに解説
  10. ChatGPTやClaudeのAPIアクセスをかたってマルウェアを配布するPython用パッケージ確認 Kasperskyが注意喚起
ページトップに戻る