恶意软件分析工具 Cuckoo 和 Malwasm

简介: 分析恶意软件(malicious ware)有很多方法。请容我不自量力推荐两个开放源代码的免费系统 Cuckoo 和 MalWasm 。这是一个虚拟化环境下的恶意软件分析系统。

析恶意软件(malicious ware)有很多方法。请容我不自量力推荐两个开放源代码的免费系统 Cuckoo 和 MalWasm 。这是一个虚拟化环境下的恶意软件分析系统。


基于虚拟化进行程序分析有很多优点:

  • 整机内存可以dump出来,并且可以随时做snapshot;
  • 多数网络通讯可以分析;
  • 无论杀毒软件如何吹嘘它们的启发式分析引擎,但是xss的故事已经证明区区XOR加密就可以将他们全部bypass。但是行为分析锁定的是行为不是吗?
  • 综上,对浏览器的攻击可以通过分析文件行为进行。攻击浏览器不是什么新鲜事了,但是浏览器和游戏程序差不多庞大、多种运行机制(JS和flash、各种网银的activeX都有自己的Rendor),直接使用键盘调试恐怕是要按到手抽筋!
  • 效率和人性化,真的是很赞!


言归正传,继续看本文的主角Cuckoo和MalMAsm吧!

Cuckoo 的全称是OpenSource Cuckoo Sandbox Project。它由我所尊敬的一些安全先驱开发,其中一些人也是开源honeyspot 的contributor。实际上在2010年的时候Cuckoo还是honeyNET的一个子项目。这些前辈独到的蜜罐网络研发的技巧,让Cuckoo可以轻而易举的进行URL分析、网络通讯分析、程序分析、pdf分析。


整体上,Cuckoo基于虚拟机技术,使用中央控制系统和模块设计,结合python的自动化特征,已经是颇为自动化的恶意软件行为研究环境。


出于研发历史的考量,个人推荐使用debian或ubuntu主机安装virtualbox当作Cuckoo Host,WinXP做guest。实际上Cuckoo也支持Macox和KVM 等其他环境,也支持Windows7做guest—不过调试环境还是稳定优先吧?

image.png

如果只是纯粹为程序的抽象行为做分析,则也有傻瓜的平方级别的工具MalWAsm。按照官方的document进行安装之后,

  • 在CuckooSandbox环境直接运行可疑的东西;
  • MalMasm会利用pintool将程序行为全部log;
  • MalMasm将所有行为存储在PostGres数据库;
  • MalMAsm 有web front,研究员可以直接在网页里查看程序行为;


要说您不懂汇编也想分析分析软件、网页什么的,这2款开源环境应该够您用了。

如果说您是资深分析人士,利用这些环境应该可以大大提升分析效率。哪怕是程序进行了加密,行为级别的记录也很有帮助吧!


不过有3点提醒:

  1. virtualization 是guest awareness 的。如果恶意软件的作者有足够的反调试经验,则在虚拟机上运行程序的时候,它的行为会与在物理机上运行的行为将不一样。虽然说足够聪明的您也有足够的手段让程序不awared,但是程序作弊的可能还是需要考虑。
  2. 加密的tcp通讯几乎不可能直接分析。在进行进一步研究之前,还是看看程序行为再找调试点比较好。例如我发在qq空间的帖子说过,https是http+ssl,截获ssl封装之前的http通讯就基本够专业了—具体方法可以网上搜索。当然碰见利用SOAP的人渣还要再比他们还要人渣一点才能分析—话说恶意软件一般会写那么庞大吗(我可不识数)?
  3. 干这行的人渣比较多,关系比较硬的也很打不死的也存在哦。不是说你发现什么问题就可以公开的是不是?人家是老虎你还不如苍蝇的可能性绝对存在是不是?低调比较必要是不是?


我听见哪位读着说“再傻瓜一些的傻瓜三次方的分析环境”您也需要?哎呀,三次元的傻瓜是啥意思来的?

