系统管理员指南:如何给系统打补丁?(知识篇)

原创
运维 系统运维
对于系统管理员而言,打补丁的目的主要是为了保证系统的安全,不被有心人利用一些漏洞入侵到自己管理的系统当中。系统管理员应如何修补软件、系统漏洞,平稳的打补丁呢?51CTO系统频道特别邀请了李晨光老师来给大家扫盲。

【51CTO独家特稿】对于系统管理员而言,打补丁的目的主要是为了保证系统的安全,不被有心人利用一些漏洞入侵到自己管理的系统当中。这其中涉及到很多问题,比如漏洞的安全危害级别,如何查找和检测漏洞,打补丁之前预估好可能产生的影响,进行充分的测试,做好相关备份等。有一些入行不久的系统管理员害怕打补丁,害怕会因此导致系统出现不正常,其实该打的补丁不打往往可能导致更糟糕的后果。那么,系统管理员应如何修补软件、系统漏洞,平稳的打补丁呢?51CTO系统频道特别邀请了李晨光老师来给大家扫盲。

推荐专题:SA,神仙与装机男:运维的工作到底啥样儿?

作者简介:李晨光(博客新浪微博),中科院研究生毕业,IBM软件精英讲师,微软社区精英,ChinaUnix论坛Linux栏目版主.从事网络系统管理、存储及信息安全10年,中国勘察设计协会信息化专家、中国计算机学会高级会员,通过微软Microsoft、思科Cisco、CIW网络认证、获数据库高级管理工程师认证,多年系统管理培训、软件开发管理经验。公开发表专业学术论文四十篇,精彩博文百余篇。

一、程序为什么会有漏洞?

程序只能严格按照规则做编程有要它做的事情。但是,最终编写的程序并不总是与程序员预计让程序完成的事情一致。下面的这个笑话可以说明这一问题:

一个人在森林中行走,在地上发现了一盏魔灯。他本能地捡起了魔灯并且用袖子擦拭它。突然,从瓶子里出来了一个魔鬼。魔鬼感谢这个人使他获得了自由,并答应要满足他的三个愿望。这个人欣喜若狂,他确实知道自己想要什么。

“第一”,这个人说,“我想要十亿美元。”

魔鬼很快地晃了一下手指,满满的一袋子钱出现了。

这个人惊奇地睁大眼睛继续说道:“接下来,我想要一部法拉利。”

魔鬼一晃手指,很快地在烟雾中出现了一部法拉利。

这个人继续说:“最后,我想变得对女人有极大的诱惑力。”

魔鬼一挥手指,这个人变成了一盒巧克力。
 

程序执行正像这个人的最后一个愿望的实现一样。程序按照指令执行,由于软件漏洞结果出了问题并不总是程序员想要的,有时结果甚至是灾难性的。

我们都知道现在软件变得更加复杂,软件越复杂,就越难预测它在各种可能场景下的反应方式,也就越难保证其安全性,当今的操作系统和应用程序的代码行数也越来越多,例如Windows xp大约有4千万行代码,Vista 大约5千多万,Windows 2000有2900万行代码。业界通常使用这样的一个估算方式,即每1000行代码中大约有5~50BUG。因此理论上,从平均意义上能估计出Windows xp中大约有多少个BUG。我们都知道黑客对操作系统的攻击都是利用系统软件中的漏洞进行的。在过去,很多人把漏洞看作是有恶意的人能够利用的软件或硬件的缺陷。然而在近几年中,漏洞的定义发展成为有恶意的人能够利用的软硬件的缺陷及配置错误。

从表面上看,漏洞管理像是个简单的工作,比如在操作系统上装上一些常用的补丁修补工具,然后自动进行修补。然而在大部分组织的网络中,漏洞管理既困难又复杂。一个典型的组织中包含定制们有不同的需求,不能只做简单地保护,更不能置之不理。软件厂商仍会发布不安全的代码,硬件厂商也不会将安全内建在产品中,因此这些问题就留给了系统管理员来处理。

厂商通过不同的途径发现一个漏洞。在理想的情况下,厂商在发布产品之前,会找出并解决所有的安全问题。但是代码的复杂性,加上严格的开发周期,易于产生安全方面的错误。通常,一个独立的/商业的安全研究组织会将漏洞告知厂商;不过在有些情况下,厂商会与公众同时发现漏洞,这时不用事先通知,漏洞就被公开了,就很容易被利用。

#p#

