WinNT/2K Web站点安全解决方案(2)


5.系统启动的等待时间设置为0秒,控制面板->系统->启动/关闭,然后将列表显示的默认值“30”改为“0”。(或者在boot.ini里将TimeOut 的值改为0)

  6.只开放必要的端口,关闭其余端口。

  说明:缺省情况下,所有的端口对外开放,黑客就会利用扫描工具扫描那些端口可以利用,这对安全是一个严重威胁。

  现将一些常用端口列表如下:

  端口 协议 应用程序

  21 TCP FTP

  25 TCP SMTP

  53 TCP DNS

  80 TCP HTTP SERVER

  1433 TCP SQL SERVER

  5631 TCP PCANYWHERE

  5632 UDP PCANYWHERE

  6(非端口) IP协议

  8(非端口) IP协议

  7.加强日志审核;

  说明:日志任何包括事件查看器中的应用、系统、安全日志,IIS中的WWW、SMTP、FTP日志、SQL SERVER日志等,从中可以看出某些攻击迹象,因此每天查看日志是保证系统安全的必不可少的环节。安全日志缺省是不记录,帐号审核可以从域用户管理器——规则——审核中选择指标;NTFS中对文件的审核从资源管理器中选取。要注意的一点是,只需选取你真正关心的指标就可以了,如果全选,则记录数目太大,反而不利于分析;另外太多对系统资源也是一种浪费。

  8.加强数据备份;

  说明:这一点非常重要,站点的核心是数据,数据一旦遭到破坏后果不堪设想,而这往往是黑客们真正关心的东西;遗憾的是,不少网管在这一点上作的并不好,不是备份不完全,就是备份不及时。数据备份需要仔细计划,制定出一个策略并作了测试以后才实施,而且随着网站的更新,备份计划也需要不断地调整。

  9.只保留TCP/IP协议,删除NETBEUI、IPX/SPX协议;

  说明:网站需要的通讯协议只有TCP/IP,而NETBEUI是一个只能用于局域网的协议,IPX/SPX是面临淘汰的协议,放在网站上没有任何用处,反而会被某些黑客工具利用。

  10.停掉没有用的服务,只保留与网站有关的服务和服务器某些必须的服务。

  说明:有些服务比如RAS服务、Spooler服务等会给黑客带来可乘之机,如果确实没有用处建议禁止掉,同时也能节约一些系统资源。但要注意有些服务是操作系统必须的服务,建议在停掉前查阅帮助文档并首先在测试服务器上作一下测试。

  11.隐藏上次登录用户名,修改注册表Winnt4.0:

  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon 中增加DontDisplayLastUserName,将其值设为1。Windows2000中该项已经存在,只需将其值改为1。

  说明:缺省情况下,上次登录的用户名会出现在登录框中,这就为黑客猜测口令提供了线索,最好的方式就是隐藏上次登录用户名。

  12.不要起用IP转发功能,控制面板->网络->协议->TCP/IP协议->属性,使这个选框为空。(NT)

  说明:缺省情况下,NT的IP转发功能是禁止的,但注意不要启用,否则它会具有路由作用,被黑客利用来对其他服务器进行攻击。

  13.安装最新的MDAC

  说明:MDAC为数据访问部件,通常程序对数据库的访问都通过它,但它也是黑客攻击的目标,为防止以前版本的漏洞可能会被带入升级后的版本,建议卸载后安装最新的版本。注意:在安装最新版本前最好先做一下测试,因为有的数据访问方式或许在新版本中不再被支持,这种情况下可以通过修改注册表来档漏洞,祥见漏洞测试文档。

  三、 IIS设置(包括IIS 4.0和IIS5.0)

  1.只安装Optoin Pack中必须的服务,建议不要安装Index Server、FrontPage Server Extensions、示例WWW站点等功能(NT)。Windows 2000中作类似设置。

  说明:IIS中的众多安全隐患是由一些其他的功能引起的,如果仅做一个WWW站点,就需要安装必须的服务,如WWW服务、FTP服务,这样减少黑客利用这些漏洞攻击的机会。

  2.停止默认的FTP站点、默认的Web站点、管理Web站点,在新的目录下新建WWW服务与FTP服务。

  说明:默认的站点与管理Web站点含有大量有安全漏洞的文件,极易给黑客造成攻击机会。具体漏洞见所附安全文档。因此,必须禁止。同时,应该在新的目录下建立服务,这个目录千万不要放在InetPub\wwwroot下,最好放在与它不同的分区下。

  3.删除不必要的IIS扩展名映射。最好去掉 .IDC、.HTR、.STM、.IDA、.HTW应用程序映射,.shtml、.shtm等如果无用,也应去掉。

  说明:上述应用程序映射,具有大量安全隐患。方法:NT(2000同):Web站点——属性——主目录——配置——应用程序映射

  4.安装新的Service Pack后,IIS的应用程序映射应重新设置。

  说明:安装新的Service Pack后,某些应用程序映射又会出现,导致出现安全漏洞。这是管理员较易忽视的一点。

  5.设置IP拒绝访问列表

  说明:对于WWW服务,可以拒绝一些对站点有攻击嫌疑的地址;尤其对于FTP服务,如果只是自己公司上传文件,就可以只允许本公司的IP访问改FTP服务,这样,安全性大为提高。

  6.禁止对FTP服务的匿名访问

  说明:如果允许对FTP服务做匿名访问,该匿名帐户就有可能被利用来获取更多的信息,以致对系统造成危害。

  7.建议使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control)

  说明:作为一个重要措施,既可以发现攻击的迹象,采取预防措施,也可以作为受攻击的一个证据。

  8.慎重设置Web站点目录的访问权限,一般情况下,不要给予目录以写入和允许目录浏览权限。只给予.ASP文件目录以脚本的权限,而不要给与执行权限。

  说明:目录访问权限必须慎重设置,否则会被黑客利用。

  四、ASP编程安全:

  安全不仅是网管的事,编程人员也必须在某些安全细节上注意,养成良好的安全习惯,否则,会给黑客造成可乘之机。目前,大多数网站上的ASP程序有这样那样的安全漏洞,但如果写程序的时候注意的话,还是可以避免的。

  1.涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限。

  说明:用户名与口令,往往是黑客们最感兴趣的东西,如果被通过某种方式看到源代码,后果是严重的。因此要尽量减少它们在ASP文件中的出现次数。出现次数多得用户名与口令可以写在一个位置比较隐蔽的包含文件中。如果涉及到与数据库连接,理想状态下只给它以执行存储过程的权限,千万不要直接给予该用户以修改、插入、删除记录的权限。

  2.需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。

  说明:现在的需要经过验证的ASP程序多是在页面头部加一个判断语句,但这还不够,有可能被黑客绕过验证直接进入,因此有必要跟踪上一个页面。具体漏洞见所附漏洞文档。

  3.ASP主页.inc文件泄露问题

  当存在asp 的主页正在制作并没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象,如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中察看到数据库地点和结构的细节揭示完整的源代码。

  解决方案:程序员应该在网页发布前对其进行彻底的调试;安全专家需要固定asp 包含文件以便外部的用户不能看他们。 首先对 .inc 文件内容进行加密,其次也可以使用 .asp 文件代替 .inc 文件使用户无法从浏览器直接观看文件的源代码。.inc 文件的文件名不用使用系统默认的或者有特殊含义容易被用户猜测到的,尽量使用无规则的英文字母。

  4.注意某些ASP编辑器会自动备份asp文件,会被下载的漏洞

  在有些编辑asp程序的工具,当创建或者修改一个asp文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备份一个..bak文件,如你创建或者修改了some.asp,编辑器自动生成一个叫some.asp.bak文件,如果你没有删除这个 bak文件,攻击有可以直接下载some.asp.bak文件,这样some.asp的源程序就会给下载。

  5.在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉HTML、JavaScript、VBScript语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符的长度进行限制。而且不但在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。

  说明:输入框是黑客利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成损坏; 如果该输入框涉及到数据查询,他们会利用特殊查询输入得到更多的数据库数据,甚至是表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法性检查,仍有可能被绕过,因此必须在服务器端再做一次检查。

  6.防止ACCESS mdb 数据库有可能被下载的漏洞

  在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载这个ACCESS数据库文件,这是非常危险的。

  解决方法:

  (1) 为你的数据库文件名称起个复杂的非常规的名字,并把他放在几目录下。所谓 "非常规", 打个比方: 比如有个数据库要保存的是有关书籍的信息, 可不要把他起个"book.mdb"的名字,起个怪怪的名称,比如d34ksfslf.mdb, 再把他放在如./kdslf/i44/studi/ 的几层目录下,这样黑客要想通过猜的方式得到你的ACCESS数据库文件就难上加难了。

  (2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:

  DBPath = Server.MapPath("cmddb.mdb")

  conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath

  假如万一给人拿到了源程序,你的ACCESS数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再在程序中这样写:

  conn.open "shujiyuan"

  (3)使用ACCESS来为数据库文件编码及加密。首先在选取 "工具->安全->加密/解密数据库,选取数据库(如:employer.mdb),然后接确定,接着会出现 "数据库加密后另存为"的窗口,存为:employer1.mdb。 接着employer.mdb就会被编码,然后存为employer1.mdb..

  要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。

  接下来我们为数据库加密,首先以打开经过编码了的 employer1.mdb,在打开时,选择"独占"方式。然后选取功能表的"工具->安全->设置数据库密码",接着输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他是无法看到 employer1.mdb的。

  五、 SQL SERVER的安全

  SQL SERVER是NT平台上用的最多的数据库系统,但是它的安全问题也必须引起重视。数据库中往往存在着最有价值的信息,一旦数据被窃后果不堪设想。

  1.及时更新补丁程序。

  说明:与NT一样,SQL SERVER的许多漏洞会由补丁程序来弥补。建议在安装补丁程序之前先在测试机器上做测试,同时提前做好目标服务器的数据备份。

  2.给SA一个复杂的口令。

  说明:SA具有对SQL SERVER数据库操作的全部权限。遗憾的是,一部分网管对数据库并不熟悉,建立数据库的工作由编程人员完成,而这部分人员往往只注重编写SQL 语句本身,对SQL SERVER数据库的管理不熟悉,这样很有可能造成SA口令为空。这对数据库安全是一个严重威胁。目前具有这种隐患的站点不在少数。

  3.严格控制数据库用户的权限,轻易不要给让用户对表有直接的查询、更改、插入、删除权限,可以通过给用户以访问视图的权限,以及只具有执行存储过程的权限。

  说明:用户如果对表有直接的操作权限,就会存在数据被破坏的危险。

  4.制订完整的数据库备份与恢复策略。

  六、PCANYWHERE的安全:

  目前,PCANYWHERE是最流行的基于NT与2000的远程控制工具,同样也需要注意安全问题。

  1.建议采用单独的用户名与口令,最好采用加密手段。千万不要采用与NT管理员一样的用户名与口令,也不要使用与NT集成的口令。

  说明:PCANYWHERE 口令是远程控制的第一个关口,如果与NT的一样, 就失去了安全屏障。被攻破后就毫无安全可言。而如果采用单独的口令,即使攻破了PCANYWHERE,NT还有一个口令屏障。

  2.及时安装较新的版本。

 

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3