前言

论文笔记。


论文笔记

出处及年份 《计算机应用与软件 Computer Applications and SoftwareVol.》第32卷第8期2015年8月
论文标题 一种恶意代码特征选取和建模方法
论文作者及工作单位 李盟、贾晓启、王蕊、林东岱 ( 中国科学院信息工程研究所信息安全国家重点实验室 北京 100093) ( 中国科学院大学 北京 100049)

关键词

  • Malicious code
  • Dynamic analysis
  • Sequence feature
  • Machine learning

概述

改进传统 n-grams 模型对代码样本的API调用序列进行处理,从而针对恶意代码分析检测静态分析技术难以检测变形、多态代码的问题,提出一种提取恶意代码语义动态特征的方法。

论文研究的问题及其意义

  • 问题
    静态分析虽然比较全面,,但是对于采用了变形、混淆等代码变形技术的恶意代码却很难进行准确的分析,因为语法无法从根本上反映出恶意代 码的“恶意性”,不同的语法表达出的语义可以是相同的。
  • 意义
    采用了函数调用监控中API 监控方法进行动态行为分析检测研究,恶意代码的检测准确率有所提高。

现有方法

作者 方法
Chess 等[7] 使用沙盒技术来检测病毒,他们证明了病毒检测一般而言是不可判定的
Christodorescu 等[8] 使用静态分析技术检测恶意代码,文中实现的 SAFE 可以有效处理大多数恶意代码采用的混淆技术
Christodorescu 等[9] 在检测使用混淆技术的恶意代码上效果很好,不过该方法在进行分类上的时间需要 1 分 钟以上,这就使得该方法在商业防病毒检测上的实用性大大降 低
Kruegel 等[10] 针对混淆程序使用的是控制流图和统计方
Agrawal 等[11] 对于恶意软件变种同样采用了控制流及数据流分析,并使用了正规化矩阵距离进行相似性判断
Bergeron 等[12] 通过使用关键 API 以及安全策略检测恶意代码,不过他们 的方法对于混淆程序无效
Martignoni 等[13] 使用实时程序检测方法来检测内存中的反混淆,文中实现 OmniUnpack 对于已知以及未知的混淆器均能检测出其混淆行为
张等[14] 通过识别恶意代码调用的系统函数或库函数来检测其变种
文献 [15] 使用挖掘算法检测混淆的恶意代码

上述方法对于混淆的恶意代码效果很好,不过对于单个程序的检测时间需要数秒钟时间。

作者 方法
文献[16] 采用静态分析方法检测系统调用位置,通过运行时监测来确保静态分析中所有的系统调用来自同一位置
传统的基于签名的恶意软件检测方法[17,18] 在检测多态以及变形的恶意软件上存在困难
一些工作[19,20,21] 旨在提高基于特征的检测,其中文献[21]通过测度已知病毒与可疑代码之间的相似度来检测多态恶意软件。该方法的基础思想是同一恶意软件的不同变种均含有共同的核心特征,从原始恶 意软件提取出该特征用来进行匹配。尽管该工作能提高传统基 于特征的检测方法对多态恶意软件的检测效果,但是并不适用 于未知恶意软件
Santos 等[22] 对恶意软件效果一般,提出一种基于操作码序列频率的模型,并结合机器学习方法,对未知恶意软件的检测效果较好原文如此,但怎么感觉读起来有点儿拗口?
Anderson 等[23] 样针对基于特征方法进行改进的,通过收集动态指令构建特征图,并计算相似性矩阵进行不同图之间的相似性比较
一些研究工作[24 - 30] 使用数据挖掘以及机器学习方法的,其中文献[24]使用了 1971 个良性软件和 1651 个恶性 软件来提取 n-gram 特征
Ye 等[28] 使用 API 调用作为特征,使用的数据集含有12 214 个良性程序以及17366 个恶意软件,从 API 调用中提取出特征,在此基础上使用数据挖掘技术
Alazab 等[29] 基于 Windows API 调用频率,结合包括朴素贝叶斯、K 近邻、决策树等多种数据挖掘方法,提出了 一种新的检测 0day 恶意软件的手段
Trinius 等[30] 提出了一种新的恶意行为表示方法———恶意指令集,该方法专门为使 用数据挖掘及机器学习技术分析设计,对于这一类分析可以提 高运行效率及分析结果准确度
Canali 等[31] 在行为模型对恶意软件检测造成的影响方面进行了系统的研究,对于基于系统调用的恶意软件检测科学研究有一定价值

