跨平台物联网漏洞挖掘算法评估框架设计与实现文献综述之Gemini
我们采用了两种方式:Gemini和GMN。
2.4.1Gemini
基于DNN的方法的复杂度是输入和网络规模的线性大小,因此有极高的效率。Gemini基于 graph embedding network 把图转化为 embedding。之前的 graph embedding networks 被提出来用于分类和回归任务,但Gemini考虑的场景是相似度,因此对 graph embedding networks 采用了Siamese network(孪生网络)可以自然的实现让两个相似函数的 embedding 也相似的目标。这整个网络可以端到端的训练以实现相似度检测。
Gemini设计了一种新的训练和数据集创建方法,使用默认策略来预训练(pre-train)一个任务无关的图嵌入网络。根据相同源代码在不同平台和不同编译优化级别下编译的二进制函数构建了一个大规模的数据集。实验证明,任务无关的模型相比当前的SOTA的图匹配方法,对unseen function更有效且泛化性更好。过去的方法不能提供有效的灵活性,不能有效地加入额外的特定任务的监督信息。基于神经网络的方法的一个优势是预训练的模型可以在附加监督信息的时候快速重训练以适用于新的应用场景。实验表明,在额外的监督信息下,retrained model可以有效的适应新的任务。与Genius需要至少1 week来retrain模型不同,Gemini方法retrain阶段十分高效。与Genius相比准确率和效率均有大幅提升。
Gemini主要贡献:
提出了第一个基于神经网络对二进制函数进行嵌入的方法。
基于孪生网络架构对embedding network做训练,因此pre-trained model可以产生用于相似度检测的embedding。
提出retrain方法可以让本文的模型在附加监督信息的情况下来适应特定任务。
实现Gemini原型:在OpenSSL构建的测试集上有超过Genius和基于传统图匹配方法的AUC。
实验表明 Gemini 比 Genius 计算嵌入的速度快3~4个数量级。
使用Gemini可以比Genius发现更多有漏洞的固件映像。