分析目标软件的安全漏洞的制作方法

文档序号:8947479阅读:283来源:国知局
分析目标软件的安全漏洞的制作方法
【专利说明】
【背景技术】
[0001]业务越来越依赖信息技术。信息系统正变得越来越复杂、动力更高、相互连接并且在极大分布式的网络上对合作伙伴和客户开放地可访问。商业环境已经越来越多地从面对面的交互向在很大程度上匿名的电子交易转变。软件开发本身正在通过离岸开发布置和公司内部协同计算而变得更加分散。这些趋势使得组织保证和保护数字数据免遭误用或未经授权的访问的能力充分发挥功能。使用这些计算机技术中涉及的安全威胁和风险可能被证明是必须依靠技术来实现个人和企业的目标的任何个人或任何组织的经济责任。
【附图说明】
[0002]附图示出了本发明所述的原理的各种示例,是说明书的一部分。示出的示例仅为了说明而给出,不限制权利要求的范围。
[0003]图1为根据本发明所述的原理的一个示例的、用于预测软件安全缺陷的系统的框图。
[0004]图2为示出根据本发明所述的原理的一个示例的、分析目标软件的安全漏洞的方法的流程图。
[0005]图3为示出根据本发明所述的原理的另一示例的、分析目标软件的安全漏洞的方法的流程图。
[0006]在整个附图中,相同的标记表示相似但是未必相同的元件。
【具体实施方式】
[0007]尽管软件和应用使能的针对它们的安全攻击的频率不断增加,但是难以确定软件中存在的所有的安全漏洞。安全是软件的突现特征,这在于它是软件的设计和工程的副产品,而非建立到软件中的有意设计的方面。由于这个原因,软件开发和安全团队依赖尝试但经常不能在系统的完全覆盖和结果中的高保真精度之间达到平衡的分析技术和手动测试。大多数的分析和测试是在软件已经建立以后进行的,这时候,它太晚了,太贵了,或是组织上难以自圆其说修复安全漏洞。为了预测安全缺陷将出现在哪里,软件开发和安全团队将从具有一种理解软件的安全性如何随时间演变的方式中受益。如果可以得到这样的理解,那么软件和开发团队就能够优先考虑把他们补救这些安全缺陷的时间和精力集中到哪里。
[0008]目前,软件开发和安全团队盲目地作业,连同解决潜在的安全缺陷同时与软件的开发。这产生了这样一种环境,在此环境中,软件开发和安全团队依赖对何时何地要专注于解决正在开发的软件中的安全缺陷的猜测。几乎每一个现在部署的主要的关键业务应用都包含可以被用来造成对业务或对其管理资产相当大的危害的漏洞。这些漏洞可以被利用来盗取重要信息,破坏计算机系统,或影响对利润或攻击者的恶意的处理。
[0009]对于一个有经验的黑客或恶意业内人士来说,由于可在线获得多种信息和工具,为此目的操纵软件变得特别容易。攻击者面临的最大挑战是简单地在大型业务应用环境中找到漏洞。另外,主流的计算机安全解决方案,如防火墙,是基于这样的前提:暴露的和脆弱的软件可以通过把它与外界的危险隔离而被保护。业务需求决定了很少关键业务应用能真正地被隔离。大多数关键业务应用具有通过数据传输接口、远程过程调用以及内部和远程用户的许多接入点。防火墙和其它面向网络的安全解决方案不会阻止关键业务应用需要的访问类型。事实上,今天的业务功能依赖于这种访问到了这样的程度:如果访问被拒绝,那么它们将不能运行。攻击者利用这些事实,来每天攻击系统。
[0010]综上,一个问题自然地把它自己提出来:为什么基于网络的计算机安全解决方案被应用到显然是一个软件问题的问题中? 一个答案是,大多数信息安全从业人员具有网络安全背景,并且由于解决运营安全问题都变瘦了,留下很少时间来与核心软件开发过程进行交互。与此同时,在投入很少的资源给安全考虑的同时,应用程序开发人员由于在时间紧迫的情况下生产新功能而被奖励。很少有任何一个人拥有对应用本身的安全元素的责任。在大多数情况下,软件开发使得关键业务应用被装运,而网络运营团队将保护它。这些角色的二分法为攻击者创造了一个非同寻常的优势,具有讽刺意味的是,攻击者可能是仅有的真正经历了并专注于软件安全和关键业务应用的漏洞的人。
[0011]软件开发内和周围的专家们越来越认识到,关于软件安全必须采取一些措施。然而,尚未确定连贯和实用的解决方案。有使得解决方案难以确定的若干因素。例如,软件安全漏洞是难以描述的,逻辑错误可能跨越数千行代码,使得具有合理性能的精确检测极其困难。乍一看,技术挑战使得这样的解决方案看起来更像是编译器或定位开发工具。但是,大型的软件开发工具供应商还没有使得安全称为其产品的核心部分。它们的客户群仍主要集中在如何提高特性和功能的创造,并且供应商的内部团队在它们工作以改进其单一用途的产品的功能集时,不能轻易地认识到变化的模式。这是一个常见的软件创新者的困境。此外,大量的开发工具提供商并不擅长提供风险管理体系要求的企业级的解决方案,或承受支持这样的解决方案所需的价格点。事实上,开发工具定价的当前状态已普遍阻碍了安全团体构建面向开发人员的解决方案。
[0012]除了软件开发工具中固有的不足之处,软件安全可能需要一个不断变化的领域中的专门知识。问题不只是寻找用于扫描代码的技术,还包括创建和不断地更新用于检测漏洞的规则。提出规则需要不断增长的研究主体的专业知识和导致关键业务应用中的漏洞的现实世界体系结构、框架、使用模式等诸多其它因素。例如,操作系统或库应用程序编程接口(API)的每一个版本都引入新的使得导致安全漏洞的错误的方式。
[0013]此外,软件安全能够由单点解决方案来完成,这不太可能。同样,软件安全能够单独在开发者一级加以解决,这不太可能。软件安全在很大程度上是风险管理问题。解决上述情况可能包括随时间收集的详细信息和保持软件开发人员象以前一样富有成效,还要使得安全度量在开发、测试和部署期间对管理可见的方法。解决上述情况还可以包括给管理人员和组织的企业软件式的解决方案。
[0014]本发明公开用于通过在一段时间分析和关联若干软件信息的来源,来预测软件安全缺陷并把软件安全缺陷区分优先次序的方法和系统。这些软件信息的来源可以包括例如静态分析安全漏洞的结果、软件代码复杂性和稳定性度量以及关于漏洞、访问频率和攻击频率的运行时安全信息等。
[0015]如在本说明书和所附权利要求书中所使用地,术语“目标软件”或类似的语言旨在被广泛地理解为被分析以检测安全缺陷的任何软件及其相关联的代码。
[0016]更进一步地,如在本说明书和所附权利要求书中使用的,术语“若干”或类似语言旨在被广义地理解为任何正数,包括I到无限大;零不是数字而是没有数字。
[0017]在接下来的说明书中,出于说明目的,阐述了大量的具体细节从而提供对本发明的系统和方法的全面理解。但是,对本领域技术人员来说将是很明显的,可以在没有这些具体细节的情况下,实践本发明的装置、系统和方法。说明书中提及“示例”或类似语言表示如所说明地,包括了连同这个示例所说明的特定特征、结构或特性,而这一特定特征、结构或特性可能没有被包括在其它示例中。
[0018]图1为根据本发明所述的原理的一个示例的、用于预测软件安全缺陷的系统(100)的框图。系统可以包括计算设备(102)、应用服务器(106)和历史扫描数据库(108)。在一个示例中,计算设备(102)、应用服务器(106)和历史扫描数据库(108)可以通过网络(104)彼此通信。在另一示例中,计算设备(102)、应用服务器(106)和历史扫描数据库(108)可以被在没有中间网络(104)的情况下,与彼此直接联接。在又一示例中,计算设备(102)、应用服务器(106)和历史扫描数据库(108)可以被在若干设备中集成到一起。网络(104)可以是局域网,内联网,或因特网等其它形式的网络。
[0019]该系统(100)可以被用在包括例如,诸如软件即服务(SaaS)的云计算服务,平台即服务(PaaS),基础设施即服务(IaaS),应用程序接口(API)即服务(APIaaS),其它形式的网络服务,或其组合的任何数据处理方案中。此外,系统(100)可以被用在公共云网络,私有云网络,混合云网络,其它形式的网络,或其组合中。在一个示例中,由系统(100)提供的方法被提供为
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1