数据库是Web的命脉,由于管理者的安全疏漏使得其成为攻击者入侵Web的入口。如何来加固Web数据库呢?笔者就以当前使用比较广泛的Access和MSSQL数据库为例,说说Web数据库的安全防护。
1、Access数据库防下载
数据库被下载这对Web来说几乎是毁灭性的,因为攻击者从中可以获取包括管理员帐户及密码等在内的敏感信息,然后实施进一步的攻击。可被下载的数据库主要是Access数据库,采用这种数据库的Web站点不在少数。防止Access数据库下载,可以从以下几个方面入手。
(1)数据库改名
数据库改名包括两部分,首先将其改成比较生僻的名称,建议名字足够长并使用某些特殊字符以防被攻击者猜中。另外,将mdb后缀改为asp,以防数据库被下载。当然数据库改名后,数据库连接配置文件也要进行修改。
(2)改变数据库路径
站点系统都有默认的数据库路径,由于安全意识淡薄,部署Web站点时有很多人不去修改数据库路径,因而攻击者很容易地猜到该站点的数据库路径。
更改数据库路径,大家可以在站点目录下创建比较生僻的目录,然后将数据库文件拷贝到该目录中。当然,更改数据库路径后,需要修改站点系统的数据库连接文件。一般asp站点系统的数据库连接文件是conn.asp。打开该文件后,然后根据实际情况进行修改,使得其跟当前的数据库路径相一致。
(3)设置好目录权限
要设置好数据库目录的访问权限,原则是权限最小化以防止非正常的访问。因为Web程序是通过IIS用户运行的,我们只要给IIS用户读取和写入权限,然后通过“IIS管理器”把这个目录的脚本执行权限去掉,防止入侵者在该目录中通过上传获得webshell了。
(4)添加mdb的扩展映射
IIS对于不能解析的文件类型就会弹出下载对话框让用户下载,我们可以通过在IIS管理器中添加对mdb的扩展映射,防止数据库被下载。其设置方法是:打开IIS管理器定位到相应的Web站点,右键选择“属性”,然后依次点击“主目录→配置→映射”,在“应用程序扩展”里面添加.mdb文件应用解析,至于用于解析它的可执行文件大家可以自己进行选择,只要让攻击者无法访问数据库文件就可以了。
(5)数据库改造
思路是将数据库后缀名(.mdb)修改为.asp,然后在数据库中加上一个NotDownLoad的表以防数据库被下载。具体操作方法如下:
首先新建一个.asp文件(notdown.asp),其代码如下:
db="DataShop.asp" '这里改成你的数据库地址,这是相对根目录的地址 set conn=server.createobject("Adodb.Connection") connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db) conn.open connstr conn.execute("create table notdownload(notdown oleobject)") set rs=server.createobject("adodb.recordset") sql="select * from notdownload" rs.open sql,conn,1,3 rs.addnew rs("notdown").appendchunk(chrB(asc("<")) & chrB(asc("%"))) rs.update rs.close set rs=nothing conn.close set conn=nothing |
然后在服务器端运行notdown.asp,这样在数据库添加了包含notdown字段的notdownload数据表,即可防止数据库的下载,因为notdown有一个值是"< %",asp运行是因缺少"% >"关闭标记而拒绝访问,下载当然会失败。
2、MSSQL数据库防注入
MSSQL数据库是大中型Web站点常采用的数据库,对于SQL数据{zd0}的威胁是注入。攻击者通过注入来调用SQL语句执行系统命令,因此其危险性更大。一个注入点,有可能造成整个Web服务器的沦陷。防MSSQL注入可以从下面几个方面入手。
(1)慎重选择建站系统
通过站点系统建立一个Web站点是非常容易的,但是某些站点系统代码编写不够严谨,考虑不周,变量过滤不严等使得可被攻击者利用。因此,选择一款安全的站点系统是至关重要的。当然,没有百分之百安全的站点系统。管理员如果懂代码的话可以进行检测分析,看看是否有漏洞。另外,可以扮演入侵者进行入侵检测。{zh1},及时打补丁也是非常重要的。
(2)最小权限连接数据库
Web站点连接数据库都是通过相应的帐户进行连接,在这些帐户中SA是权限{zd0}的也是最危险的。数据库不要用SA帐户,使用SA帐户连接数据库对服务器来说就是一场灾难。一般来说可以使用DB_OWNER权限帐户连接数据库,如果可以正常运行,使用public用户xxx的。设置成dbo权限连接数据库之后,入侵者基本就只能通过猜解用户名和密码或者是差异备份来获得webshell了,对于前者,我们可以通过加密和修改管理后台的默认登陆地址来防御。对于差异备份,我们知道它的条件是有备份的权限,并且要知道web的目录。这样被攻击的可能性大大地降低。
(3)删除危险的存储过程
MSSQL数据库系统集成了较多的存储过程,这些命令集方便了我们的操作当然也为攻击者入侵Web提供了便利。因此我们要根据需要删除某些在Web中用不到的,并且可被攻击者利用才存储过程。比如xp_regread和xp_dirtree这两个存储过程可被攻击者用来读取注册表信息和列目录,我们可以删除。另外,xp_cmdshell可被用来执行DOS命令比如建立系统帐户等等,是非常危险的。sp_makwebtask过程,可以读取SQL SELECT命令所得到的结果到表格形式的HTML文件中。这些比较危险可被攻击者利用的存储过程我们可以删除。比如删除xp_cmdshell可以执行“exec master..sp_dropextendedproc xp_cmdshell”,其它的类似。
(4)修改错误页,误导攻击者
SQL注入入侵是根据IIS给出的ASP错误提示信息来入侵的,如果我们把IIS设置成不管出什么样的ASP错误,只给出一种错误提示信息,即http 500错误,那么攻击者就无法获得敏感信息实施入侵了。打开IIS管理器选择相应的Web站点打开其站点属性窗口,在“自定义错误”选项卡下选择“500:100”点击“编辑”打开“编辑自定义错误属性”窗口,消息类型选择“文件”,然后通过浏览定位到自己构造的错误页,比如“c:\test.htm”,然后确定即可。
总结:防下载、防注入这是从Web安全的角度出发实施的非常规措施,在常态下我们一定要做好Web数据库的备份,这才是最基本的。
虚拟专用网络 VPN(Virtual Private Network )能通过公用网络Internet建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。VPN是对企业内部网的扩展,它可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。许多公司使用VPN向公司外部的员工提供企业网络接入。本手册将围绕VPN进行全方位的讲解。
“{zj0}实践”来自英文Best Practice。维基百科对{zj0}实践的定义是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或者管理实践的结果达到{zy},并减少出错的可能性。学习应用IT企业安全的{zj0}实践,其实就是借鉴别人成功的经验,让自己在保护企业安全方面少走弯路。在本手册中,将集合IT业内关于企业安全的{zj0}实践,并不断更新,以期在企业安全防护方面提供帮助。
虚拟化是数据中心的流行技术,它起源于20世纪60年代。它是把昂贵的计算机资源的利用{zd0}化的方式。典型的服务器的利用率不足40%,虚拟化可以更有效地利用技术资源,并节约固定费用。虚拟化的{zd0}优势是,它允许管理员从中央区域为个人电脑和客户设备提供软件。虚拟化不需要管理员对一般任务进行分别考虑。服务器的关机可以带动多用户的关机。
黑客策略和技术一直都在进步。黑客还在继续开发新的攻击工具和黑客方法,来恶意访问系统并攻击你的网络,这样企业在开发和采取恰当的方法防御黑客的攻击就变得非常困难。《黑客攻击技术和策略》的技术指南将介绍黑客的内心想法,并帮助你理解恶意攻击者的动机,也提供了一些黑客攻击具体信息的方式,采用的方法以及企业应该采用的保护敏感数据的方法。这里将会提供大量黑客技术和策路的信息,例如允许黑客获取网络系统或者文件访问的系统特征探测。
假如你正在寻找一个漏洞扫描器,你可能已经遇到了大量的非常昂贵的商业解决方案,这些方案都有一长串的性能和优点。不幸的是,如果你和我们之中大部分人的情况一样的话,你一般根本没有运行这些奇特的系统的预算。你可能已经退而求其次,转向考虑使用像SATAN或Saint的免费工具。然而,你可能觉得使用这些工具是一种折衷的办法,因为它们的性能设置不能与商业解决方案相比。这时候你就应该学会使用Nessus! 2005年12月Nessus背后的公司Tenable Network Security Inc.发布了Nessus 3,引进了对该产品的全面检查。在写这篇文章时候的最近版本,Nessus 3.2是在2008年3月发布的。Nessus现在可以在多种平台上使用,包括Windows、各种版本的Linux、FreeBSD、Solaris和Mac OS X。以下是这次Nessus3中的重大变化: 下面将介绍如何使用Nessus工具以及Nessus工具的更新。