摘自:http://netsecurity.51cto.com/art/201402/428709.htm
对于任何一个项目,开始阶段对于交付安全的应用来说非常关键。适当的安全要求会导致正确的安全设计。下面讨论在分析Web应用程序的安全要求时需要考虑的八大问题。
1、认证和口令管理:这主要是一种一次性的活动而且仅仅是作为项目的一部分而完成的。有人可能会问一些与认证和口令管理有关的问题:
◆口令策略:这个问题非常重要的原因在于避免与用户凭据有关的字典攻击。
◆口令哈希算法:确保通过适当的加密算法来加密口令也非常重要。
◆口令重置机制:为了避免黑客修改或截获口令,重置机制非常关键。
2、认证和角色管理:在分析项目的安全问题时,要确认所有的关键功能,并确认哪些人可以获得授权访问这些功能。这样做有助于确认各种不同的角色,并可以使访问控制到位。
3、审计日志记录。询问并确认所有与已经发生的攻击有关的所有关键业务是很重要的,这是因为这些攻击对企业的会产生重大影响。企业应当能够分析与这些业务有关的审计日志记录。
4、第三方组件分析。询问并分析一下企业是否必须使用第三方的组件也是一个重要问题。在此基础上,企业分析与这些组件有关的已知漏洞,并做出恰当的建议。
5、输入数据验证和净化。询问并理解和分析输入数据的属性,并为数据的验证和净化做好计划是很重要的。这种操作主要与解决跨站脚本攻击这类漏洞有关。数据验证和净化还有助于避免SQL注入的大规模发生。
6、加密和密钥管理。这是为了分析是否存在需要保证其安全的业务,并且这些业务是否需要握手机制(在处理业务之前,可使用多种与公钥或私钥的交换有关的多种技术来实施这种机制)。
7、源代码的完整性:这是一种一次性的活动,并且要求在项目的开始阶段完成。这样做有助于如下两个方面:
源代码应当存放在一个有良好安全保障的控制仓库中,并且在遵循“最少特权”的原则前提下,有强健的认证和基于角色的访问控制。你还应当关注关于源代码库和相关工具的问题。
此外,在代码的开发及传输过程中,你还可以分析关于源代码容器的工具问题以及代码的保护问题。
8、源代码的管理。讨论源代码的审查策略是一个关键问题,因为这种做法会要求自动化的和人工的代码检查问题,并且在一定程度上会影响总体的项目时间(要求进行代码检查时间和针对检查意见的修复时间)。这是一种一次性的活动,因而应当在项目的开始阶段完成。