目に見えない新たな脅威:ファイルレスマルウェアに関する6つの事実

 ここ1年でITセキュリティ業界は、新タイプのマルウェアの増加を目にしています。それこそファイルレスマルウェア攻撃です。この「ファイルレスマルウェア」という言葉は、実際の挙動というよりもコンセプトを表現するものと言えます。

ファイルレスマルウェアとは?

 従来型のマルウェアは外部の悪質なコードを読み込んでシステムに侵入しますが、ファイルレスマルウェア攻撃は完全に異なるアプローチを用います。共通のデータを利用するシグネチャベースのアンチウィルスプログラムを用いれば、従来型が必要とする実行ファイルを検知したり、ダウンロードを未然に防ぐことが可能です。ところがファイルレスマルウェアは、実行ファイルをディスク上に格納することなく攻撃します。これが「ファイルレス」と呼ばれる所以です。多くの場合、ファイルレスマルウェアは既存のシステムリソース(Microsoft PowerShellなどの管理ツールやVisual Basic、Bash、Pythonなどのスクリプト言語など)を利用することが知られています。

ファイルレスマルウェアの特徴とは?

 ファイルレスマルウェア攻撃の大きな特徴の一つは、検知可能なフットプリントを残さずに機能する点です。通常のプロセスに見せかけてメモリ上にのみ感染することがほとんどで、ハードドライブには感染が広がることはありません。非マルウェア攻撃やゼロフットプリント攻撃のようなメモリに対する攻撃、そして広義ではマクロ攻撃もファイルレスマルウェアとみなされます。これらの手法は、ダウンロードや書き込み操作時のセキュリティチェックでは検知されない点で共通しています。

その影響は?

 WindowsもUnixベースであっても、管理ツールが異なる場合でもシステムに影響が出る恐れがあります。管理ツールはさまざまな機能を管理しているため、正規のアクション(システム管理など)と有害なアクションを見分けることが難しいのです。最初は疑わしく見えないものの、別のタスクと結びついてセキュリティ脅威となるなど、マルチレベルで機能する管理ツールの特徴を利用しているというわけです。
 多くの場合、ファイルレスマルウェアはRAMのみに見つかるので、インシデント調査は困難になります。というのも、システムが再起動されたりシャットダウンされた時点で、証拠がなくなってしまうからです。

ファイルレスマルウェアの感染経路とは?

 ファイルレスマルウェア攻撃はフィッシングキャンペーン(リンクをクリックさせる手法)で感染することが非常に多く確認されています。その例としてEmotetやKovterが挙げられます。その他にも、感染したウェブサイトを閲覧することで攻撃が始まることもあります。
 MS Officeのマクロ、Visual BasicやPowerShellのスクリプトを利用し、様々なレベルのタスクと結びつくこともあります。この手法では悪質なルーチンの実行をできるかぎり後回しにし、正規のアクションのみを実行する仕組みが用いられています。システムがシャットダウンするその瞬間に固定記憶域ファイルに書き込みを行い、通常時は完全に「ファイルレス」なものも確認されています。

ファイルレスマルウェアを検知するには?

 単にシグネチャ、ダウンロード、書き込みプロセスをチェックするだけでは、ファイルレスマルウェアを検知することはできません。検知するには、異常や変更されたプロセスの挙動をシステム側で発見する必要があります。シェルコマンドの実行や承認、ネットワークトラフィックの変化、ユーザー権限の変更といった情報を収集し、さらに状況と照らし合わせて総合的に判断する必要があるのです。
 ファイルレス攻撃や非マルウェア攻撃は、フットプリントを隠ぺいするためにログファイルを削除することがあります。これが検知の手がかりとなることもあります。「検知するためには1つの要素だけでなく全体を見なければならない」ということを示す一例と言えるでしょう。

ファイルレスマルウェアの攻撃対象とは?

 通常、ファイルレスマルウェアは企業ネットワークを対象として攻撃を行います。しかし、個人を標的にするように流用することも容易です。ダークネットではサービスとしてのエクスプロイトキットが増加しており、技術力に乏しい犯罪者でも攻撃を行うことができます。
 安全性を確保するには、ユーザーとセキュリティプロバイダが最新の傾向と技術動向を把握・考慮する必要があります。

ユーザーと管理者向けのセキュリティのヒント

  • セキュリティギャップを埋める:ソフトウェアを常に最新の状態に保つ
  • ファイアウォールを使用する
  • PowerShellを無効化する
  • 最小権限の原則:管理者アカウントで作業せず、ユーザーには最小限の権限のみを与える
  • できる限りスクリプト言語の使用を控える
  • マクロの使用は必要な場所で必要な時のみにとどめる
  • デバイスを使用していない時はシャットダウンする
  • ローカルでアンチウィルスソフトウェアを使用し、それに加えてウェブとEメールゲートウェイの安全を確保する
  • 疑わしいリンクをクリックしたり、不明または予期しないファイルを開いたりしない
  • 外部ストレージにデータをバックアップして、定期的に完全性と回復性を確認する
  • 不明点がある場合は、管理者に助言を求める