美文网首页
2018-08-01 恶意代码分析

2018-08-01 恶意代码分析

作者: kotw_zjc | 来源:发表于2018-08-01 13:35 被阅读0次

    基本动态分析

        基本动态分析——沙箱,沙箱是一种在安全环境下运行并记录样本行为的系统,具有自动化、批量的优点,但也有不能带参数、不可能覆盖所有运行所需条件、环境等缺点。几个常用的沙箱网站:http://www.virustotal.com/、https://malwr.com/、http://www.malwaretracker.com/、http://www.document-analyzer.net/、http://www.threatecpert.com/、http://totalhash.com/search/、http://camas.comodo.com/、https://b-chao.com/index.php/Index/indec、https://fireeye.ijinshan.com/

        基本动态分析——监控,Process Monitor,一款集注册表、文件、进程、网络监控于一体的监控工具;设置过滤条件、运行样本、分析监控日志;使用Process Monitor监控一个样本。

        基本动态分析——进程分析工具,Process explorer,包含进程名、id。cpu使用、描述等,显示进程关系、显示一些隐藏进程,查找加载的dll、句柄等数据,查找进程文件路径,查找进程网络信息。

        基本动态分析——文件快照。通过对比运行样本前后,系统内文件的变化,定位样本新增、删除、修改的文件。1、创建快照,2、运行样本,3、对比快照。

        基本动态分析——注册表快照,RegSnap。创建快照1,运行样本,创建快照2,比较快照1和快照2。

        基本动态分析——系统文件、注册表信息储备。文件,熟悉系统正常文件、了解系统运行产生的正常变化;熟悉恶意代码经常入驻的系统目录;熟悉恶意代码经常仿冒、伪造的系统文件名称。注册表,熟悉注册表键值功能、了解系统运行产生的正常变化;熟悉恶意代码经常新增的键值;熟悉一些特殊的功能键值,如:clsid启动。

        基本动态分析——网络劫持。在分析中经常遇到样本联网行为,但是有些服务器已经失效,或者我们不便于公开联网分析。请求域名连接的:ApateDNS(需.Net环境),模拟并设置本机为dns服务器;修改host文件列表,C://WINDOWS//system32/drivers/etc/hosts。直接连接IP地址的:使用Connect Hook,设置劫持ip、端口,选择劫持的进程,注入!

        基本动态分析——网络抓包。网络抓包工具wireshark,过滤条件的使用;流量数据包分析。

        基本动态分析——本地server。HTTP服务器,可搭建http服务,支持下载;网络军刀,可回复网络数据,测试通信。

    关联样本分析

        单一样本的局限:一个Hash;最多几个域名和C&C;一篇单一样本分析报告;由于线索不足可能忽略了一次综合事件。

        从单一样本关联发现整体事件,基于关联基因,从最开始仅一个样本逐渐关联、跟踪,最后发现一个攻击事件。

        text段hash,vt高级情报搜索sectionmd5:“hash”,google也可以,不过没有vt准确。

        ssdeep,模糊哈希的主要原理是,使用一个弱哈希计算文件局部内容,在特定条件下对文件进行分片,然后使用一个强哈希对文件每片计算哈希值,取这些值的一部分连接起来,与分片条件一起构成一个模糊哈希结果。在vt中通过ssdeep搜索相似样本,直接这样输入即可similar-to:"hash",google也可以,去前hash前几位检索,根据结果适当增减取得位数。

        import hash,研究人员发现相似功能的样本,导入表函数名称和顺序几乎完全一致,因此在2014年,Mandiant提出一种基于导入表函数名称和顺序计算的md5值。

        文件名。根据文件名vt中检索关联样本,name:"";google直接搜索也可以。

        根据文件大小在vt中搜索。例如:size:200(不加单位默认是byte),size:200+,size:120kb+。

        时间戳关联。vt中搜索时间戳的格式,指定:pets:2012-08-21T18:38;大小小于:pets:2012-08-2100:00:00+:,pets:2010-08-2100:00:00-;区间:pets:2012-08-2100:00:00+ pets:2012-08-2200:00:00-。

        字符串。google、vt中直接搜索,content:"test"

        病毒名:根据已知病毒进行家族搜索,一般只用VT高级搜索(支持的比较全面)。

        域名、IP。通过域名、IP找到相关联的样本;主要通过google、vt。

        通过c&C IP关联出的信息。同样的仅通过一个C&C进行关联、跟踪,可以发现一个僵尸网络。

        动态行为关联。样本运行产生的动态行为,一些特殊的行为可作为关联点;VT中行为搜索格式:behaviour:"explorer.exe";behaviour:"www.go2000.cn";behaviour:"HKEY_CURRENT_CONFIG\Software\Microsoft\windows\CurrentVersion\Internet Settings\ProxyEnable。

        VT搜索的一些其他方法。fs,首次上传时间:2009-01-01T19:59:22-;ls,最后上传时间;la,最后分析时间;positives,检出家数;name,上传时的文件名;tag,标签:tag:"cve" 0158;submissions,提交次数;submitter,上传者地理位置;lang,文件语言类型,支持PE和文档。

        VT搜索 PE专用修饰符。sigcheck,数字签名,只支持PE:sigcheck:"google.inc",sogcheck:"Google Update Setup";ep,PE入口点,ep:20908;section,节名:section:".xxx"。

        关联分析小结:海量数据;持续追溯;二次关联;关联点选取:强基因:hash、特殊注册表键值、互斥量、加密密钥;弱基因:文件名、家族;人工确认。

    高级静态分析

        静态/动态基本分析,只能是通过样本静态信息和动态监控到的行为来简单分析下表面现象,但这是远远不够的。很多时候样本会有条件判断、环境触发、内部解密等很多基本分析解决不了的问题,这时候就需要静态高级分析和动态高级分析才能分析出内部逻辑。

        x86体系是冯·诺依曼结构,主要包括CPU、内存、输入输出系统,在逆向分析中主要关注cpu和内存数据。

        内存布局。数据,存储一些静态值,比如全局变量;代码,包含cpu执行的指令;堆,一些动态分配的内存,给程序动态使用;栈,局部变量、参数、控制程序执行流,后进先出。

        汇编指令。指令,人类易读的指令,push、mov、lea、jmp、call...;操作码,机器读取的指令,汇编指令:mov ecx,esi 机器码:8BCE;字节序,x86,小字节序。

        寄存器。4个数据寄存器(EAX、EBX、ECX、EDX);两个变址和指针寄存器(ESI和EDI);两个指针寄存器(ESP和EBP);六个段寄存器(ES、CS、SS、DS、FS和GS);一个指令指针寄存器(EIP);一个标志寄存器(EFlags)。

        栈。压入、弹出指针;通常在函数调用前,会将参数压入栈:参数顺序为逆序压入;参数可能是多重指针;参数可能是一个结构体。

        比较和跳转。test,zf标志位;cmp,zf、cf标志位;jz、je、jg、jl、jmp。

        IDA Pro。交互式反汇编器IDA是非常强大的反汇编器,几乎能分析所有架构的文件;使用带有hex-Rays decompilers插件的;最新版本6.8。选中line prefixs,这样可以显示虚拟地址,结合其他分析工具快速定位代码。对于一些IDA不能自动识别的语言,可手动加载符号库文件,这样IDA就可以识别出函数名称。交叉引用是一个非常好用的功能,它能告诉你一个函数、变量都被谁调用。选中一个目标右键,或按快捷键x。

        加密算法。攻击者会采用各种方法保护他们的恶意代码,加密算法是一种快速而有效的手段。恶意代码经常使用加密算法:保护代码、数据,防止关键数据被发现;加密调用函数,阻碍分析和检测恶意行为。常见加密算法:xor,各种自定义的异或;加减;密码表替换;base64;RC5/6

    相关文章

      网友评论

          本文标题:2018-08-01 恶意代码分析

          本文链接:https://www.haomeiwen.com/subject/kaklvftx.html