本论文方法与已提出的方法进行对比:
论文中只举了两个例子
1.

已提出的方法 本文方法
Alazab M 等[43]—— 同样使用了 n-gram 模型,该方法首先使用PEiD 和 IDA Pro 对可执行文件进行反汇编,在得到的汇编码基础上得出 API 调用特征,根据 API 调用特征得出 n-gram 特征, 分类器选用的是支持向量机。文献[43]实验结果显示,随着 n 的增大,准确度逐渐减小,FPR 逐渐增大。 先获取了恶意样本及良性样本的 API 调用特征,并根据调用特征得出了各样本的 3-gram 特征及其相关联的 概率、频次信息,概率、频次信息可以反映连续 gram 之间的上下 文语义,从而增强了特征,为检测时提供了更多的信息。之后对 得到的特征信息分别采用了四大类分类器进行建模,并进行了交叉验证。
Kolbitsch C 等[38]使用的是行为图进行建模,使用的检测工具为 Anubis,选取的恶意样本的家族与本文相同,针对Allaple、 Mydoom两类恶意样本的检测有效率( 即 TPR) 达到了 0. 90,不 过其平均 TPR 只有 0. 64,远远低于本文中 DT: J48 的 TPR ( 0. 892) 同上
  • 本文方法实验结果

    由表 4 可知本文使用的决策树在准确度上较 Alazab.M等[29]的方法优,同时 FPR 也较小。

论文提出的思路和方法及其优缺点

理论:
n-gram 算法改进。

  • c: 表示置信度
  • s: 表示支持系数
  • w: 表示窗口
    大小
  • f: 表示最小出现次数

支持系数 s 表示的是该条规则在所有监测记录的 API 调用序列中出现的概率,置信系数 c 表示的是在规则左侧出现的前 提下该条规则出现的概率。参数 s、c 均有一个最小的阈值 s0、 c0,最小出现次数 f表示序列建立成规则需要出现的最小次数。

本文提出的恶意代码动态行为特征分析检测基本架构:

  • 框架说明:

    1. 搭建用于动态运行恶意代码的虚拟环境。

    虚拟环境的作用:
    为了能获得恶意代码的动态行为特征,我们使用了虚拟机
    环境,虚拟机使用的是 VirtualBox,虚拟操作系统为 Windows XP,之所以选择虚拟环境是因为在进行动态运行恶意代码时实 际主机可以避免影响,虚拟机具有存储快照的功能。即使在虚 拟机中运行的恶意代码对操作系统产生了修改甚至是破坏行 为,使用快照功能存储的备份也可以将系统快速恢复到运行恶 意代码前的状态。事实上,虚拟机的这一功能除了能保护实际 系统不被修改破坏之外,还可以保证不同恶意代码运行的环境 是完全相同的,从而保证了实验结果的可比性。

    1. 于虚拟环境下执行恶意代码,并提取恶意代码动态行为语义特征。本文选取恶意代码执行期间调用的 API 序列作为语义特征。
    2. 使用提取的语义特征
      进行模型建立,即将原始的、未组织 的语义信息元素建立为加工过且结构化的语义模型。本文对恶意代码运行期间的 API 调用序列进行加工,抽象为能代表其语义特征 的改进 n-gram。
    3. 建立模型库,进行相似性检测。可采用的检测方 法根据特征不同而有所不同,如使用机器学习( 决策树、k-近邻、 神经网络等) 方法进行检测。

这个架构是否有欠妥当或能改善的地方,目前还看不出来。

论文使用的数据集和实验工具

  • 数据集
malware benign
来自 Offensive Computing[30],包含6种病毒:Agent、Allaple、Bagle、Mydoom、Mytob、Netsky Windows 中的程序
  • 实验工具

    • 提取API调用情况:
      API Monitor
    • 进行分类(分类器)的工具:
      Weka
    • 同时,,记录建模时间的工具也是:
      Weka

实验部分

使用了工具Weka记录建模时间和充当分类器。

  • 算法
    选择决策树[39,40]、K 近邻朴素贝叶斯[41]及贝叶斯网络支持向量机[42]四种分类器来进行测试。
  • 衡量指标
    TPRFPRPrecision
    F-Measure
  • 实验结果
  • 性能分析
    综合检测效果以及建模时间来看,
    贝叶斯网络由于建模时间较长,且检测效果并不明显具有优势,所以性能最差
    决策树: J48支持向量机: Linear Kernel 的效果最好

