ショッピングシーズンに合わせて更新された POSマルウェア「FastPOS」

ショッピングシーズンに合わせて更新された POSマルウェア「FastPOS」

販売時点情報管理(Point of sale 、POS)」を狙う POSマルウェアのほとんどは、POS端末のメモリ情報の収集、同端末メモリの読み取り(RAMスクレイピング)、情報の保存と送出という手順を踏みます。しかし「FastPOS(ファストポス)」(トレンドマイクロでは「TSPY_FASTPOS.SMZTDA」として検出対応)は、これまでの亜種と異なり、仲介手順を省略し、クレジットカード情報窃取後、直ちにコマンド&コントロール(C&C)サーバへ情報送出します。

「FastPOS」は、「Fast」の名が示すとおり、隠ぺい機能も駆使して可能な限り素早く大量のデータを窃取します。「上半期セキュリティラウンドアップ」でも言及されたとおり、POSマルウェアがもはや新しい脅威とはいえない中、「FastPOS」は小売業やその顧客を狙って多用されています。こうした点から、小売業のショッピングシーズンに合わせて「FastPOS」が更新されても意外ではありません。

弊社の解析によると、「FastPOS」の検体は 2016年9月第2週にコンパイルされていました。弊社のクラウド型セキュリティ基盤「Trend Micro Smart Protection Network(SPN)」のデータからも中小・中堅企業への攻撃が確認されています。「FastPOS」作成者は、コードの機能性を確認する実証テストでも時間を無駄にしていないようです。使用する C&Cサーバのドメインが 2016年8月中旬に登録され、それから攻撃キャンペーン実施まで 1カ月しか経っていません。2015年に確認にされた前回の攻撃よりも早いペースです。

■モジュール化、アーキテクチャへの配慮
弊社は、北米を拠点にした企業のエンドポイントでネットワーク接続の異常を監視していた際、今回の更新版「FastPOS(「TSPY_FASTPOS.A」として検出)」を確認しました。形式とパスワードに「cdosys」と「comdlg64」、情報送出に「HTTP POST」の代わりに「HTTP GET」、Firefox向けには簡易な「HTTP User Agent」の文字列使用など、こられが更新版の証拠となりました。

図1
図1:「HTTP GET」で情報送出する「FastPOS」

「FastPOS」の初期の更新では、キー操作入力情報の収集(キーロガー)、RAMメモリの読み取り(RAMスクレーパー)、自己更新など、各機能に1つのプロセスを割り当てるマルチスレッド方式でした。しかし今回の更新では、1つのファイルにすべて書き込む代わりに自身のリソース内に複数のコンポーネントを隠ぺいする形式となっています。

今回の更新では、以下のコンポーネントが実装されました。

  • Serv32.exe – メールスロットを作成・監視し、内容を C&Cサーバへ送出するメインサービス
  • Kl32.exe – キーロガー用コンポーネント(32ビット版)
  • Kl64.exe – キーロガー用コンポーネント(64ビット版)
  • Proc32.exe – RAMスクレーパー(32ビット版)
  • Proc64.exe – RAMスクレーパー(64ビット版)

注目すべきは、32ビット版と 64ビット版でコンポーネントが分かれている点です。双方とも自身のリソースに保管され、侵入した PCに応じたコンポーネントが Windows のフォルダにコピーされ、実行されます。PC へ侵入後、“Kl32.exe” や “Kl64.exe” は “kbd.exe” へ、“proc32.exe” や “proc64.exe” は “servproc.exe” へとファイル名が変更されます。恐らく、感染PC のアーキテクチャが常時明記される煩わしさを回避する処置だと思われます。

■各コンポーネントの動作
各コンポーネントはシステム全体に以下のように動作します。まず、メインファイルがすべてのコンポーネントを取り出し、それぞれの制御をメインサービス(”serv32.exe”)に委ねます。メインサービスは、中枢の通信媒体を作成・監視し、受信したすべての情報を C&Cサーバへ送出します。キーロガー用コンポーネント(“Kl32.exe” もしくは “Kl64.exe”)はキーボードをフックし、キー操作入力情報を C&Cサーバへ送出するため、メインサービス(“serv32.exe”)と通信します。RAMスクレーパーのコンポーネントは、プロセスを監視してクレジットカード情報をスキャンします。スキャンされた情報は、メインサービス(“serv32.exe”)へ送出されます。

