虽然应用程序安全的威胁问题在变化,企业的规模大小不一,与应用程序相关的安全事件的影响程度也不同,但如果企业还没有为应用程序部署安全防护措施,是时候抓紧了。因为这会对企业产生积极的影响。
数据窃贼首先通过登录到保留其信用卡号的网站上,进入网站后,他们会将各种账户数字插入到位于浏览器地址栏中的一个文本串中,从而在不同的账户之间跳转。黑客的代码系统自动并大量地执行这种操作,使其可以捕获关键的私密数据。
在应用程序安全方面,这种问题叫做直接对象引用。攻击者能够操纵对一个内部实施对象(如一个文件,目录或数据库的密钥等)的直接引用来访问未授权的数据时,就会发生这种攻击。
这不是危言耸听,本文将引导企业关注应用程序安全,并采取措施捍卫应用程序。
为什么现在必须着手解决应用程序的安全问题
成功的企业都能从应用程序的安全中获益。这有多方面的原因。首先是应用程序安全威胁状况的动态属性。据报道,在已报告的安全漏洞中,有近一半都与Web应用程序有关,公司不但要应对各种臭名昭著的漏洞,还要应对新出现的漏洞(如移动平台应用程序中的漏洞)。其次,是典型的应用软件组合的规模和种类。很多企业使用的应用程序种类多达上百种上,其中包括内部开发的各种软件,以及开源软件、商品软件,外包软件等。此外,一次安全事件的实质影响所带来的成本会更高。应用程序的安全事件,其发生的可能性、发生频率、发生后的影响都是很高的。适时地解决此类型事件,可以有效地减少成本。
从何处开始
根据其功用,我们逐个来看一下可以有效解决应用程序安全问题的重要举措:
1、 确认应用程序组合
如前所述,企业使用的应用程序种类很多,且随着业务的变化,几乎每年都在增加。而且,使用应用程序的终端用户数量也在增加,这些因素都会极大地增加面向互联网的企业应用程序被攻击和渗透的可能性。显然,首先要调查企业已拥有的应用程序都有哪些。
2、 确认最大的风险
几乎没有哪家公司能同时修复所有应用程序的安全漏洞。事实上,并非所有的应用程序漏洞都是一样的(不妨回想一下其发生的可能性、发生的频率、每次安全事件所生产的经济影响)。所以,最合适的做法是把最高的优先权给与最大的风险。
例如,基于Web的前端应用程序,.NET应用程序,基于Java的Web应用程序,以及Web2.0应用程序被许多公司认为是具有最大风险的程序。由于企业中移动设备(如智能电话、平板电脑等)的增加,可以预见,在不远的将来,企业级移动应用程序将会跃升为具有极大风险的程序。
3、 理解并使用自己的工具
渗透测试、应用程序漏洞扫描、人工源代码检查是应用程序安全领域最常见的技术。此外,还有静态源代码分析、动态源代码分析等。
公司不但要知道目前正在使用、计划、评估哪些技术和工具,更要知道哪些工具与其同类公司相关,从而达到更好的结果。要将性能和结果与人员的能力、过程、技术结合起来,用以提供最佳的防护。
4、 选择最佳的部署方案
有多种方案可供企业选择。例如,本地软件、按需解决方案或软件即服务(SaaS)。企业的部分选择要以公司内部的熟练安全技术人员为转移;例如,对有些企业来说,按需TaaS(测试即服务)可能是开始工作时最具成本效益的方法。而对其他公司来说,本地动态测试则可能是最恰当的方法,同时,配合企业需要的外部专家会是确保成功的明智方法。
确立明确的权责
要求一个管理人员或团队负责一项企业范围内应用程序安全,这对保证企业业务的可持续性发展至关重要。例如,将开发人员的部分时间用来解决应用程序漏洞扫描和渗透测试工具所确认的高风险漏洞,这样做是否更为有效?
确认漏洞及其修复的优先顺序
没有哪家企业能够同时修复所有的漏洞,况且所有应用程序的安全漏洞是动态变化的,所以一个高效的分类系统是至关重要的。要高度重视修复那些被评估为具有潜在影响和发生可能性的漏洞。应用程序扫描和测试工具可以帮助你确认特定的应用程序漏洞,借助于工具以及你自己的经验和判断你可以确定需要解决的漏洞的优先顺序。
让IT安全与应用程序开发联合起来
通常情况下,通过对单位已经部署的应用程序实施扫描和测试技术,IT安全团队将是开始应用程序安全工作的人员。你需要避免的是,IT安全团队找到了漏洞,然后将其交给应用程序的开发团队去解决。如前所述,开发人员的职责主要是增加应用软件的功能,加速版本的更新等,而不是解决由主动扫描和测试所确认的漏洞。只有当IT安全和应用程序的开发团队在思考问题时考虑的是“我们”而不是区分为“我们”和“他们”时,才能真正为解决问题起到建设作用。
在IT安全、操作、应用程序的开发团队之间建立良好的交流将有助于确认和修复应用程序的安全漏洞。
采用一种主要的策略
在你主动解决问题的早期阶段,你可以将主动扫描和测试中得到的结果,作为向应用程序开发团队提供的确凿证据。你最终将涉及讨论的核心问题,即在规范的应用程序开发周期的重要阶段:分析、设计、实施、测试、发布、部署、持续支持。只有这样,你才能认识到应用程序的安全漏洞如何以最恰当的方式来确认和修复。
在这个问题上,正确的看法应当是:公司应当从源头上解决安全问题,也就是将安全的应用程序开发工具和方法集成到软件的开发周期中,而不是在查找、修复漏洞的旋涡中挣扎。
虽然“源头安全”是目前最常见的方法,但它不可能一蹴而就,应在开发应用程序的过程中时刻牢记此观念。
培训开发人员
事实上,在应用程序安全策略中的教育和培训中,不同的公司之间并没有什么明显的差距。因此公司还有很多改进的空间。简言之,不要仅仅告诉开发人员说“你弄错了”,而要让其认识到如何正确地安全地开发程序。
与管理层交流
管理部门不仅要确立应用程序安全的优先权,而且要分配必要的工具和资源。安全管理人员要明明白白地表达真实的安全事件,这样企业的领导人就会有时间来思考安全问题,从而确保资源的分配与企业的战略保持一致。
总结
应用程序所带来的安全威胁局势,以及企业应用程序组合的规模和种类都在发生着变化,一次真正的安全事件的实质影响是企业在应用程序安全方面进行投资的最显著动因。但最重要的因素是,投资于应用程序安全可以给企业带来巨大的投资回报。最好的做法就是现在行动。企业不妨采用一种基于风险的方法:1、确认你的应用程序组合,理解企业已经拥有的应用程序种类和数量。2、确认最大的风险,把最高的优先权给与特定的应用程序。3、确认特定应用程序的漏洞,根据应用程序安全工具的使用和自己的经验和判断,区分应用程序修复的优先顺序。
而且要理解并使用自己的工具,要充分利用应用程序漏洞的扫描、渗透测试和人工源代码检查、静态源代码分析和验证、动态源代码分析。实践证明,这些工具和技术正是在安全问题上区分不同公司的关键所在。当然,企业必须选择可以给企业最大灵活性的解决方案。