最近、「個人情報の収集・使用に関する同意書」を装った悪意のあるファイルが拡散されていることが確認された。攻撃者は業務文書と誤認しやすいファイル名を使用し、ユーザーに実行させようとする。このファイルは実際の文書ではなくショートカット (LNK) ファイルであり、実行すると内部に隠されたコマンドによって PC 情報を収集し、さらに追加の悪意のある動作へとつながる可能性がある。
本ブログでは、この悪意のある LNK ファイルの動作の仕組みと、安全に対処する方法について紹介する。
今回の事例では、LNK ファイル内に難読化された PowerShell スクリプトが含まれている。ユーザーがファイルを実行すると、このスクリプトが動作し、外部に配置された追加の悪意のある PowerShell スクリプトを読み込んで、ファイルレス (Fileless) 方式で実行する。ファイルレス方式とは、悪意のあるファイルを PC 上に直接保存せずメモリ上で実行する手法であり、ユーザーが感染に気付きにくいという特徴がある。

[図1] LNK ファイル内に含まれる PowerShell スクリプト
追加スクリプトの生成と持続性の確保
攻撃者が外部スクリプトの内容を複数回変更していた形跡も確認されている。現在までに確認された6種類のコードはそれぞれ異なるが、難読化された PowerShell を復号して実行するという動作は共通している。
悪意のある LNK ファイルが実行されると、ユーザー PC の特定のパスに追加の PowerShell スクリプトが生成される。そのうち1つは外部ペイロードをダウンロードするダウンローダーであり、もう1つはそのダウンローダーを実行するローダーの役割を果たす。

[図2] 追加で実行される PowerShell スクリプト_1

[図3] 追加で実行されるPowerShellスクリプト_2
その後、攻撃者は Windows タスクスケジューラにタスクを登録し、ローダースクリプトが繰り返し実行されるよう設定する。タスクスケジューラは、指定した時刻や条件に応じてプログラムを自動実行する Windows の正規機能だが、攻撃者に悪用されると、PC を再起動した後も悪意のある動作が再び実行される可能性がある。
また、この悪意のある LNK ファイルは、ユーザーに不審に思われないよう、内部に含まれた正常な文書形式のおとり (デコイ) ファイルを生成して表示する。ユーザーには文書が正常に開かれたように見えるため、感染に気付きにくい。その後、元の LNK ファイルは削除されるため、痕跡を確認することも困難となる。
ダウンロードパスで確認された追加の悪意のあるファイル
確認されたダウンロードパスでは、大きく分けて2種類の追加の悪意のあるファイルが確認された。1つは感染した PC の情報を窃取する PowerShell スクリプトであり、もう1つはバックドアローダーの PowerShell スクリプトである。
ダウンローダー型のスクリプトは、正常な Web サービスに保存されたデータをダウンロードし、その中に含まれるエンコード済みデータを抽出して実行する仕組みとなっている。このデータは攻撃者によって変更可能であるため、同じ拡散手法であっても実行されるマルウェアが異なる場合がある。
情報窃取型のスクリプトは、過去に確認された Kimsuky グループの類似事例とよく似た動作を示しており、今回の事例でも攻撃者が外部サービスを利用していた形跡が確認されている。
情報窃取とバックドアの動作
情報窃取型の PowerShell スクリプトは、感染した PC からさまざまな情報を収集する。収集対象には、インストールされているセキュリティ製品の情報、OS 情報、ネットワーク設定、IP 情報、ドライブ情報、最近更新されたファイルの情報、実行中のプロセス情報などが含まれる。
これらの情報は、攻撃者が感染 PC の環境を把握するために利用される。例えば、セキュリティ製品の導入状況やネットワーク接続状況、さらなる攻撃が可能かどうかなどを判断する材料となる。

[図4] 情報窃取型 PowerShell スクリプト
バックドアローダー型のスクリプトは、内部に含まれた実行データを復号した後、メモリ上にロードする。その後、ロードされたマルウェアはバックドアとして動作し、情報窃取や DLL (Dynamic Link Library) の実行など、さまざまな悪意のある動作を実行する。
バックドアとは、攻撃者が感染した PC へ再度アクセスしたり、追加のコマンドを送信したりできるようにするマルウェアである。そのため、単なる情報収集で終わるのではなく、さらなる攻撃へ発展する可能性がある点に注意が必要である。

[図5] バックドアマルウェア
対策
今回の攻撃は、ユーザーが文書と誤認した LNK ファイルを実行することで開始される。そのため、ファイルを実行する前の確認が非常に重要である。企業環境では、出所が不明なファイルだけでなく、タスクスケジューラ、PowerShell の実行履歴、外部接続履歴などについても総合的に点検する必要がある。
1) 出所が不明なファイルの実行を避ける
文書のように見えても、拡張子が「.lnk」の場合は実際の文書ファイルではなくショートカットファイルである可能性があるため、実行には十分注意する。
2) ファイルの実行前に拡張子と受信経路を確認する
電子メール、メッセンジャー、Web サイトなどを通じて受け取ったファイルは、送信者や受信経路を必ず確認する。業務で見慣れた件名のファイルほど攻撃に悪用されやすい点にも注意が必要である。
3) タスクスケジューラと不審なファイルを点検する
企業のセキュリティ担当者は、組織内の PC に不審なタスクスケジューラが登録されていないか確認する必要がある。また、ユーザーアカウントのディレクトリ内に不審な PowerShell スクリプトや未知のファイルが生成されていないかについても確認する。
4) PowerShell の実行履歴と外部接続履歴を確認する
PowerShell の実行履歴、外部接続の痕跡、繰り返し実行されるスクリプトの有無をあわせて確認する。正常な Web サービスやクラウドストレージへの接続に見えても悪意のあるデータの配信に悪用される場合があるため、通常とは異なる接続パターンがないかを確認することが重要である。
Categories: マルウェア