図2
図2:「FastPOS」の各コンポーネントの機能

窃取された情報はメールスロットに収納されます。通常、メールスロットは、アプリケーション向けのメッセージ保存や探索の役割を果たします。セキュリティ対策製品の検出回避でのメールスロット利用は、新しい手法ではなく、2015年3月確認された「LogPOS(「TSPY_POSMAIL.A」として検出対応)」が最初にこの手法を用いた POSマルウェアでした。メールスロットはメモリ常駐の一時ファイルで、これにより攻撃者は、感染PC にファイル作成などの痕跡を残さずに情報を保存できます。

■モジュール化による共同作業
「FastPOS」作成者が今回の更新に用いた方法は、注目に値します。モジュール化された不正プログラムの場合、各コンポーネントが相互作用しない限り動作しないようにプログラムできるため、検出が困難になります。他には、相互作用に依存せず、各コンポーネント自律的に実行できる亜種もあります。ただしこの場合、コンポーネントの引数が周知されます。

あるコンポーネントを確認できたとしても、それにより他のコンポーネントが確認できるわけではありません。例えば、メインサービス(“serv32.exe”)やRAMスクレーパー(”proc32.exe” もしくは ”proc64.exe”)はサービスとして実行され、確認が可能で削除も容易ですが、キーロガーのコンポーネント(”Kl32.exe” もしくは ”Kl64.exe”)は、正規プロセス “explorer.exe” のメモリにコードが組み込まれているため、その存在に気づくことも困難です。

図3
図3:キーロガーのコンポーネントが実行中(左)だが、メインサービスと RAMスクレーパーのコンポーネントのみ可視化されている(右)

図4
図4:正規プロセス “explorer.exe” に組み込まれたキーロガーのコンポーネント

メールスロットの利用は必要に迫られた改良点ともいえます。「FastPOS」の初期バージョンは、プロセスが1つだけ実行されていたため、メモリ上での情報の記録が容易でした。しかしモジュール化された今回の更新版では、中枢の保管場所ですべてのコンポーネントをファイルを利用せずに情報を記録するが必要あり、メールスロット活用が不可欠です。

■ショッピングシーズンに合わせた活動
今回の更新からは、情報保管場所をメモリからメールスロットに変更し、同一プラットフォームの各バージョン(32ビット版や64ビット版)向けを作成するなど、作成者が新たな手法を積極的かつ大胆に試みている様子がうかがえます。初期の更新は昨年 9月頃に実施されましたが、検体の解析から今回の更新版もほぼ同様の年間スケジュールが確認されました。開発だけでなく攻撃開始も、POS端末がフル稼働するショッピングシーズンに合わせたスケジュールであると推測されます。

■トレンドマイクロの対策
トレンドマイクロの製品は、「FastPOS」に関連する脅威からユーザを保護します。POSマルウェアから POS端末を保護するために「ウイルスバスター™ コーポレートエディション」「ウイルスバスター ビジネスセキュリティサービス」が有効です。また、POS端末上で実行されるアプリケーションを管理し、不正プログラムの実行を防止するために「Trend Micro Safe Lock™」の導入をお勧めします。

「FastPOS」の C&Cトラフィックは、外部の不正な URL への通信をブロックする「Webレピュテーション機能」によってブロックされています。また、ネットワーク監視ソリューション「Deep Discovery Inspector」は、ネットワーク内に侵入した不正プログラムの通信を検知し、感染端末の存在を早期に警告します。

ネットワークセキュリティ対策製品「TippingPoint」では、以下の MainlineDVフィルターにより今回の脅威をブロックします。

  • 24338: HTTP: TSPY_FASTPOS.SMDRP (FastPOS) Checkin
  • 25042: HTTP: FastPOS Sending Status Logs

「FastPOS」を識別するために弊社で作成した YARAルールこちらを参照してください。

この脅威に関連する SHA1ハッシュ値:

8e7761e123026d9ce6a108e77dd677ee5d6245e4 – 「TSPY_FASTPOS.A」として検出

他に、以下の検出名が含まれます。

  • TSPY64_FASTPOS.A
  • TSPY_FASTPOS.SMA
  • TSPY_FASTPOS.SMDRP

参考記事:

翻訳:室賀 美和(Core Technology Marketing, TrendLabs)