基于API调用的恶意软件分析技术

简介:

基于API的分析技术

根据上一个季度的统计数据发现,使用加壳器、加密器和保护器(这些都是用于对恶意软件进行混淆处理,以防止被系统或安全软件识别出来的方法)的恶意软件的数量正在日益增加。这些加壳器极大的提高了进行静态分析的难度,甚至有些时候根本就无法对其进行静态分析。随着越来多的恶意软越件作者开始采用这些保护性措施,安全分析人员对于恶意软件分析替代技术的兴趣也越来越浓。

其中一种可行的替代方法就是,对代码中通知系统执行某些操作的API调用或命令进行安全检测。这种方法的好处是,不必对经过加壳处理的软件进行逆向分析,相反,我们可以通过对API调用进行动态分析,从而弄清楚某个文件的具体行为。通过分析相应的API调用,我们可以确定文件是否是恶意的,因为对于某些类型的恶意软件来说,它们的API调用是非常有特点的。例如,典型的下载API是URLDownloadToFile。而GetWindowDC这个API通常用于屏幕抓取,它经常出现在间谍软件和键盘记录器中。

下面,我们通过一个具体的例子来说明其工作原理。

木马样本

我们的示例是一个著名木马程序,名称为1.exe,其SHA256为0213b36ee85a301b88c26e180f821104d5371410ab4390803eaa39fac1553c4c。

由于该文件(使用VMProtect)进行了加壳处理,所以面对这种情况,反汇编器通常也是狗咬刺猬——无处下口。由于本人并非逆向分析的专家,所以我另辟蹊径,通过查看该文件在沙箱执行期间使用的API调用来搞清楚该文件的所作所为。

这是我们通过沙箱(Deepviz)获得的调用列表:

首先,我们来看看这些函数分别是做什么的。以下内容都是引自Microsoft的相关文档:

GetModuleHandle函数

检索指定模块的模块句柄。被检索的模块必须是由调用进程加载的。GetModuleHandleA(ANSI)

GetProcAddress函数

检索从指定的动态链接库(DLL)导出的函数或变量的地址。

_wtoi

将字符串转换为整数。

CreateStreamOnHGlobal函数

该函数可以用来创建一个使用HGLOBAL内存句柄存储流内容的流对象。该对象是IStream接口的OLE实现。

StrStr函数

查找指定子字符串第一次出现在字符串中的位置。该函数区分大小写。StrStrA(ANSI)

wsprintf函数

将格式化数据写入指定的缓冲区。所有的参数,都会根据格式字符串中的相应的格式规范进行转换,并复制到输出缓冲区。wsprintfA(ANSI)

WinHttpOpen函数

对于应用程序来说,这个函数可以初始化WinHTTP函数并返回WinHTTP会话句柄。

GetModuleFileName函数

检索包含指定模块的文件的标准路径。该模块必须是由当前进程加载的。GetModuleFileNameW(Unicode)

LoadLibrary函数

将指定的模块加载到调用进程的地址空间中。这个指定的模块可能会导致其他模块被加载。LoadLibraryA(ANSI)

LocalAlloc函数

从堆中分配指定的字节数。

LocalFree函数

释放指定的本地内存对象并使其句柄无效。

GetModuleFileName函数

检索包含指定模块的文件的标准路径。该模块必须是由当前进程加载的。GetModuleFileNameA(ANSI)

ExitProcess函数

结束调用进程及其所有线程。

关键恶意指标

并不是上面显示的所有函数都能表明可执行文件的性质。但是API WinHttpOpen却能告诉我们,我们可以向特定的方面考虑。

对于这个函数,我们使用Kahu Security的URL Revealer来检查流量的目的地,并发现两个经常出现的URL。

 
  1. GET http://twitter.com/pidoras6 
  2. POST http://www.virustotal.com/vtapi/v2/file/scan 

这个POST是当您要提交扫描文件时,VirusTotal API接受的内容。

这个指向被废弃的Twitter句柄的链接让人非常迷惑,我决定在Twitter中使用高级搜索,确定这是个早已被删除的Tweet的链接。

这个Tweet的内容是一个base64编码的链接:https://w0rm.in/join/join.php。不幸的是,该网站已经无法解析,但它曾经是一个地下黑市,同时提供网站exploit与黑客服务,上面提到的Twitter个人资料在当时还未被删。

看来上面这条路是走不通了。因此,我们尝试了另一种方法,弄清楚它想要在VirusTotal上扫描的东西,并使用Wireshark来检测数据包。

在数据包中,您可以看到用于在VirusTotal站点扫描文件的API key和文件名。根据这个API调用和数据包进行重建后,我们发现恶意软件将其自身的副本提交给VirusTotal,这是Vflooder系列木马的典型行为。Vflooder是一种特殊的Flooder木马程序。Flooder木马旨在向特定目标发送大量信息,以破坏目标的正常运行。但是,我怀疑它甚至用于对VirusTotal发动攻击。或者与Twitter上的那个链接有关。

Vflooder木马只是分析API调用的一个简单的小例子。但是事情并非总是这么轻松:我们甚至看到某些恶意软件已经开始故意增加冗余/无用的API调用了,目的就是为了对执行流程进行混淆处理。不过,分析API调用确实是一种检测恶意软件隐藏自身行为的有效方法。但是别忘了,攻击者对这些也是心知肚明的。


