【恶意软件检测】【防】On Training Robust PDF Malware Classifiers

2023-05-16

论文链接:https://arxiv.org/pdf/1904.03542.pdf
开源项目地址:https://github.com/surrealyz/pdfclassifier本文发表在USENIX Security 2020,第一作者是来自哥伦比亚大学的Yizheng Chen.这篇论文的成果来自Suman Jana老师领衔的研究组。该组在机器学习安全领域有很多优秀的成果。

主要内容:

本篇工作针对PDF恶意软件提出了新的鲁棒训练方法。本篇工作采用Verifiably Robust Training,利用有效PDF必须能被解析为树结构的特点,提出了一种针对PDF树结构的新距离指标,并借助这种距离指标指定了两类鲁棒属性,子树插入和删除。只要攻击者符合鲁棒属性,再强的攻击者也无法产生可逃避分类器检测的变种。比如,指定鲁棒属性为插入1棵子树,任何通过插入1棵子树生成的PDF恶意软件变种都无法逃避检测。

设计实现

1.特征选择

作者使用了前人工作Hidost使用的Bag-of-Path features特征,它将PDF根节点到每个对象的最短结构化路径的二进制计数作为特征。它的好处在于,攻击者修改输入产生新变种的操作不会让特征值产生大的波动,可以有效限制分类器输入的范围,降低FPR.
在这里插入图片描述

2.训练目标

鲁棒训练的目标,是让分类器对逃避攻击有足够的鲁棒性,即对攻击者通过修改恶意软件生成的新恶意变种,分类器也要能将新变种正确分类为恶意软件。
具体来说,对于一个输入x,我们首先需要找到对于每一个x˜ ∈ Dk(x),模型产生的最大损失,称为鲁棒损失。然后以鲁棒损失最小化为目标,更新模型参数。其中Dk(x)指以距离指标D表示的距离k范围内,所有可以产生的与x距离为k的新变种集合。我们将寻找鲁棒损失的过程称为内部最大化问题,将减小鲁棒损失,更新参数的过程称为外部最小化问题。由于外部最小化问题与常规的神经网络训练目标相同,因此鲁棒训练主要问题在于内部最大化问题。

在这里插入图片描述

3.距离指标和鲁棒属性

为了获取训练所需的鲁棒区域Dk(x),需要距离指标D描述和限制恶意软件与其变种的相似度。
作者发现,所有能保留恶意功能的PDF恶意软件变种,都必须满足正确的PDF语法,即可以被解析为树结构。为了能够系统,高效的生成变种,攻击者必然使用子树插入和子树删除操作恶意软件生成变种。只要分类器对这两种操作有鲁棒性,那么它对逃避攻击也就有了鲁棒性。
作者据此提出了子树距离作为距离指标:两个PDF软件的子树距离,即它们根节点下不同子树的数量。无论在x的根节点下插入1棵怎样的子树,x与生成的变种x˜的子树距离都是1。这样可以更好的限制鲁棒区域,降低FPR.
借助子树距离的限制,作者指定了子树距离为1时,子树插入和子树删除两种基础鲁棒属性。鲁棒属性具体是:对恶意软件进行任意子树插入(删除)操作生成的子树距离为1的变种,分类器不会将其分类为良性。这些属性都可以推广到子树距离为N的情况。

4. 训练方法

由于外部最小化问题与常规的神经网络训练目标相同,因此鲁棒训练主要问题在于内部最大化问题。
本篇工作采用的Verifiably Robust Training方法则通过sound over-approximation,获取鲁棒损失的上界。这种方法对未知攻击也具有一定的鲁棒性,只要给予适当的限制,就能将FPR控制在合理范围内。作者在神经网络上使用Symbolic Interval Analysis获取鲁棒损失上界。即通过恶意软件和其变种间特征向量的间隔(interval)来限制输入范围,即Dk(x),并进行训练。最终获取输出范围,将其上界作为鲁棒损失。

对大多数静态分析而言,都是牺牲complete来保证sound,要进行over-approximation,即may分析,这种时候分析出的错误中可能有误报,但是涵盖了要分析的所有错误。
还有一些静态分析是must分析,要进行under-approximation,要求报出的错误必须是真实存在的。例如,对于编译优化就需要进行must分析,如果使用may分析,那么对于那些误报的地方就会导致错误的优化。