二、如何理解漏洞造成的风险?

不管一个漏洞是如何公开的,该漏洞都对一个组织造成了风险。漏洞带来的风险大小取决于几个因素:

  1. 厂商对风险的评级
  2. 组织中受影响系统的数量
  3. 受影响系统的危险程度和暴露程度

比如某些大的银行机构会采取措施,把所有的金融核算系统都放在网络中,并且置于独立的防火墙之后。尽管分离重要的系统是一种很好的策略,但是有一个因素没有考虑到:有大量的员工需要访问这些数据。因此,实际拥有的只是一个用作日志系统的昂贵防火墙,该防火墙允许一部分客户端通过。当然,防火墙可以阻止一些威胁,但是如果威胁来自一个允许通信的通道,那么防火墙就没有帮助了。

正确的解决方案是把整个部门放在隔离的网络中,不允许任何来自网络外部的访问。减少暴露程度虽然与漏洞无关,但是会大大降低漏洞为企业造成的风险。

三、漏洞评估方法和步骤

在一个企业中查找出漏洞需要付出很大的努力,不能简单地在所选的地方安装一个漏洞扫描软件并简单地按下“开始”按钮,那样是不起作用的。因为现在的企业拥有成千上万的服务器和主机,这些服务器和主机又通过上百个速率不同的网络线路连接起来,因此照这个方法,我们在期望的时间内根本无法获得所需的覆盖范围。

那么需要做什么呢?我们需要对漏洞进行评估。所谓漏洞评估,可以理解成跟军队中的侦察差不多的行为。侦察任务的主要目的是向前进入外国的领土,并且查找出敌军的弱点和易攻击的地方。漏洞评估是帮助企业领导、安全专家及黑客在网络、应用和系统中确定安全责任的安全实践活动。

实施漏洞评估的方法和步骤分为:信息收集/发现,列举,以及检测。

1.信息收集/发现

这一步骤包括:

  1. 为查找目标拥有的所有域名而进行的whois查询
  2. 为确定与目标相关的IP地址范围而通过网站(如www.arin.net)对可能的目标和IP地址进行的查询