【论文笔记】李盟, et al. 一种恶意代码特征选取和建模方法. 计算机应用与软件 08(2015):272-277.相关推荐

  1. Deep Learning论文笔记之(五)CNN卷积神经网络代码理解

    Deep Learning论文笔记之(五)CNN卷积神经网络代码理解 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但 ...

  2. simscape电池建模_一种基于Simscape平台的电池建模方法

    一种基于Simscape平台的电池建模方法 [专利摘要]本发明公开了一种基于Simscape平台的电池建模方法,包括以下步骤:HPPC试验提取等效电路模型中参数:电池道路循环工况老化试验,每次循环后测 ...

  3. 论文笔记:语音情感识别(三)手工特征+CRNN

    一:Emotion Recognition from Human Speech Using Temporal Information and Deep Learning(2018 InterSpeec ...

  4. 论文解读:《Amy pred-FRL是一种通过使用特征表示学习来精确预测淀粉样蛋白的新方法》

    ~Title:AMYPred‑FRL is a novel approach for accurate prediction of amyloid proteins by using feature  ...

  5. 论文笔记:SIFT(Scale-invariant feature transform 尺度不变特征变换)

    1.SIFT介绍 1.1.介绍 SIFT(Scale-invariant feature transform 尺度不变特征变换)图像特征匹配,即使图像有旋转.模糊.尺度.亮度的变化,即使使用不同的相机 ...

  6. givemesomecredit数据_EasyEnsemble:一种简单的不平衡数据的建模方法(附测试代码)...

    摘要 虽然我这里洋洋洒洒写了2000字,但实际原理我一句话就能讲完,那就是"通过重复组合正样本与随机抽样的同样数量的负样本,训练若干数量分类器进行集成学习".但为了让大家对这个算法 ...

  7. Reconstructing Detailed Dynamic Face Geometry from Monocular Video 论文笔记

    Reconstructing Detailed Dynamic Face Geometry from Monocular Video 论文笔记 摘要 文章提出了一种从单目视频中获取人脸几何信息的方法. ...

  8. 【论文笔记】SIFA——基于GAN的双向跨模态无监督域适应框架

    本文是论文<Unsupervised Bidirectional Cross-Modality Adaptation via Deeply Synergistic Image and Featu ...

  9. 【论文笔记】—低照度图像增强—ZeroShot—RUAS网络—2021-CVPR

    论文介绍 ​题目:Retinex-Inspired Unrolling With Cooperative Prior Architecture Search for Low-Light Image E ...

最新文章

  1. android 自定义弹窗,Android自定义弹窗
  2. 0730------Linux网络编程----------服务器端模型(迭代,多进程,多线程,select,poll,epoll 等)...
  3. icon制作无白色背景_科研立项答辩ppt制作公司
  4. java 矩阵计算 加减乘除 反转 分解
  5. HDU 4685 Prince and Princess(二分匹配加点建图+强连通分量)
  6. DELPHI跨平台的临界替代者
  7. Nagios监控平台完全攻略 (三)
  8. 启动ubuntu无反应_奔驰E200轿车启动无反应检修
  9. UOJ291 BZOJ4785 ZJOI2017树状数组
  10. 2021 年 26 个优秀 WordPress 杂志主题 [免费 + 付费]
  11. 原子结构示意图全部_原子结构示意图大全
  12. MISRA C指导指南解读系列1(MISRA C是什么)
  13. Unity中打开商店评分评价
  14. 流量控制理论与Sentinel
  15. 感谢爱测未来,零基础的我的实习期是这么过来的
  16. nginx学习十 ngx_cycle_t 、ngx_connection_t 和ngx_listening_t
  17. 快速简单对接【短信验证码】API接口
  18. UVA167【The Sultan‘s Successors】(递归与回溯、8皇后问题)
  19. 常见的HTTP状态码以及代表的意义
  20. soft-nms(softnms)(pytorch实现) softer nms

热门文章

  1. hdu 5418(状态压缩dp+Floyd)
  2. URAL 1091. Tmutarakan Exams
  3. bnu- 34985 Elegant String
  4. numpy常用函数(power、sum、tile、transpose等)
  5. ant design pro总是跨域,proxy也没设置错误,原来是浏览器缓存,清理Chrome缓存就可以了...
  6. 纯CSS3画出小黄人并实现动画效果
  7. Android文件系统的结构
  8. TensorFlow 中文文档 介绍
  9. W: 无法下载 http://ppa.launchpad.net/fcitx-team/nightly/ubuntu/dists/jessie/main/binary-amd64/Packages
  10. CUDA: GPU高性能运算