首页 > 其他分享 >利用预测不确定性提高安卓恶意软件检测模型性能

利用预测不确定性提高安卓恶意软件检测模型性能

时间:2024-04-19 22:24:19浏览次数:13  
标签:不确定性 model 预测 模型 恶意软件 样本 Base Model 安卓

文献简介

文献标题:MalCertain Enhancing Deep Neural Network Based Android Malware Detection by Tackling Prediction Uncertainty
引用:Yang, Limin et al. "BODMAS: An Open Dataset for Learning based Temporal Analysis of PE Malware", IEEE Symposium on Security and Privacy (2021): 78-84.
代码:https://github.com/Dirtyboy1029/MALCERTAIN/

一、引言及重要信息

1.基于的思想

预测不确定性可以区分被正确分类和非正确分类的样本。

原文:Therefore, a simple way to enhance DNN-based Android malware detection is to draw on the idea that prediction uncertainty can distinguish different samples (correctly classified samples and incorrectly classified samples)

2.文献创新点

(1)已有文献的不足:只局限于单个或很少的不确定性评估指标。因此,这些不确定性估计是否会受训练数据的影响,以及如何将他们应用于提高模型准确率上也是不清楚的。

原文:However, these existing works are mostly limited to a single or few uncertainty assessment metrics. Thus, it is not clear if the uncertainty estimations are potentially subject to the bias of their training data, and what are the optimal way to integrate these estimations to improve the model accuracy.

(2)本文的贡献:

首次尝试利用基于dnn的Android恶意软件检测模型的预测不确定性特征来提高其模型准确性。【这些模型的正确和不正确预测之间的预测不确定性差异可以使用一些指标(例如,熵,KL散度)来检测。】

提出了一个新的框架MalCertain以精确定位可能被基于dnn的Android恶意软件检测模型错误分类的样本,并纠正错误分类的预测以提高模型性能。

③ 通过对26,748个应用程序进行了广泛的实验,以评估MalCertain的有效性。【将MalCertain应用于两个最先进的基于dnn的Android恶意软件检测模型,当这些模型用于检测OOD样本时,MalCertain能够提高模型性能(准确性提高约21%,F1分数提高49%)。同时,MalCertain还可以提高这些模型识别对抗性样本的能力。

二、研究方法

  1. 首先进行了一项特征研究(a characteristic study),旨在衡量哪种不确定性估计方法和指标可以区分基于dnn的Android恶意软件检测模型的正确和不正确预测

原文:To this end, we first conduct a characteristic study that aims to measure which uncertainty estimation method and metrics can distinguish correct and incorrect predictions of DNN-based Android malware detection models (see § 3).

characteristic study具体步骤

(1)首先,训练一个基于dnn的Android恶意软件检测模型(DeepDrebin),并将该模型应用于包含OOD应用程序样本(即具有不确定性的数据)的测试数据集,以获得正确和不正确的预测。

==> 实验结论:
漏报率大于误报率
② 模型性能表现不佳说明存在概念漂移。

(2)然后,使用现有的不确定性估计方法训练一组模型集合,将这些模型集合应用于测试数据集以获得它们的预测,并根据这些预测结果计算不确定性估计度量。【结果表明,所有这些指标都能有效区分正确和错误的预测。特别是,使用变分贝叶斯推理方法计算的Kullback-Leibler (KL)散度度量是识别错误预测的最佳方法之一。】

