はじめに
FFRIリサーチエンジニアの茂木です。本記事では、機械学習を用いた脅威のうち、AI-Embedded Attack についてご紹介します。
DeepLocker
AI-Embedded Attack とは、「AI にマルウェアを埋め込む」攻撃手法です。Black Hat 2018 USA[1] で IBM 社の研究者が DeepLocker を発表[2]し、その革新性とキャッチーさから、複数のメディア (ZDNet[3]、GIGAZINE[4]) でも取り上げられました。DeepLocker はマルウェアを暗号化し、その復号に使う鍵を顔検出・顔認識プログラムに埋め込むことで、標的以外には通常のアプリケーションとして振る舞います。一方標的に対しては鍵を出力し、マルウェアを復号することで、セキュリティソフトによる検知を回避し、さらにリバースエンジニアリングを困難にするというものです。詳しくは、DeepLocker の発表[2]や、再現実験による解説記事[5]を御覧ください。
DeepURL
さて、ここからは DeepLocker から発展させて、どのような攻撃が考えられるかを見ていきます。DeepLocker は復号に使用する鍵を機械学習モデルが出力するものでした。では、鍵以外のものが出力されればどうでしょうか。例えば、URL が出力されることを想像してください。マルウェアの中には、ダウンローダーと呼ばれる、マルウェアをダウンロードし、実行するものがあります。また RAT (Remote Administration Tool/Trojan) は、C2 サーバーと通信を行います。こうしたマルウェアが使用する URL を機械学習モデルから出力する、そうした脅威の PoC として、私は DeepURL を作成しました。
DeepURL では URL を機械学習モデルに埋め込むために、マルチタスク学習を用います。マルチタスク学習は、複数のタスクで層やパラメータを共有し学習するもので、サーベイ論文[6]が詳しいです。またマルチタスク学習はマルウェアの分類にも応用[7]されています。DeepURL は、標的でない人物や、訓練データに使用していない人物に対しては通常の顔認証として振る舞いますが、標的に対しては URL の一部を出力し、PE ファイルをダウンロードしてきます。
非ターゲットに対してはシステムは通常の顔認証として振る舞います。顔認証の対象であればそのラベル (Who) が、そうでない場合は Unknown が出力されます。この場合機械学習モデルが出力する URL は invalid なものとなります。
一方でターゲットに対しては valid な URL を出力します。このときシステムは URL から PE ファイルをダウンロードします。
以上が DeepURL の構成です。ここからは実験の結果をお見せします。実験では、AT&T Laboratories Cambridge (Olivetti Research Laboratory) から提供されている、The Database of Faces[8] のうち一部を用いてモデルを訓練し、ターゲットの2人と、訓練で使用しなかった人の顔画像で評価しました。ただし、本データセットでは1人あたりの画像数が10枚と少なく、大半を訓練データに使用したため、攻撃成功率のような定量的な評価はしませんでした。実験では、URL 短縮サービスを使い、2種類の PE ファイルのダウンロードリンクに対し短縮 URL を生成しました。結果、URL の最後の6文字が異なっていましたので、この6文字を出力するように学習しました。
上の図で、non_target1_x
が訓練データに含まれない人物の画像(を前処理したもの)で、non_target2_x
が訓練データに含まれている顔認証の対象であり、かつ標的ではない人物の画像です。それぞれ、Unknown 及び人物のラベルが出力されており、通常の顔認証プログラムとして振る舞っています。
一方、標的1の画像であるtarget1_x
及び標的2の画像であるtarget2_x
に対しては、URL を出力し、各 URL からバイナリをダウンロードしています(赤い帯の部分にダウンロードにかかった時間と、ダウンロード速度及びバイナリのサイズが表示されています)。またそれぞれ異なった URL が出力されているのがわかります。
考察
さて、DeepURL は何が脅威なのでしょうか。1つは、DeepLocker と同様に、非ターゲットに対し無害なアプリケーションを装うことができる点です。さらに複数のターゲットに対し、それぞれ異なった URL を出力することができます。今回は人物ごとに URL を切り替えましたが、人種で URL を切り替えられれば、実質的に特定の地域を狙った攻撃が可能になるでしょう。そしてダウンローダーであれば標的と降ってくるマルウェアの対応、RAT であれば標的と C2 サーバーの対応が、それぞれ通常のマルウェアより解析が困難になります。また DeepLocker のように暗号化されたマルウェアのソースコードをプログラム内に保持する必要がありません。ただしプログラム自身が RAT やダウンローダーとして振る舞うため、より検知しにくいとは言いきれません。
おわりに
今回は、AI-Embedded Attack の可能性について述べました。今後この分野の研究が進んでいけば、Seq2Seq[9] のようなモデルで、マルウェアのソースコード全体を出力することもできるかもしれません。FFRIではこうした未来の攻撃手法を先読みする研究を行っております。興味のある方はぜひお問い合わせください。
参考文献
[1] Black Hat USA 2018, https://www.blackhat.com/us-18/. Accessed September 12, 2019.
[2] DeepLocker Concealing Targeted Attacks with AI Locksmithing, https://i.blackhat.com/us-18/Thu-August-9/us-18-Kirat-DeepLocker-Concealing-Targeted-Attacks-with-AI-Locksmithing.pdf. Accessed September 12, 2019.
[3] "DeepLocker: When malware turns artificial intelligence into a weapon," https://www.zdnet.com/article/deeplocker-when-malware-turns-artificial-intelligence-into-a-weapon/. Accessed September 17, 2019.
[4] "IBMがセキュリティソフトを回避して特定の標的だけを攻撃するマルウェア「DeepLocker」を開発," https://gigazine.net/news/20180810-deeplocker/. Accessed September 17, 2019.
[5] DeepLocker : AI-embedded attack, https://www.mbsd.jp/blog/20190311.html. Accessed September 12, 2019.
[6] S. Ruder (2017), An overview of multi-task learning in deep neural networks, arXiv preprint 1706.05098, https://arxiv.org/abs/1706.05098. Accessed September 12, 2019.
[7] X. Wang and S. M. Yiu (2016), A multi-task learning model for malware classification with useful file access pattern from API call sequence, arXiv preprint 1610.05945, https://arxiv.org/pdf/1610.05945.pdf. Accessed September 12, 2019.
[8] The Database of Faces, https://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html. Accessed September 17, 2019.
[9] I. Sutskever, O. Vinyals, and Q. Le (2014), Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems (NIPS 2014).