本章讲述了大量实现远程Web服务管理和内容管理/创作的工具和服务。攻击者可以使用端口扫描,利用所有相关的弱点,很容易地识别所有这些界面,这些弱点包括著名的软件缺陷、弱(默认)密码,或者不合适的访问控制。因此,考虑远程管理并且确保它的安全对Web应用架构来说是适宜的。本章介绍了如下保证远程Web服务器管理的一般准则:
·验证所有远程管理访问;在合理的地方对远程管理使用多因素验证。
·确保使用强大的登录凭据。确保重新设置了厂商默认的密码!
·将远程管理限制在一个IP地址或者少数IP地址。
·使用能够对付窃听的安全通信协议(例如SSL、SSH)。
·将单个服务器作为多个服务器的远程管理终端,而不是在每个单独的Web服务器上部署管理服务。
和往常一样,还要小心地限制Web服务器可能用于访问内部网络的服务类型;记住,Web服务器可能在其工作周期的某些时刻遭遇严重的安全危害,如果Web服务器有10多个映射到内部分段文件服务器上的驱动器,那么你的内部网络也就遭到了侵害。考虑使用人工网络(Sneakernet,也就是从物理上将内容用移动媒体转移到隔离的DMZ分发服务器)更新Web服务器,保持它们与组织的其余部分物理隔离。
我们还讨论了常见的Web应用错误配置,不管这是管理员还是开发人员的过错(我们将这些错误与第3章中讨论的COTS组件错误区分开来)。我们认为最危险的错误配置之一是启用不必要的Web服务器扩展,因为这些模块长期以来曾经遭受过高冲击力的攻击。我们还示范了处理Web应用信息泄露常见根源的方法,这些根源包括HTML源代码、常见目录和文件名惯例、时光机、状态页面等互联网缓存。在开发人员的方面,我们指出包含文件是常见的信息泄露根源,并且介绍了利用隐藏表单域挫败Microsoft ASP.NET ViewState功能的一个例子。
希望这些例子能够阐明防止Web应用中最常见和毁灭性泄露的方法。