==> 详细步骤
① 为了估计这些预测的不确定性,我们选择了五种常用的方法来构建模型集合:(i) Epoch Ensemble, (ii)变分贝叶斯推断Variational
Bayesian Inference,(iii) Monte Carlo Dropout, (iv) Deep Ensemble和(v) Weighted Deep Ensemble
。(使用相同的训练集训练5个不确定性估计模型集合)
② 为了定量评估预测的不确定性,我们选择了三个常用的指标:熵Entropy、KL散度(Kullback-Leibler divergence标准差(standard
deviation,它们都可以用来量化一组数据的分散程度。通常,度量值越大,表明集成中模型之间的分歧越大,因此不确定性越高

==> 实验结果分析
① 根据样本是否被Base Model误分类,将样本分为两类。之后,我们计算了每个类别中每个样本的不确定度度量。
② 图2显示了正确分类样本(实线)和错误分类样本(虚线)的三个不确定性度量的CDF分布,每种颜色标记一种类型的模型集合。我们可以看到,所有的不确定性指标(熵、KL散度和标准差)在两种类型的样本中显示出显著不同的分布。错误分类样本的不确定度值一般大于正确分类样本的不确定度值。【这种差异对于VBI方法尤其明显,大约75%的正确预测的不确定性度量为0,而大约10%的不正确预测的不确定性度量为0。】
③ 因此,这些基于不同不确定性估计方法计算的不确定性度量可以作为区分可靠和不可靠预测的指标。这促使我们设计一种自动化的方法来标记不可靠的预测并纠正这些预测结果。

  1. 基于以上研究,提出了一个通用框架MalCertain,它找到了一种使用预测不确定性来提高基于dnn的Android恶意软件检测模型性能的最佳方法。

原文:Motivated by this study, we propose a general framework, MalCertain, which finds an optimal way of using prediction uncertainty to improve the performance of DNN-based Android malware detection models (see § 4)

MalCertain框架包含的实验步骤

(1)DNN Model Training给定一个基于dnn的Android恶意软件检测模型(称为Base model), MalCertain首先在Base model上训练多个模型集合并将Base model和这些模型集合应用到一个校正训练数据集上,以获得它们的预测结果。

==> 如何训练模型集合
微调模型参数,观察预测结果和微调前的预测结果是否存在很大不同。

原文:Given a classification model

标签:不确定性,model,预测,模型,恶意软件,样本,Base,Model,安卓
From: https://www.cnblogs.com/LucyNote/p/18146888

相关文章

  • uniapp安卓在线更新版本
    实现逻辑通过获取线上的版本号和app的版本号进行对比查看是不是最新版—app版本号小于线上版本号则不是最新版提示更新模拟检测更新请求起一个服务,也就是检测更新的接口返回值为最新版本号和最新版wgt文件下载地址,例:{  "code":0,  "msg":"success",  ......
  • 一篇文章带你领悟Frida的精髓(基于安卓8.1)
    https://www.freebuf.com/articles/system/190565.html前言前阵子受《Xposed模块编写的那些事》这篇文章的帮助很大,感觉有必要写一篇文章来回馈freebuf社区。现在最火爆的又是frida,该框架从Java层hook到Native层hook无所不能,虽然持久化还是要依靠Xposed和hookzz等开发框架,但是fr......
  • 【安卓逆向】从逆向登录协议开始到frida rpc的初探
    本来是闲着无聊逆向一下喜马拉雅的登录协议日常抓包,分析数据包,有一个password字段想分析一下这个password这个字段,jadx搜索一下啊 经过frida多次的hook定位,发现这个方法便是加密过程,点进去可以hook一下这个方法查看一下functionhook(){letLoginRequest=Java.......
  • 928. 尽量减少恶意软件的传播 II【并查集加暴力删边判断】
    题意不是很清晰:1.比如对于graph=[[1,1,0],[1,1,1],[0,1,1]],initial=[0,1]来说,可以发现结点的链接情况是0-1-2,感染源结点是0和1,若是按之前题目的要求,移除0和1都不会减少最终感染个数,但是应该返回结点0,因为其index小。但是应用此题的条件,就一定要返回结点1,因为移除结点1之......
  • 2024年安卓轮播图代码+定时翻页(全网代码最少实现)
    2024年安卓轮播图代码+定时翻页asda这里是Fragment子类的继承如果使用  AppCompatActivity请修改一下很简单的如果又看不懂的话可以访问使用我的gpt:https://0.00000.work/ 免费3.5的 直接吧代码扔给他然后和他说帮忙解释一下每一行作用 Integer[]data={R.drawa......
  • 基于LEAP模型的能源环境发展、碳排放建模预测及不确定性分析实践应用
     在国家“3060”碳达峰碳中和的政策背景下,如何寻求经济-能源-环境的平衡有效发展是国家、省份、城市及园区等不同级别经济体的重要课题。根据国家政策、当地能源结构、能源技术发展水平以及相关碳排放指标制定合理有效的低碳能源发展规划需要以科学准确的能源环境发展预测模型......
  • 安卓多照片上传
    importandroid.util.Log;importcom.zx.eselected.client.toools.ImageCompressor;importorg.json.JSONException;importorg.json.JSONObject;importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.List;importjava.......
  • 面试常问问题——web端测试、安卓测试、ios测试的区别是什么?
    web端需要考虑:1、浏览器种类的兼容2、浏览器版本的兼容3、电脑和显示器的显示4、缩放窗口大小的显示5、响应时间 app测试需要考虑:1、不同的屏幕分辨率2、不同品牌的设备3、不同的系统4、不同的安卓版本5、安装卸载......
  • 华为手机 鸿蒙系统 或者安卓系统的百度网盘下载的文件保存在手机什么位置如何查看
    华为手机鸿蒙系统或者安卓系统的百度网盘下载的文件保存在手机什么位置如何查看 连接电脑后一般在这里位置计算机\Mate20Pro(UD)\内部存储\Download\BaiduNetdisk也就是用usb(数据线,不是充电线,要四心的)连接手机后,打开手机盘,download目录 ......
  • 安卓开发向数据库添加中文变成了?怎么解决
    在安卓开发中,如果向数据库添加数据时中文变成了问号'?',通常是因为数据库的编码方式不支持中文字符。为了解决这个问题,可以尝试以下方法:1.确保数据库的编码方式支持中文字符。一般来说,可以选择使用UTF-8编码来存储中文字符。2.在创建数据库连接时,设置正确的字符集,例如在JDB......