北京李晨光
一、程序为什么会出错?
程序只能严格按照规则做编程有要它做的事情。但是,最终编写的程序并不总是与程序员预计让程序完成的事情一致。下面的这个笑话可以说明这一问题:
一个人在森林中行走,在地上发现了一盏魔灯。他本能地捡起了魔灯并且用袖子擦拭它。突然,从瓶子里出来了一个魔鬼。魔鬼感谢这个人使他获得了自由,并答应要满足他的三个愿望。这个人欣喜若狂,他确实知道自己想要什么。
“第一”,这个人说,“我想要十亿美元。”
魔鬼很快地晃了一下手指,满满的一袋子钱出现了。
这个人惊奇地睁大眼睛继续说道:“接下来,我想要一部法拉利。”
魔鬼一晃手指,很快地在烟雾中出现了一部法拉利。
这个人继续说:“最后,我想变得对女人有极大的诱惑力。”
魔鬼一挥手指,这个人变成了一盒巧克力。
正像这个人的最后一个愿望的实现是基于他的言语,而不是他的真实想法一样,程序按照指令执行,由于软件漏洞结果出了问题并不总是程序员想要的。有时结果甚至是灾难性的。我们都知道现在软件变得更加复杂,软件越复杂,就越难预测它在各种可能场景下的反应方式,也就越难保证其安全性,当今的操作系统和应用程序的代码行数也越来越多,例如Windows xp大约有4千万行代码,Vista 大约5千多万,Windows 2000有2900万行代码。业界通常使用这样的一个估算方式,即每1000行代码中大约有5~50个BUG。因此,从平均意义上能估计出Windows xp中大约有多少个BUG(只是理论上。)我们都知道黑客对操作系统的攻击都是利用系统软件中的漏洞进行的。那么我们怎么理解什么是漏洞呢?在过去,很多人把漏洞看作是有恶意的人能够利用的软件或硬件的缺陷。然而,在近几年中,漏洞的定义发展成为有恶意的人能够利用的软硬件的缺陷及配置错误。
我们知道了软件有漏洞如何来管理呢,从表面上看,漏洞管理像是个简单的工作。通常是在操作系统上装上一些常用的补丁修补工具,然后自动进行修补,不幸的是,在大部分组织的网络中,漏洞管理既困难又复杂。一个典型的组织中包含定制们有不同的需求,不能只做简单地保护,更不能置之不理。软件厂商仍会发布不安全的代码,硬件厂商也不会将安全内建在产品中,因此这些问题就留给了
系统管理员来处理。加入这些必须遵守的规定使管理者感到紧张,并且处于一种高压状况下,容易导致犯严重的错误。
厂商通过不同的途径发现一个漏洞。在理想的情况下,厂商在发布产品之前,会出并解决所有的安全问题。但是代码的复杂性,加上严格的开发周期,易于产生安全方面的错误。通常一个独立的或商业的安全研究组织会将漏洞告知厂商,并且在有些情况下,厂商会与公众同时发现漏洞,这时不用事先通知,漏洞就被公开了(这时候就会被利用啊)。
二、如何理解漏洞造成的风险?
不管一个漏洞是如何公开的,该漏洞都对一个组织造成了风险。漏洞带来的风险大小取决于几个因素:厂商对风险的评级、组织中受影响系统的数量、受影响系统的危险程度和暴露程度。比如一个大的银行机构采取措施把所有的金融核算系统都放在网络中,并且置于独立的防火墙之后。尽管分离重要的系统是一种很好的策略,但是有一个因素没有考恕到有大量的员工需要访问这些数据。因此,实际拥有的只是一个用作昂贵钓日志系统的防火墙,该防火墙允许一部分客户端通过。当然,防火墙可以阻止一些威胁,但是如果威胁来自一个允
许通信的通道,那么防火墙就没有帮助了。正确的解决方案是把整个部门放在隔离的网络中,不允许任何来自网络外部的访问。
三、漏洞评估方法和步骤
在一个企业中查出漏洞需要付出很大的努力,不能简单地在所选的地方安装一个漏洞扫描软件并简单地按下“开始”按钮,那样是不起作用的。这不是因为现在的企业拥有成千上万的服务器和主机,这些服务器和主机又通过上百个速率不同的网络线路连接起来,只是我们在期望的时间内根本无法获得所需的覆盖范围。那么需要做什么呢?我们需要对漏洞进行评估,看到这里有的人可能会把漏洞评估跟军队中的侦察任等同起来,侦察任务的主要目的是向前进入外国的领土,并且查出敌军的弱点和易攻击的地方。漏洞评估是帮助企业领导、安全专家及黑客在网络、应用和系统中确定安全责任的安全实践活动。实施漏洞评估的方法和步骤分为:信息收集/发现、列举和检测。
1.信息收集/发现
包括为查目标拥有的所有域名而进行的whois查询以及为确定与目标相关的IP地址范围而通过网站如www.arin对可能的目枴标和IP地址进行的查询。
使用Nmap软件,我们能够很快确定网络上哪些主机是在线的,如图2. 2所示。在Nmap 中使用-s P(ping扫描)选项对目标网络执行ping扫描。这可以帮助确定哪些主机是活动的和有效的。一旦确定信息后,信息收集/发现的工作就完成了。现在可以继续进行第二步,列举并确定目标运行什么操作系统和应用程序。
2022法定节假日2.列举
列举是用来判断目标系统运行的操作系统获取操作系统指纹和位于目标上的应用程序的过程。在确定操作系统后,下一步就是确定运行于主机上的应用程序。端口0~1023(共1024个)被称为熟知端口。
白百合陈羽凡离婚仍然使用Nmap,我们用它的-sV选项来确定什么应用程序位于什么端口。端口在漏洞评估中扮演了一个很关键的角,因为它确保将漏洞对应到各自应用程序。如果确信有问题的主机在端口443上运行的是安全Web服务器而不是一个服务器,那么很可能就不会发现该主机的漏洞,从而认为系统将来不可能被渗透。当信息收集工作和列举工作完成后,现在可以在目标系统上检测漏洞了。
3.检测
检测用来确定一个系统或应用程序是否易受攻击。这一步并
不是确定漏洞是否存在,漏洞是否存在由渗透测试来完成。检测
过程只是报告漏洞出现的可能性。
为了检测漏洞,我们需要使用一个漏洞评估工具,如Tenable
Network Secuitye 的Nessus工具或者eEyeDigital Security
的Retina工具。这两个工具都是收费的。
四、查检测漏洞的方法
在传统方法中,要探测操作系统级或应用程序级的漏洞时,则会在整个企业中安装一些漏洞评估扫描软件。这些扫描软件负责检查网络主机(信息收集),发现可能的应用程序(列举),并且确定漏洞(检測)。漏洞评估扫描器通常是运行漏洞评估软件的网络工具或运行在
版花呗一个企业自己资产中的漏洞评估软件。
现在漏洞修复技术比过去发生了很大变化。修复技术已经从手工修复进入了自动化过程,从修复知识库中提取漏洞评估数据在选择一个方案之前,我们应该认,到修复工作的范围。我们只需要考虑Windows系统或是UNIX/Linux系统。
1.利用配置工具评估漏洞
许多组织已经在管理/配置工具上做了投资,常常利用这些工具做一些相当常规的工作,但是通过扩展这些工具来从我们的环境中提取漏洞数据。以赛门铁克symantec,以前的Bind View产品作为例子,使用这两个产品,一个组织能处理大部分日常的windows活动目录(AD)操作,相反,我们也可以用这些产品来发现组织中的漏洞。为了更好地理解,下面看一个BindView的部署。
2.漏洞评估工具
一个好的工具最少要有的特征:低的误报率(false positives)、零漏报率(false negatives)、一个完整的检测数据库、对网络流量的影响小、直观的和可定制的报告引擎。
漏洞扫描产品
目前,很多漏洞扫描产品都被开发出来,不同的软件扫描漏洞的功能存在一定的差异,有些扫描软件还带有一定的入侵性质,例如X-Scan、Shadow Security Scanner和流光等。
2.1 商业漏洞管理工具:
1.eEye digital Security
www.eEye
eEye Digital Security在漏洞研究中处于领导地位。它也开发了
一套用来帮助进行漏洞管理的工具。
Symantec (BindView)
www.bindview(www.symantec/business/solutions/index.jsp?ptid=tab2&ctid=tab 2_2)
BindView的Compliance Manager是一个基于软件的解决方案,允许组织对比公司标准或者行业最好的经验来评佔资产,在大多数情况下不需要用到代理。
2.Attachmate (NetIQ)
www. Netiq.Com
江铠同富二代
NetIQ的Compliance套件是一个NetIQ的安全管理器和漏洞管理工具的组合,并且把漏洞扫描、补丁管理、配置修复和报告整合在一起。NetIQ漏洞管理器能够通过AutoSync技术让用户定义和维护配置策略模板、漏洞公告板和自动检测。它也有能力根据这些策略评估系统。
3.StillSecure
www. Stillsecure.Com
StiIISecure是VAM的制造商,是一个安全产品的集成套件,能够执行漏洞管理、终端符合性监控,以及入侵防御和检测。它也包含一个内置的工作流方案(可扩展漏洞修复工作流),这个方案能够自动地分配修复、进度安排、生命周期追踪和修复确认,所有维护详细的设备历史记录。
咏仪4.开源工具
4.1 主机发现工具
Nmap()是一个免费开源的网络搜索或安全审计工具。尽管它对单台主机工作非常好,但被设计为快速扫描大型网络。除此之外还有Ossim(使用体验:www.soku/t/nisearch/ossim?f=1&kb=05120000kv100__oss )
4.2漏洞扫描与配置扫描
Tenable Network ale)的Nessus是一个漏洞扫描和配置扫描工具。Nessus项目由Renaud Deraison开始于1998年,为了给网络社会提供一个免费的、强大的、最新的且好用的远程安全扫描器。Nessus是最好的免费网络漏洞扫描器并且无论如何在Unix 上运行是最好的。它持续更新(超过11000种免费插件可用)。
4.3配置和补丁扫描
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)。
五、打补丁的常见方法
目前,打补丁已成为安装操作系统时必须考虑的—项任务了。系统经过查漏洞并及时打上补丁之后,就能够防范由这些漏洞所带来的安全隐患。如果想使计算机在网络中远离威胁,就必须查漏洞打补丁。当然,补丁打多了,计算机的性能也会受到不同程度的影响。但与安全相比,降低一点计算机速度还是值得的。
常见的查漏洞打补丁软件有360安全卫士中的系统漏洞修复功能,木马分析专家,系统漏洞扫描助手、瑞星卡卡上网安全助手等。Windows系统中提供了系统自动更新功能,来下载安装微软公司最新的补丁程序。此外,由于某些应用软件自身可能存在漏洞,在用户安装该软件后,其软件漏洞也成为了计算机系统漏洞,从而给用户的计算机带来了更多的风险。
行政处罚的种类因此,不同的漏洞扫描软件查出的漏洞种类和数量总会有些不同。我们在对计算机打补丁前,要尽可能地使用多种软件来扫描,当然某些补丁之间可能会“打架”,用户可以对补丁进行取舍,卸载不需要的补丁程序。
作者简介:
系统架构师、中国计算机学会高级会员、代表作品《Linux企业应用案例精解第2版》、《Unix/Linux网络日志分析与流量监控》等。
发布评论