Windows恶意软件API调用特征分析

简介: 本文讲的是Windows恶意软件API调用特征分析,通常对病毒使用API的认识都是基于病毒工程师的经验,但是我们并不知道每个API对于是否是病毒的贡献有多大。通过对大量病毒样本的统计分析,我们可以得出相关的数据。
本文讲的是 Windows恶意软件API调用特征分析

1.背景

目标:

1)找到病毒调用概率高的API
2)找到病毒调用概率不高,但是当调用频次高的时候,是病毒概率高的API。

通常对病毒使用API的认识都是基于病毒工程师的经验,但是我们并不知道每个API对于是否是病毒的贡献有多大。通过对大量病毒样本的统计分析,我们可以得出相关的数据。

从网上下载3000个样本,1500个病毒,1500个无毒。用沙箱进行扫描,得到样本调用API和是否是病毒。如下图所示

Windows恶意软件API调用特征分析

取API的动态调用次数作为每个样本的特征,病毒类标记为1,非病毒类标记为0。如下所示:

{‘LdrUnloadDll’:4, ‘RegCloseKey’:45,…}  1
{‘GetFileSize’:1, ‘NtWriteFile’:4, ….} 0

2. 分析

将样本的API调用次数表示到折线图和条形图上,蓝色表示正常样本,绿色表示病毒样本。如下图所示:

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

条形图按API调用的次数分布到5个区间1+(1~10),10+(10~100),100+(100~1000),1000+(1000~5000),5000+(5000~)。

通过对大量样本的图形的观察发现,病毒比较常用的API(如:WriteProcessMemory,Process32NextW等)不管是折线图还是条形图,绿色线条所占的比例都很大。

病毒使用率低的API,蓝色线条占的比例比较大。

有些API的调用,折线图绿线比例大,条形图蓝线比例比较大。这种情况下病毒对API的调用次数会很多(会有很多成千上万次的调用),普通样本对API调用次数很少(一般不超过100次)。

因此我们可以计算折线图和条形图中绿色像素所占的比例来评估API对病毒的影响。

3. 方法

P1 = 折线图占用率:绿色像素/(绿色像素+蓝色像素)

P2 = 条形图占用率:绿色像素/(绿色像素+蓝色像素)

1) 计算API对病毒分类的贡献(P1*P2)

对于最能表示病毒特征的API,其被病毒调用的概率要比被正常样本调用的概率大的多,同时高频调用的次数也比正常样本大的多。如Process32NextW

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

所以P1,P2的值也会很大。

对于最不可能被病毒调用的API,P1,P2的值都会很小。

因此可以用P1*P2来表示API对病毒分类的贡献,进行排序后,数值会往两端移动。

Windows恶意软件API调用特征分析

贡献度排序曲线

2) 计算API的高频调用对病毒分类的贡献(P1-P2)

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

对于__exception__这样的,P1值很大,但是P2值比较小。其高频次调用的情况下是病毒的概率很高,无法单纯的从是否调用来判断是否为病毒。

用P1-P2来评价高频次调用。

4.结果

1)计算P1*P2,进行排序,部分结果如下。

数据结果分别为(API名,(贡献值,API调用次数概率,调用API的样本为病毒的概率,病毒样本数量))

Windows恶意软件API调用特征分析

贡献值为1的API,没有被正常样本调用过。(可能是由于样本数量太小造成的,特别是病毒样本数量只有几次的API)。其图像如下:

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

Windows恶意软件API调用特征分析

贡献值比较大的API基本都是病毒常用的,经常用来识别病毒。如排在前10的有:

WriteProcessMemory,NtGetContextThread,gethostbyname,CreateToolhelp32Snapshot,NtSetContextThread,Process32NextW,Process32FirstW,InternetOpenA,

GetComputerNameA,GetFileSizeEx。其图像如下

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

Windows恶意软件API调用特征分析

中间这部分数据用于下一节。

Windows恶意软件API调用特征分析

排在后面的都是比较没有病毒特性的API,比如WriteConsoleA,WriteConsoleW,MessageBoxTimeoutW,InternetGetConnectedState,select等。图像示例如下:

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

2)计算P1-P2,进行排序,部分结果如下。

这部分可以找到那些低频次调用贡献度下,但是高频次调用贡献度大的API。

数据格式(API名,(提升度,API调用次数概率,调用API的样本为病毒的概率,正常样本调用最大次数))

Windows恶意软件API调用特征分析

 Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

