一个用于WINDOWS PE恶意软件分类的基准API调用数据集

来源:A BENCHMARK API CALL DATASET FOR WINDOWS PE MALWARE CLASSIFICATION

摘要:在Windows操作系统中,使用操作系统API调用检测pe类恶意软件是一个很有前途的任务。该任务的官方定义是在隔离的沙箱环境中运行恶意软件,记录使用Windows操作系统进行的API调用,并对这些调用进行顺序分析。在这里,我们在一个隔离的沙箱环境中,分析了7107种不同的恶意软件,它们属于不同的科,如病毒、后门、木马等,并将这些分析结果转化为一种可以使用不同分类算法和方法的格式。首先,我们将解释如何获得恶意软件,然后我们将解释如何将这些软件捆绑到家庭中。最后,我们将为使用我们创建的数据集的研究人员描述如何使用不同的计算方法执行恶意软件分类任务。

一、简介

如今,计算机在日常生活中的使用越来越广泛,因此,计算机攻击者使用不同的方法攻击计算机,或者将计算机用作武器。尽管每一个新的操作系统版本或更新都会使计算机变得更加安全,但是攻击者可以使用不同的方法绕过这些安全组件。安全组件绕过方法最常见的场景是恶意软件更改其源代码和每个受感染的计算机[1]上的行为。分析人员用来检测恶意软件的所有方法都称为恶意软件分析。恶意软件分析是一个非常广泛的术语,包括许多阶段。这些阶段包括在不运行该软件的情况下检查可疑软件的内容,然后在隔离的环境中运行该软件,检查域名系统(DNS)解析请求,记录注册表的读/写、文件访问和应用程序编程接口(API)调用。

这些恶意软件的行为有特定的目的。我们知道它们被用于许多不同的目的,例如防止系统工作、获得对系统的未经授权的访问、获取个人数据。为此,许多不同的平台,如服务器、个人计算机、移动电话和相机都是目标。如今,成为目标的平台越来越多。因此,为这些平台开发的恶意软件也有很大的不同。特别是在2018年前4个月,4000万被认为是新恶意软件的威胁。

现在,有相当多的时间花在保护从这个软件和重大的预算支出。为了防范恶意软件,许多产品在商业和学术上都有生产。在制造恶意软件的攻击者和试图识别这些软件的各方之间存在着严重的斗争。因此,它提高了双方的能力和能力。变形恶意软件就是这种斗争的结果。

变形恶意软件是恶意软件家族中最先进的成员。这些恶意软件可以使用不同的方法,通过对自己的源代码进行修改,使其结构不断变化。通过这种方式,他们更改代码签名。此外,这些软件可能具有识别环境的能力,并通过在为恶意软件分析[2]创建的环境中反分析操作来存储它们的有害操作。变形恶意软件很难检测和分类,因为它们有这样的能力。

考虑到恶意软件的发展,可以看到它们经历了一个结构上的完美演变。但是每个阶段都有一个不变的特征。设计这些特性是为了以一种不受欢迎的方式获益。也就是说,他们有一种有害的行为。所有的恶意软件都应该执行一些操作来实现它们的目标。假设一个恶意软件在运行Windows操作系统的计算机上,这个恶意软件需要使用操作系统提供的一些服务。获取这些服务的整个请求集(Windows API调用)会创建恶意行为。如果能够很好地分析恶意行为,就可以进行恶意软件检测和分类。

恶意软件的检测包括许多需要解决的设计问题,比如汇编代码中不正确的跳转op代码、可移植可执行文件中的.text块中的隐藏内容以及加密的内容。在这项研究中,我们收集了当前恶意软件及其变体如WannaCry和宙斯,尤其是在Github的网站上,我们获得了家庭类从VirusTotal站点通过寻找每个恶意软件的散列值,最后,所有的行为都记录下一只布谷鸟沙箱环境中运行它们。我们的观点是,几乎所有的恶意软件都是通过各种各样的方法来改变它们的行为,尽管它们会改变自己的行为,但是恶意软件有一个目标,并且有一种实现这个目标的路径模式。此外,恶意软件在行为变化期间进行不必要的API调用,由于模式是相同的,所以可以由要接受分析人员训练的模型检测到。

恶意软件分析可以定义为网络安全的一个分支,它包括两个阶段:(1)静态分析,(2)可疑文件的动态分析。静态分析大致可以定义为检查可执行文件,而不需要在隔离的环境中执行实际的指令。静态分析的著名例子是MD5校验和、反病毒检测工具的识别、查找字符串。动态分析是指实际运行的恶意软件,了解其功能,观察其行为,识别技术指标。行为记录中最重要的部分是API调用序列。动态恶意软件分析领域的研究大多集中在分类算法上。这些研究的关键问题是没有基准数据集来检查所提出的模型[3]的效率。

本研究试图获得有助于解决这些研究空白的数据。本研究的具体目标是建立一个针对Windows操作系统中各种恶意软件API调用的基准数据集。这是第一个研究进行变形恶意软件构建顺序API调用。希望本研究将有助于更深入地了解变质恶意软件如何通过添加毫无意义的操作码和它们自己的编译器/汇编器部件来改变它们的行为(即API调用)。

我们在github网站1上共享了我们的数据集。我们相信这个数据集可以被研究基于行为的恶意软件分析的研究人员使用。

2方法

该数据集包含关于基于已知恶意软件执行的cuckoo沙箱和基于MD5签名的文件分类的原始数据。

Windows API是一个用于在Windows操作系统上开发应用程序的接口。应用程序开发人员可以使用Windows api与操作系统通信。因此,操作系统以API的形式提供了许多服务。Windows应用程序需要使用api来使用操作系统提供的函数。这些函数的使用被定义为API调用。应用程序在执行过程中多次调用API。例如,当应用程序被请求创建一个文件时,它必须调用CreateFileA API[4]。应用程序在系统上进行的API调用可以显示该应用程序的行为。因此,在动态恶意软件分析中经常使用API调用。本研究使用的数据集的基本条目是恶意软件对操作系统的API调用。

