[系统安全]四十七.恶意软件分析(4)Cape沙箱批量提取动态API特征

admin 2026-02-04 01:08:30 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍利用Cape沙箱进行恶意软件动态分析及批量提取API特征的方法。文章讲解Cape沙箱配置与单样本分析,重点演示通过Python脚本submit.py实现批量样本的自动化提交。涵盖批量分析参数设置、结果存储结构及动态API调用序列提取,为恶意代码检测提供了可操作的实践指南。 综合评分: 85 文章分类: 恶意软件,安全工具,实战经验


Signatures信息如下所示:

Dropped Files信息如下:

恶意软件包含的文件信息如下:

提取的API信息如下图所示:

report.pdf

report.pdf包含静态分析的API信息以及动态行为API信息,如下图所示:

  • 静态API特征
  • 动态API特征

动态行为特征具有时间先后顺序,可以进一步供大家做恶意软件分析。

{    "timestamp": "2023-03-26 13:40:51,897",    "thread_id": "2180",    "caller": "0x004cd32d",    "parentcaller": "0x004e5bb9",    "category": "registry",    "api": "RegOpenKeyExW",    "status": false,    "return": "0x00000002",    "arguments": [        {            "name": "Registry",            "value": "0x80000002",            "pretty_value": "HKEY_LOCAL_MACHINE"        },        {            "name": "SubKey",            "value": "SYSTEM\\CurrentControlSet\\Control\\MediaResources\\msvideo"        },        {            "name": "Handle",            "value": "0x00000000"        },        {            "name": "FullName",            "value": "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\MediaResources\\msvideo"        }    ],    "repeated": 0,    "id": 303},

3.Submit an Analysis

最后补充官方网站对批量分析的submit.py描述。

  • https://capev2.readthedocs.io/en/latest/usage/submit.html

其运行参数如下:

usage: submit.py [-h] [--remote REMOTE] [--url] [--package PACKAGE]                 [--custom CUSTOM] [--timeout TIMEOUT] [--options OPTIONS]                 [--priority PRIORITY] [--machine MACHINE]                 [--platform PLATFORM] [--memory] [--enforce-timeout]                 [--clock CLOCK] [--tags TAGS] [--max MAX] [--pattern PATTERN]                 [--shuffle] [--unique] [--quiet]                 target
positional arguments:  target               URL, path to the file or folder to analyze
optional arguments:  -h, --help           show this help message and exit  --remote REMOTE      Specify IP:port to a CAPE API server to submit                       remotely  --url                Specify whether the target is an URL  --package PACKAGE    Specify an analysis package  --custom CUSTOM      Specify any custom value  --timeout TIMEOUT    Specify an analysis timeout  --options OPTIONS    Specify options for the analysis package (e.g.                       "name=value,name2=value2")  --priority PRIORITY  Specify a priority for the analysis represented by an                       integer  --machine MACHINE    Specify the identifier of a machine you want to use  --platform PLATFORM  Specify the operating system platform you want to use                       (windows/darwin/linux)  --memory             Enable to take a memory dump of the analysis machine  --enforce-timeout    Enable to force the analysis to run for the full                       timeout period  --clock CLOCK        Set virtual machine clock  --tags TAGS          Specify tags identifier of a machine you want to use  --max MAX            Maximum samples to add in a row  --pattern PATTERN    Pattern of files to submit  --shuffle            Shuffle samples before submitting them  --unique             Only submit new samples, ignore duplicates  --quiet              Only print text on failure

如果指定一个目录作为目标路径,则该目录中包含的所有文件将被提交以供分析。

常见的命令提交方式

(1) Submit a local binary

$ ./utils/submit.py /path/to/binary

(2) Submit an URL

$ ./utils/submit.py --url http://www.example.com

(3) Submit a local binary and specify a higher priority

$ ./utils/submit.py --priority 5 /path/to/binary

(4) Submit a local binary and specify a custom analysis timeout of 60 seconds

$ ./utils/submit.py --timeout 60 /path/to/binary

(5) Submit a local binary and specify a custom analysis package

$ ./utils/submit.py --package <name of package> /path/to/binary

(6) Submit a local binary and specify a custom analysis package and some options (in this case a command line argument for the malware)

$ ./utils/submit.py --package exe --options arguments=--dosomething /path/to/binary.exe

(7) Submit a local binary to be run on the virtual machine cape1

$ ./utils/submit.py --machine cape1 /path/to/binary

(8) Submit a local binary to be run on a Windows machine

$ ./utils/submit.py --platform windows /path/to/binary

(9) Submit a local binary and take a full memory dump of the analysis machine once the analysis is complete

