渗透测试技术报告
二零二零年
        渗透测试技术的发展沿革、研究现状和趋势
从20世纪60年代中叶开始到现在,共50多年的时间里,白帽子们负责维护计算机系统的安全,阻止黑客攻击和破坏信息网络。当计算机具备了通过通信线路共享信息的能力,随之而来的就是,通信线路有可能被窃听,承载的数据有可能被窃取或破坏,于是产生了维护信息安全的需求。现在,全球每分钟大约有640兆兆字节的数据在线路上传送。有很多信息会被窃取,也有太多的信息需要保护。
早在1965年的时候,电脑安全专家就提醒政府和企业,电脑在交换数据方面的能力越强大,窃取数据的情况就会越多。在1967年的计算机联合会议上,汇集了15,000多名计算机安全专家、政府和企业分析人员,他们认为当前计算机通信领域的主要挑战是,计算机通信线路可能被窃听、提出术语、弄清变化趋势。
RAND公司首先提出通过系统测试的办法保证网络安全的思路。RAND公司与美国的高级研究
计划局ARPA合作,做了一个重要的报告,该报告被称作The Willis Report。这个报告讨论了安全问题,并提出了策略和技术上的对策,即便到现在,它也是安全解决方案的基础。
从这篇报告开始,政府和企业就开始联合起来,寻计算机系统和网络里的漏洞,保护计算机系统不被恶意攻击和渗透。组成了一个被称作tiger teams的团队,测试计算机网络抵抗攻击的能力。许多系统被很快攻破。由RAND公司和政府实施的渗透测试说明了两个问题:第一,系统可以被渗透;第二,使用渗透测试的技术发现系统、网络、硬件和软件中的漏洞是很有意义的实践,需要进一步研究和发展。
James P. Anderson是渗透测试发展早期的先驱之一。他在1972年的报告中提出了一系列测试系统被渗透和攻击的可能性的具体步骤。Anderson的方法包括,首先寻脆弱点,设计出攻击方法,然后寻到攻击过程的弱点,到对抗威胁的方法。这个基本方法至今仍在使用。
在上世纪七八十年代,研究如何创建一个安全的系统还是一件新奇的事情。Anderson在1980年发表的一篇文章中说到,设计一个能监控计算机系统使用情况的程序,通过识别非正常的使用来发现黑客活动。这个原理简单易懂,现在的计算机用户也可以很容易理解其工作
方式,围绕它提出许多具体办法。在当时,这项工作是突破性的,其中的许多方法是当前标准系统防护的一部分。
另外一个被广泛用于政府、军事和企业的系统是Multics (Multiplexed Information and Computing Service)。它或许是计算机系统的祖父,从1965年到2000年以不同的形式活跃着,或许现在也在使用。 Honeywell最终购买了它,并将之服务于教育、政府和工业。Multics带来的主要影响是,它通过远程的方式提供安全计算服务,这在当时是很大的一个发展。Multics的基础架构仍然在当今操作系统中使用,比如UNIX。
Multics安全系统是第一个获得美国政府的B2奖的操作系统。在1974年,美国空军组织了一次对Multics系统的攻击测试,一位知名白帽子参与了攻击,发现并公布了许多漏洞。尽管如此,Multics仍然被认为是世界上最安全的系统之一,它的所有安全特性是标准产品的一部分,而不是附属物。应用程序开发人员要想让他们的产品在Multics系统上工作,必须保证他们的产品满足访问设计安全。现在,安全成为了一个可选项,应用软件也无法满足这样的安全条件,这导致计算机用户可能被攻击。
在上世纪九十年代,出现了一款用于分析网络安全的管理工具SATAN。开发人员还增加了一
项可以配置SANTA的功能。管理员可以用这个工具测试他们的网络,寻可能的漏洞,并生成一个包含可能会引发的问题的报告。SATAN已经被nmap和Nessus之类的工具取代,不再更新了。
当前,渗透测试可用的工具越来越多。出现了包含许多安全测试工具的系统。其中之一便是Kali Linux,它被用于数字取证和渗透测试工作中。它包含8个标准的安全工具,分别是Nmap, Aircrack-ng, Kismet, Wireshark, Metasploit Framework, Burp Suite和John the Ripper。一个系统包含了这么多渗透测试工具,这说明现在的技术已经变得多么复杂,聪明的黑客们探索出了各种方法来攻击网络。另外,Pentoo也是一个用于渗透测试的系统。
最近的一个RAND报告中讲到,美国一年中,约有六千五百万个人的私人数据遭到泄露,网络犯罪每年会产生数十亿美元的收益。
现在,按需渗透测试成为了一种最新的测试网络安全的方法。这种方法将安全人员实施的人工测试和自动化工具实施的安全检查结合起来,共同测试网络安全。这种方法可以提供宽泛而严密的安全测试。它已经发展成为一种订阅式(subscription-based)服务。对于无法大量开发渗透测试工具和聘请安全专家的小公司来说,可以通过这种方式根据需要雇佣专家来检
查他们的系统。由于系统测试大约是半年一次,对于小机构来说,这种方法可以节约很多成本。
目前,每年有大约64亿美元用于安全工具和安全检查。渗透测试执行规范在2009年正式确定,时间也不是很长。对于缺乏经验的人来说,编写可用的安全工具以及维护一个安全系统会令他们望而却步。对于正在寻自己事业的人来说,渗透测试是一个快速发展的领域,在这个领域有很多道路可以作为自己的事业来追逐。
随着网络技术的发展,网络已经越来越多地渗透到当前社会生活的方方面面,网上电子商务、电子政务、电子金融等业务日益普及,网络上的敏感数据也越来越多,自然对网络安全提出了更高的要求。
根据一般的定义,网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。要做到这一点,必须保证网络系统软件、应用软件、数据库系统具有一定的安全保护功能,并保证网络部件,如终端、调制解调器、数据链路的功能仅仅能被那些被授权的人访问。
在现实世界中,由于网络相关的各种软硬件安装、配置、管理上面基本不可能做到没有任何缺陷和漏洞,所以可以说不存在绝对的网络安全。尤其在当下网络技术逐渐普及扩散的情境下,防范各种形式的黑客攻击是网络资源管理者必须严肃考虑的问题。
根据黑客攻击的类型,大致可以分为两种,一种是直接针对操作系统本身或应用软件的安全漏洞进行的攻击,传统的注入端口扫描、弱口令爆破、缓冲器溢出都属于这种类型的攻击,如果攻击成功往往可以直接远程控制目标系统,因此一旦出问题危害极大,但针对这种攻击的防范技术也比较成熟,采用最新的安全操作系统、强大的防火墙和IDS入侵检测系统可以将绝大部分入侵企图拒之门外。另外一种就是针对动态Web网站进行的攻击,它不像针对系统的攻击那样直接,成功后能在目标系统上进行的操作有限,往往还需要进行提权等后续工作,但目前Web网站本身设计上的安全防护水平普遍不高,针对Web网站的防范措施目前也还不够成熟,所以有安全问题的Web网站非常多,Web网站的攻防也是现在安全技术领域的研究热点。
传统上,网络应用业务采用C/S(客户机和服务器)模式,即开发出安装在普通客户计算机上的递交申请业务模块和安装在高性能服务器上的响应请求业务模块,这样做的好处是性能
高,响应速度快,但缺点是需要为每个业务专门开发不同的服务端和客户端,开发和学习的成本也高,所以现在的趋势是将所有的服务模块都放到Web网站上,而客户机统一使用浏览器去访问Web网站去实现业务功能。
用Web网站形式开发网络业务有不少优点,首先是客户端统一为浏览器、降低了这方面的学习成本,另一方面,Web网站的主流开发语言(ASP、PHP、JSP等)是动态脚本语言,比起用C/C++、Java等语言开发C/S程序,难度有所降低,有利于快速开发出所需的项目。但是从安全方面考虑,由于Web网站牵涉到的一些网络协议先天的不足,以及由于网络技术发展太快,网站复杂程度随着需求扩展不断膨胀,而网站开发程序员的水平和安全意识往往没有跟上,导致Web网站非常容易出现各种安全漏洞,使黑客能够对其进行各种形式的攻击,常见的Web安全漏洞主要有SQL注入和XSS跨站攻击等。
SQL注入(SQLinjection)是发生在Web应用程序和后台数据库之间的一种安全漏洞攻击,它的基本原理是:攻击者精心构建一个包含了SQL指令的输入数据,然后作为参数传递给应用程序,在应用程序没有对输入数据做足够的检查的情况下,数据库服务器就会被欺骗,将本来只能作为普通数据的输入当成了SQL指令并执行。
数据库是动态网站的核心,包含了很多网站相关的敏感数据,例如管理员的账号和密码等,所以一旦数据库的信息被SQL注入非法查询,这些敏感信息就会被泄露,导致严重后果。此外,SQL注入还可能被用于网页篡改、网页挂马,更为严重的是,有些数据库管理系统支持SQL指令调用一些操作系统功能模块,一旦被SQL注入攻击甚至存在服务器被远程控制安装后门的风险。
简单地说,XSS也是由于Web应用程序对用户的输入过滤不严而产生,攻击者利用XSS漏洞可以将恶意的脚本代码(主要包括html代码和JavaScript脚本)注入到网页中,当其他用户浏览这些网页时,就会触发其中的恶意脚本代码,对受害者进行诸如Cookie信息窃取、会话劫持、网络钓鱼等各种攻击。
与主动攻击Web服务器端的SQL注入攻击不同,XSS攻击发生在浏览器客户端,对服务器一般没有直接危害,而且总体上属于等待对方上钩的被动攻击,因此XSS这种安全漏洞虽很早就被发现,其危害性却曾经受到普遍忽视,但随着网络攻击者挖掘出了原来越多的XSS漏洞利用方式,加上Web2.0的流行、Ajax等技术的普及,使得黑客有了更多机会发动XSS攻击,导致近年来XSS攻击的安全事件层出不穷,对XSS攻防方面研究的重视程度明显提高。
当然,Web网站面临的安全威胁还有很多,并且随着网络技术和网络业务的发展而不断更新,例如CSRF跨站请求伪造、界面操作劫持等。
由于各种安全漏洞,因特网上的Web网站面临黑客攻击的风险,因此必须采取措施进行防护工作。传统防火墙因为必须放行Web服务的端口(一般是80端口),所以对SQL注入、XSS跨站攻击之类入侵手段没有防护效果,现在也出现了一些专门用于保护Web网站的安全设备,例如WAF防火墙、安全狗等,但这些设备并不是万能的,往往容易被高水平的入侵者绕过。最有效的措施还是进行Web渗透测试。
渗透测试时安全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试能够直观的让管理人员知道自己网络所面临的问题。
Web渗透测试主要是对Web应用程序和相应的软硬件设备配置的安全性进行测试。进行Web渗透测试的安全人员必须遵循一定的渗透测试准则,不能对被测系统进行破坏活动。Web安全渗透测试一般是经过客户授权的,采取可控制、非控制性质的方法和手段发现目标服务器、Web应用程序和网络配置中存在的弱点。
通过Web渗透测试后,即可有针对性地对Web网站上的安全漏洞进行修补,最大程度地加固系统,确保安全。
现在攻击者可以设法利用各种欺骗手段让其他Web网站用户执行XSS代码,这里利用存储型XSS漏洞,由攻击者在留言板上发表包含XSS利用代码的内容插入网站数据库。
web应用防护系统