JavaScript と難読化:脅威スクリプトの 26% が検知を逃れている

About 26% of all malicious JavaScript threats are obfuscated

2021.10/19 BleepingComputer — JavaScript で書かれた、悪意のソフトウェアの1万件以上のサンプルを分析した研究において、そのうちの約26%が、検出/分析を逃れるための難読化を用いていると、結論づけられている。難読化とは、意図した通りに動作させる、理解しやすいソースコードがあるにもかかわらず、理解し難く混乱したコードに変換することである。

脅威アクターは、悪意のスクリプトの解析を困難にし、セキュリティ・ソフトウェアを回避するために難読化を利用している。難読化では、使用されないコードのスクリプトへの注入や、コードの分割や連結、関数や変数の命名における 16進法のパターンや重複などの、さまざまな手段で実現される。

増加傾向にある難読化

Akamai の研究者は、マルウェアのドロッパー/フィッシングページ/詐欺ツール/Magecart スニペット/クリプトマイナーなどを含む、 10,000 件の JavaScript サンプルを分析した。

そのうち、少なくとも 26% が検出を逃れるために、何らかの難読化を使用しており、この効果的なテクニックの採用が増加していることが判明した。これらの難読化されたサンプルの多くは、同じパッカーによりバンドルされているため、機能が異なっていても擬似的なコード構造が似ているように見える。

Akamai は、開催が近づいている SecTor カンファレンスで、コード自身よりはパッキングの技術を検出するための方法について、より詳細な情報を発表する予定とのことだ。

普通のサイトも使用

しかし、すべての難読化が悪意に満ちているわけではなく、厄介なものであるとは限らない。この報告書で説明されているように、上位にランキングされている 20,000 の Web サイト (Alexa 調査) のうち、約 0.5% で難読化の技術が使用しているとのことだ。これらのケースは、以下に起因している。

  • Web サイトが、クライアント側の機能の一部を、競合他社から隠そうとしている。
  • JavaScript スニペットが、サードパーティ・プロバイダにより難読化されている。
  • メールアドレスのような機密情報は一般の人の目に触れないようにする必要がある。

    このように、難読化されているという事実だけでは、悪意のコードを検出することは不可能であり、さらに悪意の機能との相関関係を確認する必要が生じる。
    このように、正規の展開と混在していることが、危険なコードの検出を困難にしており、難読化が脅威アクターたちに広く浸透する理由にもなっている。

よく言われる、JavaScript の難読化という問題ですが、ここまで絞り込んで、動向を知らせてくれる記事は始めてです。とても助かりますね。そして、驚いたのは、サイバー攻撃以外にも、JavaScript の難読化が用いられているという事実です。まだ、0.5% というレベルですが、これが増えてくると、対策を講じる側の難題となっていくでしょう。難しいことが、たくさんありますね。

%d bloggers like this: