文章内容
绝大多数企业将大量的投资花费在网络和服务器的安全上,没有从真正意义上保证应用本身的安全,给黑客以可乘之机。当今世界, Internet(因特网)已经成为一个非常重的基础平台,很多企业都将应用架设在该平台上,为客户提供更为方便、快捷的服务支持。这些应用在功能和性能上,都在不断的完善和提高,然而在非常重要的安全性上,却没有到足够的重视。
由于网络技术日趋成熟,黑客们也将注意力从以往对网络服务器的攻击逐渐转移到了对Web应用的攻击上。根据 Gartner的调查,信息安全攻击有75%都是发生Web应用而非网络层面上。同时,数据也显示,三分之二的Web站点都相当脆弱,易受攻击,然而现实却是,绝大多数企业将大量的投资花费在网络和服务器的安全上,没有从真正意上保证Web应用本身的安全,给黑客以可乘之机。
一、Web安全介绍
1、什么是Web应用
Web应用是由动态脚本、编译过的代码等组合而成。它通常架设在Web服务器上,用户在Web浏览器上发送请求,这些请求使用HTTP协议,经过因特网和企业的Web应用交互,由Web应用和企业后台的数据库及其他动态内容通信。
2、Web应用的架构
尽管不同的企业会有不同的Web环境搭建方式,一个典型的Web应用通常是标准的三层架构模型。
在这种最常见的模型中,客户端是第一层;使用动态Web内容技术的部分属于中间层;数据库是第三层。用户通过Web浏览器发送请求( request)给中间层,由中间层将用户的请求转换为对后台数据的查询或是更新,并将最终的结果在浏览器上展示给用户。
二、Web安全渗透测试分析
1、什么是Web渗透测试
渗透测试( Penetration Test)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试能够直观的让管理人员知道自己网络所面临的问题。而Web渗透测试主要是对Web应用程序和相应的软硬件设备配置的安全性进行测试。
进行Web渗透测试的安全人员必须遵循一定的渗透测试准则,不能对被测系统进行破坏活动。Web安全渗透测试一般是经过客户授权的,采用可控制、非破坏性质的方法和手段发现目标服务器、Web应用程序和网络配置中存在的弱点。它的适用范围即可以在Web系统发布之前进行安全测试,也可以在系统发布之后,持续跟踪渗透测试Web系统,从而在最大限度上保证Web系统的安全。
2、Web安全渗透测试分类
实际上,渗透测试并没有严格的分类方式。
1)根据渗透类别分类
- 黑箱测试:黑箱测试又被称为所谓的“Zero-Knowledge Testing”,渗透者处于完全对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、 Email及各种公开对外的服务器。
- 白盒测试:白盒测试与黑箱测试恰恰相反,测试者可以通过正常渠道向被测单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(程序员管理者等)进行面对面的沟通。
2)根据渗透目标分类
- 主机操作系统渗透:对 Windows、 Solaris、AIX、 Linux、SCO、SGl等操作系统本身进行渗透测试。
- 数据库系统渗透:对MS-SQL、 Oracle, MySQL、 Informix、 Sybase、DB2等数据库应用系统进行渗透测试。
- 应用系统渗透:对渗透目标提供的各种应用程序,如ASP、JSP、PP等组成的WWW应用程序进行渗透测试。
- 网络设备渗透:对各种防火墙、入侵检测系统、网络设备进行渗透测试。
3、Web安全渗透测试标准
由于渗透测试是一个比较复杂的系统工程,目前有许多不同的测试标准,主要有国家标准、安全组织标准等。因为对于攻击者来说,他们的目的只是为了达到攻克系统,获得系统控制权的任务。而对于安全测试人员来说,他们的任务是制定一套测试流程,尽可能高效地测试网络的安全性,所以对于Web安全测试来说,需要在现有的安全标准与测试流程中,总结提炼出一套行之有效的Web安全渗透测试内容和方法。
下面是目前的一些渗透测试标准:
1)国家级别的标准
- 美国的信息安全测试和评估技术指南( Technical Guide to InformationSecurity Testing and Assessment)。一个有效的风险管理过程是一个成功的IT安全项目的重要组成部分。这本指南是美国的国家标准,其有一定的权威性。其基本日标是为了保护机构,使其有能力完成们的任务,而不仅仅是保护他们的IT资产。这本指南具有一定方法论方面的指导意义
- 德国联邦信息安全办公室发布的渗透测试模型( A penetration test model)。这份渗透测试型对于从事和将要从事渗透测试服务的机构和人员有一定参考价值,也可以帮助有这方面需求的客户了解这方面的信息安全组织级别的标准。
2)安全组织级别标准
- Web安全组织 OWASP发布的测试指南( OWASP Testing Guide V3.0)。这份指南提供了较为完整的Web安全测试框架和相应测试条目,安全测试人员可以根据不同的测试需求,定制自己的测试项目。
- 开源安全测试方法指南( (The Open Source Security TestingMethodology Manual)。这本测试手册是一个完备的用于安全测试的专业标准。作为一个专业标准,它包括了参与规则对于专业测试人员的道德规范、测试所应遵循的法律和一个完整的测试条目集合。这本手册的目标是希望成为专业测试人员的完备手册。
总体说来,虽然不同的标准是从理论的角度整体上对不同的安全问题进行了分类总结,但不同的标准对安全问题的分类不尽相同,而且标准对许多漏洞的形成原因没有进行深入分析,所以对于安全测试人员来说,在实际渗透测试时,往往需要根据对目标系统测试的需求,参照标准,自己设计渗透测试内容和测试方法。
三、Web安全渗透测试方法设计
1、Web安全渗透测试基本步骤
因为Web渗透测试是模拟黑客的行为,对Web系统进行安全性测试,所以首先分析下黑客攻击Web的基本步骤。Web攻击不是漫无目的的随意攻击,往往是有一定既定目标的攻击,这通常要经历5个步骤。
从黑客攻击Web的方式可以看出,这其中主要经历了5个主要步骤:信息收集、扫描、攻击、植入后门、消除痕迹。
1)信息收集
正所谓工欲善其事,必先利其器,Web攻击发生前,攻击者必定会对攻击目标进行细致的侦查工作,从而为后续的攻击做准备。对目标网络进行侦查之前,首先要收集汇总各种与目标系统有关的信息,形成对目标网络必要的轮廓认识,并为实施攻击做好准备。
信息的收集可以通过以下几种方式进行:DNS域名服务, Finger服务, Whois服务, Nslookup,Ping 与 PathPing, Tracert等信息查询。
2)扫描
通过信息收集掌握了目标网络的外部特征信息之后,可以对目标网络进行有针对性的扫描,扫描的最终结果决定了能否对目标网络进行攻击,任何扫描得到的漏洞信息,都可能成为突破网络的切入点,当然扫描得到的结果不一定就是可以直接利用的系统漏洞。
a)从利用方式来说,可以将信息分为两类
- 一类是安全敏感信息,这包括第一阶段收集到的信息,以及扫描阶段得到的关于端口开放以及操作系统类型信息,这些信息虽然不能直接用于对目标网络的渗透与攻击,但有助于全面了解目标网络的信息。
- 另一类就是安全漏洞信息,这类安全漏洞可能是系统配置上的疏忽造成的(例如没有及时打补丁),也可能是操作系统或应用程序自身的缺陷,结果是都可能导致利用漏洞突破并控制目标网络。
b)常用手段
- 探测类扫描主要有以下常用手段:端口扫描、操作系统探测、应用服务探测、路由器探测、防火墙探测等。
- 漏洞发掘类扫描主要有:Web、CGI安全漏洞扫描, Windows、Unix、 Linux等操作系统漏洞扫描,SNMP漏泂扫描、SQL Server等数据库服务漏洞扫描,路由器、防火墙漏洞扫描。
扫描过程实际上已经与目标主机或网络发生物理链接,可以看作是程度较轻的攻击行为。扫描结果决定了攻击者的下一步行动。
c)扫描要达到的基本目标
- 确定目标系统是否真实存在;
- 确定目标系统上都有哪些服务正在运行或监听;
- 探查操作系统版本。
网络攻击往往寻找最薄弱的地方作为突破口,所以黑客攻击时要尽可能寻找系统存在的漏洞,从而作为攻击的切入点。
3)攻击
通过信息收集和扫描阶段得到相关线索以后,经过分析和筹划,下一步就可以采取各种手段以实现直接的攻击目的。
从黑客攻击的目的来看,可以分为两种:
- 一种是给目标以致命打击,使目标系统受损,甚至瘫痪,这好比是正面战场上的交锋,目的是致敌人于死地;
- 另一种攻击则更加常见,其目的在于获取直接的利益,比如下载到目标系统的机密信息,或者是得到目标系统的最高控制权,过程中,攻击者无意对目标系统的正常能力进行破坏,他可能更希望非常隐蔽地实现自已的目的。
4)植入后门
在一次成功的攻击之后,为了以后的再次进入和控制目标主机,一般要放置一些后门程序,由于网络主机系统经常升级,这些原来被利用突破系统的漏洞在系统升级以后就可能被修补,而后门程序就可以不依赖于原来用于突破的漏洞,保持长期稳定的控制能力。
后门可能是一个隐藏的管理员账号、一个具有超级权限的服务进程,有时甚至是一个故意置入的系统漏洞。好的后门程序在保证最高的系统权限的同时,必须不易被目标用户察觉。许多木马程序、远程控制程序都可以作为后门程序植入,最新的一些后门采取可卸载内核模块(LKM)的办法,动态地修改系统内核,一般情况下无法检测出来。功能强大的后门程序,可以利用被控主机运行扫描、嗅探等技术突破整个网络。
5)消除痕迹
作为一次完整的Web攻击,黑客在取得需要的战果以后,就要打扫战场了,也就是消除痕迹。在信息收集、扫描、攻击阶段,即使采取了许多防护措施,也会留下直接或间接的攻击痕迹。攻击痕迹可能会在目标主机的管理员进行例行检查时暴露出来,进一步的安全检查则可能导致攻击行为的完全暴露,甚至发现植入的后门程序;攻击痕迹也可能被富有经验的安全调试员利用来反向跟踪到真正的攻击源头,同时,攻击痕迹是攻击技术和手段的直接反映。
消除痕迹是一项细心的工作,系统的审计日志、Web的访问记录、防火墙的监控攻击留下的残余线索都必须认真清理。对于一些必须留下的后门程序,需要采取进程隐藏文件隐藏、核心文件替换、程序加密等多种手段避免被发现。
2、Web安全渗透测试内容
Web渗透测试流程与黑客攻击的方法十分类似,主要的区别在于,Web渗透测试不会对系统进行破坏和窃取信息等违法行为。测试Web漏洞的核心思想是寻找Web程序中能够提交用户输入的地方。
因为Web安全渗透测试就是模拟黑客的攻击行为,对系统的安全性进行测试,所以可以从漏洞攻击的角度对渗透测试的内容进行系统分析。发现最终Web遭受攻击源头,保障Web页面安全。
四、总结
信息技术的迅速发展,加速和深化了社会信息化的进程,使得各级组织和实体与信息系统的关系日趋密切。建立在庞大、集成的网络基础上的,多平台、网络化、充分集成的Web 应用系统己经成为最流行的处理模式。
Web应用的安全问题己经成为网络应用的主要问题之一,如何判断Web应用是否满足安全需要,如何科学地加强Web应用安全管理,如何科学地测试评估Web应用的安全性是所有Web应用系统所面临的重要课题,对Web安全渗透测试展开全面的研究具有重要的理论意义和实用价值。