什么样的SA(软件分析)是完美的呢?
定义是既overapproximate又underapproximate的SA是完美的。overapproximate也叫sound,underapproximate也叫complete,他们之间的关系可以用一个图很好的表示。
在这里插入图片描述
complete表示报告包含的错误都是真实的错误,但可能并未包含全部的错误,造成了漏报;
sound表示报告包含了所有的真实错误,但可能包含了误报的错误,导致误报; completeness: true - complete = false negative ->漏报
soundness: sound - true = false positive -> 误报

总结评价

文章首次提出并训练了PDF恶意软件分类器的鲁棒属性,并取得了不错的效果。不过实验中使用的一些攻击并不能生成真实环境中的恶意软件,虽然仅存在于特征空间的恶意软件对评价也有一定的意义,但这种方法在真实环境中的FPR可能会略高一些。总的来说,这篇文章对逃避攻击的防御是有不错的启发意义的。

学到的点:
鲁棒训练(鲁棒训练的目标,是让分类器对逃避攻击有足够的鲁棒性,即对攻击者通过修改恶意软件生成的新恶意变种,分类器也要能将新变种正确分类为恶意软件),
鲁棒损失(对于一个输入x,我们首先需要找到对于每一个x˜ ∈ Dk(x),模型产生的最大损失,称为鲁棒损失。然后以鲁棒损失最小化为目标,更新模型参数),

