公開日:2019/08/02 最終更新日:2019/08/02

JVNVU#98738756
Cylance のアンチウイルス製品にマルウエア検知を回避される問題

概要

2019年7月21日より前の状態の Cylance の AI ベースのアンチウイルス製品には、悪性コンテンツを良性なものであると誤認識してしまう問題が存在します。

影響を受けるシステム

  • 2019年7月21日より前の状態の Cylance の AI ベースのアンチウイルス製品

詳細情報

Cylance PROTECT には、実行ファイルが悪性か良性かを判断するための、機械学習アルゴリズム (ニューラルネットワーク) を使用したアンチウイルス機能が搭載されています。
この機械学習アルゴリズムの調査を行った研究グループから、マルウエアファイルに改変を加えることで、良性であると Cylance 製品が判断するようなファイルを作成することが可能であることが報告されました。Dridex, Gh0stRAT, Zeus など複数のよく知られたマルウエアファイルに手を加えて検知を回避することが可能であったとのことです。
調査に使用されたマルウエアのおよそ 85% ほどが検知回避に成功したと報告されています。一方、Cylance が内部で行った調査では 50% 程度の成功率であったとのことです。どちらの数字にしても、検知を回避できるようにする改変がそれほど難しくはないことを示していると考えられます。実際の改変作業は、文字列を末尾に追加するだけであるとのことです。

想定される影響

本件の手法を使って細工されたマルウエアは検知されない可能性があります。

対策方法

パッチを適用する
2019年7月21日以降に Cylance のサービスに接続した対象製品には自動的にパッチが適用されているとのことです。
ただし、このパッチで全ての問題に対応できているかは不明であるため、下記のワークアラウンドも検討してください。

ワークアラウンド(システム運用者向け)
多層防御の考え方を取り入れてシステムを構成してください。例えば、ホストがファイルをダウンロードする際には、network IDS, web proxy, email サーバそれぞれがファイルを検証するような構成にするべきです。

ワークアラウンド(セキュリティ製品開発者向け)
セキュリティ製品開発においても、多層防御の考え方が重要です。機械学習によるマルウエア検知機能は基本的にファイルの改変にたいして脆弱であると考えられます。機械学習機能に加え、シグネチャベースやルールベースなど既存の手法も組み合わせてください。また、機械学習機能を実装したツールに対しては、CleverHans, Foolbox, Adversarial Robustness Toolbox など広く知られているツールを使って生成したデータ("adversarial example")を使ったテストを行ってください。

ベンダ情報

ベンダ リンク
Cylance Resolution for BlackBerry Cylance Bypass

参考情報

  1. CERT/CC Vulnerability Note VU#489481
    Cylance Antivirus Products Susceptible to Concatenation Bypass
  2. Skylight Cyber
    Cylance, I Kill You!
  3. IEEE EuroS&P 2018
    SoK: Security and Privacy in Machine Learning
  4. ACM CCS 2016
    Accessorize to a Crime: Real and Stealthy Attacks onState-of-the-Art Face Recognition
  5. IEEE CVPR 2018
    Robust Physical-World Attacks on Deep Learning Models
  6. Tencent Keen Security Lab
    Experimental Security Research of Tesla Autopilot
  7. The Pennsylvania State University
    Adversarial Examples in Constrained Domains
  8. GitHub - tensorflow/cleverhans
    An adversarial example library for constructing attacks, building defenses, and benchmarking both
  9. GitHub - bethgelab/foolbox
    Python toolbox to create adversarial examples that fool neural networks
  10. GitHub - IBM/adversarial-robustness-toolbox
    Python library for adversarial attacks and defenses for neural networks, logistic regression, decision trees, SVM, gradient boosted trees, and more with multiple framework support

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

謝辞

関連文書

JPCERT 緊急報告
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE
JVN iPedia