【恶意软件检测】【防】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 的相关文章

  • 从 puppeteer PDF 中删除分页符?

    我目前正在尝试查看是否有一种方法可以删除我的 puppeteer PDF 中的分页符 因为我当前的 PDF 设置中的一些分页符正在以一种奇怪的方式切断文本 我正在谈论的内容的屏幕截图 我的傀儡代码 app get companyId pdf
  • 将超链接添加到 PDF 文档中

    我目前正在扩展我们的自定义 PDF 编写器 以便能够编写网站链接 但是 我遇到了一个问题 因为我无法找到如何将链接放入 PDF 的任何地方 这是打印文本的内容 BT 70 50 TD F1 12 Tf visit my website Tj
  • 在 Android 中使用 PhoneGap 打开 PDF

    我需要打开一个位于 url 中的 PDF 文件 我需要用 PDF 查看器打开它 有可能的 谢谢大家 此致 我建议使用儿童浏览器插件 https build phonegap com blog childbrowser plugin并使用 G
  • 在 iOS 上将 SwiftUI 视图转换为 PDF

    我用 SwiftUI 画了一些漂亮的图表 因为它非常简单且容易做 然后我想将整个 SwiftUI 视图导出为 PDF 以便其他人可以以良好的方式查看图表 SwiftUI 没有直接为此提供解决方案 Cheers Alex 经过一番思考 我想到
  • 使用 JavaScript 填写 PDF 表单

    这就是我所拥有的 用户填写很长的 html 表单 用户获取下载不同 pdf 的链接 这是可填写的表格 链接是使用 javascript 生成的 用户单击链接 生成 url 使用用户之前提交的数据 在表单中处理数据并完成字段 这是在表单内使用
  • 无法从 PDFA1-a 格式文档中提取图像

    我正在使用以下代码从 PDFA1 a 格式的 pdf 中提取图像 但我无法获取图像 List
  • 如何在服务器(无 GUI)上呈现网页以进行打印?

    我正在尝试使用 PHP 脚本将页面实用地打印到办公室打印机 这是我到目前为止所得到的 我在服务器上安装了一台打印机 我可以通过命令行的打印命令使用 PHP 向其发送作业 我还可以使用 PHP 脚本编写纯文本文件 然后将它们添加到打印提示中
  • 在 Visual Basic 2010 的控件中显示 PDF

    我刚刚安装了 Visual Basic 2010 浏览了一些有关如何显示文件的教程 但找不到任何有关如何选择现有 PDF 文件并将其嵌入表单的材料 任何正确方向的建议或指示都会很棒 谢谢 只需在表单中嵌入浏览器控件并将其导航到 PDF 文件
  • 内容处置:ASP.Net 中的内联 PDF 文件不起作用

    我正在尝试将带有标题的 PDF 文件返回到浏览器Content Dispostion inline就在我创建这个文件之后 浏览器的查看者无法打开它 文件没有损坏 如果我放入浏览器 查看器会正确显示文件 但我想一次性创建文件并检查用户对文件的
  • 如何直观地检查 PDF 的结构以对其进行逆向工程? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如何检查 PDF 文件的结构 用例 我正在尝试以编程方式生成 PDF 文件 使用 iText 我在实现
  • 从 .docx 转换为 pdf 时,图像显示效果不佳

    我转换了 docx文件至 pdf文件中 文本转换得很好 但是图像 docx文件没有出现 而是表示为一些特殊字符 下面是我的代码 import com lowagie text Document import com lowagie text
  • 大虾如何生成目录?

    有没有一种简单的方法来生成带有相应页面链接的目录 在最近版本的虾中 是的 查看 API 示例的 Examples general outlines rb 示例 See http prawnpdf org manual pdf http pr
  • 合并两个 Jasper 报告

    我有一个带有下拉菜单的网络应用程序 用户可以从中选择报告可视化的类型 报告 1 报告 2 报告 3 等 根据所选的报告 Jasper 报告将在服务器上编译并以 PDF 格式的弹出窗口打开 在服务器端 我使用下面的代码以单独的方法实现每个报告
  • 如何使用Python从pdf文件中删除页面?

    我有一些超过 500 页的 pdf 文件 但每个文件中只需要几页 有必要保留文档的标题页 我确切地知道程序应该删除的页数 如何使用安装在 MS Visual Studio 上的 Python 2 7 环境来完成此操作 尝试使用PyPDF2
  • 打开 PDF 到书签/指定目标?

    我正在尝试使用 python 打开特定书签的 PDF 到目前为止 我可以在命令提示符中运行以下命令并得到我想要的 last是 PDF test pdf 中指定目的地的名称 C Program Files x86 Adobe Reader 1
  • UIDocumentInteractionController 显示空白 pdf

    我尝试使用 UIDocumentInteractionController PresentPreviewAnimated 方法在 iOS 设备上显示 pdf 但它一直显示空白文档 我认为这可能与字符编码有关 但我不确定 如果我使用 UIWe
  • 从图像创建 PDF 时设置文档名称

    我使用以下代码从 jpg 图像创建 pdf im new Imagick im gt readImage image jpg im gt setImageFormat pdf im gt writeImage images pdf imag
  • 创建 PDF/A-3:嵌入文件应包含有效的 Params 密钥

    我正在尝试使用 itextpdf 5 4 5 和 itext pdfa 5 4 5 创建 PDF A 3 当我设置 PdfFileSpecification 时 出现以下异常 com itextpdf text pdf PdfAConfor
  • 如何从 Web API 应用程序返回 PDF

    我有一个在服务器上运行的 Web API 项目 它应该从两种不同类型的源返回 PDF 实际的可移植文档文件 PDF 和存储在数据库中的 base64 字符串 我遇到的问题是将文档发送回客户端 MVC 应用程序 剩下的部分是关于所发生的一切以
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这

随机推荐

  • 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