3.5 评估与算法选择
3.5.1 数据集分类
本项目对物联网安全数据集包含的1000个不同指令集架构下的物联网设备二进制固件,使用IDA-Python提取出固件架构信息对数据集进行分类,得到表3-1。本项目假设其为一个特定不同架构、分布稳定的数据集的一个较小部分,用于训练和选择方案。
可以看到ARM、MIPS架构下固件集数量多,其他架构固件数据集较少,这也导致了后续本项目在进行训练的测试的时候,ARM、MIPS架构下的检测率和准确度较高,更贴合实际的检测结果,而其他架构下的检测率相对较低,和实际结果间存在一定的误差,在后续实验中,本项目也需要不断扩充数据集来提高检测的结果和精度。
表3-1 固件构架分类信息
Structure | Num |
ARM | 390 |
MIPS | 430 |
Metapc | 70 |
Octeonb | 90 |
其他 | 20 |
3.5.2 跨架构及改进
本项目从数据集中提取出的758620个ACFG图进行跨架构和改进算法的检测。检测结果如表3-2和表3-3所示。表3-2展示了检测的平均AUC,AUC(是指ROC曲线下面积,用于度量二分类模型的性能表现,AUC越接近于1,意味着模型预测的准确性越高。表3-3展示了平均匹配时间,反映了检测的效率。
表3-2 平均AUC
AUC | GMN | GMN改进 |
ARM | 0.9522 | 0.9452 |
MIPS | 0.9381 | 0.9298 |
Metapc | 0.8246 | 0.8127 |
Octeonb | 0.8322 | 0.8201 |
表3-3平均匹配时间(ms)
匹配时间(ms) | GMN | GMN改进 |
ARM | 2.092 | 1.218 |
MIPS | 1.885 | 1.177 |
Metapc | 2.088 | 1.230 |
Octeonb | 1.976 | 0.922 |
可以看到改进后的AUC值有一定程度的下降,但是平均匹配时间有了大幅的提高,这说明其检测准确率有略微下降,但几乎不影响,但效率和性能有了大幅提升,针对大量不同架构的检测来说,在一定程度上提高系统的检测能力。在图平均尺寸较大、大数据库、低时延搜索,具有这些特征的应用场景下,使用的改进的方案,可以实现较好的效率、精度权衡。再不考虑时延的高精度搜索的应用场景则倾向于使用原GMN。
3.5.3 单架构组合
本项目从数据集中提取出的758620个ACFG图进行单架构结合算法的检测。检测结果如表3-4和表3-5所示。同跨架构改进部分,表3-4展示了检测的平均AUC,表3-5展示了平均匹配时间。
表3-4 平均AUC
AUC | GMN | 单架构组合 |
ARM | 0.9522 | 0.9454 |
MIPS | 0.9381 | 0.9435 |
Metapc | 0.8246 | 0.8242 |
Octeonb | 0.8322 | 0.8207 |
表3-5 平均匹配时间(ms)
匹配时间(ms) | GMN | 单架构组合 |
ARM | 2.092 | 1.216 |
MIPS | 1.885 | 1.042 |
Metapc | 2.088 | 1.214 |
Octeonb | 1.976 | 0.92 |
可以看到采用单架构组合检测算法,这里将所有单架构方案于跨架构的方案视作同等地位,通过小数据集的模型适应和选择后的单架构组合方案,其AUC值相比于传统跨架构算法有几乎不变,略有波动,平均匹配时间则提升较多,这说明其效率和性能,能得到大幅的提升。由于本项目将跨架构改进方案融入其中,所以平均匹配时间低于或等于跨架构提升的方案,能够进一步得到适用于大量特定不同架构、分布稳定的数据集的高效物联网漏洞挖掘,提高系统的检测能力。