比如NtQueryAttributesFile,正常样本使用这个API的可能性更大。但是正常样本很少调用超过10次的。 因此超过10次调用NtQueryAttributesFile的样本就很可能是病毒了。

 Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

GetFileAttributesW 超过100次调用则很有可能是病毒。

Windows恶意软件API调用特征分析Windows恶意软件API调用特征分析

超过10次的__exception__调用时病毒的概率很大。

完整的数据整理看数据部分。

5.结论

1)通过计算贡献度=病毒调用API概率*调用次数比例可以将API两极化

结果会受样本数量的影响,需要过滤掉次总数低的数据

2)通过(调用次数比例-病毒调用API概率)可以找到那些调用次数少时对病毒分析没什么帮助,但是调用次数多时帮助很大的API。

6.数据

1)对病毒识别影响大的API

Windows恶意软件API调用特征分析

2) 调用次数少难以区分,调用次数多可以用于识别病毒的API

Windows恶意软件API调用特征分析




原文发布时间为:2017年2月8日
本文作者:Change
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

目录
相关文章
|
8天前
|
存储 数据挖掘 API
购物平台数据抓取实战指南:从API到深度分析
本指南介绍如何通过API接口抓取淘宝、京东、拼多多等电商平台的数据,涵盖API选择、注册配置、数据抓取与处理、深度分析等内容,帮助企业和开发者挖掘数据价值,支持市场分析和决策制定。
|
11天前
|
安全 API 数据安全/隐私保护
商品详情API接口的优势分析与应用价值
在数字化时代,商品详情API接口为商家和开发者提供了实时更新、高效集成、丰富功能、安全稳定、易于扩展及提升用户体验的解决方案,助力提高运营效率、降低成本并增强市场竞争力。
|
24天前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
77 9
|
24天前
|
JSON JavaScript API
(API接口系列)商品详情数据封装接口json数据格式分析
在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
27天前
|
API 数据安全/隐私保护 开发者
淘宝 API:关键词搜商品列表接口,助力商家按价格销量排序分析数据
此接口用于通过关键词搜索淘宝商品列表。首先需在淘宝开放平台注册并创建应用获取API权限,之后利用应用密钥和访问令牌调用接口。请求参数包括关键词、页码、每页数量、排序方式及价格区间等。返回结果含总商品数量及具体商品详情。使用时需注意签名验证及官方文档更新。
|
2月前
|
网络协议 API Windows
MASM32编程调用 API函数RtlIpv6AddressToString,windows 10 容易,Windows 7 折腾
MASM32编程调用 API函数RtlIpv6AddressToString,windows 10 容易,Windows 7 折腾
|
3月前
|
存储 JavaScript 前端开发
探索React状态管理:Redux的严格与功能、MobX的简洁与直观、Context API的原生与易用——详细对比及应用案例分析
【8月更文挑战第31天】在React开发中,状态管理对于构建大型应用至关重要。本文将探讨三种主流状态管理方案:Redux、MobX和Context API。Redux采用单一存储模型,提供预测性状态更新;MobX利用装饰器语法,使状态修改更直观;Context API则允许跨组件状态共享,无需第三方库。每种方案各具特色,适用于不同场景,选择合适的工具能让React应用更加高效有序。
68 0
|
3月前
|
存储 Linux API
Linux源码阅读笔记08-进程调度API系统调用案例分析
Linux源码阅读笔记08-进程调度API系统调用案例分析
|
3月前
|
监控 API 数据安全/隐私保护
​邮件API触发式接口分析?邮件API接口好评榜
邮件API在企业通信和营销中至关重要,通过自动化邮件发送流程提升效率与客户满意度。本文解析邮件API触发式接口,即基于特定事件(如用户注册、购买产品)自动发送邮件的技术,能显著加快企业响应速度并增强用户体验。推荐市场上的优秀邮件API产品,包括SendGrid、Mailgun、Amazon SES、Postmark及新兴的AOKSend,它们各具特色,如高发送率、详细分析工具、灵活配置、强大的日志功能及用户友好的API接口,帮助企业根据不同需求选择最合适的邮件API解决方案。
|
4月前
|
JSON API 网络架构
gRPC 与 REST 的比较分析:哪种 API 适合您的开发需求?
gRPC, 由 Google 推出的开源远程过程调用(RPC)框架, 使两个应用程序间的方法调用变得简单,支持结构化数据的交换。通过采用 Protocol Buffers (Protobuf) ——一种与语言无关的接口定义语言,gRPC 体现了许多现代网络通信技术的优势
gRPC 与 REST 的比较分析:哪种 API 适合您的开发需求?