(一)什么是恶意代码
(二)恶意代码的传播方式和防范工具
(三)关于恶意代码的同源分析技术
01
什么是恶意代码
恶意代码(malicious code)又称为恶意软件(malicious software,Malware),是能够在计算机系统中进行非授权操作的代码。
02
恶意代码的分类
分类恶意代码的标准主要是代码的独立性和自我复制性,独立的恶意代码是指具备一个完整程序所应该具有的全部功能,能够独立传播、运行的恶意代码,这样的恶意代码不需要寄宿在另一个程序中。
非独立恶意代码只是一段代码,必须嵌入某个完整的程序中,作为该程序的一个组成部分进行传播和运行。对于非独立恶意代码,自我复制过程就是将自身嵌入宿主程序的过程,这个过程也称为感染宿主程序的过程。
对于独立恶意代码,自我复制过程就是将自身传播给其他系统的过程。不具有自我复制能力的恶意代码必须借助其他媒介进行传播。
恶意代码类型多种多样,包括计算机病毒、蠕虫、木马程序、后门程序、逻辑炸弹等。每一类恶意代码往往会在以下三个方面存在相似性。
(1)关键代码段
指为了实现某一恶意功能,同源恶意代码在关键代码片段(如DLL注入、RPC服务)具有相似性,这些相似代码片段也被称为基因码。
(2)系统函数调用
恶意行为的操作通常依赖对操作系统函数的调用,同源恶意代码调用的函数名称、频次、顺序等可能存在类似。
(3)功能行为
每一类恶意代码都有针对性的破坏行为,如勒索软件会读写用户数据、远程控制木马会查看屏幕或摄像头,功能行为的相似性反映在文件、进程、网络及注册表等方面。
03
恶意代码的防范
为了确保系统的安全与畅通,已有多种恶意代码的防范技术,如恶意代码分析技术、误用检测技术、权限控制技术和完整性技术等。
(一)、恶意代码分析技术
恶意代码分析是一个多步过程,他深入研究恶意软件结构和功能,有利于对抗措施的发展。按照分析过程中恶意代码的执行状态可以把恶意代码分析技术分成静态分析技术和动态分析技术两大类。
(1).静态分析技术
静态分析技术就是在不执行二进制程序的条件下,利用分析工具对恶意代码的静态特征和功能模块进行分析的技术。该技术不仅可以找到恶意代码的特征字符串、特征代码段等,而且可以得到恶意代码的功能模块和各个功能模块的流程图。
(2).动态分析技术
动态分析技术是指恶意代码执行的情况下,利用程序调试工具对恶意代码实施跟踪和观察,确定恶意代码的工作过程,对静态分析结果进行验证。
(二)、误用检测技术
误用检测也被称为基于特征字的检测,这是目前检测恶意代码最常用的技术,主要源于模式匹配的思想。
其检测过程中根据恶意代码的执行状态又分为静态检测和动态检测:A、静态检测是指脱机对计算机上存储的所有代码进行扫描;B、动态检测则是指实时对到达计算机的所有数据进行检查扫描,并在程序运行过程中对内存中的代码进行扫描检测。
关于恶意代码的同源分析(Homology Analysis)
指通过恶意代码内外部特性以及生成和传播的规律,分析恶意代码之间衍生的关联性。
同源关系有很多种,包括:家族同源、开发者同源、类型同源或者攻击源同源等。但传统的检测技术如黑白名单、特征码匹配等,已无法对恶意代码的变种进行有效检测。
背靠国防科大、清华大学、中科院等高校团队多年技术深耕结果,泛联新安的BinSearch产品团队初步实现基于函数级特征、基于文件级特征、基于大数据机器学习的二进制同源分析混合协同引擎技术,并已成功应用于二进制代码大规模同源分析平台BinSearch产品,它可以帮助检测、预警恶意代码,制定应急响应方案以及预测事件发展趋势。