2.2杜鹃沙箱

您可以检查任何可疑的文件在几分钟内与杜鹃。它提供了一个详细的报告,显示文件的行为是在一个隔离的和现实的环境中执行的。如今,仅仅检测并消除恶意软件的影响是不够的:了解恶意软件的上下文、动机以及它们是如何工作的对于理解恶意软件的目的是至关重要的。Cuckoo Sandbox是一款免费软件,可以自动分析Windows、OS X、Linux和Android下的恶意文件。布谷鸟沙箱是一个先进的,高度模块化和开放源码的自动恶意软件分析系统,具有无限的应用可能性。

在计算机安全中,沙箱是一种用于分离正在运行的程序的安全机制。通常沙箱用于来自第三方、供应商、不可信用户和不可信网站的未经确认的应用程序。布谷鸟沙箱系统有两个基本组成部分。第一个组件是开始分析恶意软件的管理机器,将结果写入数据库,并为用户提供web服务。第二个组件是运行恶意软件的分析机器。分析机器可以是虚拟的或物理的机器[5]。

2.3 VirusTotal

VirusTotal是一项免费服务,允许您在线分析文件或URL地址。许多杀毒应用程序引擎和网站扫描器被用于分析。在防病毒应用程序引擎中,被认为是有害的文件将被单独分析。每个防病毒应用程序引擎都为可疑文件[6]创建一个分析报告。对于要分析的url,相同的分析用例是有效的。病毒分析服务包括一组非常大的分析。这样既可以进行新的扫描,又可以获得以前的分析信息。VirusTotal提供了一个服务接口(VirusTotal Public API v2.0),可以在不使用浏览器的情况下提供结果,也可以通过web浏览器提供结果。使用这个接口,可以自动分析文件/ URL地址。VirusTotal Public API将分析结果作为JSON对象提供。每个防病毒应用程序引擎和web浏览器的分析结果分别得到。

2.4数据集创建

这里给出的数据集具有非常简单的结构。我们的数据集作为逗号分隔值(csv)文件提供,以增强互操作性,不需要特定的软件或库来读取它们。使用git命令行实用程序从各种github页面收集数据。这个数据集中的每一行都是Windows操作系统API调用的有序序列,这些调用属于cuckoo沙箱环境中的分析。

创建数据集时遵循以下步骤。

1. 布谷鸟沙箱环境的准备:在分析机上安装Ubuntu操作系统。然后安装了Cuckoo沙箱应用程序。分析机作为虚拟服务器运行,恶意软件将在其中运行和分析。此服务器上安装Windows操作系统。防火墙已被关闭,而操作系统的更新也没有应用于防止恶意软件在操作过程中遇到任何障碍。

2. 恶意软件分析:超过20,000个恶意软件运行在布谷鸟沙箱一次一个。应用程序将每个恶意软件的分析信息写入MongoDB数据库。从这些分析信息中,得到分析机上恶意软件的行为数据。这些数据都是由Windows 7操作系统上的恶意软件发出的Windows API调用请求。

3.处理Windows API调用:我们在数据集中观察到342种API调用。这些API调用使用数字0-341进行索引,以创建新的数据集。我们使用了对恶意软件的分析结果,该恶意软件在这个数据集中至少有10个不同的API调用。

4. 使用Virus Total API分析恶意软件:除了我们自己的分析,所有包含在数据集中的恶意软件也通过请求Virus Total 进行分析。通过这种方法,每个恶意软件都被许多不同的反病毒引擎分析并记录它们的结果。

5. 分析结果处理:病毒总服务使用大约66种不同的防病毒应用程序进行文件分析。利用我们通过该服务获得的每次分析结果,我们确定了每个恶意软件的家族。由于我们的观察,我们发现不同的防病毒应用程序对相同的恶意软件给出不同的结果。此外,还发现并不是所有的杀毒应用程序都能检测到一些恶意软件。例如;恶意软件文件时的散列值06 e76cf96c7c7a3a138324516af9fce8分析Virus Total 服务,许多应用表明该文件是一个worm,而某些应用程序,如DrWeb表明它是一个木马,和Babable应用表明该可执行的是一个干净的文件。因此,在检测每个恶意软件类时;它属于所有分析的多数类,这是公认的。

在我们的研究中,我们将每个软件产生的家族翻译成8个主要的恶意软件家族:特洛伊、后门、下载器、蠕虫、间谍软件广告软件、滴管、病毒。表1显示了我们的数据集中属于恶意软件家族的恶意软件数量。从表中可以看出,除广告软件外,其他恶意软件家族的样本数量非常接近。有这样的区别,因为我们没有从adware恶意软件家族中发现太多的恶意软件。


恶意软件家族使用的操作系统api因其结构而异。这些差异可以是API或API调用。恶意软件还可以进行不必要的API调用来隐藏自己,并在每个客户机上具有不同的签名。创建不同签名的主要原因是反病毒软件根据其签名检测恶意软件。

图4显示了属于每个恶意软件家族的Windows操作系统API调用的规范化值。

图5显示了每种恶意软件类型的最相关的30个API调用heatmap。从图中可以看出,每个恶意软件家族都调用了一些api。恶意软件在执行其恶意活动时遵循预先定义的API调用序列。尽管不同的恶意软件调用这些API的顺序不同,但就恶意软件家族而言,它们可能非常相似。由于这个原因,图中显示了5-10个api,它们之间高度相关,特别是对于Dropper和蠕虫恶意软件家族。





©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容