防范网页挂马攻击 从对WEB站点进行安全评估开始
对于一些大型网站来说,通常拥有一整套已经执行了的WEB站点安全防范解决方案,但是,为什么一些网站还是会被攻击者挂载木马?其中一个最主要的原因是已经实施的WEB站点安全解决方案只能够应对已经出现的安全漏洞和威胁。而攻击者总是在通过各种手段来分析网站中可能会存在的弱点或漏洞,以便能够成功绕过网站当前的安全防范措施来实施挂马攻击。针对这样的一种WEB站点安全现状,最好的方式就是在部署相应的安全防范安全解决方案的同时,还必需采取与攻击者相同的手段,也就是在网站的运营过程中,不断对它进行安全评估,以此来找到网站中可能存在的弱点和漏洞。
对WEB站点进行安全评估是WEB安全防范处理过程中非常重要的一个环节,它应当贯穿站点的整个生命周期。对WEB站点实施安全评估的目的就是指安全评估人员,使用相应的评估工具和技术,经过一系列恰当的方法,对WEB服务器本身、服务器系统、后台数据库系统及网络中已经实施的安全机制,进行全面的检测和评估,以此来检测整个WEB系统是否还存在弱点,以及验证实施的安全机制是否有效。并根据最后的评估分析结果,对现有的安全策略进行修订,对实施的安全机制进行补充。
一、制定WEB站点安全评估方案
对WEB站点进行安全评估,为了能够达到最终的效果,事先先制定一个切合实际的安全评估方案是十分有意义的。当然,对于一些个人网站,或者只进行一次WEB站点弱点检测来说,也可以跳过制定安全评估方案这个环节,直接使用系统或WEB弱点检测工具对WEB站点所在的系统和其本身进行详细的弱点检测即可。
如果需要对一个WEB站点进行全面的安全评估,或者你需要一个安全评估方案来指导你完成相应的WEB站点弱点检测任务,那么,我们可以按下列列出的内容,来构建一个适合自己实际需求的WEB站点安全评估方案:
1、为WEB站点安全评估确定一个最终目标,也就是为什么要这么做,这样做需要达到什么的目的。
2、为WEB站点的安全评估指定安全评估人员。
3、确定安全评估时具体的评估对象。
4、为WEB站点的安全评估制定具体的时间计划表,如果没有什么特殊情况,我们应当严格按照这张时间表规定的时间对WEB站点实施安全评估。
5、为WEB站点的安全评估指定具体的评估工具,并要求评估人员对这些工具进行相应的学习,以达到训练掌握它们的目的,还必需规定评估人员按时对这些评估软件所依赖的评估漏洞库和软件本身进行不断的更新。
6、规定是将安全评估工具安全装在目标WEB服务器进行安全评估,还是在专门的硬件设备(例如笔记本电脑)上安装评估软件,然后在使用时再接入目标网络实施评估任务。
7、明确具体的安全评估方法
8、明确安全评估过程中需要注意的操作事项;
9、明确安全评估的规章制度和评估人员责任;
10、规定安全评估结果的记录方式,以及评估报告的上报、存档和检索方式。
WEB站点安全评估方案应当根据实际的网络环境,以及站点的具体内容和功能,经过详细的调查和分析后,再由安全评估参与人员共同完成。当然,一个实际的WEB站点安全评估方案,所包括的内容可能比上述所列出的内容要多得多,也详细得多,在这里只是对它们做了一个简单的说明,具体的内容还需要大家根据实际情况做具体的补充。
二、WEB站点安全评估的具体实施方式
WEB站点安全评估的具体实施涉及到四个最关键的因素,它们是安全评估人员、评估工具、评估方法和评估对象。
1、安全评估人员
安全评估人员,应当包括WEB站点所有者、管理员及安全评估实施人员。安全评估实施人员的技术和经验,以及工作态度在一定程度上决定了评估的效果和可信性。
有时,一些WEB站点不得不将安全评估任务外包给一些具有安全评估资质的第三方机构来完成,这也是一些没有具体的WEB站点管理员的中小企业WEB网站经常使用的方式。
还有一些WEB站点,所有的工作都是由站点管理员一个人来完成,对于这样的WEB站点安全评估报告,通常只会被他自己所接受,也就是用来对站点当前的安全状况进行一次简单的体检,以此来做到心中有数。
2、安全评估工具
安全评估工具需要根据所要评估的具体对象来选择,不同的评估对象,所使用的评估工具是不相同的。这是由于有些安全评估工具只是针对某种服务或软件,有些是针对整个主机或网络的;有些安全评估工具只能在某种操作系统平台下运行,而有些安全评估工具却能在许多流行的操作系统平台下运行;一些安全评估工具是软件方式的,还有一些是以独立的硬件方式存的;有些安全软件是免费的,而有一些是商业的。由此,要找到一款合适的安全评估工具还真的不是随便选择几样这么简单。并且,一些其他人认为非常好用的安全评估工具,对于我们自己来说并不见得会很喜欢,因此,有时我们不得不经过不断的试用才会知道哪几款评估软件才是最适合我们自己的。
幸运的是,现在还是已经有许多功能强大的评估工具可以供我们选择,这些工具有:
(1)Nmap
Nmap是一个网络探测和安全扫描程序,我们可以使用它来扫描WEB站点所在系统或整个网络,并以此来得到WEB站点所在系统正在运行及提供什么样的服务,开放了什么样的端口,使用什么样的操作系统等信息。Nmap支持包括UDP、TCP connect()、TCP SYN()、ICMP、FIN及ACK等扫描方式,其中有许多扫描方式还可以用来检测防火墙及IDS/IPS等设备的回应情况。
Nmap能够在类UNIX系统及Windows系统的终端下以命令方式运行,它的命令执行格式为:nmap [Scan Type(s)] [Options]。我们可以从http://insecure.org/网站上下载到它的最新版本,以及得到它的详细说明文档。
(2)Nessus
Nessus同样是一个功能强大的安全检测工具,它允许用户使用插件对它进行功能上的扩展。Nessus使用一个频繁更新的漏洞库作为安全检测的依据。我们可以到www.nessus.org网站上下载到它的免费版本Nessus3,以及得到它的详细的使用文档。现在大部分的安全人员都使用它来对网络或主机系统进行全面安全检测。
(3)Nikto
Nikto是一款开放源代码、功能强大的WEB弱点扫描评估软件,它能对WEB服务器的多种安全项目进行测试,能在230多种服务器上扫描出2600多种有潜在危险的文件、CGI及其他问题。Nikto使用LibWhiske漏洞库,Nikto已成为WEB站点管理员必备的WEB安全检测工具之一。
可以到http://www.cirt.net/网站上下载Nikto的最新版本。Nikto是基于PERL开发的程序,所以需要PERL环境。因此,当Nikto需要在Windows系统下使用时,要同时下载并安装ActiveState Perl环境。当需要Nikto使用SSL的安全方式对WEB站点进行安全扫描时,还会用到Net::SSLeay PERL模式,此时必须保证系统中安装有OpenSSL。它们的具体安装和使用细节可以参考它们的帮助文档。
另外,还有一个与Nikto相似的WEB弱点扫描工具Wikto,它不仅具有Nikto同样的功能,还提供GUI图形界面,但只能在Windows系统下运行。它可以到http://www.sensepost.com/research/wikto/下载。。
(4)N-Stealth
N-Stealth是ZMT公司出品的一款商业的WEB站点安全扫描软件,同时也有可以免费使用的版本,只是功能没有商业版本的多,漏洞库也不支持自动更新。我们可以到www.nstalker.com网站上下载它的最新版本,它可以在win98/ME/2000/XP/2003系统下运行。
(5)ISS Database Scanner
ISS的数据库扫描器(DataBase Scanner)是一个针对数据库管理系统进行风险评估的检测工具。它可以自动识别数据库系统中各种潜在的安全问题,产生通俗易懂的报告来表示安全风险和弱点,并对违反和不遵循数据库安全策略的弱点和漏洞提出修改建议。
Database Scanner 可以扫描的数据包括Microsoft SOL Server 6.x 或7.x、Sybase Adaptive Server 11.x和Oracle 8i, 8.0 或 7.3。它能通过网络快速、方便地扫描数据库,去检查数据库中可能存在的安全漏洞,全面评估所有的安全漏洞和认证、授权、完整性方面的问题。
除了上面介绍的安全扫描软件以外,还有一些软件也有可以用来进行安全检测工作,包括X-scan3.3、WebInject1.41和Acunetix WVS Free Edition,以及一款功能全面且性能强大的商业安全扫描软件ISS Internet Scanner等。
另外,在使用任何评估工具之前,要先对其漏洞库进行升级更新。这是由于现在大多数安全评估工具都是利用漏洞特征库来进行弱点检测的,只有保证它们的漏洞特征库为最新状态,才有可能发现WEB站点及所依赖的系统上可能存在的最新漏洞。
3、安全评估方法
安全评估方法就是具体的安全评估实施方式,它主要涉及到下列五个具体的方面:
(1)由外向内测试
这种安全评估方式就是以攻击者的角度从WEB站点所在网络结构中的外部,对它进行安全扫描工作,以此来检测WEB站点防范来自互联网远程攻击的能力。此种测试方式可以使用上述评估工具中的N-stealth、X-Scan和WebInject等工具来进行。
(2)由内向外测试
由内向外的安全检测方式是指从WEB站点所在网络结构的内部,对它进行安全扫描工作。这种安全检测方式主要用来检验WEB站点对来自内部的攻击防范能力,以及检测对用户权限分配情况和内部数据传输过程中的安全性。此时可使用一些操作系统内部网络命令,例如Netstat,以及Hping和Nikto、X-scan、Nmap、Acunetix WVS Free Edition等工具来进行完成检测任务。
(3)模拟攻击测试
模拟攻击测试是指在实际的测试过程中并不对WEB站点所在服务器系统及WEB应用程序、网络设备进行真正的攻击事件。这种测试方式并不会对WEB站点的性能产生影响,平时大部分的安全评估工作应当使用模拟攻击的测试方式。
(4)真实攻击测试
当使用模拟攻击测试不能真正检验到网站的安全状况时,就可以使用真实的攻击测试。由于攻击是真实的,因此会对WEB站点的性能造成影响,因而这种方式最好在WEB开发的最初阶段,以及没有WEB业务的时候进行。现在有很多的网站都会请一些专门的黑客来对自己的站点进行真实的攻击,以便最大程度地检测出WEB站点中存在的安全漏洞问题。
(5)社会工程攻击测试
有许多人认为社会工程只是攻击者用来进行攻击的一种手段,却不知它也是一种很好的检测企业内部员工及站点管理员反社会工程攻击能力强度的评测工具。我们可以通过电话、手机短信及电子邮件的方式对评测的人员实施与攻击相同的社会工程攻击测试。同样,我们还可以通过直接接触的方式对被评测者进行相应的社会工程攻击测试评估。当我们决定进行社会工程方式的安全评估工作时,最好让可信的第三方来进行,这样才可以达到最好的评估效果。
4、评估对象
评估对象就是指评估过程中具体的评估实施目标,包括WEB服务器主机操作系统、WEB应用程序框架、数据库系统及网络基础设施等。
这四个因素是WEB站点安全评估工作中缺一不可的,缺少任何一个或任何一个出现问题,都会使整个评估工作中断或使评估结果不可信。还有就是评估工具的使用并不一定得一次只使用一种工具,我们可以根据所要评估的对象和评估的内容进行组合应用。毕竟,有时一种工具只在某一个方面比较有效,而且,评估软件还存在误报和漏报的问题,组合使用工具,再加上评估人员自己经验的判断,就能将评估结果的有效性提高到最高水平。
当WEB站点安全评估工作完成后,我们还应当根据安全评估结果,对安全策略进行相应的修订,同时对实施了的安全机制进行相应的补充。WEB站点的安全评估工作,在站点没有真正投入运行前,可不断地重复进行检测,直到我们认为已经修补了所有已知的漏洞为止。同时,我们还必需在WEB站点运营过程当中进行安全评估,以此来发现潜在的安全威胁。
不能忽略的一点,如今攻击者善于主动分析并发现新的漏洞,这样就对现有的漏洞扫面系统造成了一定的瓶颈,并不能完全解决网站被挂马攻击这种威胁。因此,我们在使用它的同时,还必需使用其它的方式来补充它的不足。
因此作为Web站点的管理者而言,需要通过不断对WEB站点进行安全评估,以便能先攻击者一步来发现网站中可能存在的弱点,然后才能在攻击没有发动前就修补好这些漏洞,这样才有可能最大限度地减少网站被挂马的风险。为了更好地了解安全趋势,我们还可以到www.cert.org及www.securityfocus.comh订阅最新的安全漏洞的邮件列表,让我们可以及时了解每天的安全漏洞信息。
对WEB站点进行安全评估是WEB安全防范处理过程中非常重要的一个环节,它应当贯穿站点的整个生命周期。对WEB站点实施安全评估的目的就是指安全评估人员,使用相应的评估工具和技术,经过一系列恰当的方法,对WEB服务器本身、服务器系统、后台数据库系统及网络中已经实施的安全机制,进行全面的检测和评估,以此来检测整个WEB系统是否还存在弱点,以及验证实施的安全机制是否有效。并根据最后的评估分析结果,对现有的安全策略进行修订,对实施的安全机制进行补充。
一、制定WEB站点安全评估方案
对WEB站点进行安全评估,为了能够达到最终的效果,事先先制定一个切合实际的安全评估方案是十分有意义的。当然,对于一些个人网站,或者只进行一次WEB站点弱点检测来说,也可以跳过制定安全评估方案这个环节,直接使用系统或WEB弱点检测工具对WEB站点所在的系统和其本身进行详细的弱点检测即可。
如果需要对一个WEB站点进行全面的安全评估,或者你需要一个安全评估方案来指导你完成相应的WEB站点弱点检测任务,那么,我们可以按下列列出的内容,来构建一个适合自己实际需求的WEB站点安全评估方案:
1、为WEB站点安全评估确定一个最终目标,也就是为什么要这么做,这样做需要达到什么的目的。
2、为WEB站点的安全评估指定安全评估人员。
3、确定安全评估时具体的评估对象。
4、为WEB站点的安全评估制定具体的时间计划表,如果没有什么特殊情况,我们应当严格按照这张时间表规定的时间对WEB站点实施安全评估。
5、为WEB站点的安全评估指定具体的评估工具,并要求评估人员对这些工具进行相应的学习,以达到训练掌握它们的目的,还必需规定评估人员按时对这些评估软件所依赖的评估漏洞库和软件本身进行不断的更新。
6、规定是将安全评估工具安全装在目标WEB服务器进行安全评估,还是在专门的硬件设备(例如笔记本电脑)上安装评估软件,然后在使用时再接入目标网络实施评估任务。
7、明确具体的安全评估方法
8、明确安全评估过程中需要注意的操作事项;
9、明确安全评估的规章制度和评估人员责任;
10、规定安全评估结果的记录方式,以及评估报告的上报、存档和检索方式。
WEB站点安全评估方案应当根据实际的网络环境,以及站点的具体内容和功能,经过详细的调查和分析后,再由安全评估参与人员共同完成。当然,一个实际的WEB站点安全评估方案,所包括的内容可能比上述所列出的内容要多得多,也详细得多,在这里只是对它们做了一个简单的说明,具体的内容还需要大家根据实际情况做具体的补充。
二、WEB站点安全评估的具体实施方式
WEB站点安全评估的具体实施涉及到四个最关键的因素,它们是安全评估人员、评估工具、评估方法和评估对象。
1、安全评估人员
安全评估人员,应当包括WEB站点所有者、管理员及安全评估实施人员。安全评估实施人员的技术和经验,以及工作态度在一定程度上决定了评估的效果和可信性。
有时,一些WEB站点不得不将安全评估任务外包给一些具有安全评估资质的第三方机构来完成,这也是一些没有具体的WEB站点管理员的中小企业WEB网站经常使用的方式。
还有一些WEB站点,所有的工作都是由站点管理员一个人来完成,对于这样的WEB站点安全评估报告,通常只会被他自己所接受,也就是用来对站点当前的安全状况进行一次简单的体检,以此来做到心中有数。
2、安全评估工具
安全评估工具需要根据所要评估的具体对象来选择,不同的评估对象,所使用的评估工具是不相同的。这是由于有些安全评估工具只是针对某种服务或软件,有些是针对整个主机或网络的;有些安全评估工具只能在某种操作系统平台下运行,而有些安全评估工具却能在许多流行的操作系统平台下运行;一些安全评估工具是软件方式的,还有一些是以独立的硬件方式存的;有些安全软件是免费的,而有一些是商业的。由此,要找到一款合适的安全评估工具还真的不是随便选择几样这么简单。并且,一些其他人认为非常好用的安全评估工具,对于我们自己来说并不见得会很喜欢,因此,有时我们不得不经过不断的试用才会知道哪几款评估软件才是最适合我们自己的。
幸运的是,现在还是已经有许多功能强大的评估工具可以供我们选择,这些工具有:
(1)Nmap
Nmap是一个网络探测和安全扫描程序,我们可以使用它来扫描WEB站点所在系统或整个网络,并以此来得到WEB站点所在系统正在运行及提供什么样的服务,开放了什么样的端口,使用什么样的操作系统等信息。Nmap支持包括UDP、TCP connect()、TCP SYN()、ICMP、FIN及ACK等扫描方式,其中有许多扫描方式还可以用来检测防火墙及IDS/IPS等设备的回应情况。
Nmap能够在类UNIX系统及Windows系统的终端下以命令方式运行,它的命令执行格式为:nmap [Scan Type(s)] [Options]。我们可以从http://insecure.org/网站上下载到它的最新版本,以及得到它的详细说明文档。
(2)Nessus
Nessus同样是一个功能强大的安全检测工具,它允许用户使用插件对它进行功能上的扩展。Nessus使用一个频繁更新的漏洞库作为安全检测的依据。我们可以到www.nessus.org网站上下载到它的免费版本Nessus3,以及得到它的详细的使用文档。现在大部分的安全人员都使用它来对网络或主机系统进行全面安全检测。
(3)Nikto
Nikto是一款开放源代码、功能强大的WEB弱点扫描评估软件,它能对WEB服务器的多种安全项目进行测试,能在230多种服务器上扫描出2600多种有潜在危险的文件、CGI及其他问题。Nikto使用LibWhiske漏洞库,Nikto已成为WEB站点管理员必备的WEB安全检测工具之一。
可以到http://www.cirt.net/网站上下载Nikto的最新版本。Nikto是基于PERL开发的程序,所以需要PERL环境。因此,当Nikto需要在Windows系统下使用时,要同时下载并安装ActiveState Perl环境。当需要Nikto使用SSL的安全方式对WEB站点进行安全扫描时,还会用到Net::SSLeay PERL模式,此时必须保证系统中安装有OpenSSL。它们的具体安装和使用细节可以参考它们的帮助文档。
另外,还有一个与Nikto相似的WEB弱点扫描工具Wikto,它不仅具有Nikto同样的功能,还提供GUI图形界面,但只能在Windows系统下运行。它可以到http://www.sensepost.com/research/wikto/下载。。
(4)N-Stealth
N-Stealth是ZMT公司出品的一款商业的WEB站点安全扫描软件,同时也有可以免费使用的版本,只是功能没有商业版本的多,漏洞库也不支持自动更新。我们可以到www.nstalker.com网站上下载它的最新版本,它可以在win98/ME/2000/XP/2003系统下运行。
(5)ISS Database Scanner
ISS的数据库扫描器(DataBase Scanner)是一个针对数据库管理系统进行风险评估的检测工具。它可以自动识别数据库系统中各种潜在的安全问题,产生通俗易懂的报告来表示安全风险和弱点,并对违反和不遵循数据库安全策略的弱点和漏洞提出修改建议。
Database Scanner 可以扫描的数据包括Microsoft SOL Server 6.x 或7.x、Sybase Adaptive Server 11.x和Oracle 8i, 8.0 或 7.3。它能通过网络快速、方便地扫描数据库,去检查数据库中可能存在的安全漏洞,全面评估所有的安全漏洞和认证、授权、完整性方面的问题。
除了上面介绍的安全扫描软件以外,还有一些软件也有可以用来进行安全检测工作,包括X-scan3.3、WebInject1.41和Acunetix WVS Free Edition,以及一款功能全面且性能强大的商业安全扫描软件ISS Internet Scanner等。
另外,在使用任何评估工具之前,要先对其漏洞库进行升级更新。这是由于现在大多数安全评估工具都是利用漏洞特征库来进行弱点检测的,只有保证它们的漏洞特征库为最新状态,才有可能发现WEB站点及所依赖的系统上可能存在的最新漏洞。
3、安全评估方法
安全评估方法就是具体的安全评估实施方式,它主要涉及到下列五个具体的方面:
(1)由外向内测试
这种安全评估方式就是以攻击者的角度从WEB站点所在网络结构中的外部,对它进行安全扫描工作,以此来检测WEB站点防范来自互联网远程攻击的能力。此种测试方式可以使用上述评估工具中的N-stealth、X-Scan和WebInject等工具来进行。
(2)由内向外测试
由内向外的安全检测方式是指从WEB站点所在网络结构的内部,对它进行安全扫描工作。这种安全检测方式主要用来检验WEB站点对来自内部的攻击防范能力,以及检测对用户权限分配情况和内部数据传输过程中的安全性。此时可使用一些操作系统内部网络命令,例如Netstat,以及Hping和Nikto、X-scan、Nmap、Acunetix WVS Free Edition等工具来进行完成检测任务。
(3)模拟攻击测试
模拟攻击测试是指在实际的测试过程中并不对WEB站点所在服务器系统及WEB应用程序、网络设备进行真正的攻击事件。这种测试方式并不会对WEB站点的性能产生影响,平时大部分的安全评估工作应当使用模拟攻击的测试方式。
(4)真实攻击测试
当使用模拟攻击测试不能真正检验到网站的安全状况时,就可以使用真实的攻击测试。由于攻击是真实的,因此会对WEB站点的性能造成影响,因而这种方式最好在WEB开发的最初阶段,以及没有WEB业务的时候进行。现在有很多的网站都会请一些专门的黑客来对自己的站点进行真实的攻击,以便最大程度地检测出WEB站点中存在的安全漏洞问题。
(5)社会工程攻击测试
有许多人认为社会工程只是攻击者用来进行攻击的一种手段,却不知它也是一种很好的检测企业内部员工及站点管理员反社会工程攻击能力强度的评测工具。我们可以通过电话、手机短信及电子邮件的方式对评测的人员实施与攻击相同的社会工程攻击测试。同样,我们还可以通过直接接触的方式对被评测者进行相应的社会工程攻击测试评估。当我们决定进行社会工程方式的安全评估工作时,最好让可信的第三方来进行,这样才可以达到最好的评估效果。
4、评估对象
评估对象就是指评估过程中具体的评估实施目标,包括WEB服务器主机操作系统、WEB应用程序框架、数据库系统及网络基础设施等。
这四个因素是WEB站点安全评估工作中缺一不可的,缺少任何一个或任何一个出现问题,都会使整个评估工作中断或使评估结果不可信。还有就是评估工具的使用并不一定得一次只使用一种工具,我们可以根据所要评估的对象和评估的内容进行组合应用。毕竟,有时一种工具只在某一个方面比较有效,而且,评估软件还存在误报和漏报的问题,组合使用工具,再加上评估人员自己经验的判断,就能将评估结果的有效性提高到最高水平。
当WEB站点安全评估工作完成后,我们还应当根据安全评估结果,对安全策略进行相应的修订,同时对实施了的安全机制进行相应的补充。WEB站点的安全评估工作,在站点没有真正投入运行前,可不断地重复进行检测,直到我们认为已经修补了所有已知的漏洞为止。同时,我们还必需在WEB站点运营过程当中进行安全评估,以此来发现潜在的安全威胁。
不能忽略的一点,如今攻击者善于主动分析并发现新的漏洞,这样就对现有的漏洞扫面系统造成了一定的瓶颈,并不能完全解决网站被挂马攻击这种威胁。因此,我们在使用它的同时,还必需使用其它的方式来补充它的不足。
因此作为Web站点的管理者而言,需要通过不断对WEB站点进行安全评估,以便能先攻击者一步来发现网站中可能存在的弱点,然后才能在攻击没有发动前就修补好这些漏洞,这样才有可能最大限度地减少网站被挂马的风险。为了更好地了解安全趋势,我们还可以到www.cert.org及www.securityfocus.comh订阅最新的安全漏洞的邮件列表,让我们可以及时了解每天的安全漏洞信息。