2020年7月14日

スクリプトベースの攻撃とは?また、それを防ぐためには?

As originally published in HelpNet Security. Attackers always seek out new ways to evade detection. As most endpoint security products handle file-

掲載元: HelpNet Security

攻撃者は、検知されないための新しい方法を常に模索しています。ほとんどのエンドポイントセキュリティ製品はファイルベースの攻撃を比較的うまく処理できるため、攻撃者にとってスクリプトは、ディスクへの変更を回避し、脅威検出機能を回避するための優れた手段となります。今日の脅威の状況では、スクリプトは初期アクセスを提供し、回避を可能にし、感染後の横方向の動きを促進します。攻撃者は、マシン上で直接スクリプトを使用したり、電子メールの添付ファイルとして被害者に送られる Office ドキュメントや PDF にスクリプトを埋め込んだりします。本ブログ記事では、スクリプトによる脅威の状況を説明し、一般的な攻撃と手法をご紹介します。

スクリプトベースのサイバー攻撃は、2017 年に 400 %以上も増加した、人気の攻撃です。国民国家やサイバー犯罪グループがスクリプトやファイルレスマルウェアの使用を採用したのも、同じ時期です。Ponemon Institute が発表した 2020 年エンドポイント セキュリティ レポートによると、現在、スクリプトベースの攻撃はサイバー攻撃全体の 40% を占めています。 Deep Instinct 社は、2018 年と 2019 年に、ファイルレスの攻撃手法の増加を確認しています。特に疑わしいのは、正規のアプリケーションや PowerShell などのネイティブツールをラテラルムーブメントや感染のために悪用するケースが急増したことです。この傾向は、国家と非国家の両方のアクターに当てはまります。

スクリプトには、単純なシステムコマンドのシーケンスから、システム設定や複雑なタスクの自動化などの一般的な目的に使用される高度なスクリプト言語まで、さまざまなものがあります。一般的なスクリプト言語には、VBScript、JavaScript、PowerShell などがあります。マシンコードにコンパイルされた後に実行されるアプリケーションとは異なり、コンピュータはスクリプトを解釈します。スクリプト言語 Perl の生みの親である Larry Wallsh氏は「スクリプトは役者に与えるものだが、プログラムは観客に与えるものだ」といっています。

攻撃者によるスクリプトの使用方法

他の種類のマルウェアと同様に、スクリプトによる感染が成功すると、ペイロードの配信やラテラルムーブメントが行われます。ペイロードは、情報収集、ファイル暗号化、バックドア通信など、攻撃者が望む動作を実行します。同時に、ラテラルムーブメントによってネットワーク内の他のコンピュータが感染します。

スクリプトの使用は、攻撃者にとって多くの利点があります。スクリプトは、記述と実行が容易で、難読化が容易であり、極めて多義的です。さらに、攻撃者は、PowerShell、JavaScript、HTA、VBA、VBS、バッチスクリプトなど、さまざまな種類のスクリプトファイルを使用して攻撃を実行することができます。最後に、ファイルレス攻撃はメモリ上で発生するため、従来の静的なファイル検知は役に立たなくなります。さらに、スクリプトは、攻撃に関連する多くのアーティファクトがコンピュータのメモリ内にしか存在せず、再起動などによって上書きされたり削除されたりする可能性があるため、イベント後の分析が複雑になります。メモリ内の検知とアーティファクトの収集は、ヒューリスティックな手法と行動分析を用いることで可能となり、悪意のあるメモリ内の活動を検知することができます。

スクリプトベースの攻撃は、ほぼすべての Windows システムで実行されるため、潜在的な攻撃対象が増え、感染の可能性も高まります。スクリプトベースの攻撃の大きな欠点は、エクスプロイトを介して展開されない限り、スクリプトを実行するためにはユーザーの操作が必要になることです。例えば、ほとんどの場合、スクリプトは、ユーザの操作を必要とする電子メール内のスクリプトファイルとして、またはユーザがマクロを有効にする必要のあるドキュメント内の VBA マクロとして含まれています。

