ソフォス製品に特有なマルウェア検出機能 - 難読化された JavaScript コード対策

Fraser Howard、Principal Researcher、Sophos

インターネットは、ユーザーをマルウェアに感染させる最大の経路です。SophosLabs によると、2009年には、23,500件の新たな有害 Web ページが毎日、発見されました。これは、4秒ごとに約 1件の割合で、新たな有害ページが検出されていることを意味し、2008年の同期と比較すると、4倍に増加しています 1。マルウェア作成者は、よく知られているアクセス数の多い正規サイトに感染するという常套手段によって、大幅に感染経路を拡大してきています 2

ハイジャックされたサイトにアクセスしたユーザーは、悪質なコードが表面上は隠されているために、サイトが感染していることに気付きませんが、ページがユーザーのブラウザに読み込まれると、すぐに悪質コードが実行されます。コードは一般に、クロスサイトスクリプトを利用して、他のサイトからさらに悪質なペイロード (データ本体) を引き込んできます。その上で、既存のブラウザや OS の脆弱性の 1つを悪用して感染し、データを盗んだり、ボットネットに作り変えようとします。

この攻撃では、政府機関の Web サイトから教育機関、人気の高いニュースポータル、ブログ、ソーシャルネットワーキングサイトまで、あらゆる種類のサイトが攻撃対象となっているため、被害の及ぶ範囲を過小評価できません。

セキュリティベンダーが、この種の悪質な Web コードを検出する機能を追加しても、攻撃者は検出を避けるために、コードを複雑に作り変えます。この追いかけごっこの様相がますます過熱した結果、次のような理由から、JavaScript を攻撃に使用するようになってきています。

  • JavaScript は、あらゆるブラウザや OS に対応する優れた機能を持ち、非常に強力で汎用性が高いといえます。
  • JavaScript は、悪質なコードを隠したり、難読化の処理を行える高い柔軟性も持っています。

JavaScript を使用した簡単な例が図 1 に示されています。A では、ページに簡単な HTML iframe が挿入され、ページが表示されると、ブラウザが、指定されたリモートサイトから悪質なコンテンツを読み込むようになっています。

B では、ページに短い JavaScript が挿入されています。ペイロードに施されている難読化の細工は非常に簡単なため、すぐには見つかりません。実際、このペイロードは A にあるものと同一です。JavaScript は、iframe オブジェクトがブラウザでページに表示するのと全く同じものを、ページに書き込みます。

図 1: 異なる方法で感染した Web ページの簡単な例。ただし、ペイロードは、同一。ページが閲覧されると、挿入された iframe (A) と スクリプト (B) が、ブラウザを操作して、悪質なリモートサイトからコンテンツを読み込みます。

JavaScript の柔軟な機能を活用すると、B の方法でペイロードに巧妙な難読化の細工を行う方法は無数にあります。この場合、ページのコンテンツが検索される際にペイロードが巧妙に隠されるため、コンテンツスキャナが機能する上で問題となります。結果として、一般的な検出をプロアクティブに徹底させることが難しくなります。

SophosLabs によると、2009年には、何万もの正規サイトが侵害され、悪質な JavaScript コードをページに挿入するような、大量のプログラム書換え攻撃が無数に確認されました。これらの攻撃には、巧妙に細工された JavaScript が、検出を回避する手段として例外なく使用されています。

この種の攻撃例としてよく知られているのは、Gumblar です。 3この攻撃では、ペイロードを非表示にする簡単な文字置換を行うような悪質なスクリプトが、多数のサイトに挿入されました (図 2A)。図 2A において、ペイロードは挿入スクリプト内には表示されません。しかし、手動で難読化を解除すると、リモートサイトから悪質なスクリプトを読み込むペイロードが表示されます (図 2B)。

図 2: 2009年における Gumblar による大規模なプログラム書換え攻撃の一部として、正規の Web サイトのページに挿入された悪質なスクリプト (A)。(B) は手動で難読化が解除されたスクリプト。

Gumblar のような大規模なプログラム書換え攻撃の対象は、広い範囲に及びます。Gumblar は Troj/JSRedir-R として検出・命名され、ウイルス定義ファイルに追加された直後に、SophosLabs の Web 脅威統計で他の脅威を凌駕して検出数がトップになりました (図 3)。

 図 3: 2009年 5月 6日から 13日の間に検出された Web 脅威。Troj/JSRedir-R (別名 Gumblar) は、検出された全脅威の中で 40% 以上を占めています。

市販のスクリプトパッカー

