技术开发 频道

ASP.NET 2.0应用程序安全强化纵览


(3)配置实现包过滤。通过关闭所有不需要的服务,可关闭大多数的开放端口。这可以极大减低服务器的受攻击面。可是,有一些端口不能被关闭,例如TCP/135,它是RPC,Windows操作系统非常依赖这个协议。另外,还有一些其它端口应只针对一部分网络。例如,远程管理和Terminal Services。通常,只允许从局域网、特定的子网或特定的IP地址上进行远程管理,但是不对互联网开放。在面对这种情况时,需要在Web服务器上本地安装一个信息包过滤器,这样能够额外增加一个深度安全防御实体。Windows操作系统有两个内建的信息包过滤器:Windows Firewall和Internet Protocol Security(IPSec)。Windows Firewall的优点是它提供了一个简单的接口来关闭端口,但是,它不限制对外的连接。IPSec可以控制内外通讯,但是设置比较复杂。

(4)配置好Windows文件共享。很少有人知道Windows文件共享传输的数据完全没有保护措施。其默认情况下,数据是没有经过加密或完整性保护。管理人员可以开启内建的、签名机制来进行通信支持,这可以使恶意用户修改网络信息包更加困难,但是,如果使用Windows文件共享协议来传输敏感数据,那么应该进行额外地加密通信。管理人员可以在“本地安全策略”中开启签名。如果还要保密,建议使用IPSec来设置交换受保护数据的计算机的传输层安全。

(5)启用审核功能。Windows操作系统内建有审核功能。它使操作系统能记录成功的或失败的登陆、策略修改和资源访问。启用审核分为两步。首先,必须启用系统级别的审核,然后,指定要审核的资源。管理人员使用安全配置向导能够自动地实现这两个步骤。另外,操作系统还允许管理人员手动修改配置,管理人员能够在本地安全策略窗口中实现人工配置。

强化数据库服务器安全

多数Web应用程序都涉及数据库,因此,强化数据库服务器的安全性也是非常重要的。除了应用以上有关的安全措施之外,另外还要考虑以下内容:

(1)数据库通常由多个服务组成(例如,数据库引擎、全文搜索和消息),其中一些是需要的,另一些则不需要。例如,Microsoft SQL Server 2005包含的Attack Surface Wizard可用来选择应启用的服务。

(2)大多数数据库都涉及架构概念,其为应用程序及其数据创建了独立的架构。应用程序帐户及其用户应只能访问这个应用程序的架构。这可以使访问管理更加容易,同时,还要禁止应用程序访问系统数据或其它架构中的数据。

(3)如果有可能,不要将表访问直接授权给应用程序或用户。将应用程序的所有数据库功能打包到存储过程中,并将Execute权限授权给这些存储过程。之后,可以删除对基础表的访问。这可以极大地简化访问权限管理,并减少数据库的受攻击面。

(4)如果有可能,限制对元数据的访问。例如,SQL注入式攻击依靠的就是应用程序允许查询元数据,例如数据库、表和列名等。

(5)尽可能使用集成的身份审核方式。这样能够不在配置文件或代码中存储密码。

(6)大多数的数据库以明码文本的形式传输数据。管理人员要检查数据库系统中所启用的传输安全配置方式。例如,SQL服务器支持Secure Sockets Layers(SSL)。如果数据库系统没有内建的传输安全服务,那么可以使用IPSec来管理数据库通信。
0
相关文章