二、培养风险意识和解决问题
1、向相关人员发出风险警告及补救的需要
仅仅告知相关人员:应用程序的安全是整个信息安全的一个关键组成部分,这是远远不够的。他们需要理解不安全的应用程序威胁企业的特定方面及其潜在后果:损害客户信息、违规、丢失客户、影响销售等。安全专业人员要教育IT人员,特别是要教育应用程序的所有开发者,发现并解决安全漏洞。
2、教育开发人员
修复错误的最佳方法是一开始就不犯错误。不幸的是,多数培训机构(包括大学)都没有教育程序员如何安全地编程。用高效的教育方法,向软件的开发人员展示其代码中的漏洞,就可以强调在开发周期的多个时点上审计和测试源代码的重要性。
3、强化内部人员的安全意识
企业可使用海报、T恤衫、重要会议等方式来强化安全意识,要求开发人员的安全培训能够传递保障应用程序安全的概念和重要性。在安全有重要影响的企业中,安全也是绩效评估过程的一部分。
三、创建并部署、配置应用程序安全功能
1、制定保障应用程序环境安全的要求
企业必须从明确定义的要求开始。每一个应用程序以及应用程序环境都要作为一个整体,必须包含能够将预防、检测和纠正问题作为一个安全整体的特性,必须包含防止安全损害的能力,必须在用户无法防止时能够检测安全损害,并能够补救由于未检测到的威胁所造成的任何损害。
2、为应用程序制定多层安全访问控制机制
当今的应用程序不能仅靠口令来保障其安全。新的认证方法可以使公司领先于黑客社团的有组织犯罪,而深度防御是应对日渐猖獗的间谍软件一种好方法。关于深度防御,本人在日后的文章中将深入阐述。
3、将防止、检测、修复安全损害的功能纳入到已经购买的、外包的、内建的或其它来源的应用程序中
首先,购买的应用程序往往包含自己的防御和检测功能,却很少包括修复和恢复功能。应向开发人员或厂商要求已知漏洞的补丁,并要知道已经应用了哪些安全补丁。在签订任何合同之前,要求加入一条必须对任何确认的漏洞立即打补丁的条款,还要规定相应的违约责任。
其次,外包的应用程序通常也包含安全功能,但未必满足公司的所有需求。你必须批判地分析这些功能,并用内部开发的方案或插件来补充。对于已经为公司定制的外包应用程序,你必须确保该程序能够与客户端身份管理系统或其它访问控制机制相集成。
第三,内部开发的应用程序必须根据已经认可的可用组件并包含防御、检测、纠正等功能。所有的内部开发人员必须对每一个应用程序使用同样的安全组件,以确保连续性并使创建的代码数量最少化。必须在多个时点上在多个应用程序之间测试这些可用组件,以确保跨应用程序的安全性。
第四,开源软件必须与内建软件一样遵循同样的规则,内部的开发人员要能够影响可用组件的创建和可用性。开发人员最好是开源社区的一部分,只有这样他们才能参与到确认安全问题并针对漏洞打补丁的过程中。
4、在打补丁或编码后,要测试修复程序,以确保该过程能够解决漏洞及其根源。
在应用了补丁后,要执行压力测试,检查整个系统的安全性而不仅仅是检查补丁是否正常工作。例如,假设你的登录功能有一个漏洞,其中的系统能够将口令中的星号(*)当作是一个通配符,从而可以使任何人都可以访问系统。在常规测试中,开发人员要增加一个补丁程序,用星号测试大量的口令,确保系统不会将星号当作通配符,然后再把打了补丁的软件投入到实际的工作(生产)环境中。而在压力测试中,开发人员必须测试每一类用户名和口令,确保系统不会将某个其它符号当作一个通配符。
四、制定连续性的方法,以发现并评估漏洞
1、使用厂商的警告和公共的漏洞数据库,以跟踪新出现的应用程序安全问题,并长期且连续地评估漏洞。
企业不妨考虑构建一种职责来跟踪已知的问题,用以防止遗漏安全检查的工作岗位。该角色还可以监视常规的漏洞评估。保持应用程序的安全并不是一个一次性的过程,虽然它要求与最初发现漏洞一样的检查。必须经常地对照标准检查安全问题,查找任何异常情况。
2、对环境中的每一次更改都要扫描并测试应用程序的安全性。
要针对所有的已知漏洞扫描所有的新代码,在每一次部署中,对于新确认的漏洞也要扫描所有的老代码。要记录、跟踪以前的软件漏洞,并确保将来不会犯同样的错误。如果你的应用程序环境并未发生任何变化,尽量保持与厂商的警告和新安全威胁的同步也就足够了。当然,由于安全扫描和测试自身也会发生变化,你还需要监视新出现的问题,以决定是否采用新的测试过程。否则,就要在每次变更时测试应用程序的安全性,并至少运行一次测试,以捕捉任何意外的、及授权的变更。
3、向开发人员提供一套可靠的程序,使其在应用程序的编译和部署之前、在投入生产中之后都能够扫描代码中的漏洞。
静态分析产品在开发过程中变得日益普遍。但是,要理解对质量和安全的静态分析需要采取不同的方法,这很重要。质量的静态分析受到能够理解漏洞的开发人员的广泛认同。而安全的静态分析,常常要求安全专家具备一套健全的“安全思想和理念”。
五、在应用程序的整个开发周期都要保障应用程序安全
(责任编辑:)