1、打造 WEB服务器安全攻坚战 一、转换角色,把自己当作可能的攻击者 大部分时候,我们若只是站在 WEB 管理员的角度上考虑问题,可能就发现不了 Web 服务器的漏洞。相反,我们此时若能够换个角度,把自己当作可能的攻击者,从他们的角 色出发,想想他们可能会利用那些手段、哪些 Web 服务器的漏洞进行攻击,或许,我们 就可以发现 Web 服务器可能存在的安全漏洞,从而早先一步,修补安全漏洞,防止被木 马或者病毒攻击。 从公司外面访问自己的 Web 服务器,进行完正的检测,然后模拟攻击自己的网站, 看看,会有什么样的结果。这对于 WEB 的安全性来说,可能是一种很好的方法。如我们 可以假当攻击者,利
2、用扫描工具,对 Web 服务器进行扫描,看看有否存在可以被攻击的 服务。有些东西我们平时可能不会引起我们重视,但是,利用黑客常用的工具进行扫描, 就会发现一些可能会被他们利用的服务或者漏洞。如在服务器安装的时候,操作系统会默 认的安装并启动一些不需要的服务;或者在服务器配置的时候,需要启动一些服务,但是事 后没有及时的关闭,从而给了不法攻击者一个攻击的机会。最常见的如 SNMP 服务,又称 简单网络管理协议。这个服务在系统安装完毕后,默认情况下是开启的。但是,这个服务 可以为攻击者提供服务器系统的详细信息,如 Web 服务器是采用了什么操作系统,在服 务器上开启了什么服务与对应的端口等等宝贵的
3、信息。攻击者只有了解这些最基本的信息 之后,才能够开展攻击。 我们安全管理人员,在平时的时候可能不会发现这个问题,但是,若能够利用黑客的 扫描工具一扫描,就能够发现问题的所在。CNB 中商科技认为在必要的时候,需要换个角 度,从攻击的角色出发,考虑他们会采用什么样的攻击方法。如此的话,我们才可以避免 “当局者迷”的错误,保障 Web 服务器的安全。 二、合理的权限管理 有时候,在一台服务器上,不仅运行了 Web 服务器,而且还会运行其他的诸如 FTP 服务器之类的网络服务。在同一台服务器上应用多种网络服务的话,很可能造成服务之间 的相互感染。也就是说,攻击者只要攻击一种服务,就可以利用相关的技
4、术,攻陷另一种 应用。因为攻击者之需要攻破其中一种服务,就可以利用这个服务平台,从企业内部攻击 其他服务。而一般来说,从企业内容进行攻击,要比企业外部进行攻击方便的多。 那或许有人会说,那不同服务采用不同服务器就可以了。其实,这对于企业来说,可 能是种浪费。因为从性能上讲,现在的服务器上同时部署 WEB 服务与 FTP 服务的话,是 完全可行的,性能不会受到影响。为此,企业从成本考虑,会采取一个服务器。而现在给 我们安全管理员出了一个难题,就是在两种、甚至两种以上的服务同时部署在一台服务器 上,如何保障他们的安全,防止他们彼此相互之间感染呢? CNB 中商科技现在就遇到这个问题。CNB 中商科
5、技现在的 Web 服务器上运行着三种 服务。一个是传统等 WEB 服务;二是 FTP 服务; 三是 OA(办公自动化)服务,因为该服务 是 WEB 模式的,互联网上也可以直接访问 OA 服务器,所以也就把他部署在这台服务器 上。由于这台服务器的配置还是比较高的,所以,运行这三个服务来说,没有多少的困难, 性能不会有所影响。现在的问题是,如号来保障他们的安全,FTP 服务器、OA 服务器与 Web 服务器之间安全上不会相互影响呢? CNB 中商科技现在采用的是 Windows2003 服务器,为了实现这个安全需求,把服 务器中所有的硬盘都转换为 NTFS 分区。一般来说,NTFS 分区比 FAT
6、 分区安全性要高的 多。利用 NTFS 分区自带的功能,合理为他们分配相关的权限。如为这个三个服务器配置 不同的管理员帐户,而不同的帐户又只能对特定的分区与目录进行访问。如此的话,即使 某个管理员帐户泄露,则他们也只能够访问某个服务的存储空间,而不能访问其他服务的。 如把 WEB 服务装载分区 D,而把 FTP 服务放在分区 E。若 FTP 的帐户泄露,被攻击利用;但 是,因为 FTP 帐户没有对分区 D 具有读写的权利,所以,其不会对 Web 服务器上的内容 进行任何的读写操作。这就可以保障,其即时攻陷 FTP 服务器后,也不会对 Web 服务器 产生不良的影响。 虽然说微软的操作系统价格昂
7、贵,而安全漏洞又比较多,但是,其 NTFS 分区上的成 就表现还是不差的。在 NTFS 分区上,可以实现很大程度的安全管理,保障相关服务于数 据的安全性。所以最后还是采用了微软的 2003 操作系统作为服务器系统,而没有采用 Linux 系统。 三、脚本安全管理 根据以往经验,其实很多 Web 服务器因为被攻击而瘫痪,都是由于不良的脚本所造 成的。特别是,攻击者非常喜欢利用 CGI 程序或者 PHP 脚本,利用他们的脚本或者程序 漏洞,进行攻击。 如我们的网站就遇到个几次攻击,他们利用 CGI 程序的漏洞,让外部攻击者向 Web 服务器传递了一些不可靠的参数。一般来说,WEB 应用需要传递一些
8、必要的参数,才能 够正常访问。而这个参数又可以分为两类,一个是可值得信任的参数,另外一类是不值得 信任的参数。如企业可能是自己管理 Web 服务器,而不是托管。他们就把服务器放置在 企业的防火墙内部,以提高 Web 服务器的安全性。所以一般来说,来自于企业防火墙内 部的参数都是可靠的,值得信任的;而来自于企业外部的参数,都是不值得信任的。但是, 也不是说不值得信任的参数或者说,来自于防火墙外部的参数 Web 服务器都不采用。而 是说,在 Web 服务器设计的时候,需要注意,采用这些不值得信任的参数的时候,需要 进行检查,看其是否合法;而不能向来自于企业内部的参数那样,不管三七二十一,都照收 不
9、误。这明显会对 Web 服务器的安全带来威胁。如有时会,攻击者利用 TELNET 连接到 80 端口,就可以向 CGL 脚本传递不安全的参数。 所以,在 CGI 程序编写或者 PHP 脚本编辑的时候,我们要注意,一定不能让其随便 接受陌生人的参数,不要随便跟陌生人打交道。在接受参数之前,一定要先检验提供参数 的人或者参数本身的合法性。在程序或者脚本编写的时候,可以预先加入一些判断条件。 当服务期认为若提供的参数不合法的时候,及时通知管理员。这也可以帮助我们,尽早的 发现可能存在的攻击者,并采取相应的措施。 对于脚本的安全性来说,要注意以下问题: 1、在脚本或者程序编写的时候,不应该把任何不信任
10、的参数直接保存为会话变量。 因为根据 WEB 应用的设计原理,会话变量只保存信任变量。也就是说,会话变量中的值, WEB 服务都认为其是值得信任的,会不加思索的采用。一般的设计思路是,先设置一个 临时变量进行存储,然后编写一个检验其合法性的过程或者函数,来验证其合法性。只有 通过验证的时候,这个值才能够被传给会话变量。根据 CNB 中商科技的经验,要是没有 亲身经历过惨痛教训的 WEB 管理员,可能对此不屑一顾。但是,那些有过这方面教训的 人,则会非常看重这个合法性的检验过程。毕竟是吃一堑长一智,所以新手还是需要多听 听过来人的建议,不会吃亏的。 2、在没有充分必要的时候,不要采用脚本,尽量使得网页制作的简单化。其实,企业 的网站跟个人网站有个很大的不同,企业的网站只要朴素就好,不需要过多的渲染。一方 面,过度渲染的网站会降低用户网站访问的速度;另一方面,这也会降低网络的安全性能。 故,在没有充分必要的情况下,不要共脚本或者程序在渲染网站的华而不实的功能。 3、对脚本或者程序的执行情况要进行持续的跟踪。在万不得已网站采用了程序或者 脚本的时候,则需要定时不定时的对这些脚本或者程序的运行情况进行稽核,看看其有没 有被非法利用的嫌疑。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。