相关文章
|
3月前
|
机器学习/深度学习 搜索推荐 算法
用数据给婚恋 App 把把脉:让匹配更靠谱、聊天更顺畅、留存更健康
用数据给婚恋 App 把把脉:让匹配更靠谱、聊天更顺畅、留存更健康
218 8
|
JavaScript 前端开发 数据安全/隐私保护
Vue封装组件并发布到npm仓库
前言 使用Vue框架进行开发,组件封装是一个很常规的操作。一个封装好的组件可以在项目的任意地方使用,甚至我们可以直接从npm仓库下载别人封装好的组件来进行使用,比如iview、element-ui这一类的组件库。但是每个公司的业务场景可能不同,开发人员还是得必须封装自己得组件,如果换了一个项目,那么我们就只能复制组件代码到新的项目里面去了,这样稍显麻烦,其实我们可以将组建上传到npm仓库,要用的时候可以直接从npm安装使用。 总结下来有两点好处: 方面使用,任何项目无缝衔接。 可作为开源项目,积累经验。
1010 0
Vue封装组件并发布到npm仓库
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
本文探讨了Spring Boot如何实现像普通Java程序一样通过main方法启动,关键在于Spring Boot的自动配置、内嵌Servlet容器(如Tomcat)以及`SpringApplication`类。Spring与Tomcat集成有两种方式:独立模式和嵌入式模式,两者通过Servlet规范、Spring MVC协同工作。Spring和Tomcat的生命周期同步涉及启动、运行和关闭阶段,通过事件和监听器实现。文章鼓励读者从实现Tomcat中学习资源管理和生命周期管理。此外,推荐了Netty权威指南系列文章,并提到了一个名为mini-cat的简易Tomcat实现项目。
|
人工智能 自然语言处理 前端开发
三大行业案例:AI大模型+Agent实践全景
本文将从AI Agent和大模型的发展背景切入,结合51Talk、哈啰出行以及B站三个各具特色的行业案例,带你一窥事件驱动架构、RAG技术、人机协作流程,以及一整套行之有效的实操方法。具体包含内容有:51Talk如何让智能客服“主动进攻”,带来约课率、出席率双提升;哈啰出行如何由Copilot模式升级为Agent模式,并应用到客服、营销策略生成等多个业务场景;B站又是如何借力大模型与RAG方法,引爆了平台的高效内容检索和强互动用户体验。
3466 5
|
机器学习/深度学习 数据采集 DataWorks
数据分析经典案例重现:使用DataWorks Notebook 实现Kaggle竞赛之房价预测,成为数据分析大神!
Python是目前当之无愧的数据分析第一语言,大量的数据科学家使用Python来完成各种各样的数据科学任务。本文以Kaggle竞赛中的房价预测为例,结合DataWorks Notebook,完成数据加载、数据探索、数据可视化、数据清洗、特征分析、特征处理、机器学习、回归预测等步骤,主要Python工具是Pandas和SKLearn。本文中仅仅使用了线性回归这一最基本的机器学习模型,读者可以自行尝试其他更加复杂模型,比如随机森林、支持向量机、XGBoost等。
|
缓存 NoSQL Redis
Redis高可用技术方案对比
Redis高可用技术方案对比
322 0
|
数据采集 数据挖掘 数据处理
探索“数据菜谱”无限可能:首届Data-Juicer大模型数据竞赛
数据是LLaMA、Alpaca等大语言模型(LLM) 的“食物” ,你心中的大模型米其林菜单会是什么样呢?
|
存储 缓存 算法
操作系统的内存管理机制及其对系统性能的影响
本文深入探讨了操作系统中内存管理的关键技术和策略,以及它们如何影响计算机系统的整体性能。通过分析不同的内存分配算法、虚拟内存技术、以及缓存策略,本文旨在揭示这些机制对于提高资源利用效率、减少延迟和优化用户体验的重要性。结合最新的研究成果和实际案例,本文为读者提供了对操作系统内存管理深度理解的视角,并讨论了未来可能的发展趋势。
|
前端开发 测试技术 开发工具
使用rush.js管理monorepo
使用rush.js管理monorepo
1125 0
使用rush.js管理monorepo
|
网络协议 计算机视觉 网络架构
Baumer堡盟工业相机Gige网口连接PC的网卡的专业设置和准确含义
Baumer堡盟工业相机Gige网口连接PC的网卡的专业设置和准确含义
503 0