Symantecは10月22日(米国時間)、「Exposing the Danger Within: Hardcoded Cloud Credentials in Popular Mobile Apps|Symantec Enterprise Blogs」において、複数のモバイルアプリから潜在的な脅威を発見したと報じた。これらアプリはクラウドサービスの資格情報をハードコードしており、攻撃者がクラウドサービスに不正アクセスしてユーザー情報を窃取する可能性があるという。

  • Exposing the Danger Within: Hardcoded Cloud Credentials in Popular Mobile Apps|Symantec Enterprise Blogs

    Exposing the Danger Within: Hardcoded Cloud Credentials in Popular Mobile Apps|Symantec Enterprise Blogs

潜在的に脆弱なアプリ

Symantecにより発見された、資格情報をハードコードしているアプリおよびクラウドサービスの種類は次のとおり。

  • Pic Stitch - Amazon Web Services(AWS)
  • Crumbl - Amazon Web Services(AWS)
  • Eureka: Earn money for surveys - Amazon Web Services(AWS)
  • Videoshop - Video Editor - Amazon Web Services(AWS)
  • Meru Cabs- Local, Rental, Outs - Microsoft Azure Blob Storage
  • Sulekha Business-List & grow - Microsoft Azure Blob Storage
  • ReSound Tinnitus Relief - Microsoft Azure Blob Storage
  • Saludsa - Microsoft Azure Blob Storage
  • Chola Ms Break In - Microsoft Azure Blob Storage
  • EatSleepRIDE Motorcycle GPS - Twilio
  • Beltone Tinnitus Calmer - Microsoft Azure Blob Storage
  • Solitaire Clash: Win Real Cash - Amazon Web Services(AWS)
  • Zap Surveys - Earn Easy Money - Amazon Web Services(AWS)

「資格情報のハードコード」とは

一部のアプリは利便性の向上、セキュリティの強化、改ざん防止のため、ユーザー情報やデータをデバイスではなくクラウドサービスに保管することがある。アプリがクラウドサービスに接続するには人間と同様に認証を行う必要があり、アプリは何らかの方法で認証情報を保持している。

「ハードコード」はプログラムのソースコードに設定値やデータを直接書き込むことを、さらに、「資格情報のハードコード」は資格情報をソースコードに平文で書き込むことを意味する。ハードコードされた情報は実行プログラムにそのまま保持されるため、多少の知識があれば誰でも簡単に取り出せる。つまり、資格情報をハードコードしたアプリは、資格情報を暗黙的に公開していると評価することができる。

  • Pic Stitchのハードコードされた資格情報の例 - 引用:Symantec

    Pic Stitchのハードコードされた資格情報の例  引用:Symantec

クラウドサービスの資格情報が漏洩した場合、攻撃者はクラウドサービスに不正アクセスしてデータの窃取、改ざん、削除が可能となる。影響はアプリの動作不良だけではなく、ユーザーの個人情報流出など深刻な被害をもたらす可能性がある。

対策

上記の脆弱なアプリは少なくとも10万回以上のダウンロード実績(Google Play)、またはレビュー件数(Appleストア)がある。それだけ多くのユーザーが利用していると考えられ、深刻な脅威となっている。

上記のアプリのように、資格情報を保持するアプリの開発者には、機密情報保持のベストプラクティスに従って実装することが推奨されている。具体的には環境変数の使用、機密情報管理ツールの使用、安全性の実証された暗号化などが推奨されている。

なお、この脆弱性に関して、ユーザーに推奨される回避策はない。アプリ開発者に修正を要望し、アップデートを待つ必要がある。