(Trojan Horse)、逻辑炸弹(Logic Bombs)、病菌(Bacteria)、用户级RootKit、核心级RootKit、脚本恶意代码(Malicious Scripts)和恶意ActiveX 控件。
4. 说明恶意代码的作用机制的6个方面,并图示恶意代码攻击模型。
答:
恶意代码的整个作用过程分为6个部分:
①侵入系统。侵入系统是恶意代码实现其恶意目的的必要条件。恶意代码入侵的途径很多,如:从互联网下载的程序本身就可能含有恶意代码;接收已经感染恶意代码的电子邮件;从光盘或软盘往系统上安装软件;黑客或者攻击者故意将恶意代码植入系统等。
②维持或提升现有特权。恶意代码的传播与破坏必须盗用用户或者进程的合法权限才能完成。
③隐蔽策略。为了不让系统发现恶意代码已经侵入系统,恶意代码可能会改名、删除源文件或者修改系统的安全策略来隐藏自己。
④潜伏。恶意代码侵入系统后,等待一定的条件,并具有足够的权限时,就发作并进行破坏活动。
⑤破坏。恶意代码的本质具有破坏性,其目的是造成信息丢失、泄密,破坏系统完整性等。
⑥重复①至⑤对新的目标实施攻击过程。恶意代码的攻击模型如下图所示。
5. 简述恶意代码的生存技术是如何实现的。
答:
恶意代码生存技术通过以下4个方面实现:反跟踪技术、加密技术、模糊变换技术和自动生产技术。
第一,反跟踪技术。恶意代码采用反跟踪技术可以提高自身的伪装能力和防破译能力,增加检测与清除恶意代码的难度。目前常用的反跟踪技术有两类:反动态跟踪技术和反静态分析技术。
第二,加密技术。加密技术是恶意代码自我保护的一种手段,加密技术和反跟踪技术的配合使用,使得分析者无法正常调试和阅读恶意代码,不知道恶意代码的工作原理,也无法抽取特征串。从加密的内容上划分,加密手段分为信息加密、数据加密和程序代码加密三种。
第三,模糊变换技术。利用模糊变换技术,恶意代码每感染一个客体对象时,潜入宿主程序的代码互不相同。同一种恶意代码具有多个不同样本,几乎没有稳定代码,采用基于特征的检测工具一般不能识别它们。随着这类恶意代码的增多,不但使得病毒检测和防御软件的编写变得更加困难,而且还会增加反病毒软件的误报率。
第四,自动生产技术。恶意代码自动生产技术是针对人工分析技术的。“计算机病毒生成器”,使对计算机病毒一无所知的用户,也能组合出算法不同、功能各异的计算机病毒。“多态性发生器”可将普通病毒编译成复杂多变的多态性病毒。多态变换引擎可以使程序代码本身发生变化,并保持原有功能。
6. 简述恶意代码如何实现攻击技术。
答:
恶意代码通过以下几种技术实现攻击技术:进程注入技术、三线程技术、端口复用技术、超级管理技术、端口反向连接技术和缓冲区溢出攻击技术。
第一,进程注入技术。当前操作系统中都有系统服务和网络服务,它们都在系统启动时自动加载。进程注入技术就是将这些与服务相关的可执行代码作为载体,恶意代码程序将自身嵌入到这些可执行代码之中,实现自身隐藏和启动的目的。
第二,三线程技术。在Windows 操作系统中引入了线程的概念,一个进程可以同时拥有多个并发线程。三线程技术就是指一个恶意代码进程同时开启了三个线程,其中一个为主线程,负责远程控制的工作。另外两个辅助线程是监视线程和守护线程,监视线程负责检查恶意代码程序是否被删除或被停止自启动。
第三,端口利用技术。端口复用技术,系指重复利用系统网络打开的端口(如25、80、135和139等常用端口)传送数据,这样既可以欺骗防火墙,又可以少开新端口。端口复用是在保证端口默认服务正常工作的条件下复用,具有很强的欺骗性。
第四,超级管理技术。一些恶意代码还具有攻击反恶意代码软件的能力。为了对抗反恶意代码软件,恶意代码采用超级管理技术对反恶意代码软件系统进行拒绝服务攻击,使反恶意代码软件无法正常运行。
第五,端口反向连接技术。防火墙对于外部网络进入内部网络的数据流有严格的访问控制策略,但对于从内网到外网的数据却疏于防范。端口反向连接技术,系指令恶意代码攻击的服务端(被控制端)主动连接客户端(控制端)。
第六,缓冲区溢出攻击技术。缓冲区溢出漏洞攻击占远程网络攻击的80%,这种攻击可以使一个匿名的Internet 用户有机会获得一台主机的部分或全部的控制权,代表了一类严重的安全威胁。恶意代码利用系统和网络服务的安全漏洞植入并且执行攻击代码,攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而获得被攻击主机的控制权。
7. 简述恶意代码如何实现隐藏技术。
答:
隐藏通常包括本地隐藏和通信隐藏,其中本地隐藏主要有文件隐藏、进程隐藏、网络连接隐藏、内核模块隐藏、编译器隐藏等。网络隐藏主要包括通信内容隐藏和传输通道隐藏。
本地隐蔽是指为了防止本地系统管理人员觉察而采取的隐蔽手段。隐蔽手段主要有三
类:一类方法是将恶意代码隐蔽(附着、捆绑或替换)在合法程序中,可以避过简单管理命令的检查;另一类方法是如果恶意代码能够修改或替换相应的管理命令,也就是把相应管理命令恶意代码化,使相应的输出信息经过处理以后再显示给用户,就可以很容易地达到蒙骗管理人员,隐蔽恶意代码自身的目的;还有一类方法是分析管理命令的检查执行机制,利用管理命令本身的弱点巧妙地避过管理命令,可以达到既不修改管理命令,又达到隐蔽的目的。从上述隐蔽方法看来,恶意代码植入的位置越靠近操作系统低层越不容易被检测出来,对系统安全构成的威胁也就越大。
使用加密算法对所传输的内容进行加密能够隐蔽通信内容。隐蔽通信内容虽然可以保护通信内容,但无法隐蔽通信状态,因此传输信道的隐蔽也具有重要的意义。对传输信道的隐蔽主要采用隐蔽通道技术。隐蔽通道是允许进程违反系统安全策略传输信息的通道。
8. 简述蠕虫的功能结构。
答:
网络蠕虫的功能模块可以分为主体功能模块和辅助功能模块。实现了主体功能模块的蠕虫能够完成复制传播流程,而包含辅助功能模块的蠕虫程序则具有更强的生存能力和破坏能力。网络蠕虫功能结构如下图所示。
9. 简述目前恶意代码的防范方法。
答:
恶意代码防范方法主要分为两方面:基于主机的恶意代码防范方法和基于网络的恶意代码防范方法。
第一,基于主机的恶意代码防范方法。主要包括:基于特征的扫描技术、校验和、沙箱技术和安全操作系统对恶意代码的防范,等等。
第二,基于网络的恶意代码防范方法。基于网络的恶意代码防范方法包括:恶意代码检测防御和恶意代码预警。其中常见的恶意代码检测防御包括:基于GrIDS的恶意代码检测、基于PLD硬件的检测防御、基于HoneyPot的检测防御和基于CCDC的检测防御。
第8章 安全操作系统基础
1. 简述操作系统账号密码的重要性,有几种方法可以保护密码不被破解或者被盗取?
答:
标识与鉴别是涉及系统和用户的一个过程,可将系统账号密码视为用户标识符及其鉴别。标识就是系统要标识用户的身份,并为每个用户取一个系统可以识别的内部名称——用户标识符。用户标识符必须是惟一的且不能被伪造,防止一个用户冒充另一个用户。将用户标识符与用户联系的过程称为鉴别,鉴别过程主要用以识别用户的真实身份,鉴别操作总是要求用户具有能够证明他的身份的特殊信息,并且这个信息是秘密的,任何其他用户都不能拥有它。
较安全的密码应是不小于6个字符并同时含有数字和字母的口令,并且限定一个口令的生存周期。另外生物技术是一种比较有前途的鉴别用户身份的方法,如利用指纹、视网膜等,目前这种技术已取得了长足进展,逐步进入了应用阶段。
2. 简述审核策略、密码策略和账户策略的含义,以及这些策略如何保护操作系统不被入侵。
答:
审核策略:安全审核是Windows 2000最基本的入侵检测方法。当有人尝试对系统进行某种方式(如尝试用户密码,改变账户策略和未经许可的文件访问等)入侵时,都会被安全审核记录下来。
密码策略:密码对系统安全非常重要,密码策略用于保证密码的安全性。其策略包括:“密码复杂性要求”是要求设置的密码必须是数字和字母的组合;“密码长度最小值”是要求密度长度至少为6位;“密码最长存留期15天”是要求当该密码使用超过15天以后,就自动要求用户修改密码;“强制密码历史”是要求当前设置的密码不能和前面5次的密码相同。
账号策略:开启账户策略可以有效防止字典式攻击。账号策略包括:复位账户锁定计数器,账户锁定时间,账户锁定阈值等策略。如账户锁定阈值等于5,账户锁定时间等于30分钟,则当某一用户连续尝试5次登录都失败后将自动锁定该账户,30分钟后自动复位被锁定的账户。
3. 如何关闭不需要的端口和服务?
答:
用端口扫描器扫描系统所开放的端口,在Winnt\\system32\\drivers\\etc\\services文件中有知名端口和服务的对照表可供参考。用记事本打开该文件,如图1所示。
图1 端口与服务对照表
设置本机开放的端口和服务,在IP地址设置窗口中单击“高级”按钮,如图2所示。
图2 设置IP的高级属性
在出现的“高级TCP/IP设置”对话框中选择“选项”选项卡,选择“TCP/IP筛选”,单击“属性”按钮,如图3所示。
图3 设置TCP/IP筛选
设置完毕的端口界面如图4所示。