虽然笔者提倡采用一种基于原则的方法来维护系统安全,并不重视所谓典型的“最佳方法”的检查清单,但这并不意味着安全检查的清单一文不值。采用一个安全的过程检查清单是保障资源安全的唯一首要措施。有时,一个安全检查列表在影响安全策略方面也是很有用的。
这里要解决一些Web站点上及Web服务器上非常普通的一些安全问题。因为一些差劲的安全方法的使用频率如此之高,笔者觉得有必要收集一些很好方法来正确地解决这些问题,并使其对Web服务器管理员、Web开发人员和Web站点管理员都可用。对于那些还没有在管理Web资源方面考虑过这些因素的人员来说,笔者建议你还是尽早地解决还没有考虑的有关问题。
1. 登录页面必须加密
有很多次,笔者看到一些站点在用户的认证完成后仅使用SSL(即在URL中使用https协议),这真令人不安。在登录之后实施加密有可能有用,这就像把大门关上以防止马儿跑出去一样,不过他们并没有对登录会话加密,这就有点儿像在你锁上大门时却将钥匙放在了锁眼里一样。即使你的登录会话被传输到了一个加密的资源,在许多情况下,这仍有可能被一个恶意的黑客攻克,他会精心地伪造一个登录表单,借以访问同样的资源,并访问敏感数据。
2. 数据有效性、合法性检查必须在服务器端完成
许多Web表单包含一些JavaScript的数据合法性、有效性检查。如果这种合法性检查包括目的在于提供改善的安全性的任何内容, 那么这种合法性检查几乎毫无用处。一个恶意的黑客可以在网页的表单活动中伪造一个自己的表单,而这并不会包括任何的合法性检查。更糟的是,在许多情况下,通过在浏览器中禁用JavaScript或使用一个并不支持JavaScript的浏览器,这种JavaScript的有效性、合法性检查就形同虚设。有时,笔者看到一些登录页面的口令合法性检查是在客户端完成的,这会将口令暴露给终端用户,他可以查看页面的源代码;或者,这种页面允许终端用户调整表单以使其总可以报告成功的合法性检查。请不要让你的网站安全成为客户端数据合法性检查的牺牲品。而服务器端的合法性和有效性检查并不存在客户端检查的缺点,因为黑客必须获得对服务器的访问权才能损害它。
3. 通过加密连接管理你的站点
使用不加密的连接(或仅使用轻度加密的连接),如使用不加密的FTP或HTTP用于Web站点或Web服务器的管理,就会将自己的大门向“中间人”攻击和登录/口令的嗅探等手段敞开大门。因此 请务必使用加密的协议,如SSH等来访问安全资源,要使用经证实的一些安全工具如OpenSSH等。否则,一旦某人截获了你的登录和口令信息,他就可以执行你可做的一切操作。
4. 使用强健的、跨平台的兼容性加密
根据目前的发展情况,SSL已经不再是Web网站加密的最先进技术。可以考虑TLS,即传输层安全,它是安全套接字层加密的继承者。要保证你所选择的任何加密方案不会限制你的用户基础。同样的原则也适用于后端的管理,在这里SSH等跨平台的强加密方案要比微软的Windows远程桌面等较弱的加密工具要更可取、更有优越性。
5. 从一个安全有保障的网络连接
避免从安全特性不可知或不确定的网络连接,也不要从安全性差劲的一些网络连接,如一些开放的无线访问点等。无论何时,只要你必须登录到服务器或Web站点实施管理,或访问其它的安全资源时,这一点尤其重要。如果你连接到一个没有安全保障的网络时,还必须访问Web站点或Web服务器,就必须使用一个安全代理,这样你到安全资源的连接就会来自于一个有安全保障的网络代理。
6. 不要共享登录的机要信息
共享登录机要信息会引起诸多安全问题。这不但适用于网站管理员或Web服务器管理员,还适用于在网站拥有登录凭证的人员,客户也不应当共享其登录凭证。登录凭证共享得越多,就越可能更公开地共享,甚至对不应当访问系统的人员也是如此;登录机要信息共享得越多,要建立一个跟踪索引借以跟踪、追查问题的源头就越困难,而且如果安全性受到损害或威胁因而需要改变登录信息时,就会有更多的人受到影响。
7. 采用基于密钥的认证而不是口令认证
口令认证要比基于密钥的认证更容易被攻破。设置口令的目的是在需要访问一个安全的资源时能够更容易地记住登录信息。不过如果使用基于密钥的认证,并仅将密钥复制到预定义的、授权的系统(或复制到一个与授权的系统相分离的独立介质中,直接需要它时才取回。),你将会得到并使用一个更强健的难于破解的认证凭证。
8. 维护一个安全的工作站
如果你从一个客户端系统连接到一个安全的资源站点,而你又不能完全保证其安全性,你就不能保证某人并没有在监听你所做的一切。因此键盘记录器、受到恶意损害的网络加密客户以及黑客们的其它一些破坏安全性的伎俩都会准许某个未得到授权的个人访问敏感数据,而不管网络是否有安全措施,是否采用加密通信,也不管你是否部署了其它的网络保护。因此保障工作站的安全性是至关重要的。
9. 运用冗余性保护网站
备份和服务器的失效转移可有助于维持最长的正常运行时间。虽然失效转移可以极大地减少服务器的宕机时间,但这并不是冗余性的唯一价值。用于失效转移计划中的备份服务器可以保持服务器配置的最新,这样在发生灾难时你就不必从头开始重新构建你的服务器。备份可以确保客户端数据不会丢失,而且如果你担心受到损害系统上的数据落于不法之徒手中,就会毫不犹豫地删除这种数据。当然,你还必须保障失效转移和备份方案的安全,并定期地检查以确保在需要这些方案时不至于使你无所适从。
10. 确保对所有的系统都实施强健的安全措施,而不仅运用特定的Web安全措施
在这方面,可以采用一些通用的手段,如采用强口令,采用强健的外围防御系统,及时更新软件和为系统打补丁,关闭不使用的服务,使用数据加密等手段保证系统的安全等。
返回顶部