ai如何识破恶意软件?( 二 )


第二种 , 勒索软件(Ransomware) , 又称阻断访问式攻击(Denial-of-accessattack) , 通过锁死设备、或系统性加密特定硬盘文件 , 要求受害者缴纳赎金以取回控制权 。典型代表如GoNNaCry 。
第三种 , 内核态Rootkits 。其中Rootkits是一组工具的集合 , 可以替换或更改可执行程序 , 而内核态Rootkits不仅可以访问OS文件 , 还能通过增删代码来更改功能 。例如 , Keysniffer就能够记录键盘事件并写入DebugFS 。
光是掌握这些基本“疾病”还不够 , AI还得学会识破恶意软件的进一步“伪装” 。
例如 , 混淆技术(Obfuscation)就是比较常见的恶意软件伪装方法 。

ai如何识破恶意软件?
文章图片

文章图片

这种方法有意让代码模糊不清 , 从而使逆向工程变得困难 , 原本是一种用于保护含有IP价值的程序 。但后来却被黑客反向用来削弱杀毒软件 , 以逃脱其追捕 。
据此 , 研究人员利用混淆技术对恶意软件进行了进一步“升级” , 再加入数据集中 。
其中 , 就包括采用静态代码重写(不透明谓词、假控制流、指令替换、控制流扁平化)和动态代码重写(打包器、代码虚拟化)等方式 , 对数据进行处理 。
另一方面 , 除了恶意软件数据以外 , AI还得知道正常情况下的信号数据 。
所以除了恶意的“病毒数据库” , 开发者还准备了一个良性数据集 , 以模拟真实场景中“随机突发”的病毒入侵事件 。
哪些算是良性数据呢?
比如计算、设备睡眠、照片捕捉、网络工作连接 , 以及像是媒体播放这种长时间的可执行程序运行 。

ai如何识破恶意软件?
文章图片

文章图片

由于树莓派部署了一个Linux4.19.57-v7ARMv7l的RaspbianBuster操作系统 , 开发者就从新安装的Linux系统中收集ARM可执行文件 , 以此生成良性数据集 。
在整个过程中 , 研究人员一共收集了100000份电磁波数据 , 用于训练AI 。
但这些数据在交给AI用于训练之前 , 还需要经过一些处理 , 从收集数据到完成训练一共分成三步 。
采用时频域分析降低噪声影响
首先 , 部署数据收集装置 , 收集信号数据 。

ai如何识破恶意软件?
文章图片

文章图片

这个数据收集装置分为被攻击设备和示波器两部分 , 其中树莓派是被攻击设备 , 高速数字转换器PicoScope6407(示波器)用于采集和传输数据 。
部署好的数据收集装置如下 , 其中PicoScope6407的探针(EMprobe)会被放在树莓派上 , 用于收集信号:

ai如何识破恶意软件?
文章图片

文章图片

然后 , 对数据进行预处理 。

ai如何识破恶意软件?
文章图片

文章图片

由于收集到的电磁波信号伴随大量噪音 , 因此需要将收集到的信号数据进行时域和频域分析 , 进行特征采集:

ai如何识破恶意软件?
文章图片

文章图片

最后 , 用这些数据训练AI 。
为了选出最适合这项实验的AI , 研究人员分别训练了SVM、NB、MLP和CNN四种类型的网络:

ai如何识破恶意软件?
文章图片