在追求和开发恶意软件检测算法时,通常需要大量的恶意样本和良性样本。机器学习或类似的自动化技术,以及手动或部分手动签名生成,通常都需要一组良善而多样的良性示例集,这些示例通常被误认为是恶意的。进行分析,然后提供给逆向工程师,以进一步检查,分析和改进所述恶意软件检测算法。

什么是好的良性样本库/提要,最好是集中于潜在/频繁的假阳性样本?也欢迎其他来源或“检索方法”(抓取)!

#1 楼

您可以从hxxp://www.cs.arizona.edu/projects/lynx-project/Samples/(s / x / t /)上的反混淆工作中找到一些样本。这些程序-Linux和Windows二进制文件的混合-都是良性的(您必须牢记:-),但是使用恶意软件常用的多种技术。这些样本构成了以下论文中报告的结果的基础: IEEE安全与隐私研讨会,2015年5月。其中包括使用VMProtect,ExeCryptor和Themida等工具进行混淆的程序;
Qiu等人,“识别和理解软件中的自校验和防御”,Proc。第五届ACM数据和应用程序安全与隐私会议(CODASPY),2015年3月。这是一系列程序的集合,这些程序使用包括自修改代码在内的多种技术来实现基于自我校验和的反篡改。 >
我们以前在项目网页上都有指向这些示例的链接,但是Google决定我们正在分发恶意软件,并在其链接旁边贴上红色警告(谈论误报!),所以我们最终删除链接。这也是上面的链接被“ hxxp”掩盖的原因。

评论


非常感谢!您愿意解释样品的来源吗?毛坯数量也可申请!

– NirIzr
16年9月6日在18:33

混淆的代码包含我们编写的几个小程序(二进制搜索,冒泡排序,矩阵乘法等);以及一些准恶意软件-这些代码的来源是我们从VX Heavens获得的,然后使用Themida等进行了混淆(我称它们为“准恶意软件”,因为它们没有实际的恶意负载)。 ROP代码是我们编写的一些小程序的集合(冒泡排序,阶乘,斐波那契,矩阵相乘)。自校验和程序均基于开源MD5程序。请参阅提到的出版物以获取详细信息。

–debray
16 Sep 6 '18:56



太好了,谢谢!我会在几个小时内对您的答案进行投票,但是在我接受任何答案之前,我将等待更多时间

– NirIzr
2016年9月6日在18:59

@NirIzr:我的学生提到他认为来自VX Heavens的一些样本可能仍存在可疑的内容-他认为他对其中的一些存在一些问题。为了安全起见,我从该网站上删除了所有这些示例,因此剩下的只是我们自己编写并确定的程序。请舍弃您以前的拍摄内容,然后再次获取。对于那个很抱歉。

–debray
16 Sep 8'在18:40



#2 楼

恶意样本

我最喜欢的恶意样本来源是我定期提取VirusSign提供的免费示例来组装而成的数据库。请不要让这些样本确实需要注册,但要附上说明类型的报告。如果您没有碰巧在那里获得(智能)访问权限,仍然可以尝试使用开放式替代软件,例如Open Malware。 LENNY ZELTSER

良性示例

对于良性示例,我建议从全新的OS安装中提取良性可执行文件。您可以简单地将目标安装在虚拟机中,并获取提取它们的脚本。请确保您检查是否以这种方式收集了可执行文件,以使其在您的环境中正常工作。

可能的假阳性结果

大多数恶意软件档案会根据检测率和提供的标签对样本进行标记不同的反恶意软件产品(例如VirusTotal)。假定检测率极低且通用标签为假阳性的样品可能是最好的选择。另外,从HoneyPots收集的数据可能会产生相对较高的误报率。

我经常将Sysinternals Suite中包含的可执行文件用作一种“误报”。它们是利用系统附近功能来公开系统内部数据的良性二进制文件。

在sitenode上,请花一些时间评估您的数据集并查找隐藏在其中的偏差。当前的许多研究都存在样本集偏倚和结果无法再现的问题。

评论


谢谢!为了记录,我只要求提供白色样品

– NirIzr
2016年9月5日在7:24

#3 楼

为了完整起见,我还想出了一些技术(我不会接受自己的回答):

从github下载

一些Github存储库根据需要的实用程序或构建输出具有多个可执行文件。事实证明,使用GithubDownloader扫描Github的过程缓慢但有效,而且我的结果很可能是良性的。作为我工作的一部分,我能够要求IT部门从我们办公室里的多台计算机上收集哈希和样本。这是轻松收集多个操作系统版本的许多可执行文件的好方法。也可以收集哈希并从VT下载可用的哈希(可能经过进一步审查)。