使用Nmap软件,我们能够很快确定网络上哪些主机是在线的。在Nmap中使用-s P(ping扫描)选项对目标网络执行ping扫描。这可以帮助确定哪些主机是活动的和有效的。一旦确定信息后,信息收集/发现的工作就完成了。现在可以继续进行第二步,列举并确定目标运行什么操作系统和应用程序。(51CTO推荐阅读:十条nmap实用命令行技巧

2.列举

列举是用来

  1. 判断目标系统运行的操作系统
  2. 获取操作系统指纹和位于目标上的应用程序

的过程。

在确定操作系统后,就是要确定运行于主机上的应用程序。端口0~1023(共1024个)被称为熟知端口。

仍然使用Nmap。我们用它的-sV选项来确定什么应用程序位于什么端口。端口在漏洞评估中扮演了一个很关键的角色,因为它确保将漏洞对应到各自应用程序。如果确信有问题的主机在端口443上运行的是安全Web服务器而不是一个电子邮件服务器,那么很可能就不会发现该主机的漏洞,从而认为系统将来不可能被渗透。当信息收集工作和列举工作完成后,现在可以在目标系统上检测漏洞了。

3.检测

检测用来确定一个系统或应用程序是否易受攻击。需要注意的是,这一步并不是用于确定漏洞是否存在。检测过程只是报告漏洞出现的可能性,而漏洞是否存在则由渗透测试来完成。

#p#

四、查找检测漏洞的方法

上面介绍了检测漏洞的执行思路,下面介绍应该如何在真实系统环境下进行漏洞检测。这个工作通常使用漏洞评估扫描器完成。漏洞评估扫描器一般是运行漏洞评估软件的网络工具,或者运行在一个企业自己资产中的漏洞评估软件。

现在漏洞修复技术比过去发生了很大变化。修复技术已经从手工修复进入了自动化过程。本文中我们只考虑Windows系统和UNIX/Linux系统。

1.利用配置工具评估漏洞

许多组织已经在管理/配置工具上做了投资,常常利用这些工具做一些相当常规的工作,但是通过扩展这些工具来从我们的环境中提取漏洞数据。比如赛门铁克的产品(以前的Bind View,2005年被赛门铁克收购),能够帮助一个组织处理大部分日常的windows活动目录(AD)操作,也可以发现组织中的漏洞。为了更好地理解,下面看一个BindView的部署。

2.漏洞评估工具

一个好的工具最少要有的特征:低的误报率(false positives)、零漏报率(false negatives)、一个完整的检测数据库、对网络流量的影响小、直观的和可定制的报告引擎。

目前,很多漏洞扫描产品都被开发出来,不同的软件扫描漏洞的功能存在一定的差异,有些扫描软件还带有一定的入侵性质,例如X-Scan、Shadow Security Scanner和流光等。

下面介绍几个商业漏洞管理工具:

eEye digital Security

eEye Digital Security在漏洞研究中处于领导地位。它也开发了一套用来帮助进行漏洞管理的工具。

Symantec(BindView)

BindView的Compliance Manager是一个基于软件的解决方案,允许组织对比公司标准或者行业最好的经验来评佔资产,在大多数情况下不需要用到代理。

Attachmate(NetIQ,2006年被Attachmate收购)

NetIQ的Compliance套件是一个NetIQ的安全管理器和漏洞管理工具的组合,并且把漏洞扫描、补丁管理、配置修复和报告整合在一起。NetIQ漏洞管理器能够通过AutoSync技术让用户定义和维护配置策略模板、漏洞公告板和自动检测。它也有能力根据这些策略评估系统。

StillSecure

StiIISecure是VAM的制造商,是一个安全产品的集成套件,能够执行漏洞管理、终端符合性监控,以及入侵防御和检测。它也包含一个内置的工作流方案(可扩展漏洞修复工作流),这个方案能够自动地分配修复、进度安排、生命周期追踪和修复确认,所有维护详细的设备历史记录。

下面介绍几个开源工具:

主机发现工具nmap

Nmap是一个免费开源的网络搜索或安全审计工具。尽管它对单台主机工作非常好,但被设计为快速扫描大型网络。

漏洞扫描与配置扫描nessus

Tenable Network Security的Nessus是一个漏洞扫描和配置扫描工具。Nessus项目由Renaud Deraison开始于1998年,为了给网络社会提供一个免费的、强大的、最新的且好用的远程安全扫描器。Nessus是最好的免费网络漏洞扫描器并且无论如何在Unix上运行是最好的。它持续更新(超过11000种免费插件可用)。

配置和补丁扫描MBSA

Microsoft Base Security Analyzer(MBSA)是一个好用的工具,为专业人员设计以便帮助中小型企业依靠Microsft的安全建议来测定安全状态,并且也提供特定的修复指导。建立在Windows升级代理和Microsoft升级设施基础上,MBAS确保了和其他Microsoft管理产品的一致性,这些产品包括Microsoft Update(MU),Windows Server Update Services(WSUS), systems management server(SMS)和Microsoft Operarations Manager(MOM)。

51CTO推荐专题:网络安全工具百宝箱

到目前为止,我们介绍了漏洞是什么,漏洞为企业带来的风险,以及检测漏洞的思路和方法。具体如何给企业中的系统打补丁,且听下回分解。

【编辑推荐】

  1. FreeBSD 系统管理员都应该知道的那点秘密
  2. 系统管理员必须了解的六大铁律
  3. Windows组策略 系统管理员手中的管理利器
责任编辑:yangsai 来源: 51CTO.com
相关推荐

2018-08-15 14:00:18

LinuxBash系统管理员

2018-08-01 08:12:34

Linux管理员网络管理

2010-08-02 09:13:10

系统管理员开源工具链

2019-08-13 19:34:45

容器镜像DockerLinux

2013-10-18 09:31:03

Linux 系统Linux 发行版

2010-05-06 18:07:33

Unix命令

2010-12-27 17:40:31

2013-12-09 16:15:08

系统管理员WebminLinux服务

2011-10-20 10:29:22

VMwareVMworld虚拟化

2010-11-10 09:36:38

系统管理员守则

2013-06-26 09:29:30

系统管理员

2010-04-12 09:33:58

系统管理员

2013-08-20 10:11:20

Go系统管理员

2012-06-06 10:41:37

系统管理员运维

2013-09-29 09:50:21

系统管理员Ubuntu JujuJuju

2009-05-20 14:51:55

ibmdw系统管理

2009-10-22 16:53:08

2020-02-10 17:00:46

Linux清理垃圾系统管理员系统管理员

2010-08-11 17:11:15

2013-03-30 21:59:13

系统管理员必备工具iftop
点赞
收藏

51CTO技术栈公众号