恶意代码及其特征
恶意代码(Malicious Code),又称为恶意软件(Malicious Software,Malware),通常是指 经由存储介质和网络传播,安装或者运行在机器上的各种病毒或攻击软件。恶意代码的类型很多,可以大致分为
病毒(Computer Virus)、蠕虫(Worm)、木马(Trojan)、间谍软件(Spyware)、可执行的僵尸(Bot)程序、恶意脚本(Malicious Script)、流氓软件(Malware)、逻辑炸弹(Logic Bomb)、后门(Backdoor)、网络钓鱼(Phishing)。
病毒
计算机病毒是指编制者在计算机程序中插入的破坏计算机功能或者数据的代码,会影响计算机使用,能自我复制的一组计算机指令或者程序代码。
病毒作为传统的恶意代码形式,有广义与狭义之分。通常将能够自我复制的恶意代码统称为病毒,产业界尤其如此,这些病毒就是广义病毒,包括病毒、蠕虫和僵尸程序等。而狭义病毒的概念常用于学术界,通常是指同时具有寄生和感染特性的恶意代码。
通常认为,计算机病毒具有传染性、非授权可执行性、隐蔽性、潜伏性、可触发性以及破坏性等本质特征。
蠕虫
蠕虫是一种利用系统漏洞通过网络进行自我传播的恶意程序,为广义病毒。在 RFC1135 中,蠕虫被定义为“一段独立运行的程序,通过消耗宿主的资源来维护自身,并能够向其他机器传播自身的完全工作版本”。由此,可以得出识别病毒的 3 个显著特征:自我复制,独立自动运行,消耗系统资源。蠕虫通过嵌入到其他程序或者利用系统漏洞等方式来传播和运行,不需人工交互。
木马
木马得名于古希腊神话(荷马史诗中木马计)。木马不同于传统病毒,它没有自我复制功能,也无法“刻意”感染其他文件,主要是将自身伪装吸引用户下载执行,向木马植入者提供打开该用户主机的门户,以便实施攻击。
木马的本质是一个远程控制程序的服务端,但被写得非常小且隐蔽。一旦木马服务器端运行并被控制端连接,其控制端将获取服务端的多数操作权限,如添加密码、操作文件、修改注册表、更改系统配置等,实现对控制端驻留主机的远程操控。
间谍软件
间谍软件是一类特殊的恶意代码,能够在用户不知情或未经用户准许的情况下搜集、使用、散播用户的个人数据或敏感信息。
间谍软件包括广告软件、色情软件、风险软件程序以及部分以信息搜集为目的的木马程序,如后门木马(Backdoor Trojans)、木马代理(Trojan Proxies)等。广告软件是以恶意后门程序的形式存在,能够实现打开端口、启动 FTP 服务器或者搜集击键信息并将信息反馈给攻击者等功能。
僵尸程序
僵尸程序(Robot,Bot)有时被译为机器人程序,是指实现恶意控制功能的程序代码,能够自动执行预定义的功能,并可以被预定义的命令控制。
其实 Robot 程序本身不一定是恶意的,但多被用于恶意为目的。当前,大多数 Bot 使用互联网中继聊天(Internet Relay Chat,IRC)协议来实现通信和控制,因此称为 IRC Bot。大量主机感染僵尸程序后,在控制者和众多被感染主机之间形成一对多的被控制网络,称为僵尸网络(Botnet)。僵尸网络中实现与各 IRC Bot 连接的服务器称为命令和控制服务器(Command & Control Server,C&CS),控制者就是通过该服务器发送命令来实现控制。
恶意代码的传播机制
恶意代码可以通过多种载体来实现传播,而且恶意软件也不针对特定的操作系统和设备类型。
感染都是利用安全漏洞来实现的。

恶意代码的检测和防范流程

恶意代码的检测和防范遇到的挑战
恶意代码自身的加密和压缩(如加壳)、僵尸网络的指挥控制通道加密、快通量 DNS。
电子邮件和网页防御不足,难以识别安全控件和流氓软件的注入,同时在大数据时代更易遭受社交工程法等攻击。
虚拟机逃逸,缺乏硬件/软件堆栈下层的可信平台模块。
遏制技术不足,无法有效容忍恶意软件或提供安全沙箱。
修复困难,应采用相应技术手段达到类似瘦客户端的自动修复效果。