$ ./utils/submit.py --memory /path/to/binary

(10) Submit a local binary and force the analysis to be executed for the full timeout (disregarding the internal mechanism that CAPE uses to decide when to terminate the analysis)

$ ./utils/submit.py --enforce-timeout /path/to/binary

(11) Submit a local binary and set the virtual machine clock. The format is %m-%d-%Y %H:%M:%S. If not specified, the current time is used. For example, if we want to run a sample on January 24th, 2001, at 14:41:20:

$ ./utils/submit.py --clock "01-24-2001 14:41:20" /path/to/binary

(12) Submit a sample for Volatility analysis (to reduce side effects of the CAPE hooking, switch it off with options free=True):

$ ./utils/submit.py --memory --options free=True /path/to/binary

其它参数如下图所示:


4.Python Functions

为跟踪提交、示例和总体执行情况,CAPE使用了一种流行的Python ORM,称为SQLAlchemy,它允许您使用PostgreSQL、SQLite、MySQL和其他几个SQL数据库系统来制作沙盒。

CAPE被设计为易于集成到更大的解决方案中并完全自动化。为自动化分析提交,我们建议使用REST API中描述的REST API接口,但如果您想编写Python提交脚本,您也可以使用add_path()和add_url()函数。

示例如下:

>>> from lib.cuckoo.core.database import Database>>> db = Database()>>> db.add_path("/tmp/malware.exe")1>>>

示例如下:

>>> from lib.cuckoo.core.database import Database>>> db = Database()>>> db.add_url("http://www.cuckoosandbox.org")2>>>

五.总结

写到这里这篇文章就结束,希望对您有所帮助。忙碌的三月,真的很忙,项目本子论文毕业,等忙完后好好写几篇安全博客,感谢支持和陪伴,尤其是家人的鼓励和支持, 继续加油!

2023年3月20日,终于完成初稿,凌晨迫不及待来写一篇博客,纪念下,感恩下!娜璋白首。

  • 一.恶意软件分析 1.静态特征 2.动态特征
  • 二.Cuckoo和Cape沙箱简介 1.Cuckoo沙箱简介 2.Cape沙箱简介 3.Cape原理
  • 三.Cape沙箱识别单样本特征 1.启动沙箱关键步骤 2.样本分析
  • 四.Cape沙箱批量分析恶意软件 1.Python脚本批量分析样本 2.运行结果 3.Submit an Analysis 4.Python Functions
  • 五.总结

提问:

  • 在真实样本中,恶意软件会被加壳和混淆处理,常用脱壳工具为Unipack。那么,大家可以思考下,CAPA提取的API特征都是恶意软件中均执行的吗?同时,这些关键特征是否都被提取呢?
  • 请大家思考静态特征和动态特征各自的优缺点。
  • CAPE沙箱如何实现批量提取,同时如何定制化规则呢?
  • CAPE沙箱如何捕获的API特征,通过HOOK机制吗?还有哪些可以优化的地方呢?
  • CAPE沙箱究竟能检测逃逸性、高隐蔽的恶意软件吗?尤其APT攻击的样本。
  • 如何撰写代码提取Json中所需特征,比如常见的API。
  • CAPA是经典的静态特征提取工具,那么如何提取动态特征呢?动态特征在恶意软件检测中又扮演什么角色?
  • 个人感觉静态分析和动态分析是很多年都在研究的内容,目前会与深度学习结合。那么,未来的方法将如何创新呢?怎么更好地自动化识别恶意软件行为,并且批量识别且更少依赖专家知识。

三月应该是今年最忙碌的一个月了,好多事情。希望一切顺利,更希望四月后能沉下心来读论文和写论文,继续加油,只争朝夕。

感谢大家的支持和关注。继续加油!感恩,娜璋白首。

(By:Eastmount 2023-03-26 夜于火星)


参考文章如下,感谢这些大佬。

  • [1] https://github.com/cuckoosandbox/cuckoo
  • [2] https://github.com/kevoreilly/CAPEv2
  • [3] https://capesandbox.com
  • [4] https://capev2.readthedocs.io/en/latest/
  • [5] https://capev2.readthedocs.io/en/latest/usage/submit.html
  • [6] Cuckoo变种-CAPE简介 – Threathunter

