话本小说网 > 现代小说 > web渗透与安全实战(基础)
本书标签: 现代  黑客 

第三课网络安全与渗透测试介绍

web渗透与安全实战(基础)

1网络安全介绍

  本词条是多义词,共4个义项

  维护网络系统上的信息安全

  网络安全(NetworkSecurity/NetworkSafety)是一门涉及计算机技术、网络技术、通信技术、应用密码学技术、管理技术等多领域的综合性学科。重点解决分布式计算环境(主要是互联网环境)中,网络设施与网络信息资源设计、实现和使用过程的安全性问题,以保障网络数据的传输安全、网络用户与系统资源和信息资源的访问安全以及网络应用系统与网络基础设施的运行安全。[3]

  发展历程

  计算机网络技术的早期发展侧重于其开放性和灵活性,以促进信息交流与共享。网络用户的覆盖范围有限且彼此信任,因此在安全性方面考虑甚少。然而,随着互联网络覆盖面的扩大,网络安全问题开始显现。1986年,时任美国劳伦斯国家实验室系统管理员的天文学家兼作家克利福德.斯托尔(CliffordStoll)使用蜜罐技术成功地发现了一个窃取计算机信息的国际黑客,这是第一个公开报告的互联网安全事件,表明网络可以用于破坏性目的。1988年底发生的莫里斯蠕虫事件的严重性引发了业界对计算机网络安全问题的高度重视,这个网络安全事件不仅开拓了攻击者的视野(可以利用安全漏洞实现自动的攻击和攻击传播),也开拓了防御者的视野(计算机应急响应组织应运而生)。

  20世纪90年代之后,互联网逐步商业化,网络应用涉及各行各业,用户覆盖社会各类人群。从而在网络资源的使用约束和网络基础设施运行保护方面产生强烈的需求,一些发达国家启动了大规模的网络安全领域的科学研究计划和安全产品评估的标准制定,推动了网络安全领域中各个单元技术的快速发展。恶意代码的传播渗透能力和攻击能力越来越强,种类繁多,对网络安全漏洞的研究与利用全面展开,网络攻击的系统性和可继承性日趋成熟,与此同时,也出现了包括网络入侵检测系统、防火墙、各种网络环境下的身份认证系统、公钥管理体系(PKI)、用于保护Web访问的SSL协议、安全漏洞扫描系统、防病毒软件等在内的一系列网络安全防御与安全管理技术和相应的产品。

  进入21世纪之后,网络安全领域的研究日趋深入,发达国家纷纷将其纳入国家战略的高度予以规划和实施。在互联网环境中,网络攻击开始进入产业化阶段,一方面以追逐经济利益为目标,形成地下产业链。另一方面以服务于政治或国家利益为目标,构成有组织的行为。与此相适应地,网络安全防御与安全管理技术也在逐步完善。产品功能设计更为合理,并趋于一体化。例如个人计算机中的防病毒软件从单纯的计算机病毒检测进化为集个人防火墙、入侵检测、恶意代码防范等多种功能在内的综合性系统安全防御系统,并可在其厂家提供的中央服务器的支持下构成分布式的覆盖更大范围的网络安全监测与防御体系,从系统安全和信息安全领域借鉴各种相关技术而逐步发展起来的网络安全领域正在形成自己的理论体系和技术框架(信息空间安全,Cybersecurity)。[3]

  主要特性

  保密性

  信息不泄露给非授权用户、实体或过程,或供其利用的特性。

  完整性

  数据未经授权不能进行改变的特性。即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。

  可用性

  可被授权实体访问并按需求使用的特性。即当需要时能否存取所需的信息。例如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击;

  可控性

  对信息的传播及内容具有控制能力。

  可审查性

  出现安全问题时提供依据与手段

  从网络运行和管理者角度说,希望对本地网络信息的访问、读写等操作受到保护和控制,避免出现“陷门”、病毒、非法存取、拒绝服务和网络资源非法占用和非法控制等威胁,制止和防御网络黑客的攻击。对安全保密部门来说,他们希望对非法的、有害的或涉及国家机密的信息进行过滤和防堵,避免机要信息泄露,避免对社会产生危害,对国家造成巨大损失。

  随着计算机技术的迅速发展,在计算机上处理的业务也由基于单机的数学运算、文件处理,基于简单连接的内部网络的内部业务处理、办公自动化等发展到基于复杂的内部网(Intranet)、企业外部网(Extranet)、全球互联网(Internet)的企业级计算机处理系统和世界范围内的信息共享和业务处理。

  在系统处理能力提高的同时,系统的连接能力也在不断的提高。但在连接能力信息、流通能力提高的同时,基于网络连接的安全问题也日益突出,整体的网络安全主要表现在以下几个方面:网络的物理安全、网络拓扑结构安全、网络系统安全、应用系统安全和网络管理的安全等。

  因此计算机安全问题,应该像每家每户的防火防盗问题一样,做到防范于未然。甚至不会想到你自己也会成为目标的时候,威胁就已经出现了,一旦发生,常常措手不及,造成极大的损失。

  不可抵赖性

  不可抵赖性也称不可否认性。在信息交换过程中,确信参与方的真实同一性,即所有参与者都不能否认和抵赖曾经完成的操作和承诺。简单地说,就是发送信息方不能否认发送过信息,信息的接收方不能否认接收过信息。利用信息源证据可以防止发信方否认已发送过信息,利用接收证据可以防止接收方事后否认已经接收到信息。数据签名技术是解决不可否认性的重要手段之一。

  2渗透测试介绍

  渗透测试(penetrationtest)并没有一个标准的定义,国外一些安全组织达成共识的通用说法是:渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。

  换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络所有者。网络所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。

  我们认为渗透测试还具有的两个显著特点是:渗透测试是一个渐进的并且逐步深入的过程。渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。

  作为网络安全防范的一种新技术,对于网络安全组织具有实际应用价值。但要找到一家合适的公司实施渗透测试并不容易。

  专业服务

  渗透测试有时是作为外部审查的一部分而进行的。这种测试需要探查系统,以发现操作系统和任何网络服务,并检查这些网络服务有无漏洞。你可以用漏洞扫描器完成这些任务,但往往专业人士用的是不同的工具,而且他们比较熟悉这类替代性工具。

  渗透测试的作用一方面在于,解释所用工具在探查过程中所得到的结果。只要手头有漏洞扫描器,谁都可以利用这种工具探查防火墙或者是网络的某些部分。但很少有人能全面地了解漏洞扫描器得到的结果,更别提另外进行测试,并证实漏洞扫描器所得报告的准确性了。

  执行原因

  打一个比方来解释渗透测试的必要性。假设你要修建一座金库,并且你按照建设规范将金库建好了。此时是否就可以将金库立即投入使用呢?肯定不是!因为还不清楚整个金库系统的安全性如何,是否能够确保存放在金库的贵重东西万无一失。那么此时该如何做?可以请一些行业中安全方面的专家对这个金库进行全面检测和评估,比如检查金库门是否容易被破坏,检查金库的报警系统是否在异常出现的时候及时报警,检查所有的门、窗、通道等重点易突破的部位是否牢不可破,检查金库的管理安全制度、视频安防监控系统、出入口控制等等。甚至会请专人模拟入侵金库,验证金库的实际安全性,期望发现存在的问题。这个过程就好比是对金库的渗透测试。这里金库就像是我们的信息系统,各种测试、检查、模拟入侵就是渗透测试。

  也许你可能还是有疑问:我定期更新安全策略和程序,时时给系统打补丁,并采用了安全软件,以确保所有补丁都已打上,还需要渗透测试吗?需要!这些措施就好像是金库建设时的金库建设规范要求,你按照要求来建设并不表示可以高枕无忧。而请专业渗透测试人员(一般来自外部的专业安全服务公司)进行审查或渗透测试就好像是金库建设后的安全检测、评估和模拟入侵演习,来独立地检查你的网络安全策略和安全状态是否达到了期望。渗透测试能够通过识别安全问题来帮助了解当前的安全状况。到位的渗透测试可以证明你的防御确实有效,或者查出问题,帮助你阻挡可能潜在的攻击。提前发现网络中的漏洞,并进行必要的修补,就像是未雨绸缪;而被其他人发现漏洞并利用漏洞攻击系统,发生安全事故后的补救,就像是亡羊补牢。很明显未雨绸缪胜过亡羊补牢。

  渗透测试能够通过识别安全问题来帮助一个单位理解当前的安全状况。这使促使许多单位开发操作规划来减少攻击或误用的威胁。

  撰写良好的渗透测试结果可以帮助管理人员建立可靠的商业案例,以便证明所增加的安全性预算或者将安全性问题传达到高级管理层。

  安全性不是某时刻的解决方案,而是需要严格评估的一个过程。安全性措施需要进行定期检查,才能发现新的威胁。渗透测试和公正的安全性分析可以使许多单位重视他们最需要的内部安全资源。此外,独立的安全审计也正迅速成为获得网络安全保险的一个要求。

  现在符合规范和法律要求也是执行业务的一个必要条件,渗透测试工具可以帮助许多单位满足这些规范要求。

  启动一个企业电子化项目的核心目标之一,是实现与战略伙伴、提供商、客户和其他电子化相关人员的紧密协作。要实现这个目标,许多单位有时会允许合作伙伴、提供商、B2B交易中心、客户和其他相关人员使用可信连接方式来访问他们的网络。一个良好执行的渗透测试和安全性审计可以帮助许多单位发现这个复杂结构中的最脆弱链路,并保证所有连接的实体都拥有标准的安全性基线。

  当拥有安全性实践和基础架构,渗透测试会对商业措施之间的反馈实施重要的验证,同时提供了一个以最小风险而成功实现的安全性框架。

  测试方法

  有些渗透测试人员通过使用两套扫描器进行安全评估。这些工具至少能够使整个过程实现部分自动化,这样,技术娴熟的专业人员就可以专注于所发现的问题。如果探查得更深入,则需要连接到任何可疑服务,某些情况下,还要利用漏洞。

  商用漏洞扫描工具在实际应用中存在一个重要的问题:如果它所做的测试未能获得肯定答案,许多产品往往会隐藏测试结果。譬如,有一款知名扫描器就存在这样的缺点:要是它无法进入Cisco路由器,或者无法用SNMP获得其软件版本号,它就不会做出这样的警告:该路由器容易受到某些拒绝服务(DoS)攻击。如果不知道扫描器隐藏了某些信息(譬如它无法对某种漏洞进行测试),你可能误以为网络是安全的,而实际上,网络的安全状况可能是危险的。

  除了找到合适工具以及具备资质的组织进行渗透测试外,还应该准确确定测试范围。攻击者会借助社会工程学、偷窃、贿赂或者破门而入等手法,获得有关信息。真正的攻击者是不会仅仅满足于攻击某个企业网络的。通过该网络再攻击其它公司往往是黑客的惯用伎俩。攻击者甚至会通过这种方法进入企业的ISP。

  测试技巧

  为了从渗透测试上获得最大价值,应该向测试组织提供尽可能详细的信息。这些组织同时会签署保密协议,这样,你就可以更放心地共享策略、程序及有关网络的其它关键信息。

  还要确定的是,哪些系统需要测试。虽然你不想漏掉可能会受到攻击的某个系统,但可能仍想分阶段把渗透测试外包出去,以便每个阶段专注于网络的不同部分。

  你还应该制订测试准则,譬如说:渗透测试人员可以探查漏洞并进行测试,但不得利用,因为这可能会危及到你想要保护的系统。

  此外,你还要提供合适的测试途径。如果你想测试在非军事区(DMZ)里面的系统,最好的测试地方就是在同一个网段内测试。让渗透测试人员在防火墙外面进行测试听起来似乎更实际,但内部测试可以大大提高发现防火墙原本隐藏的服务器安全漏洞的可能性。因为,一旦防火墙设置出现变动,就有可能暴露这些漏洞,或者有人可能通过漏洞,利用一台DMZ服务器攻击其它服务器。还记得尼姆达病毒吗?它就是首次攻击得逞后、利用一台Web服务器发动其它攻击的。

  以外部需要访问的Web或应用服务器为例,你应该考虑与渗透测试人员共享这些应用的源代码,如果测试涉及这些脚本或程序的话。没有源代码,很难测试ASP或CGI脚本,事先认定攻击者根本不会看到源代码是不明智的。Web服务器软件里面的漏洞往往会把脚本和应用暴露在远程攻击者面前。如果能够获得应用的源代码,则可以提高测试该应用的效率。毕竟,你出钱是为了让渗透测试人员查找漏洞,而不是浪费他们的时间。

  安全审查

  渗透测试旨在证明,网络防御机制的运行与你认为的一样良好。往往系统和网络管理员视审查人员或渗透人员为敌人,但实际上他们却是朋友。到位的渗透测试可以证明你的防御确实有效,或者查出问题,帮助你阻挡未来攻击。出钱请自己知道的人来发现网络中的漏洞,总比让自己不知道的人发现漏洞好得多。

  渗透测试可以用来向第三方,譬如投资方或者你的管理人员提供网络安全状况方面的具体证据。事实上,你知道网络中存在的漏洞可能已有一段时日,但无法说服管理人员分配必要资源以补救漏洞。光靠自己,网络或安全管理员的意见往往不会被董事会采纳。如果外面的顾问赞同你的评估,或许会有奇迹出现。

  有关渗透测试的合同或工作说明应该包括你从所得报告中想要获得的各个方面。如果你请人进行有限的测试,得到的只是计算机生成的报告。而渗透测试的真正价值在于由报告所衍生出的分析。进行测试的一方会详细介绍发现结果,并说明其重要性。在有的地方,测试人员还会提议采取何种补救方法,譬如更新服务器、禁用网络服务、改变防火墙规则等等。

  发展

  如今,大多数攻击进行的是最基本的漏洞扫描,如果攻击得逞,目标就岌岌可危。如果攻击者企图对你站点进行漏洞扫描,他就会获得大量的防火墙日志消息,而监控网络的任何入侵检测系统(IDS)也会开始发送有关当前攻击的警报。如果你还没有试过,不妨利用漏洞扫描器结合IDS对网络来一番试验。别忘了首先获得对方的许可,因为,运行漏洞扫描器会使IDS引发警报。

  渗透测试也许是你的网络防御工具箱当中的重要武器之一。应该视之为各种安全审查的一部分,但要确保审查人员胜任这项工作。

  分类

  实际上渗透测试并没有严格的分类方式,即使在软件开发生命周期中,也包含了渗透测试的环节,但根据实际应用,普遍认同的几种分类方法如下:

  方法分类

  1、黑箱测试

  黑箱测试又被称为所谓的“Zero-KnowledgeTesting”,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。

  2、白盒测试

  白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、程序员、管理者……)进行面对面的沟通。这类测试的目的是模拟企业内部雇员的越权操作。

  3、隐秘测试

  隐秘测试是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些时段进行测试。因此能够监测网络中出现的变化。但隐秘测试则被测单位也仅有极少数人知晓测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。

  目标分类

  1、主机操作系统渗透

  对Windows、Solaris、AIX、Linux、SCO、SGI等操作系统本身进行渗透测试。

  2、数据库系统渗透

  对MS-SQL、Oracle、MySQL、Informix、Sybase、DB2、Access等数据库应用系统进行渗透测试。

  3、应用系统渗透

  对渗透目标提供的各种应用,如ASP、CGI、JSP、PHP等组成的WWW应用进行渗透测试。

  4、网络设备渗透

  对各种防火墙、入侵检测系统、网络设备进行渗透测试。

上一章 第二课计算机网络发展 web渗透与安全实战(基础)最新章节 下一章 第四课计算机基础知识