我在哪里可以找到具有很高误报可能性的良性样本?
您可以在hxxp://www.cs.arizona.edu/projects/lynx-project/Samples/
(s/x/t/) 中找到我们反混淆工作中的一些样本。这些程序——Linux 和 Windows 二进制文件的混合——都是良性的(你必须相信我的话:-),但使用了恶意软件常用的各种技术。这些样本构成了以下论文中报告的结果的基础:
- Yadegari等人,“可执行代码自动反混淆的通用方法”,Proc。IEEE 安全和隐私研讨会,2015 年 5 月。这些包括使用 VMProtect、ExeCryptor 和 Themida 等工具混淆的程序;还有一些使用面向返回的编程。
- Qiu等人,“识别和理解软件中的自校验和防御”,Proc。第五届 ACM 数据和应用程序安全和隐私会议(CODASPY),2015 年 3 月。这是一个程序集合,这些程序使用包括自修改代码在内的各种技术来实现基于自校验和的防篡改。
我们曾经在项目网页上有一个指向这些样本的链接,但谷歌认为我们正在分发恶意软件,并在他们的链接旁边放了一个红色的大警告(谈论误报!),所以我们最终删除了该链接。这也是上面的链接被“hxxp”伪装的原因。
恶意样本
我最喜欢的恶意样本来源是我通过定期提取VirusSign提供的免费示例而自行组装的数据库。请注意,这些样品不需要注册,而是随附指明类型的报告。
可能没有比VirusTotal更好的恶意样本存档了。如果您没有碰巧在那里获得(情报)访问权限,您仍然可以尝试开放的替代方案,例如Open Malware。
一般来说,找到恶意样本的地方的一个很好的列表在这里: LENNY ZELTSER
良性样本
至于良性样本,我建议从全新的操作系统安装中提取良性可执行文件。您可以简单地在虚拟机中安装目标并获取脚本来提取它们。
另一个来源是抓取像PortableFreeware这样的网站。请确保您检查以这种方式收集的可执行文件是否可以在您的环境中工作。
可能的误报
大多数恶意软件档案根据检测率和不同反恶意软件产品(如 VirusTotal)提供的标签来标记其样本。假设检测率非常低的样本和通用标签是误报可能是最好的方法。此外,从蜜罐收集的数据可能会产生相对较高的误报率。
我经常使用Sysinternals Suite 中包含的可执行文件作为一种“误报”。它们是良性二进制文件,利用系统附近的特性来公开系统内部数据。
在站点节点上,请花时间评估您的数据集并找出隐藏在其中的偏见。当前的许多研究都受到有偏见的样本集和不可重复的结果的影响。
为了完整起见,我还提出了一些技术(我不会接受我自己的答案):
从github下载
一些 Github 存储库有多个可执行文件,作为需要的实用程序或构建输出。为那些使用GithubDownloader 的人扫描 Github被证明是缓慢但有效的,我的结果很可能是良性的。
从可访问的机器收集所有可执行文件/哈希
由于这是我工作的一部分,因此我可以要求 IT 部门从我们办公室的多台机器上收集哈希值和样本。这是轻松收集多个操作系统版本的许多可执行文件的好方法。收集哈希值并从 VT 下载可用的哈希值也是一种可能(也许经过进一步审查)。