JavaScript コードに難読化の処置を行うこと自体は、悪質な行為とはいえません。実際、個人がコードを難読化するために使用できる市販のツールもあり、以下のような理由に基づいて提供されています。

  • 知的財産の保護: ユーザーは、他人によって自分のコードがコピーされるのを防ぐために、このようなツールを使用して、自分のコードに難読化の処置を行う
  • 効率性: ツールによっては、より小さいスクリプトを作成できるものがあり、これによってコードのダウンロードが速くなり、反応の素早いサイト作成が可能になる

他方、このことは、アナリストやコンテンツスキャナに対して別の課題を残します。攻撃者が市販のツールを使用して悪質なコードを難読化している場合、マルウェア対策を行うアナリストは、同じツールで難読化された正規のサイトが誤検知されないように、対処・調整が必要になります 4

SSP (Server-Side Polymorphism: サーバーサイド ポリモルフィズム)

今日の脅威の多くは、ポリモルフィック型 (多相型) の悪質なコードを作成するために、サーバー上で高度なスクリプトテクニックを使用しています。たとえば、2009年に SophosLabs は、SSP を頻繁に使用する Zbot 5,6  でユーザーに感染しようとする攻撃例を複数件、検出しています。これらの攻撃では、ユーザーコンピュータの脆弱性を悪用するための悪質なスクリプトがサーバー上で動的に作成され、サーバー上のリクエストに応じて少しずつ異なるスクリプトを生成します。

SSP は基本的に、難読化の特殊な事例であるため、この場合にも、難読化された内容がコンテンツスキャナによって検出できないなどの問題が残されます。

悪質な PDF ドキュメント

SophosLabs は、2009年の攻撃においては、PDF ドキュメントが広範に使用されていることを報告しています 7 。攻撃者は、一般的な PDF の読み取りアプリケーションに存在する脆弱性を、感染手段として積極的に攻撃対象にしてきています。このような攻撃にも JavaScript が使用されていることはあまり知られていません。

Adobe Acrobat には、PDF ドキュメント内に埋め込まれた JavaScript に対するサポートが含まれ、8 ユーザーが複雑で動的なドキュメントを作成できるようになっています。しかし、攻撃者は、この埋め込みの JavaScript を利用する悪質な PDF ファイルを作成して、アプリケーションの脆弱性を悪用できます。

また、上述のスクリプトの難読化と SSP のテクニックは、PDF ファイルに埋め込まれた JavaScripts にも、同様に適用できます。

ソフォス製品の優れた機能: 向上した JavaScript 処理

JavaScriptに対して向上した処理が行えるように、特別に設計された新機能が追加され、ウイルス対策のコアエンジンに含まれます。強化・向上した機能には以下が含まれます。

  • JavaScript のトークン化と構文解析機能: これにより、SophosLabs のアナリストは、JavaScript コンテンツに対して、より効率的な検出のための一般定義を作成することが可能です。
  • JavaScript エミュレーション: ウイルス対策のコアエンジンには、スクリプトコンテンツに施された難読化を解除するメカニズムとして、JavaScript エミュレータが含まれます。これによって、エンジンがスクリプトのペイロードを確認できるようになり、プロアクティブな通常のウイルス検知が可能になります。

既存のソフォスのウイルス対策エンジン (およびその他の限られたいくつかのセキュリティベンダーのエンジン) には、既に難読化されたスクリプトを「解読する」機能が備わっていましたが、ソフォスの今回の新機能では、大幅な機能強化が行われています。既存の解読テクノロジーでは、個別の難読化箇所を特定した上で、(可能な場合に) それぞれの難読化箇所を処理するコードを書き込むという操作を行っていました。この手法では、今日のマルウェアの莫大なボリュームに対応できません。スクリプトに対する難読化の方法は、実質的に無限に存在し、攻撃者は、そのテクニックを頻繁に修正して活用しています。難読化を解除するための、より一般的な解決策が必要です。JavaScript エミュレーションは、この問題に対する解決策となります。

この新しいテクノロジーがソフォスのお客様にもたらす主なメリットは、以下の通りです。

  • 悪質なスクリプトコンテンツと悪質な PDF ファイルの検出率を上げる
  • 新種のマルウェア攻撃に対するプロアクティブな (ゼロデイ) 保護を強化する

2009年11月には、Sophos Web Security and Control のマルウェア対策のコアエンジンに、この新機能が装備されます。このアップデートは、毎月のアップデートパッケージの一環として、すべてのお客様のアプライアンスに適用されます (追加の作業は必要ありません)。

2010年初旬より、このテクノロジーは、Sophos Endpoint Security and Data Protection の Browser Helper Object (BHO) のコンポーネントに含まれて実行され、マルウエアから Internet Explorer を保護します。

ソフォスに関する詳細は、以下のサイトをご覧ください。http://www.sophos.co.jp

download Sophos Virus Removal Tool (無償) のダウンロード
他社製ウイルス対策製品が検出できなかったマルウェアを検出