「RawPOS(ローポス)(「TSPY_RAWPOS」として検出)」は、「販売時点情報管理(Point of sale 、POS)」を狙い、メモリ上の情報を収集する POSマルウェアでも最も古いファミリです。しかし、トレンドマイクロは、現在も非常に活発に不正活動していることを確認しています。RawPOS の背後にいる犯罪者集団は、市場規模が大きく実入りのいいホテルやサービス産業を第一の標的にしています。トレンドマイクロは、RawPOS のコンポーネントや情報探索のためのツールに変化はありませんが、今回、運転免許証の情報窃取などの不正活動を新しく確認しました。こうした不正活動によって窃取された情報により、サイバー犯罪者による個人情報窃取とそれに伴う被害が発生する恐れがあります。
図1:2009年から2014年に検出された POSマルウェアのファミリ
■「RawPOS」がメモリ上のクレジットカード情報を確認する手法
POS 端末を狙う脅威においては、従来、POS マルウェアを利用してメモリからクレジットカードの磁気テープの情報を窃取し、キーロガーやバックドア型マルウェアのようなコンポーネントを利用して他の情報を窃取します。一方で RawPOS は、必要な情報を一度に集めるために巧妙な正規表現を利用します。正規表現は、目的とする情報のパターンに合致した文字列を検索するための一般的な方法で、 RawPOS はプロセスの中から磁気テープに保存されたトラックデータを探索します。図 2 は、以前利用されていた正規表現の例とそれを図示したものです。
((B(([0-9]{13,16})|([0-9]|s){13,25})\^[A-Z\s0-9]{0,30}\/[A-Z\s0-9]{0,30}\^(0[7-9]|1[0-5])((0[1-9])|(1[0-2]))([0-9]|\s){3,50})|([0-9]{15,16}=(0[7-9]|1[0-5])((0[1-9])|(1[0-2]))[0-9]{8,30}))
図2:トラックデータに合致する文字列を検索する正規表現の例
(図はREGEXPERで作成 by Jeff Avallone; licensed under CC BY 3.0)
この正規表現は、合致した文字列を以下のように解釈します。
第1トラック | %B{クレジットカード番号}^{姓}\{名}^{有効期限:年}{有効期限:月}{サービスコードおよびその他のデータ} |
第2トラック | ;{ クレジットカード番号}={有効期限:年}{有効期限:月}{サービスコードおよびその他のデータ} |
合致するパターンが見つかるとプロセスのメモリをダンプファイルとして取得し、ファイルから情報を収集するツールがデータを整理して抽出します。通常、メモリとファイルで同じ正規表現が利用されます。
■ RawPOS の正規表現の変遷
下の表は、RawPOS が文字列のパターン検索に利用した正規表現の数年間にわたる変遷です。
2008 | ((B(([0-9]{13,16})|([0-9]|s){13,25})\^[A-Z\s0-9]{0,30}\/[A-Z\s0-9]{0,30}\^(0[7-9]|1[0-5])((0[1-9])|(1[0-2]))([0-9]|\s){3,50})|([0-9]{15,16}=(0[7-9]|1[0-5])((0[1-9])|(1[0-2]))[0-9]{8,30})) |
2009-2014 | ((B(([0-9]{13,16})|([0-9]|\s){13,25})\^[A-Z\s0-9]{0,30}\/[A-Z\s0-9]{0,30}\^(0[7-9]|1[0-5])((0[1-9])|(1[0-2]))([0-9]|\s){3,50})|([0-9]{15,16}([A-Z]|=)(0[7-9]|1[0-5])((0[1-9])|(1[0-2]))[0-9]{8,30})|(<Field name=”CardNumber”>[0-9]{15,19}</Field>)|(~CCM[0-9]{15,19}D[0-9]{4}~)) |
2014-2015 | ((B(([0-9]{13,16})|([0-9]|\s){13,25})\^[A-Z\s0-9]{0,30}\/[A-Z\s0-9]{0,30}\^[0-9]{2}((0[1-9])|(1[0-2]))([0-9]|\s){3,50})|([0-9]{15,16}(D|=)[0-9]{2}((0[1-9])|(1[0-2]))[0-9]{8,30})|(<Field name=”CardNumber”>[0-9]{15,19}</Field>)|(~CCM[0-9]{15,19}D[0-9]{4}~)) |
2015 | ((<Field name=”CardNumber”>[0-9]{15,19}</Field>)|(B(([0-9]{13,16})|([0-9]|\s){13,25})\^[A-Z\s0-9]{0,30}\/[A-Z\s0-9]{0,30}\^[0-9]{2}((0[1-9])|(1[0-2]))([0-9]|\s){3,50})|([0-9]{15,16}(D|=)[0-9]{2}((0[1-9])|(1[0-2]))[0-9]{8,30})) |
2016 | ((<Field name=”CardNumber”>[0-9]{15,19}</Field>)|(B(([0-9]{13,16})|([0-9]|\s){13,25})\^[A-Z\s0-9]{0,30}\/[A-Z\s0-9]{0,30}\^[0-9]{2}((0[1-9])|(1[0-2]))([0-9]|\s){3,50})|([3-7][0-9]{14,15}(D|=)[0-9]{2}((0[1-9])|(1[0-2]))[0-9]{8,30})) |
2016-2017 | ((B(([0-9]{13,16})|([0-9]|\s){13,25})\^[A-Z\s0-9]{0,30}\/[A-Z\s0-9]{0,30}\^[0-9]{2}((0[1-9])|(1[0-2]))([0-9]|\s){3,50})|([0-9]{15,16}(D|=)[0-9]{2}((0[1-9])|(1[0-2]))[0-9]{8,30})|(ANSI\s636[0-9]{5,10}[\s\w]{10,500}))
または ((<Field name=”CardNumber”>[0-9]{15,19}</Field>)|(B(([0-9]{13,16})|([0-9]|\s){13,25})\^[A-Z\s0-9]{0,30}\/[A-Z\s0-9]{0,30}\^[0-9]{2}((0[1-9])|(1[0-2]))([0-9]|\s){3,50})|([0-9]{15,16}(D|=)[0-9]{2}((0[1-9])|(1[0-2]))[0-9]{8,30})|(ANSI\s636[0-9]{5,10})|([Dd]rivers.[Ll]icense)) |
初期の数年間はいくつかの小さな変更が加えられただけでこれといった変化はありません。しかし、2016年からは大きく変化しています。図3は、その詳細となります。
図3:最近使われた正規表現の例
(検体:SHA256 “d931c76219c042cc9f9b50e1c50b678cefb10431683e4e9f9afde9b06a32dafe”)
(図はREGEXPERで作成 by Jeff Avallone; licensed under CC BY 3.0)
図3の group #1 から #14 は、クレジットカードの詳細情報を検索するための部分で、「Drivers(運転者)」と「License(免許証)」という文字列からは運転免許証の情報を狙っていることがわかります。では、group #15 の文字列「ANSI 636」は何でしょうか。
実はこの部分は、個人認証、年齢確認、住所確認および事務作業の自動化を支援するために義務化された「PDF417規格」のバーコードを規定する「2013 North American American Association of Motor Vehicle Administrators (AAMVA) DL/ID Card Design Standard(2013年北米米国自動車管理者協会運転免許証/身分証の設定規格)」で指定されていることが判明しました。PDF417規格は、機械で読み取る2次元バーコードの規格のひとつです。
「636」という数字は、米国のほとんどの州における「Issuer Identification Number (発行者識別番号、IIN)」の最初の3桁で、このことから RaWPOS に関わるサイバー犯罪者集団の関心は米国の運転免許証の情報であることがわかります。免許証に記載される情報は州ごとに異なるものの、運転免許証や州の身分証のバーコードには、氏名、生年月日、住所、性別、身長、さらには髪や瞳の色といった、ほとんど同じ情報が記録されています。
ANSI 636061050002DL00410337ZW03780013DCAD DCB1 DCDNONE DBA02212021 DCSSAMPLECARD DACTHOMAS DADALEXANDER DBD12032013 DBB02211984 DBC1 DAYBRO DAU76 in DAG1234 COMMODORE JOSHUA BARNEY DRIVE, DAIWASHINGTON DAJDC DAK00000-0000 DAQ1234567 DCF20130917090716MARKS999999 DCGUSA DDEU DDFU DDGU DAH(999) 999-9999 DAZBRO DCJ DDA DDB09172013 DAW200 DDH02212002 DDI02212003 DDJ02212005 ZWZHCDCDL_DL |
図4:運転免許証の2次元バーコードに記録された情報の例
クレジットカードによる購入と比べると、このバーコード情報の使用は一般的とは言えませんが、全く無いわけではありません。米国では、薬局や小売店、バー、カジノなど、年齢認証等を必要とする場所でバーコードの提示を求められることがあります。
■免許証の情報窃取の目的は?
個人情報とクレジットカード情報を組み合わせて利用することで、サイバー犯罪者集団はカードの実物が無くても取引を完了するために必要な情報をすべてそろえることができます。また、運転免許証のバーコードから読み取った情報は、なりすましなどに悪用されます。どちらの場合でも、「Personal Identity Information(個人識別情報、PII)」の窃取はユーザにとって深刻な問題となります。
■トレンドマイクロの対策
米国連邦取引委員会(FTC)やクレジットカード発行会社は、クレジットカード詐欺から自身を守るための注意事項を公開しています。ホテルやサービス産業を主な標的とする RawPOS の場合、休暇を取った後にはクレジットカードの請求額を確認するようにしてください。また、ほとんどのクレジットカード発行会社は、顧客が自身のアカウントを監視できるサービスを提供しており、不審な取引があった場合すぐにカード会社に報告できるようになっています。運転免許証のような身分証の提示を求められた際には、カードリーダーに通されたり、あるいは電子的に読み取られていないか細心の注意を払ってください。
トレンドマイクロの製品は、RawPOS に関連する脅威からユーザを保護します。POSマルウェアから POS 端末を保護するため、「ウイルスバスター™ コーポレートエディション」「ウイルスバスター ビジネスセキュリティサービス」が有効です。また、POS 端末上で実行されるアプリケーションを管理し、不正プログラムの実行を防止するために「Trend Micro Safe Lock™」の導入をお勧めします。
POSマルウェアによる外部の不正な URL への通信は、「Webレピュテーション機能」によってブロックされます。また、ネットワーク監視ソリューション「Deep Discovery Inspector」は、ネットワーク内に侵入した不正プログラムの通信を検知し、感染端末の存在を早期に警告します。
参考記事:
- 「RawPOS: New Behavior Risks Identity Theft」 by Cyber Safety Solutions Team
翻訳:澤山 高士(Core Technology Marketing, TrendLabs)