原文发布时间为:2017-11-03

本文作者:shan66

本文来自云栖社区合作伙伴51CTO,了解相关信息可以关注51CTO。

目录
相关文章
|
1月前
|
缓存 监控 API
淘宝 API 接口使用的技术要点与注意事项
在数字化商业环境中,淘宝API为开发者提供了强大的工具,用于与淘宝平台交互,获取商品信息及处理交易等。本文总结了正确使用API的关键技术要点:注册认证、理解接口文档、遵守调用限制、确保参数准确性、保护数据安全、处理异常、性能优化、版本兼容、合规性及日志监控,帮助开发者实现高效、安全的程序开发。
|
14天前
|
监控 安全 测试技术
深入理解后端技术中的API设计原则
在当今数字化时代,后端技术已成为构建高效、可扩展和安全应用程序的关键因素。本文将探讨后端开发中的API设计原则,包括RESTful架构、版本控制以及安全性等方面,旨在帮助开发者提升API设计的质量和用户体验。通过对这些原则的深入理解,可以更好地满足业务需求并提高系统的可靠性。
|
18天前
|
缓存 测试技术 API
电商平台 API 接入技术要点深度剖析
本文介绍了高效使用电商平台API的关键步骤。首先,深入理解API文档,明确功能权限与参数格式要求;其次,选择合适的接入方式,如HTTP/HTTPS协议和RESTful API;接着,实施身份验证与授权机制,确保数据安全传输;此外,还需关注性能优化、安全防护、监控与日志记录,以提升系统稳定性和响应速度;最后,进行充分测试与调试,并关注API版本更新,确保长期兼容性。
|
2天前
|
安全 NoSQL 测试技术
商品详情API接口的技术实现
本文介绍了电商平台上商品详情API接口的设计与实现过程,涵盖需求分析、接口定义、数据模型设计及技术选型等方面。通过合理的后端框架、数据库设计和安全措施,确保接口高效、稳定和安全。最后,通过详尽的测试与部署步骤,实现优质购物体验。旨在为技术人员提供实用参考。
|
3天前
|
API 数据安全/隐私保护 开发者
淘宝 API:关键词搜商品列表接口,助力商家按价格销量排序分析数据
此接口用于通过关键词搜索淘宝商品列表。首先需在淘宝开放平台注册并创建应用获取API权限,之后利用应用密钥和访问令牌调用接口。请求参数包括关键词、页码、每页数量、排序方式及价格区间等。返回结果含总商品数量及具体商品详情。使用时需注意签名验证及官方文档更新。
|
1月前
|
设计模式 测试技术 API
Micronaut魔法书:揭秘构建超光速RESTful API的绝密技术!
【9月更文挑战第10天】在现代Web开发中,构建RESTful API至关重要。Micronaut作为一款轻量级框架,能够快速创建高效API。本文探讨使用Micronaut构建RESTful API的最佳设计模式与实践,涵盖注解(如`@Controller`、`@Get`)、代码组织、REST原则、数据验证及测试等方面,帮助开发者构建结构清晰、可维护性强的API服务。示例代码展示了如何使用Micronaut实现用户管理API,强调了良好设计模式的重要性。
48 3
|
17天前
|
自然语言处理 搜索推荐 数据挖掘
电商 API 接口:电商领域的强大技术引擎
在数字化浪潮中,电商API接口作为连接系统的桥梁,已成为电商市场的核心技术引擎。它通过实时库存信息、多样化支付等功能提升用户体验,支持自动化订单处理,促进数据流通与分析,并允许定制化开发,集成移动应用,从而增强系统灵活性和业务竞争力。
|
2月前
|
弹性计算 API 开发工具
揭秘Python与阿里云API的神秘邂逅!流式处理的魔法之旅,一场颠覆想象的技术盛宴!
【8月更文挑战第15天】在数字世界的广阔舞台上,Python与阿里云API的相遇,就像是一场命中注定的邂逅。它们携手共舞,为我们带来了流式处理的魔法之旅。本文将揭开这场神秘邂逅的面纱,带你领略Python与阿里云API之间的奇妙互动。让我们一起踏上这场颠覆想象的技术盛宴,探索流式处理的无限可能!
77 7
|
2月前
|
存储 Linux API
Linux源码阅读笔记08-进程调度API系统调用案例分析
Linux源码阅读笔记08-进程调度API系统调用案例分析
|
2月前
|
监控 API 数据安全/隐私保护
​邮件API触发式接口分析?邮件API接口好评榜
邮件API在企业通信和营销中至关重要,通过自动化邮件发送流程提升效率与客户满意度。本文解析邮件API触发式接口,即基于特定事件(如用户注册、购买产品)自动发送邮件的技术,能显著加快企业响应速度并增强用户体验。推荐市场上的优秀邮件API产品,包括SendGrid、Mailgun、Amazon SES、Postmark及新兴的AOKSend,它们各具特色,如高发送率、详细分析工具、灵活配置、强大的日志功能及用户友好的API接口,帮助企业根据不同需求选择最合适的邮件API解决方案。

热门文章

最新文章