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 |
-
CERT/CC Vulnerability Note VU#489481
Cylance Antivirus Products Susceptible to Concatenation Bypass -
Skylight Cyber
Cylance, I Kill You! -
IEEE EuroS&P 2018
SoK: Security and Privacy in Machine Learning -
ACM CCS 2016
Accessorize to a Crime: Real and Stealthy Attacks onState-of-the-Art Face Recognition -
IEEE CVPR 2018
Robust Physical-World Attacks on Deep Learning Models -
Tencent Keen Security Lab
Experimental Security Research of Tesla Autopilot -
The Pennsylvania State University
Adversarial Examples in Constrained Domains -
GitHub - tensorflow/cleverhans
An adversarial example library for constructing attacks, building defenses, and benchmarking both -
GitHub - bethgelab/foolbox
Python toolbox to create adversarial examples that fool neural networks -
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