FV8: 悪意のあるJavaScriptを検出する新しいツール
FV8は、動的解析を通じてJavaScriptの回避テクニックの検出を強化すんだ。
― 1 分で読む
悪意のあるコードは目立たないところに隠れていることがあって、セキュリティツールがそれを見つけたり止めたりするのが難しいんだ。特にJavaScriptに関しては、その傾向が強い。攻撃者は検出を避けるためのトリックを使ったりして、目立たないところで有害なコードを実行できるようにしているんだ。この回避技術は、静的解析ツールと動的解析ツールの両方で悪意のある行動を見つけるのを難しくしている。
回避技術の問題
回避技術は、有害なコードが目立たなくなるようにする手法なんだ。何も問題がないように見せかけることができるから、特にJavaScriptでは効果的。JavaScriptは動的コードインジェクションを許すことが多くて、実行時にコードが挿入できちゃう。この動的な性質のおかげで、攻撃者は隠れた計画を実行しやすくなっちゃう。
静的解析と動的解析に頼っているツールは、この手の回避を見逃しがちなんだ。静的解析はコードを実行せずに見るけど、動的解析は実行中のコードを評価する方法。どちらも回避コードに対しては弱いことが多いから、サイバーセキュリティにとっては大きな懸念なんだ。
FV8: 新しい解決策
この問題に立ち向かうために、FV8というV8 JavaScriptエンジンの改良版が開発されたんだ。このエンジンはJavaScriptコード内の回避技術を積極的に探すように設計されているの。特定のコードパスの実行を強制することで、通常は他のツールでは見つけられない回避行動を明らかにできるんだ。
FV8はJavaScript環境の重要な部分でコード実行を強制することで、動的にコードを注入できるAPIを特に狙っているの。これによってJavaScriptファイル内に隠れた悪意のあるコードを見つける確率が上がる。ツールはNode.js環境とChromiumブラウザに統合されていて、使い勝手と効果が広がっているよ。
FV8の動作原理
FV8は選択的にコード実行を制御することで動作するんだ。回避技術を示す可能性のある特定の条件に集中し、関連するコードパスを実行して可視性を高めている。これにより、より多くのコードを分析できるようになる。
FV8がNode.js環境に統合されることでnpmパッケージを調べることができ、Chromiumブラウザ内にいることでブラウザの拡張機能も調査できる。ツールはこれらのパッケージと拡張機能の膨大な数に対してテストされて、多くの回避行動が明らかになっているよ。
結果: FV8が発見したこと
広範なテストの中で、FV8はさまざまな回避技術を検出した。28種類の独特な回避カテゴリーを特定し、以前は報告されていなかった5つの手法も確認した。確認された悪意のあるデータのサンプルの中で、1,443のnpmパッケージが回避技術を含むとフラグ付けされ、164の悪意のある拡張機能が特定されている。これはFV8が回避行動を明らかにする効果的なツールであることを示している。
回避技術を特定するだけでなく、FV8は注入されたコードのかなりの量も発見した。39,000以上のブラウザ拡張に関するテストでは、驚くほど多くの注入スクリプトが明らかになり、悪意のあるコードがどれだけ深く埋め込まれているかが示された。
動的解析の重要性
動的解析は、JavaScriptのリアルタイム動作を理解するのに重要なんだ。既存の多くのツールはコード実行の再帰的な性質を扱えないけど、FV8はそこが得意なんだ。コードが実行されるときに見たり、実行パスを強制することで、普段は見過ごされる隠れた脅威を特定できる。
オブファスケーションやタイミングチェックのような一般的な回避技術は、従来の検出手法を簡単に欺くことができる。FV8がこれらの技術を暴露する能力は、悪意のあるJavaScriptに対抗するために貴重な資産となっているよ。
オブファスケーションの役割
オブファスケーションは、攻撃者が悪意のあるコードを隠すために使う一般的な手法なんだ。コードを読みづらくして理解できないようにして、検出を困難にする。FV8はさまざまなオブファスケーション技術を扱うのに優れたパフォーマンスを示している。
すべての種類のオブファスケーションに対応できるわけではないけど、FV8はかなりの数をカバーしている。この効果がツールのサイバーセキュリティ分析のための重要なリソースとしての地位をさらに確固たるものにしているんだ。
結果の手動検証
FV8は自動化されているけど、人間による検証も重要な要素なんだ。FV8が潜在的な問題をフラグ付けした後、セキュリティ専門家が手動でフラグ付けされたアイテムを確認して、その悪意のある性質を確認する。この手動プロセスは自動検出と専門分析を組み合わせて、全体的な精度を高めているよ。
検証段階はツールの発見が有効であることを確認するために重要なんだ。専門家はフラグ付けされた拡張機能やパッケージを評価して、実際に悪意のある行動を示しているかを判断する。
悪意のある拡張機能に関する洞察
フラグ付けされた拡張機能の分析から、多くが回避技術を使用していることがわかったんだ。その中には、悪意のある行動を効果的に隠すためのさまざまな手法が使われていた。一般的な戦術としては、ユーザーの相互作用や環境条件をチェックして検出を避けることがあった。
これらの悪意のある拡張機能の多くが既存のセキュリティ対策をすり抜けられたことがわかった。回避戦術を使うことで、彼らは検出されることなく有害な行動を実行できたんだ。
NPMエコシステム
npmエコシステムも回避技術が広がっている別のエリアなんだ。数百万の利用可能なパッケージがある中で、攻撃者は悪意のあるコードを挿入する機会を見つけることができる。FV8がこの環境に統合されることで、これらのパッケージの徹底的な調査が可能になり、脅威を特定するチャンスが改善されるんだ。
ツールは多くの悪意のあるnpmパッケージをフラグ付けすることに成功して、この広大なランドスケープ内での効果を示しているよ。リアルタイムで隠れた脅威を明らかにできる能力は貴重で、特にnpmエコシステムが成長し続ける中で重要なんだ。
回避技術のクラスタリング
検出精度を高めるために、FV8はフラグ付けされた拡張機能の行動を分析するためにクラスタリングアルゴリズムを使用している。これにより、似たような回避行動をグループ化して、悪意のある意図を示すパターンを特定するのに役立つんだ。
回避技術をクラスタリングすることで、セキュリティチームは攻撃者がどのように行動しているかについての洞察を得ることができる。この理解は、将来のセキュリティ対策の策定に役立って、進化する脅威に対してより強力な防御を開発するのに貢献できるよ。
結論
FV8の開発は、悪意のあるJavaScriptに対する戦いにおいて大きな進展を表しているんだ。動的解析に対する革新的なアプローチを提供することで、npmパッケージやブラウザ拡張における回避技術の検出の可能性が高まった。
FV8の発見から得られた洞察は、積極的なセキュリティ対策の重要性を強調している。攻撃者が回避戦術を洗練させ続ける中で、FV8のようなツールは悪意のあるコードに対する防御を強化するのに大切な役割を果たすだろう。
常に変化するウェブセキュリティの世界では、潜在的な脅威に先手を打つことが不可欠なんだ。FV8の能力は、悪意のある行為者が使う戦術に対してセキュリティ対策が追いつくことを保証するために、継続的な研究と開発の必要性を強調しているよ。
タイトル: FV8: A Forced Execution JavaScript Engine for Detecting Evasive Techniques
概要: Evasion techniques allow malicious code to never be observed. This impacts significantly the detection capabilities of tools that rely on either dynamic or static analysis, as they never get to process the malicious code. The dynamic nature of JavaScript, where code is often injected dynamically, makes evasions particularly effective. Yet, we lack tools that can detect evasive techniques in a challenging environment such as JavaScript. In this paper, we present FV8, a modified V8 JavaScript engine designed to identify evasion techniques in JavaScript code. FV8 selectively enforces code execution on APIs that conditionally inject dynamic code, thus enhancing code coverage and consequently improving visibility into malicious code. We integrate our tool in both the Node.js engine and the Chromium browser, compelling code execution in npm packages and Chrome browser extensions. Our tool increases code coverage by 11% compared to default V8 and detects 28 unique evasion categories, including five previously unreported techniques. In data confirmed as malicious from both ecosystems, our tool identifies 1,443 (14.6%) npm packages and 164 (82%) extensions containing at least one type of evasion. In previously unexamined extensions (39,592), our tool discovered 16,471 injected third-party scripts, and a total of 8,732,120 lines of code executed due to our forced execution instrumentation. Furthermore, it tagged a total of 423 extensions as both evasive and malicious and we manually verify 110 extensions (26%) to actually be malicious, impacting two million users. Our tool is open-source and serves both as an in-browser and standalone dynamic analysis tool, capable of detecting evasive code, bypassing obfuscation in certain cases, offering improved access to malicious code, and supporting recursive analysis of dynamic code injections
著者: Nikolaos Pantelaios, Alexandros Kapravelos
最終更新: 2024-05-21 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2405.13175
ソースPDF: https://arxiv.org/pdf/2405.13175
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。