ランサムウェア、バックドア、金融など、多くの種類のマルウェアがスクリプトを利用しています。例えば、PE ファイルをダウンロードするスクリプトは、その洗練度に応じて、PE ファイルをディスクに保存したり、メモリから実行したりすることができます。また、スクリプトは、コンピュータ名から保存されたパスワードまで、被害者に関する情報を収集するなど、さらに悪質な行為を行うことができます。

Deep Instinct の Threat Intelligence では、一連の攻撃を調査した結果、ファイルレスキャンペーンの 75 % が、攻撃の少なくとも 1 つの段階でスクリプト(主にPowerShell、HTA、JavaScript、VBA のうち 1 つ以上)を使用していると結論付けています。

例えば、イランを拠点とする Oilrig グループが使用する Helminth トロイの木馬 は、その悪意のあるロジックにスクリプトを使用しています。この攻撃では、CVE-2017-0199 を悪用した Microsoft Word の文書ファイルから、Windows プロセスで実行される HTA スクリプトが配信され、HTML 実行ファイル mshta.exe が実行されます。実行されると、このスクリプトは攻撃を開始し、Helminth トロイの木馬を PowerShell および VBS ファイルとして配信します。

Powershell:システム管理者とアタッカーのための強力なツール

PowerShell は、構成管理やタスクの自動化に使用されるフレームワークで、コマンドラインシェルとスクリプト言語を備えています。PowerShell は、Microsoft Windows Management Instrumentation(WMI)および Component Object Model(COM)へのアクセスを提供しており、IT 管理プロセスを自動化するシステム管理者だけでなく、システムを手に入れようとする攻撃者にとっても、便利で多機能なツールとなっています。

PowerShell を利用した悪質なファイルローダ

攻撃者は、攻撃の際に PowerShell を使用して、ディスクに書き込まずにメモリに直接マルウェアをロードするため、多くのエンドポイントセキュリティ製品を回避することができます。また、攻撃者は PowerShell を使用して、Metasploit や PowerSploit などのフレームワークを使用して、データの流出や感染プロセスを自動化します。

他のタイプの攻撃と同様に、スクリプトベースの攻撃では、一般的に、PDF、RTF、Officeファイル、またはアーカイブなどのドロッパーを含むフィッシング攻撃が成功した場合に、被害者が最初に拘束されます。多くの場合、このドロッパーは、VBA マクロや、PowerShell、JavaScript、HTAなどの別のタイプのスクリプトを実行します。場合によっては、スクリプトがダウンローダーとして動作し、PE ファイルをディスクにダウンロードしてから削除したり、PE ファイルを別のプロセスに注入したり、別のスクリプトをダウンロードして攻撃の次の段階を実行したりします。まれに、スクリプトに悪意のあるロジック全体が含まれている場合があります。その他のケースでは、攻撃者は、例えば Adobe Acrobat などのドキュメントリーダーの脆弱性を利用して、攻撃の次の段階を落とします。ドロッパーの使用は、スクリプトベースのマルウェアだけでなく、よく知られているランサムウェアや金融系マルウェアのキャンペーンなど、ファイルベースのマルウェアの攻撃でも広く行われています。

この手法を用いた有名な攻撃に Cobalt マルウェア があり、CVE-2017-11882 を悪用したドキュメントドロッパーを使用していました。ユーザーがドキュメントを開くと、ドキュメントに含まれるエクスプロイトが JavaScript を ダウンロードし、その JavaScript が複数の PowerShell スクリプトを実行しますが、最後のスクリプトコードには Cobalt の DLL が含まれていました。これらのスクリプトは、ディスクにダンプされることなく、PowerShell のメモリ内で完結しました。この脆弱性を利用して、ユーザがドキュメント・ドロッパーを開くだけのファイルレス攻撃が行われました。

多くの場合、PowerShell を使用することで、攻撃者が被害者に対して最初の足場を築くことができます。また PowerShell を使用することで、攻撃者は権限や特権を取得し、システム内での横移動を実行できるだけでなく、Microsoft Exchange などの他の Windows アプリケーションとのやり取りも可能になります。

Javascript:PDF リーダーの招かれざる客

