ブログ

Checkmarx Blog: 何百万ものスマートフォンユーザを 危険にさらすコーディングエラー

Checkmarx Blog

 

*以下はCheckmarx社によって書かれた下記URLの記事を翻訳したものです。
 https://www.checkmarx.com/2017/11/15/simple-coding-error-put-millions-smartphone-users-risk-need-know/

Nov 15, 2017 By Arden Rubens



少なくとも685個のさまざまなモバイルアプリに存在する単純なコーディングエラーにより、1億8千万ものスマートフォンユーザが、ハッカーによってテキストメッセージを盗み見られたり電話を盗聴されたりする危険にさらされています。2017年11月頃、サイバーセキュリティ企業のAppthorityは、この脆弱性(Eavesdropper)によってハッカーがアプリ内部に侵入し、ユーザに気づかれないよう機密情報にアクセスすることが可能な状況にあるとの警鐘を鳴らしました
 

Eavesdropperについて

開発者は、Twilioのテキストメッセージや電話をはじめとした各サービスへアクセスするために必要な認証情報を、意図せずハードコーディングしてしまいました。このコーディングエラーにより、ハッカーは事実上アプリ内のコードを参照するのと同じくらい簡単に認証情報を見つけることができ、それらの脆弱なアプリから送信されるデータへのアクセスが可能となります。

Appthority社のレポートによると(詳しくはこちら)、Eavesdropperは2011年から存在します。そして、Eavesdropperを悪用した攻撃は “偵察、悪用、窃取” のたった3ステップで実行できるのです。

Twilio社は、40,000を越す企業にコミュニケーションサービスを提供していることで知られており、Eavesdropperはこの脆弱性が存在するアプリ内部から発信される電話や送信されるテキストメッセージのみに影響を及ぼします。Telenavが提供する複数のGPSアプリやAndroid端末に標準搭載されていることの多いAT&T Navigatorも、この影響を受けます。このBlog記事を作成している時点で、同脆弱性を持つアプリがAndroid端末にインストールされた回数は合計で約1億8,000万に達します(iOS端末へのインストール回数はまだ不明です)。

セキュリティ研究者は、この影響を受ける企業へ秘密裏にバグについての情報を提供し、それ以降、該当する数多くのアプリにおいてPlay Store/App Storeからの削除や、パッチによる修正が行われています。

Eavesdropper対策

Eavesdrpopperは、コーディングエラーのような開発者の “ちょっとした” ミスによりアプリケーションに意図せず作り込まれてしまった脆弱性の典型例です。同時に、Eavesdropperの事件は、定期的なセキュリティ検査という “ちょっとした” 手間をかけてさえいれば、アプリケーションを脅かす脆弱性の発生を防げた良い例でもあります。

アプリケーションのセキュリティもまた、部分的に、開発者に委ねられているのです。開発チームは、確実にアプリケーションから脆弱性をなくせるよう、注意を怠らずにセキュアにコーディングする必要があります。SANS 2016 State of Application Securityの調査結果を見ると、アプリケーションセキュリティに関していえばスキル/ツール/手法の欠如が今日の企業が直面する最も大きな課題の1つであることが分かります。この欠如したスキルの中で、最も改善が求められているのが開発者のセキュアコーディングに関する知識です。セキュアコーディングにおける従来のトレーニングは、退屈で時間がかかると思われています。そして、トレーニングによって今まさに開発者が直面している固有の問題に、必ずしも対処できるわけではないのです。ですから、ときとしてアプリ内にコーディングエラーが紛れ込み、これが脆弱性へと発展するのも不思議なことではありません。

しかし、開発者のセキュアコーディングに関するトレーニングとしては、Codebashingが一つの解決策となりえます。Codebashingは実際に発生しうる脆弱性に基づき、その概要、攻撃手法から対策方法までを一連の流れとして、分かりやすく取り組みやすい分量で手軽に行えるトレーニングを提供します。Codebashingの無償版については、こちらにお問い合わせください。

可能な限り最高峰のセキュアコーディングツールで開発者をサポートすることにくわえ、開発環境にソースコード解析ツールを導入することが必要不可欠です。

静的アプリケーションセキュリティ検査(SAST)はアプリケーションのソースコードをスキャンし、SDLCの非常に早い段階で脆弱性を検出する有効な手法です。SASTの主な機能は、コード内部に潜む脅威を検出するためにアプリのソースコードを解析することです。セキュリティ検査を実施して開発ライフサイクルのごく初期段階で脆弱性を防ぎ、なおかつ強力で安定したセキュアなコーディングを実践しながらSDLC全体を通してセキュリティ対策を組込むことで、確実にベストなアプリケーションをリリースし、Eavesdropperのような脆弱性の被害にあう可能性を最小限に抑えることができます。

参考情報

プロフィール

Ardent Rubens

Checkmarx社のソーシャルメディアマネージャとライターを兼任。Blogでは主なトピックとして、アプリケーションセキュリティ業界におけるサイバーセキュリティの傾向と最新の開発について取り挙げ、開発者や企業のセキュリティ担当者に対し、オンライン上の脅威への最善の防御方法を探し続ける重要性を強く訴えている。