修正:2009年03月22日 听取blackhat的建议,增加了登录和搜索型注入方法的更新。

  2009年第一次聚会是参加einit的聚会,主题是网站安全。当时答应写一篇文章给大家参考的,结果忙的半死,现在在长途车上,把本文完成吧!
  大体上写下目前网站服务器经常会遇到的问题和解决方法!当然,不要指望我写的很详细,因为面太宽了,我只能给出大体的思路。
  转载请注明版权:张百川(网路游侠)博客[url]http://www.youxia.org[/url]
  本文从下面几个方面来分析:

  实际上很难区分的这么详细,有些地方的交叉还是有的。下面展开来说:
  1. 应用程序
  a) SQL注入。曾经在2003、2004、2005年大放异彩的WEB***方式,特别在03-04年的时候,要拿到一个站的WebShell是很简单的事情,那时候也没有通用防注入脚本之类的程序,程序员也没有这个意识。不过现在来说稍微好了一些,程序员至少知道了,但是一些早期的程序依然没有很好的修改这样的问题。另:搜索型注入漏洞和登录型注入漏洞现在没有被大量重视——因为这样的注入检测工具少?可能吧。但是这样的问题的确在存在着。我就曾经在朋友写的一个exe的可执行文件中用' or 和' or '登录进去,结果那哥们相当郁闷……解决方法:利用通用防注入脚本(注意有些防注入脚本程序自身过滤也不严格,找最新版本的吧)或者采取一些软件或硬件的安全产品;最好请熟悉操作系统的朋友进行严格的权限设置,即使网站被攻入,也只能在限定的目录执行有限的操作。
  b) 跨站脚本***。缩写为CSS,不过由于和网站制作上的层叠样式表重复,一般也写作XSS。现在最流行的***方式。最简单的测试方式是:
<s c.ript>alert(“XSS测试”)</scr.itp>
  当然用法就很多了,比如获取Cookies等,危害很大的,具体的可以Google下,防范方式和防SQL注入差不多:完善程序或者购买软件或硬件形式的安全产品。
  c) 国内有厂家在做WEB应用扫描器,我尝试了几个效果还都不错。当然免费的有NBSI、HDSI、Domain、穿山甲等,收费的有的做的效果更好,智恒联盟的网站啄木鸟我也试过,效果还是不错的。再就是安恒信息的产品看上去也不错,但是没拿到试用不做评论。
  2. 主机
  a) 操作系统自身的脆弱性导致的安全问题。威胁最大的是远程溢出漏洞。比如:IIS5.0 WebDAV远程溢出漏洞、MS08-067远程溢出漏洞,用户无需接触服务器,在远程就可以拿到服务器的system权限。主机安全建议采用安全评估软件进行评估,如免费的:X-Scan、流光,商业的如:绿盟极光、启明星辰天镜、榕基RJ-iTop、俄罗斯的SSS(Shadow Security Scanner)等。找出问题然后按照解决方案解决问题。当然,一般的安装360安全卫士、金山清理专家等可以对操作系统补丁或应用软件的补丁进行修复。当然,安装一个主机防火墙是必不可少的,比如BlackICE等,天网防火墙软件版也是不错的选择。当然,在Windows下利用好NTFS权限,可以很大程度上增强服务器的安全性。
  b) 如果你用的是Unix、Linux做服务器,那么请相信一点:如果你对此系统不精通,那么它的安全性并不比Windows好。擅长的才是最好的!配置Linux类服务器的时候注意权限的分配,不要一律都设置成777,很容易出事。如果是政府、大型企业,建议采用Unix安全管理系统,可以直接阻断执行Unix的某些危险命令,很好用,不过个人用户就免了,因为好用的东西也往往意味着价格比较高。嘿嘿
  c) 应用软件导致的安全问题。用Windows服务器的朋友们,注意修改下终端服务的端口,默认是3389,当年Windows 2000流行的时候,一个“输入法漏洞”搞砸了好多服务器。什么?不知道什么是输入法漏洞?——Google下吧,Win2000时代毁了多少服务器啊!另外提示下:像Serv-U这样的软件的提示信息最好也修改下,并保持最新版本,目录访问权限一定要做好,这玩意导致服务器挂掉的案例太多了……
  3. 数据库
  a) 如果用MySQL数据库,最好不要允许远程访问。否则一旦被找出漏洞服务器的安全就岌岌可危了。用SQL注入漏洞跑出帐号和密码,再远程连上去,服务器基本就不属于自己了。3306端口建议修改下。另外与MySQL配合比较好的管理平台phpmyadmin貌似也爆出了几个漏洞,注意防护。
  b) 如果用SQL Server数据库,存储过程最好想办法控制,就是xp_cmdshell。一般来说如果用企业管理器、查询分析器连接上,那么就可以用账户权限执行命令,如果是Administrator或者SA,那么服务器就不属于你了。1433端口要修改。
  c) 其它数据库接触不多,无论是什么类型的数据库,都要注意升级、安装补丁,否则很容易导致问题。如果是政府、大型企业,建议安装数据库审计系统(硬件,当然像SQL Server、Oracle这些商业级数据库产品自己也有审计功能,只是稍微麻烦一些),业内也有数据库防御系统,但是很少,价格也很高。
  4. 网络
  a) 最为严重的是DoS和DdoS以及DRDoS。名词我不解释了,有兴趣了解的就去Google,只能说:基本无解。好心祈祷吧,像sina这样的也能被***的无法提供服务,你我只能祈祷了。像绿盟、金盾、傲盾、冰盾等都有硬件或软件的抗DdoS系统,可以在一定程度上起到防范作用,但是cc这样的***还是比较难,特别是数据特别大的时候,一次给几百兆流量,去防御都很难的。补充下:一般的硬件防火墙在抗DdoS上效果不算好。
  b) 比较让站长头大的就是ARP***,要注意你的WEB服务器一定要安装ARP防火墙,360安全卫士的有,金山也有,如果不做防护,一旦机房有服务器被攻陷了,那么很容易成为受害者。这年头用ARP欺骗嗅探密码、挂马,技术不高深,危害却不小!
  c) 实际上,有几款产品我在这里想推荐下,不过对于个人用户而言意义不大,可以跳过,也可以作为了解。第一是IPS或WEB应用防火墙,厂家很多了,包括绿盟、启明星辰、天泰、梭子鱼等都有此类产品,可以有效检测SQL注入、XSS/CSS等***方式,对挂马、病毒、蠕虫等有较好的检测和防护;第二是网站防篡改,一般也有防注入模块。如果有牛X的***绕过硬件设备进入服务器,最好用网站防篡改系统进行防护,即使拿到一定权限也无法修改网站程序和文件。特别是政府单位可能比较需要这个。
  5. 隔山打牛
  a) Whois查询,搜到你服务器有多少个网站,去搞,即使你的网站程序上没问题,也会因为别人的网站不安全连累到你。
  b) Domain这个软件,明小子的。实际上也是利用的上面的whois,但是很好用,还能直接测试注入漏洞、上传漏洞,没事用这个软件扫描下自己服务器和网站做个自我评估吧。
  6. 其它
  a) 服务器的RAID、电源冗余不用我说了吧?
  b) 备份!备份!数据库和文件都要备份,可以利用SQL Server或者Windows自己的备份系统,很方便,也可以做计划任务。
  粗略的说这么多,就这样吧。实际上WEB的***方式很多,我这里也很难写全,大概的写一些相关的***手段和防御手段、防御产品。作为扫盲材料吧!呵呵
  各位看官有什么问题可以随时到网路游侠的博客 [url]www.youxia.org[/url] 和我联系。