前文回顾(下面的超链接可以点击喔):

  • [系统安全] 一.什么是逆向分析、逆向分析应用及经典扫雷游戏逆向
  • [系统安全] 二.如何学好逆向分析及吕布传游戏逆向案例
  • [系统安全] 三.IDA Pro反汇编工具初识及逆向工程解密实战
  • [系统安全] 四.OllyDbg动态分析工具基础用法及Crakeme逆向破解
  • [系统安全] 五.OllyDbg和Cheat Engine工具逆向分析植物大战僵尸游戏
  • [系统安全] 六.逆向分析之条件语句和循环语句源码还原及流程控制
  • [系统安全] 七.逆向分析之PE病毒原理、C++实现文件加解密及OllyDbg逆向
  • [系统安全] 八.Windows漏洞利用之CVE-2019-0708复现及蓝屏攻击
  • [系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度提权
  • [系统安全] 十.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)复现
  • [系统安全] 十一.那些年的熊猫烧香及PE病毒行为机理分析
  • [系统安全] 十二.熊猫烧香病毒IDA和OD逆向分析(上)病毒初始化
  • [系统安全] 十三.熊猫烧香病毒IDA和OD逆向分析(中)病毒释放机理
  • [系统安全] 十四.熊猫烧香病毒IDA和OD逆向分析(下)病毒感染配置
  • [系统安全] 十五.Chrome密码保存功能渗透解析、Chrome蓝屏漏洞及音乐软件漏洞复现
  • [系统安全] 十六.PE文件逆向基础知识(PE解析、PE编辑工具和PE修改)
  • [系统安全] 十七.Windows PE病毒概念、分类及感染方式详解
  • [系统安全] 十八.病毒攻防机理及WinRAR恶意劫持漏洞(bat病毒、自启动、蓝屏攻击)
  • [系统安全] 十九.宏病毒之入门基础、防御措施、自发邮件及APT28宏样本分析
  • [系统安全] 二十.PE数字签名之(上)什么是数字签名及Signtool签名工具详解
  • [系统安全] 二十一.PE数字签名之(中)Signcode、PEView、010Editor、Asn1View工具用法
  • [系统安全] 二十二.PE数字签名之(下)微软证书漏洞CVE-2020-0601复现及Windows验证机制分析
  • [系统安全] 二十三.逆向分析之OllyDbg动态调试复习及TraceMe案例分析
  • [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点
  • [系统安全] 二十五.WannaCry勒索病毒分析 (1)Python复现永恒之蓝漏洞实现勒索加密
  • [系统安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及解析
  • [系统安全] 二十七.WannaCry勒索病毒分析 (3)蠕虫传播机制分析及IDA和OD逆向
  • [系统安全] 二十八.CS逆向分析 (1)你的游戏子弹用完了吗?Cheat Engine工具入门
  • [系统安全] 二十九.外部威胁防护和勒索病毒对抗(深信服视频学习)
  • [系统安全] 三十.WannaCry勒索病毒分析 (4)全网“最“详细的蠕虫传播机制解读
  • [系统安全] 三十一.恶意代码检测(1)恶意代码攻击溯源及恶意样本分析
  • [系统安全] 三十二.恶意代码检测(2)常用技术万字详解及总结
  • [系统安全] 三十三.恶意代码检测(3)基于机器学习的恶意代码检测技术
  • [系统安全] 三十四.恶意代码检测(4)编写代码自动提取IAT表、字符串及时间戳
  • [系统安全] 三十五.Procmon工具基本用法及文件进程、注册表查看
  • [系统安全] 三十六.学术分享之基于溯源图的APT攻击检测安全顶会论文总结
  • [系统安全] 三十七.Metasploit技术之基础用法万字详解及防御机理
  • [系统安全] 三十八.Metasploit后渗透技术信息收集、权限提权和功能模块详解及防护建议
  • [系统安全] 三十九.恶意代码同源分析及BinDiff软件基础用法
  • [系统安全] 四十.Powershell恶意代码检测系列 (1)Powershell基础入门及管道和变量的用法
  • [系统安全] 四十一.Powershell恶意代码检测系列 (2)Powershell基础语法和注册表操作
  • [系统安全] 四十二.Powershell恶意代码检测系列 (3)PowerSploit脚本渗透详解
  • [系统安全] 四十三.Powershell恶意代码检测系列 (4)论文总结及抽象语法树(AST)提取
  • [系统安全] 四十四.恶意软件分析 (1)静态分析Capa经典工具的基本用法万字详解
  • [系统安全] 四十五.恶意软件分析 (2)静态分析Capa经典工具批量提取静态特征和ATT&CK技战术
  • [系统安全] 四十六.恶意软件分析 (3)动态分析经典沙箱Cape的安装和基础用法详解
  • [系统安全] 四十七.恶意软件分析 (4)Cape沙箱批量提取动态API特征

免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:娜璋AI安全之家 eastmount eastmount《[系统安全] 四十七.恶意软件分析 (4)Cape沙箱批量提取动态API特征》

评论:0   参与:  0