探测电磁波就能揪出恶意软件,网友:搁这给电脑把脉呢?
“悬丝诊脉”揪出电脑病毒!
博雯 萧箫 发自 凹非寺
量子位 | 公众号 QbitAI
不安装任何杀毒软件,“悬丝诊脉”也能揪出计算机病毒?
而且准确率达99.82%,杀毒软件看了都汗颜。
先请出我们的“患者”,一个经过特殊处理后化身微型计算机的树莓派:
病毒入侵、服务中断、后台进程活动等无数个正常和非正常的行为正在这台微型计算机中发生。
然后让AI与这个蓝白相间的示波器相连,伸出一根探针“悬丝”搭在CPU上:
很快啊,AI就发现了这台计算机上的恶意软件!
明明是在树莓派体内的病毒,怎么探针隔空一放(没直接接触)就被发现了?
答案是:靠电磁波。
一群来自法国IRISA的学者认为,病毒、间谍软件、蠕虫等恶意软件在活动时,会不自觉泄露出与设备正常活动不同的“异常”电磁波。
通过外部设备探查、再靠AI识别不同的电磁波,就能隔空发现“中毒设备”上的病毒踪迹。
他们表示,探测设备不和“中毒设备”相连,因此不会被病毒这类恶意软件发现。
由于不和恶意软件在一个屋子(中毒设备)里打游击,探测设备也就不会引发病毒的回击、反扑或更进一步的伪装。
反过来说,伪装再流氓、功能再牛逼的病毒软件,也无法隐藏“中毒设备”的电磁辐射和散热。
该研究目前已经被ACM旗下的ACSAC 2021收录。据作者表示,对于最常见的几类恶意软件,这种“悬丝诊脉”法的识别率非常高:
技术圈大牛@phunter_lau更是调侃“玄学给予致命一击”:
所以这究竟是一项怎样的研究?
贴合现实的“病毒数据库”
要让AI学会“悬丝”诊断,既要让它学会识别疾病,也得避免它发生误诊。
所以这里面就需要两类电磁波数据集。
一方面,首先得让它认识够多的“疾病”,也就是恶意软件出现时的电磁波信号。
像我们常说的电脑病毒,其实只是广大恶意软件(Malware)中的一类。
恶意软件包括电脑蠕虫、特洛伊木马、勒索软件、间谍软件、甚至是一些广告软件等,能够利用IoT设备的漏洞对其造成损伤。
研究人员从知名恶意软件合集社区Virusign中获取样本,共收集了4790个32位ELF ARM恶意软件样本。
他们发现,以下三类恶意软件是最为常见的三个类型:
第一种,DDoS攻击,通过恶意流量淹没网站或网络资源,从而导致资源耗尽,网络服务暂时中断或停止,导致其正常用户无法访问。典型的DDoS恶意软件包括Mirai,Bashlite等。
第二种,勒索软件 (Ransomware),又称阻断访问式攻击(Denial-of-access attack),通过锁死设备、或系统性加密特定硬盘文件,要求受害者缴纳赎金以取回控制权。典型代表如GoNNaCry。
第三种,内核态Rootkits。其中Rootkits是一组工具的集合,可以替换或更改可执行程序,而内核态Rootkits不仅可以访问OS文件,还能通过增删代码来更改功能。例如,Keysniffer就能够记录键盘事件并写入DebugFS。
光是掌握这些基本“疾病”还不够,AI还得学会识破恶意软件的进一步“伪装”。
例如,混淆技术 (Obfuscation)就是比较常见的恶意软件伪装方法。
这种方法有意让代码模糊不清,从而使逆向工程变得困难,原本是一种用于保护含有IP价值的程序。但后来却被黑客反向用来削弱杀毒软件,以逃脱其追捕。
据此,研究人员利用混淆技术对恶意软件进行了进一步“升级”,再加入数据集中。
其中,就包括采用静态代码重写(不透明谓词、假控制流、指令替换、控制流扁平化)和动态代码重写(打包器、代码虚拟化)等方式,对数据进行处理。
另一方面,除了恶意软件数据以外,AI还得知道正常情况下的信号数据。
所以除了恶意的“病毒数据库”,开发者还准备了一个良性数据集,以模拟真实场景中“随机突发”的病毒入侵事件。
哪些算是良性数据呢?
比如计算、设备睡眠、照片捕捉、网络工作连接,以及像是媒体播放这种长时间的可执行程序运行。
由于树莓派部署了一个Linux 4.19.57-v7 ARM v7l的Raspbian Buster操作系统,开发者就从新安装的Linux系统中收集ARM可执行文件,以此生成良性数据集。
在整个过程中,研究人员一共收集了100000份电磁波数据,用于训练AI。
但这些数据在交给AI用于训练之前,还需要经过一些处理,从收集数据到完成训练一共分成三步。
采用时频域分析降低噪声影响
首先,部署数据收集装置,收集信号数据。
这个数据收集装置分为被攻击设备和示波器两部分,其中树莓派是被攻击设备,高速数字转换器PicoScope 6407(示波器)用于采集和传输数据。
部署好的数据收集装置如下,其中PicoScope 6407的探针(EM probe)会被放在树莓派上,用于收集信号:
然后,对数据进行预处理。
由于收集到的电磁波信号伴随大量噪音,因此需要将收集到的信号数据进行时域和频域分析,进行特征采集:
最后,用这些数据训练AI。
为了选出最适合这项实验的AI,研究人员分别训练了SVM、NB、MLP和CNN四种类型的网络:
最后他们发现MLP和CNN是最棒的:
其中CNN还要更好一点,具体模型的架构如下:
训练结果如下,其中1963份良性数据(benign)中,只有1个被误测为DDoS;Rootkit类型的恶意软件数据全部被正确识别;DDoS和Ransomware的识别效果也不错:
当然,除了单独的恶意软件类型以外,采用混淆技术后模型分类的效果也依旧不错。
整套流程的逻辑如下:
其中,树莓派代表的是“被攻击设备”,示波器用探针在外部收集电磁信号后,传给AI进行预测,AI再将预测结果反馈给防火墙,决定是否要拦截恶意软件。
这项研究来自研究机构IRISA,目前是法国最大的计算机科学和新技术领域研究实验室之一。
设备价格接近9万
研究登上的ACSAC 2021,是一个“纯应用型”的安全会议。
然而包括Gizmodo在内的外媒表示,想要真正应用它来检测恶意软件,还有很多待解决的地方。
一方面,这篇论文采用的良性数据集,没有将所有使用场景考虑在内,涉及的主要是图片及音视频、以及一些设备良性运转的“常规活动”。
作者也在论文中提到,论文的最初目的并非检测恶意软件,而只是让AI学会给几种恶意软件做分类。至于实际检测效果还不错,只是他们的“意外发现”。
另一方面,这项研究所采用的设备价格不菲。
光是Picoscope 6407这台数字转换器,在国内某宝的价格就接近90000元,至少不太亲民:
要想凑齐这一整套设备,从资金上来看还是有点难度的(狗头)。
不知道研究人员后续会不会考虑从实际落地的角度出发,将这个设备成本搞得更便宜一点。
对于研究本身,有网友调侃,这是“真把脉来了”:
有人感觉这是个绝妙的想法:
但也有网友认为,这篇论文就是在扯淡,看上去应用范围(物联网)过于狭窄,只是标题上蹭了热度比较高的领域。
对于用电磁波信号来检测恶意软件,你觉得这事靠谱吗?
论文地址:
https://dl.acm.org/doi/pdf/10.1145/3485832.3485894
项目地址:
https://github.com/ahma-hub/analysis/wiki
参考链接:
[1]https://www.reddit.com/r/technology/comments/s1uygi/raspberry_pi_can_detect_malware_by_scanning_for/
[2]https://weibo.com/1770891687/La6KsEbeg
[3]https://thehackernews.com/2022/01/detecting-evasive-malware-on-iot.html
- 有道智能学习灯发布,通过“桌面学习分析引擎”实现全球最快指尖查词2022-04-08
- 科学证明:狗勾真的懂你有多累,听到声音0.25秒后就知道你是谁,对人比对狗更亲近2022-04-14
- 在M1芯片上跑原生Linux:编译速度比macOS还快40%2022-04-05
- 小学生们在B站讲算法,网友:我只会阿巴阿巴2022-03-28