静态分析中的complete、sound、over-approximation等概念

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【恶意软件检测】【防】On Training Robust PDF Malware Classifiers 的相关文章

  • 从 asset 或 res/raw 中的文件获取 Uri

    我试图让它发挥作用 并且在网上查看了许多不同的资源 正如您从我所做的所有评论中看到的那样 我想访问位于 asset 或 res 中的 pdf 文件 哪一个并不重要 所以最简单的方法就可以了 我有下面的方法 它将获取实际文件 并使用参数中的
  • 将多个 Excel 工作表范围转换为 PDF VBA

    下面的代码是获取 Col E 的状态 如果它是 Include 那么其相应的工作表范围将被转换为 PDF 我已经尝试过了 但它无法正常工作并收到错误invalid procedure call or argument在线上 rng Expo
  • PDFBox 更改线条颜色

    我使用 pdfbox 1 8 5 并尝试使用绘制彩色线PDPageContentStream drawLine 我尝试过PDPageContentStream setNonStrokingColor 255 0 0 但它不起作用 我也没有找
  • 如何使用 PHP 制作 pdf 文件

    如何用 PHP 制作 PDF 文件 我想要制作的是学生名单 所以我想查询数据库 获取信息 并在用户单击 生成学生列表 时将其以 PDF 形式提供给用户 你有两个不错的选择 首先是用于操作 pdf 的标准 php 库 https www ph
  • 打开 PDF 或文件夹

    我尝试打开在 Flash Player 中运行的 swf 应用程序中通过鼠标单击触发的 PDF 或文件夹 在查找器 资源管理器中 通过 urlRequest 打开 PDF 和navigateToUrl 总是打开浏览器 我读到this htt
  • 如何使非常宽的 grid.table 或 tableGrob 适合 pdf 页面?

    我有一个相当宽的表格 页面宽度的 4 3 我正在尝试使用 grid table 或 grid arrange 通过 tableGrob 将其打印到 pdf 文件中 该表超出了页面边界并被剪裁 有没有办法强制 grid table grid
  • 如何在Android中将图像文件转换为pdf文件

    我正在尝试在 Android 应用程序中将图像文件 jpg 转换为 pdf 文件 我用过itextpdf罐子和机器人文本罐 都不适合我 下面是使用时的代码itextpdf Document document new Document Str
  • 如何在android中使用jquery和phonegap打开pdf文件?

    最近我正在为 Android 构建一个应用程序 我正在使用phonegap 来做同样的事情 一切都运行良好 除了一个问题 即我无法在 android 中使用 jquery 打开 pdf 文件 我已经尝试了很多做同样的事情 但我无法做到这一点
  • 如何用C#替换PDF中的文本?

    我在这里看到了很多解决方案 但没有一个是明确或好的答案 这是我的简单问题 希望得到直接答案 我有一个 PDF 文件 模板 其创建的文本如下 名字 姓氏 地址 电话号码 是否可以使用 C 代码将这些模板替换为我选择的文本 没有字段 没有其他复
  • 使用 iText 某些 pdf 文件水印不显示

    我们公司使用 iText 在一些 pdf 表格上标记一些水印文本 不是图像 我注意到 95 的表格可以正确显示水印 大约 5 则不能 我测试了一下 复制了2个原始pdf文件 一个被标记为ok 另一个不ok 然后通过一个小程序进行测试 结果相
  • 查找 PDF 文件中的文本位置

    我有一个 PDF 文件 我试图在 PDF 中查找特定文本并使用 Python 突出显示它 我发现pypdf https pypi org project pypdf 哪个行突出显示 PDF 的一部分 https gist github co
  • 如何在 R 和 RStudio 中构建 pdf 小插图

    我是编写 R 包的新手 我正在尝试学习如何为我的包裹制作小插图 我创建了一个小插图文件夹 其中包含文件 getting started Rmd title WaterML Tutorial author Jiri Kadlec date r
  • Python PIL 由于某种原因无法打开 PDF

    所以我的程序能够打开 PNG 但不能打开 PDF 所以我这样做只是为了测试 但它仍然无法打开 甚至是一个简单的 PDF 我不知道为什么 from PIL import Image with Image open r Adams K a pd
  • 从 Gmail 获取 pdf 附件作为文本

    我在网络和 Stack Overflow 上搜索但没有找到解决方案 我尝试做的事情如下 我通过邮件收到某些附件 我希望将其作为 纯 文本进行进一步处理 我的脚本如下所示 function MyFunction var threads Gma
  • 使用数学符号注释 Adob​​e Reader PDF

    我阅读的许多数学教科书和其他文献都是 PDF 格式 因此我经常使用 Adob e Reader 注释工具对它们进行注释 我确实找到了一个有用的指南 http cjasn asnjournals org site misc annotatin
  • 如何使用回形针对多页 pdf 进行缩略图

    我想让 Paperclip 为上传的多页 PDF 文件的每一页创建 2 个缩略图 我正在运行 Paperclip 2 3 1 1 并在我的资产模型中使用它 has attached file asset styles gt medium g
  • 使用带有图像的 C# 代码生成 pdf 文件的大小限制是多少?

    我正在使用 Web 应用程序使用 C 代码生成 PDF 文件 PDF 文件包含 tiff 图像 如果包含图像的文件夹大小超过 1GB 则浏览器将自动关闭 使用 C 代码生成 PDF 文件的图像大小限制是多少 您问题的答案取决于三个参数 PD
  • itextsharp读取表[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我使用 itextsharp 创建了一个带有表格的 pdf 我找到了一个例子http itextsharp sourceforge n
  • Rails 中的 PDF 导出

    我需要将包含一些图表的 HTML 页面导出为 PDF 有哪些好的 gem 可以做到这一点 PDFKit http railscasts com episodes 220 pdfkit http railscasts com episodes
  • 使用 iTextSharp 5.3.3 和 USB 令牌签署 PDF

    我是 iTextSharp 和 StackOverFlow 的新手 我正在尝试使用外部 USB 令牌在 C 中签署 PDF 我尝试使用从互联网上挖掘的以下代码 Org BouncyCastle X509 X509CertificatePar

随机推荐

  • Ubuntu卸载WPS安装Libreoffice

    Ubuntu卸载WPS安装Libreoffice 背景环境卸载WPS安装Libreoffice下载安装卸载 背景 自从2021年10月份安装elementory操作系统以来 xff0c 办公软件一直在使用WPS xff0c 使用上跟wind
  • 我的创作纪念日

    我的创作纪念日 机缘收获日常憧憬 机缘 跟CSDN相识是在十多年前了 xff0c 当时是在上面找资料 xff0c 注册账号是为了下载上面的资源 至于写东西是从2021年开始的 xff0c 与其说是写不如说是记录 xff0c 记录下来工作中用
  • linux 单机部署rabbitmq

    linux 单机部署rabbitmq 背景环境部署下载端口开具erlang安装RabbitMQ安装 背景 rabbitmq 是指在应用间传送的数据 消息可以非常简单 xff0c 比如只包含文本字符串 xff0c 也可以更复杂 xff0c 可
  • linux 服务器时钟同步设置

    linux 服务器时钟同步设置 1 背景2 简介3 环境4 安装及配置5 配置使用5 1 服务端配置5 1 1 修改配置5 1 2 开启同步5 1 3 防火墙策略配置 5 2 客户端配置5 2 1 修改配置5 2 2 开启同步 5 3 ch
  • 电脑安装双系统-linux系统上安装windows系统

    电脑安装双系统 1 背景2 环境3 思路4 操作步骤4 1 安装gparted4 2 设置windows安装驱动器4 3 安装windows10操作系统4 4 设置开机引导 1 背景 电脑安装的elementary OS 5 1 7 基本能
  • MacOS配置iterm2漂亮实用的主题

    效果预览 注意事项 需要oh my zsh请自行安装 安装该主题需要的字体文件 cd git clone https github com powerline fonts git depth 61 1 cd fonts install sh
  • 使用python 将excel中数据批量生成word周报

    使用python 将excel中数据调用word模板批量生成word周报 背景环境功能需求程序实现 背景 日常项目中每周需要召开项目周会 xff0c 会议纪要和会议周报是必不可少的一项内容 xff0c 会议纪要要求监理方会后发送给参会方成员
  • 自动化运维-批量安装Linux操作系统

    自动化运维 批量安装Linux操作系统 1 背景2 Cobbler基础2 1 Cobbler介绍2 2 Cobbler服务 3 系统环境3 1 系统环境3 2 网络环境3 2 1 实体机网络设置3 2 2 虚拟机网络设置3 2 2 1 VM
  • linux操作系统中业务程序及服务的开机启动

    linux操作系统中业务程序及服务的开机启动设置 1 背景2 目标3 启动类型3 1 服务启动systemctl3 2 服务启动chkconfig3 2 1 查看服务3 2 2 系统自带服务的设置3 2 3 添加服务设置 3 3 开机启动脚
  • Thinkpad X201i笔记本电脑开机Fan Error

    Thinkpad X201i笔记本电脑开机Fan Error 1 背景2 现象3 更换风扇3 1 准备工具3 2 开始拆机 1 背景 家里的老笔记本电脑 xff0c thinkpad X201i笔记本电脑 xff0c 一直在使用 xff0c
  • Linux操作系统安装MySQL(rpm安装)

    Linux操作系统安装MySQL xff08 rpm安装 xff09 1 背景2 环境说明3 准备工作3 1 端口查看3 2 检查安装3 3 创建MySQL用户和组 4 MySQL安装4 1 下载MySQL4 2 解压安装包4 3 安装My
  • MySQL配置数据库审计

    MySQL配置数据库审计 1 背景2 环境3 准备工作4 安装审计4 1 解压审计包4 2 查看数据库插件目录4 3 安装数据库审计插件4 3 1 复制到插件目录4 3 2 修改插件权限4 3 3 设置审计参数4 3 4 修改数据库审计配置
  • [漏洞修复]Docker runc容器逃逸漏洞(CVE-2021-30465)

    漏洞修复 Docker runc容器逃逸漏洞CVE 2021 30465 1 背景2 漏洞描述3 影响版本4 安全版本5 修复建议6 升级影响7 修复步骤 1 背景 2021年5月31日 xff0c 阿里云应急响应中心监测到国外安全研究人员
  • linux系统挂载硬盘

    linux系统挂载硬盘 1 背景2 环境3 准备工作4 挂载分区4 1 查看分区信息4 2 创建分区4 3 设置分区格式4 4 创建挂载目录4 5 挂载分区4 6 设置开机自动挂载4 7 验证是否挂载成功 1 背景 日常使用过程中随着系统业
  • ACFLY接口定义

    E的接口在原理图中可以找到 xff0c 看上去像是I2C的接口 xff0c 其实是SPI xff0c 因为ACFLY采购的屏它就是这么标接口的 不过我想把这个SPI接口让给LORA无线通信模块 xff0c 拓展一下无线功能 ACFLY板子是
  • FreeRTOS之Stream Buffers(流缓冲区)

    ACFly用到了Steam Buffers xff0c 特地调了3个最常见的API查了一下 xff0c 其他的API都和这些差不多 Steam Buffers 是最近几版本Freertos出现的数据结构 xStreamBufferCreat
  • python3使用自带venv创建虚拟环境及vscode配置

    使用自带venv创建虚拟环境 python3 3后支持 mkdir env python3 m venv env 或 mkdir env cd env python3 m venv 使用virtualenv创建虚拟环境 pip instal
  • 【恶软检测】【防】Deep neural network based malware detection using two dimensional binary program features

    使用二维二进制程序特征的基于深度神经网络的恶意软件检测 作者是Saxe J xff0c Berlin K 2015 年发表在10th International Conference on Malicious and Unwanted So
  • 【生成对抗样本】Simple Black-Box Adversarial Attacks on Deep Neural Networks

    对深度神经网络的简单黑盒对抗性攻击 作者 xff1a Narodytska N xff0c Kasiviswanathan S 2017年发表在IEEE Computer Society Conference on Computer Vis
  • 【恶意软件检测】【防】On Training Robust PDF Malware Classifiers

    论文链接 xff1a https arxiv org pdf 1904 03542 pdf 开源项目地址 xff1a https github com surrealyz pdfclassifier本文发表在USENIX Security