JavaScript は、Web ページ、Web アプリケーション、およびブラウザで使用される標準的なスクリプト言語です。JavaScript は、実装されたオブジェクトや Web ページのリンクなどを用いて、PDF ファイルを操作および変更することができます。ファイルシステムに直接アクセスできるように設計されていないにもかかわらず、PDF ベースの攻撃のほとんどは、PDF リーダーソフトウェアまたはブラウザ内リーダーを使用して、犠牲者のマシン上で JavaScript コードを実行します。未パッチの脆弱性を利用するか、設計上の機能を利用するかのどちらかで、PDF リーダーの企業とマルウェア開発者は、何年も前から犬猿の仲です。

その他のスクリプトベースの脅威

HTML アプリケーション(HTA)は、Internet Explorer 上で実行されることを意図した Microsoft Windows のファイルで、HTML コードと VBScript や JScript などの Internet Explorer がサポートするスクリプトを組み合わせたものです。HTA ファイルは、Internet Explorer の制限付き権限ではなく、ローカルユーザーの権限を持ち、ファイルシステムやレジストリにアクセスできるMicrosoft HTA エンジン(mshta.exe)を介して実行されます。

悪意のある HTA ファイルは、実行ファイルや追加のスクリプトをダウンロードして実行するために、ローカルユーザーの権限でマシンを実行するスクリプトを許可します。古い攻撃手段と考えられていますが、多くのスクリプトベースの攻撃は引き続きHTA ファイルを使用しています。これらのファイルは、添付ファイルとして送信されたり、別のスクリプトによってダウンロードされたり、悪意のある Web サイトからのリダイレクトであったりします。

VBScript (Microsoft Visual Basic Scripting Edition) は、VBA (Visual Basic for Applications) をベースにしたマイクロソフトのスクリプト言語です。VBS は、VBA のようなアプリケーション開発ではなく、システム管理者のタスクを自動化するような目的で使われます。同じ用途で使われる PowerShell と同様に、VBScript はスクリプトベースの攻撃でよく見られます。Microsoft がVBE ファイルの形でスクリプトのエンコーディングをサポートしていることも、攻撃者が VBS を有効だと考える理由の 1 つです。

組織内のネットワークでスクリプトの実行を許可すべきか?

ファイルレス攻撃やスクリプトベースの攻撃では、攻撃の悪意のあるロジックがメモリ内で発生するため、従来の静的ファイル解析による脅威の検知は不十分です。特に PowerShell をはじめとするスクリプトベースの攻撃が増加しているため、企業は攻撃の一連の流れがメモリ上で行われる攻撃に対抗する準備をする必要があります。

検討すべき最初のステップは、従業員をいくつかのグループに分けることです:

  1. スクリプトを実行することが、日常業務の一部である従業員
  2. スクリプトをたま実行する従業員
  3. スクリプトを実行する必要のない従業員

グループに分けた後、セキュリティチームは、スクリプトが読み取り専用の場所からのみ 実行され、特定のマシンのみにアクセスできるようにする必要があります。また、セキュリティチームは、組織全体での対話型 PowerShell の使用を制限し、監視する必要があります。さらに、IT  衛生管理を徹底することで、組織の攻撃対象を限定し、スクリプトベースの攻撃に関連するリスクを低減することができます。

このような基本的なルールを設定した上で、企業は、スクリプトベースの攻撃を検知する機能と、業務上スクリプトを使用する必要があるユーザが支障なく使用できる機能のバランスが取れた、特定の機能を持つセキュリティソリューションを探す必要があります。 Deep Instinctは、最新の製品バージョンで、これらの要件を満たすスクリプト脅威防止機能を提供する Contextual Script Behavioral Analysis を導入しました。ポリシーのみでスクリプトへのアクセスを制限する他のスクリプト防止アプローチとは異なり、Deep Instinct の Contextual Script Behavioral Analysis は、スクリプトのコンテンツを分析して脅威を特定します。悪意のある PowerShell コマンドとコンテンツを識別する組み込み機能と、親プロセス(MS Word、Outlookなど)の閉じたリストの子プロセスとしてスクリプトが実行される場合を識別する機能を備えた、スクリプトベースの脅威防止に対する Deep Instinct のハイブリッドアプローチは、回復力のあるセキュリティ体制を維持するために必要な機能を提供します。