世界的な大手銀行が提供し、幅広く利用されているiOS向けバンキングアプリの多くに、データの盗難や口座の乗っ取りの恐れのあるバグが含まれています。具体的には、豊富な知識を持つ攻撃者なら、中間者攻撃によってユーザーのふるまいを監視し、セッションハイジャック攻撃でユーザーの口座を乗っ取りメモリ損壊の問題を発生させることで、システムクラッシュやデータ漏えいを引き起こすことが可能です。こうしたぜい弱性によって、ユーザー認証情報を盗まれ、オンラインバンキングの口座に不正にアクセスされる可能性があるのです。
セキュリティ企業IOActiveに所属するアルゼンチンの研究者、アリエル・サンチェス(Ariel Sanchez)氏は、世界の大手銀行60行の40のモバイルバンキングアプリを対象に一連のテストを実施しました。テストでは、各アプリのデータ転送メカニズム、ユーザーインターフェイス、ストレージプロセスのセキュリティ分析が行われたほか、コンパイラやバイナリといった複雑なものも分析されています。
サンチェス氏は、エクスプロイトの恐れがある一連のぜい弱性を発見しました。
「相応のスキルを持つ者なら、この情報を使ってバグを見つけ出すことができるでしょう。そのバグを調べてエクスプロイトやマルウェアを開発し、影響を受けるバンキングアプリのユーザーを攻撃できるかもしれません。これはセキュリティの潜在的な脅威の第一段階と言えます。」(サンチェス氏)
IOActiveは、これらのぜい弱性を各行に報告したとしています。サンチェス氏によれば、現時点ではどの銀行からも、このセキュリティ問題にパッチを適用したという報告はないそうです。
各アプリのバイナリコードの静的分析で発見された最も憂慮すべき問題は、ハードコードされた開発認証情報がバイナリに大量に埋め込まれていることだとサンチェス氏は言います。つまり、ぜい弱性を抱えたさまざまなバンキングアプリ(アプリ名は公表されていません)に、マスターキーだとわかるようなものが含まれているのです。これらのハードコードされた開発認証情報は、開発者がアプリの開発インフラストラクチャにアクセスするためのものですが、攻撃者にも同じレベルのアクセス権を与えてしまう恐れがあります。
「このぜい弱性は、銀行の開発インフラストラクチャにアクセスし、アプリをマルウェアに感染させるために利用される恐れがあります。それによって、アプリのすべてのユーザーに影響するほどの大規模な感染が発生することも考えられます。」(サンチェス氏)
この問題の一端は、多くのアプリが暗号化されていないリンクをユーザーに送信していること、あるいは、情報を暗号化するときにSSL証明書を適切に検証できていないことです。このようなふるまい(サンチェス氏は、アプリを開発した人の単純な見落としが原因としています)のために、顧客が中間者攻撃のリスクにさらされ、フィッシング詐欺の一環として悪質なJavaScriptやHTMLコードを注入される恐れがあります。
サンチェス氏が発見したこれらの問題をさらに悪化させているのが、分析対象となった銀行の70%が2段階認証を導入していないことです。
同氏は次のように述べています。「必要なのは、アプリのバイナリと、コードを復号するためのツール、コードを逆アセンブルするツールだけです。こうしたアプリのコードの復号化と逆アセンブルの方法について説明する文書は、大量に公開されています。特に専門知識がない人でも、ある程度時間をかければ簡単に読み進めていくことができます。」
IOActiveは、良い面と悪い面の両方について責任があります(ただし、ほとんどは良い面です)。良い面は、該当する銀行名と具体的なぜい弱性を公表しなかったことです。ぜい弱性についての詳細な情報が公開されれば、ユーザーの口座を狙うために必要な情報が攻撃者の手に渡ることになるかもしれません。悪い面は、どの銀行とアプリがぜい弱性を抱えているのかわからないため、誰を、あるいは何を信じていいのかわからないことです。
もちろん、極めて注意深い人は、これらの問題が確認されて解決されるまで、モバイルバンキングアプリの使用を控えるはずです。しかし、多くの人はそうしないでしょう。したがって当面は、銀行から2段階認証が提供されている場合は必ず設定するようにしてください。他にも、バンキングアプリのリンクを辿る際に注意し、フィッシングメッセージを警戒して、銀行口座に目を光らせる必要があります。