JavaScriptで書かれた多様な悪意のあるソフトウェアの1万以上のサンプルを分析した研究で、そのうちのおよそ26%が検出や分析を逃れるために難読化されていると発表しました。
サイバー攻撃の世界では、サイバー犯罪者と防御部隊の間でせめぎあいが続いているため、1ミリ秒が勝負となり、限られたリソースの利用が重要な役割を果たします。
マルウェアやフィッシングの脅威の規模が拡大し続ける中、難読化することで、より多くの時間とリソースが必要になり、その結果、検知の見落としが発生する可能性があり、サイバー犯罪者にとっては攻撃がより効果的で価値のあるものになります。
難読化とは、理解しやすいソースコードが、意図した通りに動作するにもかかわらず、理解しにくい紛らわしいコードに変換されることで、脅威グループは悪意のあるスクリプトの分析を困難にし、セキュリティソフトウェアを回避するために難読化を利用するのが一般的な手法です。
難読化は、未使用のコードをスクリプトに注入したり、コードを分割して連結したり、16進数のパターンを使用したり、関数や変数の名前にトリッキーなオーバーラップを使用したりするなど、さまざまな方法で実現されます。
増加傾向にある難読化
アカマイの研究者は、マルウェアのドロッパー、フィッシングページ、詐欺ツール、Magecart のスニペット、クリプトマイナーなどを含む 10,000 の JavaScript サンプルを分析しました。
そのうち少なくとも 26% が検出を逃れるために何らかの難読化を使用しており、この基本的かつ効果的なテクニックの採用が増加していることがわかりました。
これらの難読化されたサンプルの多くは、同じパッカーによってバンドルされているため、機能が異なっていてもコード構造が類似しているように見えます。
アカマイは、ファイルコードそのものではなく、パック技術に検出の努力を集中させている方法について、今後開催される SecTor カンファレンスで詳細を発表する予定です。

実は良好なサイトも使用
しかし、すべての難読化が悪質で厄介なものというわけではなく、報告書ではウェブ上で上位にランキングされている20,000のウェブサイト(Alexa調べ)のうち、約0.5%が難読化技術も使用しているとのことです。
これらのケースは、以下のように起因しています。
- Webサイトが、クライアント側のコード機能の一部を競合他社から隠そうとしている
- 使用しているJavaScriptスニペットが、サードパーティのプロバイダによって難読化されている
- メールアドレスのような機密情報は、一般の人の目に触れないようにする必要がある
このように、難読化されているという事実だけでは悪意のあるコードを検出することはできず、さらに悪意のある機能との相関関係を確認する必要があります。
このように、正規の展開と混在していることが、危険なコードの検出を困難にしており、難読化が脅威グループに広く浸透している理由でもあります。
コメント