恶意代码溯源是指通过分析恶意代码生成、传播的规律以及恶意代码之间衍生的关联性,基于目标恶意代码的特性实现对恶意代码源头的追踪.通过溯源可快速定位攻击来源或者攻击者,对攻击者产生一定的震慑打击作用,具有遏制黑客攻击、完善网络安全保障体系的重要作用和价值.近年来,网络安全形势愈加严峻,归类总结了学术界和产业界在恶意代码溯源领域的研究工作,首先揭示了恶意代码的编码特性以及演化特性,并分析这些特性与溯源的关系;然后,分别从学术界和产业界对恶意代码的溯源技术和研究进行梳理,同时对每个溯源阶段的作用以及影响程度进行了讨论,并对目前恶意代码的溯源对抗手段进行分析;最后讨论了恶意代码溯源技术面对的挑战和未来的发展趋势.
The traceability of malicious code refers to the tracking of the source of malicious code based on the characteristics of the target malicious code by analyzing the rules of the generation and propagation of malicious code and the correlation of derivation among malicious codes. The tracking technology can quickly locate the source of attacker or attacker, which would make a deterrent effect to the attacker. It has the important role and value in curbing deterring hacking attacks and improving the network security system. In recent years, the network security situation has become more and more severe. This study categorizes and summarizes research work in the academic and malicious code traceability field. First, the coding characteristics and evolutionary characteristics of malicious codes are revealled, and the relationship between these characteristics and traceability is analyzed. Then, the traceability techniques of malicious code are reviewed and the role and impact of each traceability phase are discussed in the industry and academia. Also analyzed is the level of confrontation of traceability of current malicious code. Finally, the challenges and the future development trend faced by malicious code tracing technology are discussed.
恶意代码溯源是指通过分析恶意代码生成、传播的规律以及恶意代码之间衍生的关联性, 基于目标恶意代码的特性实现对恶意代码源头的追踪.随着互联网的蓬勃发展, 恶意代码已经成为威胁互联网安全的关键因素之一.2017年, AV-TEST安全报告[
最近10年新恶意软件的发展[
Over development of new malware programs in the last 10 years[
Android恶意软件的发展[
Development of Android malware[
在与恶意样本的的对抗过程中, 恶意软件分析和检测技术也在不断发展.基于静态分析的检测[
虽然恶意软件检测技术的广泛应用对恶意代码攻击起到了一定抵抗作用, 但是震慑力依然不足.
● 一方面, 恶意软件检测技术有限, 恶意作者可利用免杀技术构建变体绕过恶意软件检测.例如2017年, 安天移动安全联合猎豹移动安全实验室捕获一例使用MonoDroid框架开发的移动端C#病毒, 该病毒将逻辑代码编译成DLL文件, 进而逃避恶意代码的常规检测[
● 另一方面, 恶意代码检测技术侧重于对恶意代码的发现和防范, 尽管利用该技术可以检测到大多数恶意代码攻击, 但是不能提供对恶意代码来源的有效追踪, 因此不能从根源上遏制恶意代码的泛滥.
FireEye[
为了进一步震慑黑客组织与网络犯罪活动, 目前学术界和产业界均展开了恶意代码溯源分析与研究工作.其基本思路是:利用恶意样本间的同源关系发现溯源痕迹, 并根据它们出现的前后关系判定变体来源.恶意代码同源性分析, 其目的是判断不同的恶意代码是否源自同一套恶意代码或是否由同一个作者、团队编写, 其是否具有内在关联性、相似性.从溯源目标上来看, 可分为恶意代码家族溯源及作者溯源.家族变体是已有恶意代码在不断的对抗或功能进化中生成的新型恶意代码[
本文主要围绕恶意代码的家族、作者等溯源工作进行进展研究.首先介绍恶意代码的编码特征和演化特性, 然后从学术界和产业界两个方面梳理现有的研究工作.归纳并基于学术界所共有的实现环节, 分析各个环节面临的关键问题, 以及解决这些问题的研究思路; 然后对产业界的溯源机理, 所能解决的关键问题进行分析, 并对学术界和产业界在溯源分析方法方面的区别和联系进行了总结.最后, 对已有的恶意代码溯源方法中存在的挑战进行分析, 并对未来可进行的研究方向进行了展望.
恶意代码是指在一定环境下执行的对计算机系统或网络系统机密性、完整性、可用性产生威胁, 具有恶意企图的代码序列[
恶意代码编写流程
Malicious code writing process
恶意代码与正常应用程序的编写流程基本相似.
(1) 前期目标调研:制定自己代码功能需求, 分析目标环境, 主要获取目标环境信息.
(2) 编译环境选择:根据前期目标调研阶段的分析结果, 确定恶意代码的开发语言与集成开发环境(通常包括编辑器、编译器、调试器和图形用户界面工具等)等, 为代码的编写提供开发调试环境条件.
(3) 代码细化功能分析:结合第1阶段和第2阶段的代码功能的分析, 进一步细化代码行为功能和对抗功能.全新编写代码或者从已有的样本源码库中选择满足自己需求功能的代码片段, 并作为创建新程序的复用代码片段.选择合适混淆和对抗环境识别分析的方法, 用于编写能够逃避静态和动态分析与检测的恶意代码.
(4) 代码编写:作者按照自己的代码编写风格与习惯进行编码实现, 并选择合适的数字证书(APP开发)进行签名, 完成恶意代码的全部实现.
恶意代码的作者编写风格是作者在长期的编写过程中形成的不易改变的代码风格, 利用代码编写风格的相似性可以实现对作者的溯源; 另外, 代码开发环境(如IDE、特殊的代码路径、非默认编译参数等)也可能成为作者溯源特征.
恶意代码遵循正常软件开发流程, 但实现的功能往往是破坏计算机系统或者窃取用户隐私等.为了使代码中敏感操作能够逃避检测, 恶意作者往往会采用与正常程序不一样的编码方式, 从而表现出作为软件与身俱来的软件特性(如复用性、固有缺陷性等)以及作为恶意软件所特有的多种恶意特性(如代码敏感性、对抗性等).此外, 在进行恶意代码编写时, 功能代码和特有对抗代码的复用可能导致前后衍生软件的相似性.因此, 恶意代码的编码特性可为进行溯源分析提供有效线索.下面将具体从恶意代码个体的编码特性以及恶意代码作者和家族的相似性角度进行阐述.
恶意代码个体的编码特性指作者在编写恶意代码过程中所呈现出来的代码编写特性, 为恶意代码文件的溯源分析提供了良好理论和技术支撑, 有助于溯源特征的提取.本文从代码复用性、代码对抗性、代码敏感性、代码固有缺陷性等方面分析恶意代码的编码特性.
复用性是指恶意代码作者在进行代码复用行为后形成的一种代码衍生特性, 该特性推动了恶意代码的快速生成.复用行为是恶意代码作者采用的一种, 将已有恶意代码中满足自己功能需求的代码片段提取出来, 不修改或进行稍许修改并应用于创建新的恶意代码的行为.2014年, Symantec报告[
固有缺陷性主要指恶意代码的编写缺陷.编写缺陷是指恶意代码作者因为个人水平或其他原因, 在进行某些功能的编码时, 有时候会产生一些编写或逻辑上的错误, 而这种错误是在其编写类似代码时每次都会犯, 这就形成了作者的固有缺陷.如果多个恶意软件均存在类似缺陷, 则可能为同一作者所为.
对抗性是指恶意代码具有的可以遏制逆向分析以及绕过杀软、穿透代理、防火墙以及对抗IDS等防护手段.根据对抗类别的不同, 恶意代码的对抗分为基于静态分析与检测的对抗、基于动态分析与检测的对抗以及基于机器学习分析与检测的对抗等.恶意软件的对抗性使得恶意代码在系统设备中长期潜伏成为可能, 这对系统资源和用户数据造成了严重的潜在威胁.恶意代码对抗类别及常见方法见
Android恶意软件的对抗类别及方法
Confrontation category and method of Android malware
对抗类别 | 对抗目的 | 常见对抗方法 |
基于静态分析与检测的对抗 | 防止被静态反汇编或者即使可以被反汇编但是不能对其提取有效特征、签名等, 进而无法对恶意代码进行检测 | 1.花指令; 2.简单加密; 3.多态与变形; 4.代码混淆; 5.对抗杀软静态启发式检测 |
基于动态分析与检测的对抗 | 恶意代码在执行的时候所展现出来的能够逃避安全软件、调试器、虚拟机及模拟器等分析的特性, 从而绕过动态检测 | 1.检测调试环境; 2.检测调试行为; 3.检测沙箱环境; 4.虚拟机环境检测; 5.对抗动态启发式查杀、主动防御; 6.漏洞利用 |
对抗基于机器学习分析与检测方法 | 构建对抗样本绕过基于机器学习的检测系统 | 黑客利用机器学习的内部结构漏洞或者分析训练数据, 训练出可以逃避分类模型的样本 |
1) 基于静态分析与检测的对抗
花指令指精心设计代码逻辑或在指令间插入定义设计的数据, 干扰反汇编器给出错误反汇编结果; 简单加密指对病毒主体代码采用不同密钥加密, 导致不同个体文件数据差异大, 从而导致特征值提取困难[
2) 基于动态分析与检测的对抗
(1) 检测调试环境:主要指在检测到调试环境的情况下终止敏感操作, 包括从文件特征、进程名、进程数据特征、加载的特定模块、调试器窗口、调试器具有的特殊权限等方面进行检测.例如, 利用调试器一般采用DBGHELP库来装载调试符号, 因此根据进程是否加载了DBGHELP.DLL, 来判断是否存在调试器环境; 通过
(2) 检测调试行为:主要指在调试行为发生的情况下, 表现出对抗调试或终止敏感操作的行为.对抗调试行为的方法包括基于调试特征检测的调试对抗、基于调试特征隐藏关键代码的调试对抗.例如, 利用PEB结构BeingDebug标志, 在程序处于调试状态时为非0, 将其作为特性进行反调试; 利用异常中断int3指令常被设置为软件断点的特性, 在代码中置入int3指令, 当程序未被调试时, 将进入异常处理继续执行, 但是程序处于调试阶段时, int3被当成调试器自己的断点, 而不会进入异常处理程序, 通过将核心代码写入异常处理过程, 能够避开调试器的执行调用.
(3) 检测沙箱环境:主要指利用硬件序列号、固件版本和其他操作系统配置作为沙箱指纹, 通过检测所处环境的沙箱系统和管理程序的每个工件来逃避沙箱系统的分析与检测[
(4) 虚拟机环境检测:基于虚拟机环境检测的对抗分析方法主要包括3类:语义攻击(CPU语义攻击)、基于时间的攻击和字符串攻击[
(5) 对抗动态启发式查杀、主动防御:常见的方法包括:调用底层的未拦截API接口完成上层API功能; 利用受信任进程完成对目标模块的加载, 对主动防御拥有比较好的免杀效果; 将多个行为在分离在多个进程中实现, 将能成功绕过针对目标进程的行为进行综合分析的启发式查杀.例如, 在进程
(6) 漏洞利用:漏洞利用[
3) 对抗基于机器学习分析与检测方法
对抗基于机器学习分析与检测:主要是通过对抗性数据操纵恶意软件逃避模型检测[
综上, 恶意代码动态和静态分析与检测的对抗方法增强了代码被解读的困难性, 加强了代码痕迹被捕获的难度, 使得恶意代码具备了一定的自我保护能力.然而在实际操作中, 为了平衡恶意代码的运行效率和功能, 往往不会在恶意代码中加入非常全面的对抗技术.例如文献[
代码的敏感性是指恶意代码在进行行为隐蔽触发和敏感资源访问的所表现出来的特性, 常见的恶意代码关键示例敏感点主要包括触发条件、系统(API)调用、代码结构、常量(关键字符串)等.
恶意敏感操作执行代码片段示例
Malicious sensitive operation execution code snippet example
基于触发分支的敏感性代码片段示例[
Example of a sensitive code snippet based on a triggering branch[
下面结合
1) 触发条件
触发条件指触发恶意敏感函数执行操作的条件, 从触发条件的代码位置角度分为基于敏感函数入口点的触发和基于敏感操作分支的触发.
(1) 前者是指直接或间接触发恶意函数调用的程序入口点[
(2) 触发分支条件是指能够触发恶意敏感函数执行的代码分支[
2) 系统(API等)调用
系统调用[
3) 代码结构
代码结构[
4) 常量
常量通过揭示关键参数的值和细粒度的API语义来传达语义信息[
恶意代码在上述特征上通常具有典型敏感性, 这是作者编写恶意代码内容的主要特点, 也是安全研究人员进行溯源的主要依据之一.
编码相似性是指恶意代码在编码环境及特征上具有相似性, 基于恶意代码的编码特性, 同一作者或者同一家族的恶意代码在内容和结构上往往存在相似之处[
1) 同家族恶意代码的编码相似性(功能相似)
恶意代码以功能行为划分家族, 同家族恶意软件的代码和行为具有相似甚至相同部分[
● 系统调用:同家族恶意代码为了实施相同的功能行为, 往往调用相同或相似的系统敏感函数API.
● 关键字符串:主要指的是硬编码字符串, 同家族恶意代码为实现特定元素相关的行为, 会在代码中采用关键字符串.
● 代码结构:同家族恶意代码在实施相同的功能行为时, 会执行相似代码流程, 因此其代码结构相似.
利用上述特性识别恶意代码变体, 并根据已知恶意代码家族揭示变体家族.例如, 文献[
2) 同作者或团队的编码相似性(风格相似)
同作者或团队编写的恶意代码由于受拥有的相关领域知识、经验、编码工具等限制, 使得编写的代码在内容和结构上具有相似性.这种相似性抽象刻画了作者的编码风格, 即使通过混淆技术隐藏或不留下其身份信息, 但是人的编码习惯不会因为创建非同恶意代码而产生强大的差异.基于人的编程习惯, 研究人员可挖掘和利用代码风格追踪到相关的作者.
目前, 源代码作者的溯源分析已经相对成熟, 其主要用于软件取证和抄袭检测.Krsul等人[
作者编码习惯[
Authors' programming habits[
编码习惯 | 含义 |
编程布局 | 空格的使用、括号的放置等 |
编程风格 | 平均注释长度、平均变量长度 |
编程结构 | 平均函数长度、常用的数据结构等 |
目前, 二进制代码作者的溯源相对源代码的溯源工作更加困难, 这是因为代码编译导致源码中许多信息丢失, 同时, 编译器优化可能会改变程序的结构, 进一步模糊作者编码风格.Alrabaee等人[
恶意软件的代码风格主要依赖于作者的编码习惯.乔延臣等人[
2018年2月份, 趋势科技[
Confucius示例的反编译Form结构[
Decompiled Form structure of Confucius' sample[
Patchwork示例的反编译Form结构[
Decompiled Form structure of Patchwork's[
Confucius代码和Patchwork的代码[
Confucius code and Patchwork's code[
由此可知, 研究作者编写代码风格、代码结构相似性等对二进制恶意代码溯源具有重要意义.
恶意代码的个体编码特性、家族和作者的编码相似性, 表明大部分恶意代码是对已有代码的修改, 揭示了源码的演化趋势.源码的演化促使二进制恶意代码的变化, 并为其提供逆向分析思路.移动端和PC端恶意软件在敏感行为执行上存在差异, 例如移动端经常会悄悄发送短信等, 但是PC端不会出现这样的操作, 因此下面将分平台阐述二进制恶意代码的演化特性.
了解恶意代码的演化, 有助于更好地把握恶意代码的发展趋势, 为发现新的恶意软件提供辅助信息, 进而快速归属新恶意代码的家族或作者.
PC端恶意软件的演化及影响
Evolution and impact of PC malware
时间段 | 代表样本 | 软件类型 | 目的或影响 | 样本功能技术特征 |
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计算机系统瘫痪 |
恶意软件的演化历程[
● 阶段1. 1971年~1999年的恶意软件主要以原始程序的形式出现, 恶意软件功能单一, 破坏程度小, 无对抗行为.
● 阶段2. 2000年~2008年, 恶意软件的破坏性增强, 恶意软件及其工具包数量急剧增长, 借助网络感染速率加快, 电子邮件类蠕虫、受损网站、SQL注入攻击成为主流.
● 阶段3. 2010年之后, 经济利益和国家利益的驱使下的恶意软件存在团队协作紧密、功能日趋复杂、可持续性强及对抗性强等特点.
上述演变历程中, 一方面将恶意软件扩展到了不同平台, 例如从早期的PC计算机到工控行业, 但更重要的是恶意代码的功能的进化:恶意代码在前一阶段的个别特性, 会在后面阶段中持续增强.促进这种进化因素主要是恶意代码功能的不断改进以及攻防对抗技术的不断博弈.这主要涉及恶意代码攻击行为和生成方式两个过程的演化, 具体演化描述如下.
1) 恶意软件的攻击行为演化特性
与传统恶意软件的攻击行为相比, 新一代恶意软件[
传统恶意软件VS高级恶意软件的攻击行为[
Attack behavior of traditional malware vs. advanced malware[
高级恶意软件攻击行为的定向性、持续性、隐蔽性和技术先进性的具体行为表现如下.
(1) 定向性[
(2) 隐蔽性:一旦进入系统, 恶意代码隐藏(加密流量等)并禁用主机保护[
(3) 持续性[
(4) 技术先进性[
基于上述行为描述, 说明目前的高级恶意软件在功能和防御策略方面更为先进, 其造成的影响和损失也更为严重.
2) 恶意软件的生成演化特性
目前, 新的恶意软件很少从头开始创建, 而是采用自动生成工具、第三方库以及借用现有的恶意软件代码等[
一个恶意代码变种与原来恶意代码形式上有所不同, 但实现行为相似, 那么这两个恶意代码称为同一个家族, 新生成的恶意代码称为家族变体[
随着恶意代码家族功能和对抗策略的不断调整, 新的恶意软件变种及其早期版本的运行时行为通常非常相似, 但样本的演化可能会带来家族的进化, 以适应新的计算机环境.例如, 文献[
综上所述, 传统平台恶意软件的行为演化描述了恶意软件在生成之后所表现的攻击特性.这种特性为研究恶意代码的安全防御系统提供技术支撑, 进而加强安全防范, 尤其是基于软件运行时行为的检测系统(如沙箱、云平台检测系统等), 使之能够更可靠地检测大多数恶意软件及其变体.研究传统平台的恶意代码生成演化特性能够更加全面地把握恶意代码的发展趋势, 进一步调整目前基于主机防御系统(如防病毒软件)的不足.恶意代码的攻击行为和生成特性作为恶意软件演化过程中的关键要素, 对于构建恶意软件演化史具有重要意义:有助于促进对传统平台恶意软件的全面认识, 明确未来恶意软件的发展方向, 是恶意软件发展中一个需要不断跟进的领域.
第一种智能手机病毒起源于2004年[
家族样本每个季度的数量规模[
Quantitative scale of family samples in each quarter[
下面具体分析移动平台恶意代码的演化特性, 从行为演化和构成策略演化两个方面展开移动平台恶意代码的演化特性分析.
1) 恶意代码的行为演化
以文献[
Android恶意软件的行为及目标
Android malware behavior and goals
行为名称 | 行为目标 |
隐私侵犯 | 对Android Content Resolver框架的查询、使用文件访问系统、访问用户位置等信息 |
数据窃取(exfiltration) | 将网络的使用与隐私侵犯行为结合, 致使个人信息的泄漏 |
欺诈 | 旨在从用户或用户使用的服务中获得直接利润, 例如, 恶意软件可能会通过SMS管理器发送额外费率消息, 或者可能通过更改会员ID重定向收入来滥用广告网络 |
逃避 | 硬件序列号, 固件版本和其他操作系统配置通常用于沙箱指纹, 以避开动态分析 |
混淆 | 使用混淆和其他隐藏技术以逃避静态分析, Android提供了在运行时动态加载代码的选项 |
漏洞利用(exploitation) | 某些应用程序实现技术漏洞, 并在安装后尝试获得root访问权限.大部分漏洞都是在Native代码中实现的, 并使用与资源目录中的应用程序打包在一起的bash脚本触发 |
(1) 隐私侵犯:据文献[
(2) 数据窃取:据文献[
(3) 欺诈:据McAfee指出, 传统的基于高级短信的收费欺诈形式已经演变为僵尸网络广告欺诈、按次付费下载的分发诈骗以及勒索软件欺诈.目前的诈骗方式伪装手段更高级、迷惑性更强、可持续时间更久.2017年, McAfee[
(4) 逃避:文献[
(5) 漏洞利用:文献[
结合上述演化行为, 表明Android恶意代码向更复杂、更具有针对性、逃避性发展, 这也对移动安全防御系统提出了更高的挑战.研究移动平台恶意代码的演化行为, 可以帮助安全研究人员更好地研究移动可疑恶意软件, 理解恶意代码的操作和意图, 进而归属出家族变体, 促进移动平台安全体系的稳固.
2) 恶意代码构成策略的演化
据赛门铁克统计:2012年, 每个移动恶意软件家族平均有38个变种; 而在2013年, 每个家族变种数量达到58个[
基于上述对移动平台恶意软件行为演化和对抗技术演化的分析, 重建恶意软件系统演化史, 将有助于为移动平台中当前恶意软件与之前恶意软件的相关性提供线索, 同时明确目前移动平台恶意软件以及未来可能的发展趋势, 达到更全面地分析及了解移动平台恶意软件的目的.目前已经提出了基于静态[
学术界和产业界的恶意代码溯源机理存在差异:在学术界, 常见的恶意代码溯源依赖于代码的相似性分析, 进而揭示恶意代码间的同源关系, 且其溯源的目是定位变体家族或作者; 而产业界, 恶意代码溯源更倾向于恶意代码结构及其攻击链的关联性分析, 且其溯源目的是为了挖掘攻击者或攻击背后的真正意图.基于这种差异性, 本文将从学术界和产业界分别分析恶意代码的溯源机理.
学术界恶意代码溯源的基本思想是:采用静态或动态的方式获取恶意代码的特征信息, 通过对恶意代码的特征学习, 建立不同类别恶意代码的特征模型, 通过计算待检测恶意代码针对不同特征类别的相似性度量, 指导恶意代码的同源性判定[
恶意代码溯源系统模型
Malicious code traceability system model
特征提取是溯源分析过程的基础, 具有同源性的恶意代码是通过它们的共有特征与其他代码区分开来的.因此, 所提取的特征既要反映出恶意代码的本质和具有同源性恶意代码之间的相似性, 又要满足提取的有效性[
(1) 克服恶意代码的对抗手段.知道变体为避免检测而使用的技术, 以便识别在其逃避策略下保持不变的变体的一部分[
(2) 相似性代码的片段提取.根据恶意代码家族和作者的编码相似性, 恶意代码的家族溯源中, 以相似性行为代码片段为导向, 在编译后的代码中, 提取同家族变体的相似性特征来识别同源样本; 恶意代码的作者溯源分析中, 在编译后的代码及其结构中, 提取作者遗留的编码习惯作为特征, 来识别同源样本.学术界常见的特征提取类型包括序列特征和代码结构特征, 见
恶意代码特征类型
Malicious code feature type
特征名称 | 提取特征的方法 | 代表文献 |
序列特征 | 主要指从指令、操作码、字节码、API层次上提取的代码序列 | 2015年, Faruki[ |
代码结构特征 | 主要指从指令级别、API级别上提取的程序流, 例如API调用图、CFG图、PDG图等 | 文献[ |
权限特征 | 主要从Manifest.xml中提取〈user-permission〉标签对应的权限 | 文献[ |
资源特征 | 主要指APK解压文件夹下面的resource.asrc以及res文件夹下的图片, 界面元素等资源 | 文献[ |
1) 序列特征
常见的序列包括指令序列、字节码序列、API调用序列、
2) 代码结构特征
代码结构提取是一种从代码逻辑结构提取特征的方法, 该特征包含了程序的语义信息, 属于细粒度特征.常见的代码结构主要包括API调用图结构、CFG图结构、PDG图结构等.代码结构包含程序的行为语义信息, 即使样本的语法被混淆处理, 只要语义相同, 还是可以追踪到.例如, 文献[
相比代码结构信息, 序列信息会丢失恶意代码执行过程中的某些空间特征.但是基于代码结构的相似性分析由于要分析程序执行流程, 因此复杂度比较高, 效率得不到保证; 同时, 序列信息比图结构信息更容易获得, 因此大多数研究者仍然采用基于指令序列或API序列的特征进行研究[
3) 权限特征
权限是Android系统的三大保护机制之一, 在Manifest文件中, 声明的权限很容易捕获应用程序的数据使用意图, 可用于识别应用程序的恶意行为[
4) 资源使用特征
资源文件的使用特征在移动平台中应用广泛, 该特征主要是从APK解压后的resources.arsc文件以及res文件中提取的信息.文献[
特征预处理在溯源分析技术中起到承上启下作用:承上即对初始特征进行预处理; 启下则是为相似性计算提供基础数据.提取的原始特征存在不具有代表性、不能量化等问题, 特征预处理针对这一问题进行解决, 以提取出适用于相似性计算的代表性特征.根据第2.1.1节所述, 常见的特征类型包括序列特征和代码结构特征, 其中, 针对移动平台的权限特征和资源使用特征, 在具体的表现形式上也以序列特征和代码结构特征为主, 下面分析每类特征形式的预处理机理.
1) 序列特征预处理
常见的序列特征预处理方法包括信息熵评估、正则表达式转换、
● 信息熵评估
熵是包含在数据中的信息量的非常广泛的量度, 是提取稳定性特征的有用工具[
(1) 在汇编代码中选择2-元组操作码序列, 见
汇编代码片段举例
Assembly code fragment example
回编代码片段 | 提取的操作码序列 |
mov eax, 0007BB01 |
os1=〈mov, mov〉 |
(2) 利用变形信息熵计算操作码序列信息熵, 信息熵公式如(1)所示.
其中,
● 正则表达式转换
正则表达式是由字符元素以及元素之间的组合组成规则序列, 以用来表达对字符串的过滤.在序列的分析中, 将序列转换为基于序列元素和序列间关系的正则表达式, 从而实现对符合正则表达式的恶意软件识别.该特征是一种启发式特征, 可以识别事前未出现的恶意软件.例如, L.Wu[
●
API序列转化为
Conversion of API sequences to
● 序列向量化
序列向量化是一种量化序列的方法, 将具体的序列转换为可进行计算的数学模型.通过量化分析, 有利于进行重要特征的分析, 提取出具有代表性特征.此外, 量化的特征便于进行相似性计算.例如, 文献[
● 权重
权重是一种统计分析方法, 权重定义了特征重要性.文献[
其中,
2) 代码结构特征预处理
一方面, 基于代码结构的特征在相似度比较时存在边、节点等匹配问题即子图同构算法复杂性; 另一方面, 代码结构特征中存在冗余结构, 因此除去冗余、保留与恶意操作相关的代码结构是预处理的主要目的.常见的结构图包括API调用图、CFG调用图、PDG图等.本文将代码结构特征中预处理机理阐述如下.
● API调用图预处理
API调用图是由图中敏感API, 根据前后调用关系建立的网络结构图.
为了消除图相似性计算的复杂性问题, 文献[
2016年, 文献[
● CFG图预处理
CFG图以单个代码语句为原子单位, 细粒度地表示了程序的执行流程[
● PDG图预处理
PDG图是一种结合数据流和控制流分析的代码结构, 展现了敏感操作的依赖性, 包含程序语义信息.但是该特征结构在匹配时是一种准确性匹配, 因此计算复杂度比较高.文献[
基于上述描述表明:在图特征的预处理过程中, 评估图中的关键节点、非图形化处理、排除图中非相关子图[
溯源的目是通过分析样本的同源性定位到家族或作者, 样本的同源性可以通过分析代码相似性来获取.相似性计算旨在衡量恶意代码间相似度, 具体为采用一种相似性模型对恶意代码的特征进行运算.根据预处理特征类型的不同以及溯源需求(效率、准确性等)的差异, 采用不同的相似性运算方法.目前比较流行的相似性计算方法主要集中在对集合、序列、向量、图等特征表现形式的处理.
1) 基于集合的相似性计算
集合是多个元素的组合, 这是一种简单的特征形式, 常见的相似性计算方法为Jaccard系数等.Qiao等人[
通过以上计算, 将查询点与待比较空间中的集合点进行比较, 返回满足条件的结果.该算法思想简单, 操作方面, 在基于集合形式的特征中广泛采用.
2) 序列形式特征的相似性计算
序列特征的相似性计算既要考虑序列元素的匹配, 又要考虑序列的次序关系.2013年, Faruki等人[
3) 基于向量形式特征的相似性计算
向量是一种基于维度的几何表示方法, 在相似性比较中, 需要明确各维度的特征类别, 使得不同样本的特征向量中各维度具备一致性.文献[
公式(4)中计算的相似性值在0和1之间, 并且基于阈值确定相似性变体.该阈值与相似性分析结果的准确性密切相关, 因此在现实世界中, 如果要寻找恶意软件变体, 则需要严格制定阈值.
4) 图特征的相似性计算
图特征的相似性计算涉及到图中边和节点的匹配, 复杂性比较高.文献[
基于上述描述表明:针对不同的特征形式可以采用同一种算法, 例如, Jaccard系数既可以用于集合形式的相似性计算, 也可以用于向量等其他特征.此外, 在实际的特征相似性分析中, 往往由于特征形式的多样性, 会采用多种相似性计算方法结合使用.上述相似性比较方法中:基于集合的比较方法实现简单, 但没有考虑变量间的相关性; 而基于向量的相似性比较考虑了变量的位置关系, 但是向量方法容易引起维度膨胀问题; 基于序列的相似性比较考虑了变量的次序关系, 但缺乏元素间的相关性分析; 基于图特征的相似性比较则考虑了变量间的语义相关性, 但计算复杂度大, 该特征往往用于需要精确匹配的场景中.上述相似性比较的粒度依次变细, 在实际溯源分析中, 需要结合应用需求, 选择合适的相似性计算方法.
目前, 学术界常见的同源判定方法主要包括基于聚类算法的同源判定、基于神经网络的同源判定等.利用聚类算法操作相似性值获取待测样本同源度, 同源度越高, 溯源结果越准确.
1) 目前, 在恶意代码的聚类中, 应用广泛的聚类算法是基于密度的聚类算法、划分聚类算法、层次聚类算法、近邻聚类算法, 具体见
聚类算法在同源判定中的应用
Application of clustering algorithm in homology judgment
聚类算法名称 | 算法描述 | 代表文献 |
密度聚类算法 | 首先设置一个邻域半径, 然后计算样本的邻近区域的密度(对象或数据点的数目), 如果超过某个阈值, 就继续聚类.擅于解决不规则形状的聚类问题 | 文献[ |
划分聚类算法 | 给定要构建的分区数 |
文献[ |
层次聚类算法 | 又称树聚类算法, 透过一种层次架构方式, 反复将数据进行分裂或聚合 | 文献[ |
近邻聚类算法 | 设置阈值, 从样本集合中任意选择一个作为聚类中心, 然后从剩下的样本中挑选样本与该中心计算欧式距离, 如果超过阈值则该样本为新的中心, 否则, 该样本属于前一个中心聚类中成员, 以此下去, 该方法是一种粗暴方法, 且聚类结果受第一个中心影响严重 | 文献[ |
这里以DBSCAN聚类算法[
(1) 对于待测集合中尚未检查过的对象
(2) 对候选集
(3) 重复步骤2), 继续检查
(4) 重复步骤1)~步骤3), 直到所有对象都归入了某个簇或标记为噪声.
抽象聚类模型
Abstracted cluster model
DBSCAN聚类算法的优势在于聚类时不需要事先指定聚类的簇数, 可根据样本之间的差异性将相似样本聚为一类.此外, 在该算法中, 高密度区域可以是任意形状, 样本不一定要围绕单个中心, 这符合恶意代码演化、衍生的特点, 适用于同源性恶意代码的聚类.
基于聚类算法的同源判定一般步骤如下.
● 设置聚类阈值.
● 利用聚类算法进行聚簇运算, 使得同一簇内的数据对象的相似性尽可能大; 同时, 不在同一簇中的数据对象的差异性也尽可能地大.
● 同源判定, 如果同簇中属于同一家族或同一作者的多; 而同一家族或同一作者的样本几乎很少出现的不同簇中, 则表明聚类出的模型同源性判定效果强.
2) 基于神经网络的同源判定.
神经网络是一种多层网络的机器学习算法, 可以处理多特征以及复杂特征的同源判定.基本思想为:将样本特征作为输入层数据, 然后不断调整神经网络参数, 直到输出的样本与该样本是一种同源关系未为止.在测试过程中, 将恶意代码特征送输入层, 即可判断恶意代码的同源性.
赵炳麟等人[
基于CNN的恶意代码同源分析模型
CNN-based homologous analysis model of malicious code
下面描述具体实现过程.
● 采用静态分析方法分析恶意代码, 提取其API调用图作为恶意代码样本的特征, 该阶段操作为
● 选择调用图中的关键节点, 使其能够与卷积神经网络的输入匹配, 该阶段为
● 将特征向量输入CNN模型进行训练, 直到模型处于稳定状态.至此, 基于CNN的恶意代码同源判定模型建立完毕.
● 对8个家族的恶意样本进行测试, 实验结果表明, 恶意代码同源性分析的准确率达到93%, 并且针对恶意代码检测的准确率达到96%.
根据上述研究发现, 基于聚类算法的同源判定过程为不断调整聚类阈值、测试其同源性强度的过程.在该过程中存在以下问题:1)图特征的相似性计算是个NP问题, 计算复杂度大; 2)当出现多类型特征共存时, 需要考虑不同类型特征带来的影响, 导致相似性判定模型变得复杂, 影响同源判定结果.而基于神经网络的聚类算法主要的运算是对其调参过程, 只要特征满足该神经网络模型的输入标准, 即使包含多类型特征, 依然可执行同源判定.
产业界除了采用与学术界类似的同源判定方法之外, 还会通过关联的方法对恶意代码进行溯源.
产业界的溯源意图除了溯源出编写恶意代码作者、恶意代码家族之外, 还要挖掘出攻击者及攻击者背后的真正意图, 从而遏制攻击者的进一步行动.
产业界与学术界溯源方法的差异主要表现在特征提取和同源判定两个方面:在特征提取上, 产业界更倾向于从代码结构、攻击链中提取相似性特征; 在同源判定上, 除了采用与已有的历史样本进行相似度聚类分析之外, 产业界还会采用一些关联性分析方法.目前, 产业界常见的溯源特征见
产业界溯源特征
Traceability characteristics of industry
溯源特征 | 溯源文献 |
时间戳 | 文献[ |
数字证书 | 文献[ |
函数(导入、导出、加密等) | 文献[ |
后门文件 | 文献[ |
攻击模式 | 文献[ |
漏洞利用 | 文献[ |
传播机制 | 文献[ |
编译环境(编译工具、语言、系统) | 文献[ |
通信方式 | 文献[ |
功能(部分模块功能等) | 文献[ |
背景来源(例如语言、域名、地理位置等) | 文献[ |
FireEye[
文献[
Mandiant的研究人员通过文件的导入函数信息生成哈希作为特征, 用于追踪APT攻击的恶意代码[
2017年, McAfee报告[
攻击模式主要指某些攻击团队特有的攻击套路, 并且长期专注于一个领域的攻击.例如2016年10月爆发的Mirai僵尸网络[
[
启明星辰[
Gostev[
安天[
2013年曝光的“阿克斯(Arx)”组织利用0day漏洞(CVE-2013-3906等传播Trojan[Spy]/Win32.Zbot和Trojan/ Win32.Dapato恶意软件.安天对从攻击者样本的时间节点、攻击目标、传播细节、相关的C & C基础设施的注册信息等提取特征进行关联分分析, 发现“阿克斯”组织与“白象”组织并不存在明显联系, 但是也来自东南亚某国[
安天对“白象二代”组织[
上述案例主要从样本、C & C信息、背景来源等作为溯源特征关联到攻击者.相比学术界溯源特征, 产业界溯源特征更加详细全面, 信息复杂度大.因此, 学术界的同源判定方法并不能完全用于产业界各类特征的相似性分析中.通过对360安全威胁中心[
产业界常见恶意代码溯源方法
Common malicious code traceability method in industry
溯源方法名 | 溯源目标 |
域名/IP[ |
对攻击者使用的域名和IP地址进行分析, 挖掘攻击源头 |
全流量分析[ |
某些攻击者或者组织的反跟踪意识非常强, 在达成入侵目的之后(窃取数据), 会完全清除入侵痕迹, 或者干脆销毁主机硬盘, 使得在受害者机器上找不到任何痕迹, 通过全流量分析溯源就相当有效 |
入侵日志[ |
对攻击者入侵到主机后留下的大量行为操作日志进行分析, 可以提取相关攻击者的信息 |
攻击模型[ |
这种溯源方法主要见于某些专业化程度比较高的个人或者组织, 他们有自己的攻击常规套路, 并且长期专注于一个领域的攻击 |
样本分析[ |
通过静态或动态的方法提取样本特征, 然后分析攻击者相关信息 |
溯源方法已经在产业界广泛使用, 在实际溯源分析中, 一般会结合关联分析技术、画像分析等溯源到攻击者及真实意图.例如, 文献[
自从“GhostNet”幽灵网、APT1等事件之后, 近年来, 全球范围内各类网络攻击事件不断被曝光, 恶意代码溯源手段和技术也在不断发展, “白象”“海莲花(APT32)”“摩诃草”等各类溯源分析报告陆续被公布.2017年, 美国有24个研究机构[
恶意样本、攻击行为(攻击者)、攻击手段和渠道(攻击者与攻击事件的关联)是溯源分析的关键要素, 黑客组织为了尽可能消除溯源线索, 目前从代码、攻击行为等多个层面采取了对抗措施.
(1) 代码角度的溯源对抗:恶意开发者尽可能在代码编写生成阶段消除(或伪造)溯源痕迹, 或采用技术手段混淆甚至隐藏自身关键特征信息, 避免特征信息的暴漏.
(2) 攻击行为的溯源对抗:黑客组织采用精准定位、伪装、隐藏(持续免杀或无文件运行)、自毁等方式, 使得攻击行为不被发现; 在攻击渠道方面, 黑客组织采用代理、匿名网络技术阻止对实际攻击来源、渠道的追踪.
代码的溯源对抗主要指攻击者在恶意代码发布之前, 对代码文件进行痕迹(如生成时间、时区、特殊字符串、语言、C & C域名、团队代码特征、开发坏境等)消除、伪造或混淆处理, 使得安全研究人员从中无法或者尽可能少地提取到有效信息.例如2017年, 安天移动安全分析团队对Dvmap病毒分析报告[
第1.1.3节描述了编写恶意软件的对抗性方法, 这些方法同样使得从恶意代码中提取同源特征信息变得困难.
以上这些措施不仅会妨碍产业界对单个样本的人工溯源进度以及与其他样本的关联难度, 同时也将给需要大量标注样本的学术领域溯源研究带来障碍.
然而, 随着主机行为监控[
恶意软件攻击行为的溯源对抗主要指软件运行后, 攻击团队或恶意软件自身进行的对抗行为, 主要包括自身伪装、持续免杀策略、攻击定向性提升、控守网络隐匿、攻击载体隐匿等.
(1) 增强自身伪装, 提高人工分析溯源难度.
目前常见的伪装程序分为重打包程序和区域性伪装.重打包程序伪装将恶意程序逻辑隐藏在合法程序的有用功能之后, 且恶意程序只占重打包程序的小部分, 致使系统调用[
区域性伪装则往往与特定区域相关, 主要是通过将特定区域的语言、域名、时区、组织等嵌入到伪装程序中, 从而逃离区域溯源.例如, 2017年6月8日, 卡巴斯基[
(2) 增强免杀手段, 提高抗分析能力, 提高安全软件检测难度.
恶意代码的复杂度显著增强, 主要指恶意代码开发的复杂性提升, 以逃避查杀.2017年, 在高级攻击领域[
(3) 提升目标定位精度, 增强攻击定向性, 降低样本被捕获几率.
传统的恶意代码攻击未分析目标特点, 实行随机性的最大传播策略, 这种机制容易暴漏自己.因此, 为了避免被发现, 攻击者会尽可能地多了解攻击目标, 实施小范围的攻击活动, 这样可有效降低样本被捕获分析的几率.例如海莲花团伙的攻击活动中, 鱼叉邮件的社工特性突出, 体现为对攻击目标的深度了解, 例如样本中的附件名:invitation letter-zhejiang ***** working group.doc, 星号是非常具体的目标所在组织的简称, 意味着这是完全对目标定制的攻击木马.2018年, Confucius黑客组织执行客户端和服务器端的IP过滤, 仅对指定IP地址进行破坏, 如果受害者来自攻击目标以外的国家, 该程序将自行删除并退出.这与2017年底, 来自该组织的C & C不仅可以从任何IP地址访问, 而且可以在不进行身份验证的情况下, 浏览服务器目录树, 形成鲜明对比[
(4) 提升通信控制方式的隐匿性, 提高攻击者被溯源难度.
目前, 恶意代码通信方式更加隐蔽, 体现在域名隐藏、IP地址动态变化等.例如, 海莲花组织为了抵抗溯源开启Whois域名隐藏和并且不断更换服务器的IP地址, 并使用DGA算法生成动态域名, 增加了安全分析人员定位有效服务器难度.海莲花组织在最新攻击中, 攻击者对采用的网络基础设施也做了更彻底的隔离, 使之更不容易做关联溯源分析[
(5) 通过无痕迹运行技术, 隐匿攻击代码, 提升攻击代码被定位难度.
近年来, 无文件恶意代码攻击又开始逐渐引起注意.无文件恶意代码没有文件载体仅在内存中运行, 该类软件运行后不会在磁盘上留下痕迹, 溯源检测困难.比如, 安天分析“女神”(Shakti)行动发现, 其样本运行时会在内存中解密一个dll模块并注入到浏览器进程中, 这些dll模块都被直接注入到内存中运行, 在磁盘中并无实体文件[
这种恶意软件的出现已经表明, 网络犯罪分子将会使用一切手段来躲避安全软件的检测和分析.这在一定程度上说明那些不常见的无文件恶意软件的感染方法也在不断发展, 即使安全研究人员能够从内存中获取代码, 调查工作仍然很难开展.
严峻的网络安全对抗和博弈形势, 使得对恶意代码的演化与溯源技术的研究价值凸显, 学术界、产业界近年来分别从攻击和防护[
(1) 产业界恶意代码溯源特征提取与分析的自动化程度严重不足.
目前, 产业界的溯源分析过程主要基于人工分析手段, 例如, Sasser与Netsky、Duqu与Stuxnet、Flame与Gauss等的识别工作均由相关安全专家人工分析完成, 虽然分析结果详细全面、可信度高, 但受专家经验影响较大, 其效率较低.
这主要是因为溯源特征碎片化, 特征提取位置不稳定, 与此同时, 恶意代码作者采用大量的对抗技术应对自动化检测与分析, 使得特征自动化提取困难.这些困难都是目前自动化溯源分析面临的重要挑战.
(2) 编译器及开源代码复用给溯源工作带来干扰.
一方面, 大量攻击程序源代码被公开, 开源项目及第三方库如雨后春笋, 这也导致目前很多恶意代码在编码阶段开始进行大量的代码复用; 另外一方面, 即便处理不同的复用代码, 编译器也将自动插入大量相似代码, 这给基于代码相似性的溯源分析带来很大干扰.比如, 文献[
除此之外, 即便是对于相同的病毒代码, 当攻击者采用不同的编译器、不同的编译参数进行编译时, 最终生成的代码特征也可能发生较大变化, 从而导致原本同源的代码被漏判.
(3) 溯源对抗和伪造手段将对溯源工作带来严重挑战.
目前, 有效的恶意代码溯源案例中, 大多都依赖了类似特殊字符串、语言、控守地址、作者编码心理、代码风格、时间戳等极具个性化且易被伪造的低维特征.为了防止被溯源追踪, 目前部分恶意软件作者和团队已经具备溯源对抗意识并开始采用溯源对抗甚至伪造手段, 这将对恶意软件的溯源工作带来极大挑战.
(4) 恶意代码溯源基础库缺乏, 溯源分析效率低下.
提升溯源效率的第一要素, 需要构建恶意代码、代码编写者、攻击团队的代码或行为基础库, 否则, 即便获得以往攻击样本的变种, 也很难快速获得溯源数据支撑.
目前, 在溯源基础库的构建方面还存在较多问题.
● 首先, 在恶意代码溯源特征库构建方面, 目前已有的恶意性判定特征和积累难以直接适用.目前, 恶意代码捕获样本数量多, 但以往主要是以“恶意性判定”为目标来构建特征库, 但恶意性判定特征与恶意代码家族聚类特征存在很大差异.
● 其次, 在恶意代码编写者和攻击者基础库方面, 由于之前被定位的恶意代码编写者与攻击者基础数据少, 这一工作还难以有效开展.
(5) 溯源攻击者(代码使用者)困难.
目前, 针对攻击者的追踪主要发生在产业界, 恶意代码攻击者的追踪需要对攻击者手段、攻击者行为进行刻画, 同时需要结合攻击意图等关联到攻击者.攻击意图的分析需要结合多个攻击样本集分析其功能, 同时了解黑客背景, 例如黑客的活跃区域、擅长的攻击手段等, 构建攻击行为演化趋势, 揭示出攻击背后的真正意图.然而在实际的攻击中, 黑客活动异常隐蔽, 所暴露的活动只是很少部分, 此外, 嫁祸类攻击日益增多, 因此识别真正来自于某个组织的攻击特点是溯源攻击者的另一挑战.
除此之外, 攻击者信息还依赖于跨境、跨国第三方平台(论坛、Github、网盘资源)信息等, 但是第三方平台人员信息复杂、数量庞大, 同时存在伪造信息的可能, 因此, 即使能够追溯到攻击者的部分信息, 准确定位到个人还是需要进一步针对个人进行审查.
(6) 新型APT攻击溯源难度大.
目前, 学术界和产业界在恶意代码家族聚类[
(7) 产学研合作需要增强.
目前, 学术界恶意代码溯源分析方法主要采用学术界已有算法和相关理论成果, 并辅以产业界公开的安全分析网站及报告等信息, 样本提取与标注数据严重不足, 难以构建满足现实溯源需求、切实有效的溯源分析方法.而产业界获取的特征信息虽然详细全面, 但是缺乏良好的自动化特征提取模式与溯源关联分析机制, 更多的是借助于人工分析平台辅以有限的信息自动化关联, 效率低下.产业界与学术界如何进一步加强合作, 构建更加有效的溯源技术与体系, 是今后发展的一个必然选择.
在应对相关挑战的同时, 恶意软件溯源研究与分析工作将得到系统化推动, 溯源对抗技术也将在对抗博弈中得到不断发展.对于后续发展, 相关展望如下.
(1) 政府部门将在溯源基础信息库的建设工作起到主导作用, 多方协同建设机制将被构建.
恶意代码的演化衍生特性涉及软件静态特征、行为规律、家族衍生特性、作者编码习惯、恶意软件团队特性等, 这些是做好恶意代码溯源分析工作的基础与重要依据.
选择合适的特征及特征粒度构建基础库特征模板, 充分利用现有的恶意软件信息库以及程序自动化分析技术, 构建融合恶意软件静态特征、行为规律、家族衍生特性、作者及团队风格等的强大溯源基础信息库, 是今后不可回避的一个研究和建设重点.
在溯源基础信息库的建设过程中, 基于恶意代码溯源工作的重要性与特殊性, 政府部门必将起到主导作用, 各大安全厂商、重要互联网企业、各类重要信息系统所在单位等将作为重要支撑单位进行协同建设.比如, 当前的各大反病毒厂商的样本以及归属判定知识, 将为基础信息库奠定重要基础, 同时由于其强大的样本捕获与分析体系, 反病毒厂商也必将成为溯源基础信息库后续不断完善的重要渠道.
(2) 网络威胁情报库建设与共享将进一步增强.
准确、及时的网络威胁情报库, 是恶意软件发现和溯源的另外一个重要基础.目前, 多个安全公司都构建了自己的网络威胁情报分析平台, 如何有效地加强合作建设与资源共享, 将成为国家网络威胁溯源的重要基础.
从建设内容上说, 除了目前已有的威胁数据之外, 来自暗网和攻击第一现场的最新威胁情报、最新恶意软件样本、最新漏洞攻击样本以及代码静态和行为特征, 都将成为网络威胁情报库建设的重要内容; 与此同时, 开源软件平台、典型网络攻击平台和框架的公开资源也将成为网络威胁情报库构建时的重要来源.
(3) 溯源对抗措施将日益成熟和体系化, 溯源质量和可信度将受到影响
目前, 逃避溯源已经成为恶意软件攻击的一个重要考量因素.与此同时, 产业界中基于低维经验特征的溯源取证分析工作还将持续, 人工分析在相当一段时间内依然是溯源分析的主要手段.
在此背景下, 恶意软件作者和团队将投入更多精力在溯源对抗技术研发中, 基于现有溯源机制的溯源对抗方法、框架和体系将会得到不断成熟, 相应的溯源伪造、干扰工具和体系将被构建.这不仅可以去除、混淆甚至能够伪造溯源特征, 这将对今后恶意软件溯源分析报告的质量与可信度形成极大影响.
(4) 溯源痕迹伪造识别技术将成为恶意代码溯源工作的重要需求.
随着溯源痕迹伪造技术的不断应用, 现有的基于低维简单溯源特征的溯源分析手段将难以发挥应有的作用.如何有效识别溯源伪造样本, 排除溯源伪造样本形成的干扰, 成为产业界溯源工作不可回避的重要任务, 这也将成为学术界溯源分析研究的重要需求之一.
(5) 难以伪造的基于高层语义的溯源特征将被提出和构建.
细粒度的恶意软件行为刻画、代表攻击本质的恶意软件攻击意图重塑等, 将可能成为对抗伪造溯源痕迹的重要依据与突破点.
(6) 多维度的溯源特征智能化解析机制将被构建.
随着样本特征库信息量以及样本分析粒度的不断丰富, 对恶意代码的家族和来源认识将更加全面, 在样本细粒度分析与提取技术的不断提升下, 家族恶意代码特征智能化解析将成为发展趋势, 各类恶意软件溯源特征自动化分析平台将被构建, 进而可脱离对人工分析的过度依赖.而自动化解析机制的形成, 也将进一步推动溯源基础信息库的构建.
(7) 基于智能化的恶意软件自动化溯源定位机制将逐渐构建.
随着恶意软件家族聚类研究和溯源分析技术的不断推进, 以及恶意样本的溯源知识库的不断完善, 恶意代码、团队、作者溯源基因库将逐步构建和细化, 产业界与学术界将合作日益紧密.结合网络态势感知、数字画像技术、大数据分析、机器学习、深度学习等技术实现的攻击者自动化溯源定位机制将被构建和不断推动.
https://www.av-test.org/fileadmin/pdf/security_report/AV-TEST_Security_Report_2016-2017.pdf]]>
Feng Y, Anand S, Dillig I, Aiken A. Apposcopy: Semantics-based detection of android malware through static analysis. In: Proc. of the 22nd ACM SIGSOFT Int'l Symp. on Foundations of Software Engineering. ACM Press, 2014. 576-587.
Sharif M, Yegneswaran V, Saidi H, Porras P, Lee W. Eureka: A framework for enabling static malware analysis. European Symp. on Research in Computer Security. Berlin, Heidelberg: Springer-Verlag, 2008. 481-500.
Christodorescu M, Jha S, Kruegel C. Mining specifications of malicious behavior. In: Proc. of the 6th Joint Meeting of the European Software Engineering Conf. and the ACM SIGSOFT Symp. on the Foundations of Software Engineering (ESEC-FSE). 2007. 5-14.
Xue L, Zhou Y, Chen T, Luo X. Malton: Towards on-device non-invasive mobile malware analysis for ART. In: Proc. of the 26th USENIX Security Symp. (USENIX Security 2017). 2017. 289-306.
Willems C, Holz T, Freiling F. Toward automated dynamic malware analysis using cwsandbox. IEEE Security & Privacy, 2007, 5(2):32-39.
Cui Z, Xue F, Cai X, Cao Y, Wang G, Chen J. Detection of malicious code variants based on deep learning. IEEE Trans. on Industrial Informatics, 2018, 14(7):3187-3196.
Sundarkumar GG, Ravi V, Nwogu I, Govindaraju V. Malware detection via API calls, topic models and machine learning. In: Proc. of the 2015 IEEE Int'l Conf. on Automation Science and Engineering (CASE). 2015. 1212-1217.
Canfora G, Medvet E, Mercaldo F, Visaggio CA. Detecting android malware using sequences of system calls. In: Proc. of the 3rd Int'l Workshop on Software Development Lifecycle for Mobile. ACM Press, 2015. 13-20.
Li W, Ge J, Dai G. Detecting malware for android platform: An SVM-based approach. In: Proc. of the 2015 IEEE 2nd Int'l Conf. on Cyber Security and Cloud Computing (CSCloud). IEEE, 2015. 464-469.
Zhao K, Zhang D, Su X, Li W. Fest: A feature extraction and selection tool for Android malware detection. In: Proc. of the 2015 IEEE Symp. on Computers and Communication (ISCC). IEEE, 2015. 714-720.
Narudin FA, Feizollah A, Anuar NB, Gani A. Evaluation of machine learning classifiers for mobile malware detection. Soft Computing, 2016, 20(1):343-357.
Wang C, Qin Z, Zhang J, Yin H. A malware variants detection methodology with an opcode based feature method and a fast density based clustering algorithm. In: Proc. of the 201612th Int'l Conf. on Natural Computation, Fuzzy Systems and Knowledge Discovery (ICNC-FSKD). IEEE, 2016. 481-487.
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.
Avasarala BR, Day JC, Steiner D. System and method for automated machine-learning, zero-day malware detection. U.S. Patent 9, 292, 688, 2016.
Wu WC, Hung SH. DroidDolphin: A dynamic Android malware detection framework using big data and machine learning. In: Proc. of the 2014 Conf. on Research in Adaptive and Convergent Systems. Towson: ACM Press, 2014. 247-252.
https://bbs.pediy.com/thread-223596.htm]]>
https://bbs.pediy.com/thread-223596.htm]]>
https://blog.avast.com/ransomware-that-infected-telefonica-and-nhs-hospitals-isspreading-aggressively-with-over-50000-attacks-so-far-today]]>
FireEye. The Need for Speed:2013 Incident Response Survey. Information Security Media Group, 2013. 6-10.
Ahmadi M, Ulyanov D, Semenov S, Trofimov M, Giacinto G. Novel feature extraction, selection and fusion for effective malware family classification. In: Proc. of the 6th ACM Conf. on Data and Application Security and Privacy. Louisiana: ACM Press, 2016. 183-194.
Kinable J, Kostakis O. Malware classification based on call graph clustering. Journal of Computer Virology and Hacking Techniques, 2011, 7(4):233-245.
http://www.securelist.com/en/analysis/204792208/Stuxnet Duqu The Evolution of Drivers]]>
http://www.kaspersky.com/about/news/virus/2017/Resource_207_Kaspersky_Lab_Research_Proves_that_Stuxnet_and_Flame_Developers_are_Connected]]>
http://blogs.360.cn/blog/oceanlotus-apt/]]>
http://blogs.360.cn/blog/oceanlotus-apt/]]>
Kong DG, Tan XB, Xi HS, Gong T, Shuai JM. Obfuscated malware detection based on boosting multilevel features. Ruan Jian Xue Bao/Journal of Software, 2011, 22(3):522-533(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/3727.htm[doi:10.3724/SP.J.1001.2011.03727]
孔德光, 谭小彬, 奚宏生, 宫涛, 帅建梅.提升多维特征检测迷惑恶意代码.软件学报, 2010, 22(3):522-533. http://www.jos.org.cn/1000-9825/3727.htm[doi:10.3724/SP.J.1001.2011.03727]
Wood P, Nahorney B, Chandrasekar K, Wallace S, Haley K. Internet security threat report. Report, Symantec Corporation, 2014.
https://www.symantec.com/content/dam/symantec/docs/reports/mobile-threat-intelligence-report-2017-en.pdf]]>
Bencsáth B, Pék G, Buttyán L, Félegyházi M. Duqu:A stuxnet-like malware found in the wild. CrySyS Lab Technical Report, 2011. 10-14.
https://securelist.com/analysis/publications/36620/gauss-abnormal-distribution/]]>
Manku GS, Jain A, Sarma AD. Detecting near-duplicates for Web crawling. In: Proc. of the 16th Int'l Conf. on World Wide Web. Banff, 2007. 141-149.
Wang R, Feng DG, Yang Y, Su PR. Semantics-based malware behavior signature extraction and detection method. Ruan Jian Xue Bao/Journal of Software, 2012, 23(2):378-393(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/3953.htm[doi:10.3724/SP.J.1001.2012.03953]
王蕊, 冯登国, 杨轶, 苏璞睿.基于语义的恶意代码行为特征提取及检测方法.软件学报, 2012, 23(2):378-393. http://www.jos.org.cn/1000-9825/3953.htm[doi:10.3724/SP.J.1001.2012.03953]
Thompson GR, Flynn LA. Polymorphic malware detection and identification via context-free grammar homomorphism. Bell Labs Technical Journal, 2007, 12(3):139-147.
Cai Z, Yap RH. Inferring the detection logic and evaluating the effectiveness of android anti-virus apps. In: Proc. of the ACM Conf. on Data and Application Security and Privacy (CODASPY). 2016. 172-182.
Maiorca D, Ariu D, Corona I, Aresu M, Giacinto G. Stealth attacks:An extended insight into the obfuscation effects on Android malware. Computers & Security, 2015, 51:16-31.
Alam S, Qu Z, Riley R, Ryan R, Chen Y. DroidNative:Automating and optimizing detection of Android native code malware variants. Computers & Security, 2017, 65:230-246.
https://www.saikoa.com/dexguard]]>
https://www.saikoa.com/proguard]]>
Zheng M, Lee PP, Lui JC. Adam: An automatic and extensible platform to stress test android anti-virus systems. In: Proc. of the Detection of Intrusions and Malware, and Vulnerability Assessment. 2013. 82-101.
Rastogi V, Chen Y, Jiang X. Catch me if you can:Evaluating android anti-malware against transformation attacks. IEEE Trans. on Information Forensics and Security, 2014, 9(1):99-108.
Suarez-Tangil G, Tapiador JE, Peris-Lopez P. Stegomalware: Playing hide and seek with malicious components in smartphone apps. In: Proc. of the 10th Int'l Conf. on Information Security and Cryptology (Inscrypt). Springer-Verlag, 2014. 496-515.
Suarez-Tangil G, Dash SK, Ahmadi M, Kinder J, Giacinto G, Cavallaro L. DroidSieve: Fast and accurate classification of obfuscated Android malware. In: Proc. of the 7th ACM Conf. on Data and Application Security and Privacy. ACM Press, 2017. 309-320.
Suarez-Tangil G, Tapiador J, Lombardi F, Di Pietro R. Alterdroid:Differential fault analysis of obfuscated smartphone malware. IEEE Trans. on Mobile Computing, 2016, 15(4):789-802.
Suarez-Tangil G, Tapiador JE, Peris-Lopez P. Stegomalware: Playing hide and seek with malicious components in smartphone apps. In: Proc. of the 10th Int'l Conf. on Information Security and Cryptology (Inscrypt). Springer-Verlag, 2014. 496-515.
Cheng BL, Ming J, Fu JM, Peng GJ, Chen T, Zhang XS, Marion JY. Towards paving the way for large-scale windows malware analysis: Generic binary unpacking with orders-of-magnitude performance boost. In: Proc. of the 25th ACM Conf. on Computer and Communications Security. Toronto, 2018.
https://tools.pediy.com/]]>
Peng GJ, Fu JM, Liang Y. Software Security. Wuhan:Wuhan University Press, 2015. 262-264(in Chinese).
彭国军, 傅建明, 梁玉.软件安全.武汉:武汉大学出版社, 2015.262-264.
https://github.com/David-Reguera-Garcia-Dreg/anticuckoo]]>
https://www.blackhat.com/docs/asia-15/materials/asia-15-Chubachi-Slime-Automated-Anti-Sandboxing-Disarmament-System.pdf]]>
https://www.exploitdb.com/docs/34591.pdf]]>
Kang MG, Yin H, Hanna S, McCamant S, Dawn S. Emulating emulation-resistant malware. In: Proc. of the 1st ACM Workshop on Virtual Machine Security (VMSec). 2009.
Pék G, Bencsáth B, Buttyán L. nEther: In-guest detection of out-of-the-guest malware analyzers. In: Proc. of the 4th European Workshop on System Security. ACM Press, 2011.
Shi H, Alwabel A, Mirkovic J. Cardinal pill testing of system virtual machines. In: Proc. of the 23rd USENIX Security Symp. 2014. 271-285.
Wang G, Estrada ZJ, Pham C, Kalbarczyk Z, Iyer RK. Hypervisor introspection: A technique for evading passive virtual machine monitoring. In: Proc. of the 9th USENIX Workshop on Offensive Technologies. 2015.
Thanasis P, Giannis V, Elias A. Rage against the virtual machine: Hindering dynamic analysis of android malware. In: Proc. of the 7th European Workshop on System Security. ACM Press, 2014.
Shao SH, Gao Q, Ma S, Duan FY, Ma X, Zhang SK, Hu JH. Process in research on buffer overflow vulnerability analysis technologies. Ruan Jian Xue Bao/Journal of Software, 2018, 29(5):1179-1198(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/5504.htm[doi:10.13328/j.cnki.jos.005504]
邵思豪, 高庆, 马森, 段富尧, 马骁, 张世琨, 胡津华.缓冲区溢出漏洞分析技术研究进展.软件学报, 2018, 29(5):1179-1198. http://www.jos.org.cn/1000-9825/5504.htm[doi:10.13328/j.cnki.jos.005504]
https://www.fireeye.com/blog/threat-research/2017/08/apt28-targets-hospitality-sector.html]]>
https://mp.weixin.qq.com/s/nnrDVgH-mEzZ8cytaUEUVg]]>
https://mp.weixin.qq.com/s/nnrDVgH-mEzZ8cytaUEUVg]]>
https://mp.weixin.qq.com/s/Su3IFORhc55Py7oXOn32ng]]>
https://mp.weixin.qq.com/s/Su3IFORhc55Py7oXOn32ng]]>
Brückner M, Kanzow C, Scheffer T. Static prediction games for adversarial learning problems. Journal of Machine Learning Research, 2012, 13:2617-2654.
Laskov P. Practical evasion of a learning-based classifier: A case study. In: Proc. of the 2014 IEEE Symp. on Security and Privacy (SP). IEEE, 2014. 197-211.
Xu W, Qi Y, Evans D. Automatically evading classifiers. In: Proc. of the 2016 Network and Distributed Systems Symp. 2016. 1-15.
Dang H, Huang Y, Chang EC. Evading classifiers by morphing in the dark. In: Proc. of the 2017 ACM SIGSAC Conf. on Computer and Communications Security. ACM Press, 2017. 119-133.
https://securelist.com/an-overview-of-mobile-device-security/36059/]]>
Pan X, Wang X, Duan Y, Wang X, Yin H. Dark hazard: Learning-based, large-scale discovery of hidden sensitive operations in Android apps. In: Proc. of the ISOC Network and Distributed System Security Symp. (NDSS). 2017. 1-15.
Zhang M, Duan Y, Yin H, Zhao Z. Semantics-aware Android malware classification using weighted contextual API dependency graphs. In: Proc. of the 2014 ACM SIGSAC Conf. on Computer and Communications Security. ACM Press, 2014. 1105-1116.
Elish KO, Shu X, Yao DD, Ryder BG, Jiang X. Profiling user-trigger dependence for Android malware detection. Computers & Security, 2015, 49:255-273.
Yang W, Xiao X, Andow B, Li S, Xie T, Enck W. Appcontext: Differentiating malicious and benign mobile app behaviors using context. In: Proc. of the 37th IEEE/ACM Int'l Conf. on Software Engineering, Vol.1. IEEE, 2015. 303-313.
Chen KZ, Johnson N, D'Silva V, Dai S, MacNamara K, Magrino T, Wu EX, Rinard M, Song D. Contextual policy enforcement in Android applications with permission event graphs. In: Proc. of the 20th Annual Network and Distributed System Security Symp. (NDSS 2013). 2013.
Fratantonio Y, Bianchi A, Robertson W, Kirda E, Kruegel C, Vigna G. Triggerscope: Towards detecting logic bombs in Android applications. In: Proc. of the IEEE Symp. on Security and Privacy. 2016. 377-396.
Wang H, Guo Y, Ma Z, Chen X. Wukong: A scalable and accurate two-phase approach to Android app clone detection. In: Proc. of the 2015 Int'l Symp. on Software Testing and Analysis ACM Press, 2015. 71-82.
Reina A, Fattori A, Cavallaro L. A system call-centric analysis and stimulation technique to automatically reconstruct Android malware behaviors. In: Proc. of the EuroSec. 2013.
Octeau D, McDaniel P, Jha S, Bartel A, Bodden E, Klein J, Le Traon Y. Effective inter-component communication mapping in Android: An essential step towards holistic security analysis. In: Proc. of the Presented as Part of the 22nd USENIX Security Symp. (USENIX Security 2013). 2013. 543-558.
Kirat D, Vigna G. Malgene: Automatic extraction of malware analysis evasion signature. In: Proc. of the 22nd ACM SIGSAC Conf. on Computer and Communications Security. ACM Press, 2015. 769-780.
Lindorfer M, Kolbitsch C, Comparetti PM. Detecting environment sensitive malware. In: Proc. of the Int'l Workshop on Recent Advances in Intrusion Detection. Springer-Verlag, 2011. 338-357.
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 (SP). IEEE, 2010. 45-60.
Kwon I, Im EG. Extracting the representative API call patterns of malware families using recurrent neural network. In: Proc. of the Int'l Conf. on Research in Adaptive and Convergent Systems. ACM Press, 2017. 202-207.
Kolbitsch C, Comparetti PM, Kruegel C, Kirda E, Zhou X, Wang X. Effective and efficient malware detection at the end host. In: Proc. of the 18th Conf. on USENIX Security Symp. 2009. 351-366.
Ding Y, Xia X, Chen S, Li Y. A malware detection method based on family behavior graph. Computers & Security, 2018, 73:73-86.
Cho I, Kim T, Shim Y, Park H, Choi B, Im E. Malware similarity analysis using API sequence alignments. Journal of Internet Services and Information Security, 2014, 4(4):103-114.
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.
https://archive.org/details/vxheaven-windows-virus-collection]]>
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.
Nguyen MH, Nguyen DL, Nguyen XM, Quan TT. Auto-detection of sophisticated malware using lazy-blinding control flow graph and deep learning. Computer & Security, 2018, 76:128-155.
Fan M, Liu J, Luo X, Chen K, Tian Z, Zheng Q, Liu T. Android malware familial classification and representative sample selection via frequent subgraph analysis. IEEE Trans. on Information Forensics and Security, 2018, 13(8):1890-1905.
Ojah L, Pathak A, Medhi S. SMS monitoring system for detecting premium SMS malware in smart phone. Int'l Journal, 2016, 5(5):56-59.
Marastoni N, Continella A, Quarta D, Zanero S, Preda MD. GroupDroid: Automatically grouping mobile malware by extracting code similarities. In: Proc. of the 7th Software Security, Protection, and Reverse Engineering/Software Security and Protection Workshop. ACM Press, 2017.
Lee J, Lee S, Lee H. Screening smartphone applications using malware family signatures. Computers & Security, 2015, 52:234-249.
Walenstein A, Lakhotia A. A transformation-based model of malware derivation. In: Proc. of the 20127th Int'l Conf. on Malicious and Unwanted Software (MALWARE). 2012. 17-25.
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.
Fan M, Liu J, Luo X, Chen K, Tian Z, Zhang X, Zheng Q, Liu T. Frequent subgraph based familial classification of android malware. In: Proc. of the 2016 IEEE 27th Int'l Symp. on Software Reliability Engineering (ISSRE). IEEE, 2016. 24-35.
Qian YC, Peng GJ, Wang Y, Liang Y. Homology analysis of malicious code and family clustering. Computer Engineering and Applications, 2015, 51(18):76-81(in Chinese with English abstract).
钱雨村, 彭国军, 王滢, 梁玉.恶意代码同源性分析及家族聚类.计算机工程与应用, 2015, 51(18):76-81.
Krsul I, Spafford EH. Authorship analysis:Identitying the author of a program. Computer & Security, 1997, 16(3):233-257.
MacDonell SG, Gray AR, MacLennan G, MacLennan G, Sallis PJ. Software forensics for discriminating between program authors using case-based reasoning, feedforward neural networks and multiple discriminant analysis. In: Proc. of the 6th Int'l Conf. on Neural Information Processing (ICONIP'99). IEEE, 1999. 66-71.
Lange RC, Mancoridis S. Using code metric histograms and genetic algorithms to perform author identification for software forensics. In: Proc. of the Annual Conf. on Genetic and Evolutionary Computation. ACM Press, 2007.
Kothari J, Shevertalov M, Stehle E, Mancoridis S. A probabilistic approach to source code authorship identification. In: Proc. of the Information Technology (ITNG 2007). IEEE, 2007.
Burrows S, Uitdenbogerd AL, Turpin A. Application of information retrieval techniques for source code authorship attribution. In: Proc. of the Int'l Conf. on Database Systems for Advanced Applications. Berlin, Heidelberg: Springer-Verlag, 2009. 699-713.
Chen R, Hong L, Lu C, Deng W. Author identification of software source code with program dependence graphs. In: Proc. of the 201034th IEEE Annual Computer Software and Applications Conf. Workshops (COMPSACW). IEEE, 2010. 281-286.
Caliskan-Islam A, Harang R, Liu A, Voss C, Narayanan A, Greenstadt R. De-anonymizing programmers via code stylometry. In: Proc. of the 24th USENIX Security Symp. (USENIX Security). Washington, 2015. 254-270.
Alrabaee S, Shirani P, Debbabi M, Wang L. On the feasibility of malware authorship attribution. In: Proc. of the Int'l Symp. on Foundations and Practice of Security. Cham: Springer-Verlag, 2016. 256-272.
Qiao YC, Yun XC, TUO YP, Zhang YZ. Fast reused code tracing method based on simhash and inverted index. Journal on Communications, 2016, 37(11):104-113(in Chinese with English abstract).
乔延臣, 云晓春, 庹宇鹏, 张永铮.基于simhash与倒排索引的复用代码快速溯源方法.通信学报, 2016, 37(11):104-113.
Rosenblum N, Zhu X, Miller BP. Who wrote this code? Identifying the authors of program binaries. In: Proc. of the European Symp. on Research in Computer Security. Berlin, Heidelberg: Springer-Verlag, 2011. 172-189.
Caliskan A, Yamaguchi F, Dauber E, Harang R, Rieck K, Greenstadt K, Narayanan A. When coding style survives compilation: De-anonymizing programmers from executables binaries. In: Proc. of the Network and Distributed Systems Security (NDSS) Symp. 2018. 1-15.
https://blog.trendmicro.com/trendlabs-security-intelligence/confucius-update-new-tools-and-techniques-further-connections-with-patchwork/]]>
https://www.lastline.com/blog/history-of-malware-its-evolution-and-impact/]]>
https://www.csoonline.com/article/3233210/ransomware/petya-ransomware-and-notpetya-malware-what-you-need-to-know-now.html]]>
http://techgenix.com/cerber-ransomware/]]>
Gandotra E, Bansal D, Sofat S. Malware analysis and classification:A survey. Journal of Information Security, 2014, 5(2):56-64.
https://www.threatprotectworks.com/Next-Generation-Threats.asp]]>
You I, Yim K. Malware obfuscation techniques: A brief survey. In: Proc. of the Int'l Conf. on Broadband, Wireless Computing, Communication and Applications. Fukuoka, 2010. 297-300.
Rafique MZ, Chen P, Huygens C, Joosen W. Evolutionary algorithms for classification of malware families through different network behaviors. In: Proc. of the 2014 Annual Conf. on Genetic and Evolutionary Computation. ACM Press, 2014. 1167-1174.
http://www.symantec.com/connect/blogs/future-mobile-malware]]>
Zuo LM, Liu EG, Xu BG, Tang PZ. The malicious code tribal grouping tribal group collects especially with analysis technology. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2010, 38(4):46-49(in Chinese with English abstract).
左黎明, 刘二根, 徐保根, 汤鹏志.恶意代码族群特征提取与分析技术.华中科技大学学报(自然科学版), 2010, 38(4):46-49.
Prowell SJ, Sayre KD, Awad RL. Automatic clustering of malware variants based on structured control flow: U.S. Patent Application 15/172, 884, 2016.
Han XG, Qu W, Yao XX, Guo CY, Zhou F. Studies based on the texture fingerprint malicious code variety examination (method). Journal on Communications, 2017, 35(8):125-136(in Chinese with English abstract).
韩晓光, 曲武, 姚宣霞, 郭长友, 周芳.基于纹理指纹的恶意代码变种检测方法研究.通信学报, 2017, 35(8):125-136.
Li Y, Zuo ZH. An overview of object-code obfuscation technologies. Journal of Computer Technology and Development, 2007, 17(4):125-127.
http://www.lurhq.com/sobig.html/]]>
Hayes M, Walenstein A Lakhotia A. Evaluation of malware phylogeny modelling systems using automated variant generation. Journal in Computer Virology, 2009, 5(4):335-343.
Khoo WM, Lio P. Unity in diversity: Phylogenetic-inspired techniques for reverse engineering and detection of malware families. In: Proc. of the 20111st SysSec Workshop (SysSec). IEEE, 2011. 3-10.
https://securelist.com/analysis/36059/an-overview-of-mobiledevice-security/]]>
Suarez-Tangil G, Stringhini G. Eight years of rider measurement in the Android malware ecosystem: Evolution and lessons learned. arXiv preprint arXiv: 1801.08115, 2018.
Argus Cyber Security Lab. Android malware evolution (2010-2016). 2018.
https://www.mcafee.com/enterprise/en-us/assets/reports/rp-mobile-threat-report-2018.pdf]]>
Suarez-Tangil G, Tapiador JE, Peris-Lopez P, Ribagorda A. Evolution, detection and analysis of malware for smart devices. IEEE Communications Surveys & Tutorials, 2014, 16(2):961-987.
Fan M, Liu J, Wang W, Li H, Tian Z, Liu T. Dapasa:Detecting Android piggybacked apps through sensitive subgraph analysis. IEEE Trans. on Information Forensics and Security, 2017, 12(8):1772-1785.
Wood P, Nahorney B, Chandrasekar K, Wallace S, Haley K. Internet security threat report. Report, Volume 19, Symantec Corporation, 2014.
Wermke D, Huaman N, Acar Y, Reaves B, Traynor P, Fahl S. A large scale investigation of obfuscation use in google play. arXiv preprint arXiv: 1801.02742, 2018.
Faruki P, Fereidooni H, Laxmi V, Conti M, Gaur M. Android code protection via obfuscation techniques: Past, present and future directions. arXiv preprint arXiv: 1611.10231, 2016.
Karim ME, Walenstein A, Lakhotia A, Parida L. Malware phylogeny generation using permutations of code. 2005, 1(1-2): 13-23.
Fang Y, Yu B, Tang Y, Liu L, Lu Z, Wang Y. A new malware classification approach based on malware dynamic analysis. In: Proc. of the Australasian Conf. on Information Security and Privacy. Cham: Springer-Verlag, 2017. 173-189.
Cimitile A, Mercaldo F, Martinelli F, Nardone V, Santone A, Vaglini G. Model checking for mobile android malware evolution. In: Proc. of the 5th Int'l FME Workshop on Formal Methods in Software Engineering. IEEE Press, 2017. 24-30.
Mercaldo F, Nardone V, Santone A, Visaggio CA. Download malware? No, thanks. How formal methods can block update attacks. In: Proc. of the 2016 IEEE/ACM 4th FME Workshop on Formal Methods in Software Engineering (FormaliSE). IEEE, 2016. 22-28.
Canfora G, Medvet E, Mercaldo F, Visaggio CA. Detecting Android malware using sequences of system calls. In: Proc. of the 3rd Int'l Workshop on Software Development Lifecycle for Mobile (DeMobile 2015). New York: ACM Press, 2015. 13-20.
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).
赵炳麟, 孟曦, 韩金, 王婧, 刘福东.基于图结构的恶意代码同源性分析.通信学报, 2017, 38(Z2):86-93.
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(in Chinese with English abstract).
葛雨玮, 康绯, 彭小详.基于动态BP神经网络的恶意代码同源性分析.小型微型计算机系统, 2016, 37(11):2527-2531.
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.
Kolter JZ, Maloof MA. Learning to detect and classify malicious executables in the wild. Journal of Machine Learning Research, 2006, 7:2721-2744.
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.
Marko D, Atzeni S, Ugrina L, Rakamaric Z. Evaluation of Android malware detection based on system calls. In: Proc. of the ACM on Int'l Workshop on Security and Privacy Analytics (IWSPA). New Orlean, 2016. 1-8.
Xiao X, Wang Z, Li Q, Xia S, Jiang Y. Back-propagation neural network on Markov chains from system call sequences: A new approach for detecting android malware with system call sequences. In: Proc. of the IET Information Security. 2017. 8-15.
Qiao YC, Yun XC, Zhang YZ, Li SH. Based on transfer custom malicious code automation homology determination method. Acta Electronica Sinica, 2016, 44(10):2410-2414(in Chinese with English abstract).
乔延臣, 云晓春, 张永铮, 李书豪.基于调用习惯的恶意代码自动化同源判定方法.电子学报, 2016, 44(10):2410-2414.
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.
Zhou H, Zhang W, Wei F, Chen Y. Analysis of Android malware family characteristic based on isomorphism of sensitive API call graph. In: Proc. of the 20172nd IEEE Int'l Conf. on Data Science in Cyberspace (DSC). IEEE, 2017. 319-327.
Alam S, Riley R, Sogukpinar I, Carkaci N. Droidclone: Detecting android malware variants by exposing code clones. In: Proc. of the 20166th Int'l Conf. on Digital Information and Communication Technology and its Applications (DICTAP). IEEE, 2016. 79-84.
Alam S, Horspool RN, Traore I. MAIL: Malware analysis intermediate language-A step towards automating and optimizing malware detection. In: Proc. of the SIN. ACM SIGSAC, 2013. 233-240.
Aho AV, Lam MS, Sethi R, Ullman JD. Compilers:Principles, Techniques, and Tools. 2nd ed., Boston:Addison-Wesley Longman Publishing Co., Inc., 2006.
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.
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.
Chan PPK, Song WK. Static detection of Android malware by using permissions and API calls. In: Proc. of the 2014 Int'l Conf. on Machine Learning and Cybernetics (ICMLC). IEEE, 2014. 82-87.
Zhu J, Guan Z, Yang Y, Yu L, Sun H, Chen Z. Permission-Based abnormal application detection for Android. In: Proc. of the Information and Communications Security. Springer-Verlag, 2012. 228-239.
Faruki P, Laxmi V, Bharmal A, Gaur MS, Ganmoor V. AndroSimilar:Robust signature for detecting variants of Android malware. Journal of Information Security and Applications, 2015, 22:66-80.
Liu X, Liu J, Wang W. Exploring sensor usage behaviors of Android applications based on data flow analysis. In: Proc. of the 201534th IEEE Int'l Performance Computing and Communications Conf. (IPCCC). IEEE, 2015. 1-8.
Arp D, Spreitzenbarth M, Hubner M, Gascon H, Rieck K. DREBIN: Effective and explainable detection of Android malware in your pocket. In: Proc. of the 21th Annual Network and Distributed System Security Symp. (NDSS). 2014. 23-26.
Roussev V. Building a better similarity trap with statistically improbable features. In: Proc. of the 200942nd Hawaii Int'l Conf. on System Sciences (HICSS 2009). IEEE, 2009. 1-10.
Wang C, Qin Z, Zhang J, Yin H. A malware variants detection methodology with an opcode based feature method and a fast density based clustering algorithm. In: Proc. of the 201612th Int'l Conf. on Natural Computation, Fuzzy Systems and Knowledge Discovery (ICNC-FSKD). IEEE, 2016. 481-487.
Wu L, Ping R, Ke L, Hai D. Behavior-Based malware analysis and detection. In: Proc. of the 20111st Int'l Workshop on Complexity and Data Mining (IWCDM). New York: IEEE, 2011. 39-42.
Santos I, Penya YK, Devesa J, Bingas PG. N-grams-based file signatures for malware detection. In: Proc. of the 2009 Int'l Conf. on Enterprise Information Systems (ICEIS), Volume AIDSS. 2009. 317-320.
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.
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.
Dahl GE, Stokes JW, Deng L, Yu D. Large-scale malware classification using random projections and neural networks. In: Proc. of the 2013 IEEE Int'l Conf. on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2013. 3422-3426.
Fang Y, Yu B, Tang Y, Liu L, Lu Z, Wang Y. A new malware classification approach based on malware dynamic analysis. In: Proc. of the Australasian Conf. on Information Security and Privacy. Cham: Springer-Verlag, 2017. 173-189.
Aoyama H. On the chi-square test for weighted samples. Annals of the Institute of Statistical Mathematics, 1953, 5(1):25-28.
Cesare S, Xiang Y, Member S. Control flow-based malware variant detection. IEEE Trans. on Dependable Secure Computing, 2014, 11(4):304-317.
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.
Hanna S, Huang L, Wu E, Li S, Chen C, Song D. Juxtapp: A scalable system for detecting code reuse among Android applications. In: Proc. of the 9th Conf. on Detection of Intrusions and Malware & Vulnerability Assessment. 2012.
Allix KFT, Jerome BQ, Klein J, State R, Traon YL. Empirical assessment of machine learning-based malware detectors for Android. Empir Software Engineering, 2016, 21:183-211.
http://phrack.org/issues/68/1.html]]>
Xu Z, Ren K, Qin S, Craciun F. CDGDroid: Android malware detection based on deep learning using CFG and DFG. In: Proc. of the Int'l Conf. on Formal Engineering Methods. Cham: Springer-Verlag, 2018. 177-193.
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.
Yang W, Li J, Zhang Y, Li Y, Shu J, Gu D. APKLancet: Tumor payload diagnosis and purification for Android applications. In: Proc. of the 9th ACM Symp. on Information, Computer and Communications Security. ACM Press, 2014. 483-494.
Karbab EMB, Debbabi M, Mouheb D. Fingerprinting Android packaging:Generating DNAs for malware detection. Digital Investigation, 2016, 18:S33-S45.
Cesare S, Xiang Y, Zhou W. Control flow-based malware variant detection. IEEE Trans. on Dependable and Secure Computing, 2014, 11(4):307-317.
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.
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.
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.
Xu XL, Yun XC, Zhou YL, Kang XB. Online analytical model of massive malware based on feature clusting. Journal on Communications, 2013, 34(8):146-153(in Chinese with English abstract).
徐小琳, 云晓春, 周勇林, 康学斌.基于特征聚类的海量恶意代码在线自动分析模型.通信学报, 2013, 34(8):146-153.
https://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/rpt-malware-supply-chain.pdf]]>
https://mp.weixin.qq.com/s/XGZGaylS1B84v-NWaevLEw]]>
https://mp.weixin.qq.com/s/XGZGaylS1B84v-NWaevLEw]]>
https://www.mandiant.com/blog/tracking-malware-import-hashing]]>
https://www.crysys.hu/publications/files/bencsathPBF11duqu.pdf]]>
https://securingtomorrow.mcafee.com/mcafee-labs/android-malware-appears-linked-to-lazarus-cybercrime-group/]]>
http://blog.nsfocus.net/trace-source/]]>
http://blog.nsfocus.net/trace-source/]]>
http://www.freebuf.com/news/92945.html]]>
http://www.freebuf.com/news/92945.html]]>
https://www.anquanke.com/post/id/147591]]>
https://www.anquanke.com/post/id/147591]]>
https://www.anquanke.com/post/id/101722]]>
https://www.anquanke.com/post/id/101722]]>
https://www.fireeye.com/blog/threat-research/2017/01/apt28_at_the_center.html]]>
http://www.360doc.com/content/18/0227/06/43535834_732761511.shtml]]>
http://www.freebuf.com/articles/terminal/137015.html]]>
Peng GJ, Wang TG, et al. Unknown Trojan Detection System Based on Host Behavior Perception.[referred to as: XDetector]v1.0.[Registration number: 2014SR113893], China, 2014(in Chinese).
彭国军, 王泰格, 等.基于主机行为感知的未知木马检测系统[简称: XDetector]v1.0[登记号: 2014SR113893], 中国, 2014.
Liang Y, Fu JM, Peng GJ, Peng BC. S-tracker:Shellcode detection method based on stack anomaly. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2014, 42(11):39-46(in Chinese with English abstract).
梁玉, 傅建明, 彭国军, 彭碧琛.S-Tracker:基于栈异常的shellcode检测方法.华中科技大学学报(自然科学版), 2014, 42(11):39-46.
Sha LT, Fu JM, Chen J, Huang SY. A sensitivity measurement for sensitive information processing. Journal of Computer Research and Development, 2014, 51(5):1050-1060(in Chinese with English abstract).
沙乐天, 傅建明, 陈晶, 黄诗勇.一种面向敏感信息处理的敏感度度量方法.计算机研究与发展, 2014, 51(5):1050-1060.
Fu JM, Sha LT, Li PW, Peng GJ. Kernel data active protection method using hardware virtualization. Journal of Sichuan University (Enigineering Science Edition), 2014, 46(1):8-13(in Chinese with English abstract).
傅建明, 沙乐天, 李鹏伟, 彭国军.一种采用硬件虚拟化的内核数据主动保护方法.四川大学学报(工程科学版), 2014, 46(1):8-13.
Cheng BL, Ming J, Fu JM, Peng GJ, Chen T, Zhang XS, Marion JY. Towards paving the way for large-scale windows malware analysis: Generic binary unpacking with orders-of-magnitude performance boost. In: Proc. of the 25th ACM Conf. on Computer and Communications Security. Toronto, 2018.
Lin YD, Lai YC, Chen CH, Tsai HC. Identifying Android malicious repackaged applications by thread-grained system call sequences. Computers and Security, 2013, 39:340-350.
Yang C, Xu Z, Gu G, Yegneswaran V, Porras P. Droidminer: Automated mining and characterization of fine-grained malicious behaviors in Android applications. In: Proc. of the Computer Security (ESORICS 2014). Springer-Verlag, 2014. 163-182.
Chen K, Wang P, Lee Y, et al. Finding unknown malice in 10 seconds: Mass vetting for new threats at the Google-play scale. In: Proc. of the USENIX Security Symp. 2015. 658-674.
https://securelist.com/dvmap-the-first-android-malware-with-code-injection/78648/2017.8]]>
https://www.trendmicro.com/vinfo/us/threat-encyclopedia/malware/js_powmet.de]]>
Peng GJ, Tao F. Malicious Code Forensics. Beijing:Science Press, 2009(in Chinese).
彭国军, 陶芬.恶意代码取证.北京:科学出版社, 2009.
Fu JM, Peng GJ, Zhang HG. Computer Virus Analysis and Confrontation. 2nd ed., Wuhan:Wuhan University Press, 2009(in Chinese).
傅建明, 彭国军, 张焕国.计算机病毒分析与对抗.第2版, 武汉:武汉大学出版社, 2009.
Qiao YC, Yun XC, Zhang YZ. Fast reused function retrieval method based on simhash and inverted index. In: Proc. of the 2016 IEEE Trustcom/BigDataSE/I SPA. IEEE, 2016. 937-944.