誰も通信に割り込ませない

Kaspersky Labは、中間者攻撃を検知する技術の特許を取得しました。この技術は、Kaspersky Fraud Preventionなどの製品ですでに利用されています。

1000

このたび、Kaspersky Labのセキュリティ技術が大幅に増強されることになりました。当社製品で中間者(MitM)攻撃の検知を可能にする技術が、特許として認められたのです。中間者攻撃は金融マルウェアの作成者がよく使う手口ですが、こうした詐欺の利益をこの技術によって大幅に減らせることを願います。

開発は数年前、モバイルバンキングの大幅な普及を受けて始まりました。オンライン決済アプリの利用が拡大するにつれて、サイバー犯罪者もこれに追随し、金銭を電子的に盗む手口が巧妙化していきました。バンキングマルウェアに関して、今でも頻繁に使われる手口が、通信チャネルへの不正アクセス、すなわち中間者攻撃(MITM攻撃)です。

中間者攻撃では基本的に、銀行と顧客を結ぶ情報交換チャネルが傍受され、顧客が受信するデータが別のデータにすり替えられます。つまり、モバイルアプリで銀行と通信しているつもりでも、実際はそうではなく、外部のシステムに情報が送信されるのです。同時に、サイバー犯罪者は銀行との通信を不正操作します(結果は明らかです)。こうした攻撃を可能にするシナリオは、詐欺師が用いる技術と同じで、無数にあります。いくつか例を挙げると、DNSスプーフィング(DNSサーバーのキャッシュに偽のデータを追加する攻撃)、セキュリティ証明書の差し替え、公共Wi-Fiネットワークへの寄生、さらには、昇格させたシステム権限を持つマルウェアを使ってデバイス側でトラフィックを傍受するという手口もありますが、他にもまだまだあります。

そこで当社は、攻撃者が使う手口に関係なく、銀行が中間者攻撃を特定できるような技術の開発を決定しました。別の言い方をすれば、接続先が本当に銀行の情報システムであることを顧客のデバイスで確認できる手法を考案するのが、当社の課題でした。当社が開発したのは、金融アプリに送られてくるデータを再チェックし、本当に銀行から送信されたデータであることを確認する技術です。

では、この技術が一般的な攻撃にどのように対応するのか、カフェの公共Wi-Fiネットワークを例に見ていきましょう。ある人が銀行の公式アプリを使って銀行口座にアクセスしようとしていますが、カフェのネットワークはサイバー犯罪者にコントロールされているとします。バンキングアプリに接続しようとしても、乗っ取られたネットワークではアプリがhttps接続を確立できないため、代わりにブラウザーを使うしかありません。ブラウザーは銀行のサイトとの間に、保護されていないhttp接続を確立しようとしますが、カフェのルーターのどこかでhttpリクエストが犯罪者のサーバーにリダイレクトされ、リクエストしたサイトの偽のコピーが展開されます。ユーザー名とパスワードを入力すると、その認証情報が犯罪者の手に渡ってしまいます。

この攻撃で重要なポイントは、バンキングサイトの動作を模倣しようとするときに、犯罪者のサーバーがリクエストに対する応答を送信することです。本物の応答をコピーしようとするのですが、偽の応答は本物とそっくり同じものにはなりません。そこで当社技術の出番です。受信した応答を再送信して、本物の銀行から受け取ったはずのデータと比較することができます。

この技術は、中間者攻撃の事実を明らかにするだけでなく、それ以上の可能性を秘めています。攻撃者が通信チャネルのどこに命令を挿入したのか検知することも可能なのです。うまくいけば、その情報から犯罪者を探し出すことができるかもしれません。

中間者攻撃の対策技術は、すでにKaspersky Fraud Preventionなどのカスペルスキー製品に組み込まれています。この製品は主に、AndroidシステムとiOSシステムでのオンラインバンキング処理を保護します。

この特許の詳細に興味がおありの方は、米国特許商標庁(USPTO)のWebサイトをご覧ください。便宜上、名称は「System and Method for Detection of Targeted Attacks」(標的型攻撃を検知するためのシステムと手法)となっています。「標的型攻撃」という用語は一般的に、特定の組織を狙った攻撃に使われますが、中間者攻撃は特定の目的に合わせて調整されるものなので、これも「標的型攻撃」と呼ぶことにしています。

ヒント

ホームセキュリティのセキュリティ

最近では様々な企業が、主にカメラなどのスマートなテクノロジーを活用したホームセキュリティサービスを提供しています。しかし、セキュリティシステムは侵入者からの攻撃に対してどの程度セキュアなのでしょうか?