你的密码里有什么?为什么需要软件物料清单

当开发人员和供应商仔细列出用于构建应用程序的工具以及包含哪些第三方组件时,IT可以改进软件补丁和更新

你的密码里有什么?为什么需要软件物料清单
思想库

编写安全的应用程序并不意味着简单地检查所编写的代码,以确保没有逻辑错误或编码错误。攻击者越来越多地将第三方库中的漏洞作为攻击的目标,因此您还必须检查所有依赖项和组件的安全性。

在制造业中,公司会创建一份物料清单,详细列出制造产品时包含的所有项目,以便买家准确地知道他们在购买什么。例如,加工食品包装通常会告诉你里面有什么,这样你就可以做出明智的购买决定。

当涉及到软件时,很难解开代码以了解使用了哪些库以及存在哪些依赖项。这是一个挑战,大多数It团队没有时间或资源来解决。

软件供应链自动化提供商Sonatype的副总裁兼devops倡导者德里克·韦克斯(Derek Weeks)说:“你不想买变质的食物,不想买一辆气囊有缺陷的汽车,也不想让一位亲戚得到有缺陷的起搏器。”。然而,令人惊讶的是,我们对软件没有同样的要求。

告诉我里面有什么

最重要的是,软件材料清单应描述应用程序中包含的组件,使用中的组件的版本和构建以及每个组件的许可证类型。

举个例子,如果IT管理员手头上有一份针对其环境中运行的每个应用程序的材料清单,那么他们在2014年4月Heartbleed漏洞最初被披露时的日子会好过得多。与其测试每个应用程序以确定是否包含OpenSSL,它还可以检查列表并立即知道哪些应用程序依赖于易受攻击的版本和需要采取的措施。

其他令人高兴的信息是详细信息,如在源代码中调用该组件的位置、用于构建应用程序的所有工具的列表以及相关的构建脚本。

今天的开发人员严重依赖开源和其他第三方组件,估计80%到90%的应用程序可能由其他人编写的代码组成。根据Sonatype收集的数据,平均应用程序有106个组件。问题是否存在于这些组件中并不重要。该组织负责整个软件链,如果库中的一个漏洞导致安全事件,则该组织要承担责任。

黑盒

当组织购买软件(无论是商业的还是开源的)时,他们对正在使用的组件只有有限的可见性。特别是勤奋的团队可能会查看代码,以查看包含哪些库,但库可以调用其他组件,很容易深入两层以上。

软件安全公司sourcecclear的首席执行官马克•柯菲表示:“人们甚至不确定他们在使用什么,尤其是当图书馆调用他们甚至不知道的其他图书馆时。”

根据Sonatype 2016年软件供应链状况报告,开发团队使用的16个组件中就有一个存在已知的安全缺陷。威克斯说,这相当于被告知用于制造汽车的零件有6%有缺陷,但没人知道是哪个零件或谁提供的。车主不会接受这个答案,软件车主也不应该接受。

一些软件买家已经表明了立场。例如,埃克森和梅奥诊所都要求软件供应商提供一份软件材料清单,以便发现潜在的安全和许可问题,或者应用程序是否使用了过期版本的库。

当发现此类问题时,管理员可以要求供应商使用新版本重新构建应用程序。在等待更新软件的同时,IT部门有机会加入临时缓解措施,以保护应用程序免受试图利用该漏洞的攻击者的攻击。软件材料清单还可以帮助管理员在漏洞暴露或核心库(如OpenSSL)发布新版本时对应用程序和代码进行抽查。

仅仅因为一个组件目前没有任何已知的bug并不能证明它的安全性。某些组件可能是最新的可用版本,但已使用多年。如果管理员和开发人员掌握了正确的信息,他们可以决定是否要冒险使用包含旧组件(可能不受支持)的应用程序。

相似但不同的程序

理解正在使用的组件不仅仅是一个开源软件问题。目前正在努力建立以软件安全为重点的认证和测试实验室。与帮助软件所有者掌握维护和更新的物料清单不同,这些工作的重点是帮助购买者做出购买决策。

今年早些时候,保险商实验室为物联网和关键基础设施供应商推出了一项自愿网络安全保证计划(UL CAP),根据一套安全标准评估其产品的安全漏洞和弱点。UL CAP可作为关键基础设施和物联网设备购买者的采购工具。ICSA实验室有一个类似的物联网认证测试计划,测试物联网设备如何处理警报/日志、加密、认证、通信、物理安全和平台安全。ICSA实验室认证意味着产品经过了测试程序,漏洞和弱点得到了修复。

在线信任联盟有一个物联网信任框架,这是一套物联网制造商应该遵循的规范,以便在其连接的设备中建立安全和隐私——如唯一密码、加密流量和补丁机制。该框架最终将成为一个全球认证项目,但目前,它更多的是指导如何正确地做。

在今年的黑帽大会上,被称为Mudge的著名黑客彼得·扎特科(Peiter Zatko)和莎拉·扎特科(Sarah Zatko)推出了一个《消费者报告》(Consumer reports)风格的评级系统——网络独立测试实验室(Cyber Independent Testing Lab),用于衡量各种应用程序的相对安全性和开发难度。CITL的方法包括查找已知的坏函数和应用程序使用它们的频率,以及比较好函数与坏函数的调用频率。

Zatko在演讲中说:“作为安全从业人员,我们倾向于关注可利用性,但作为产品的消费者,他们几乎总是会说干扰性是困扰他们的问题。”。计划在2017年底前发布大规模模糊结果。

跟踪成分以提高安全性

攻击者已将注意力转移到上游组件上,因为针对库漏洞比只关注单个应用程序更容易受到攻击。Apache Common Core中的序列化缺陷就是一个很好的例子,说明了如何忽略这些缺陷。管理员可能认为没有什么可担心的,因为组织不使用JBoss,没有意识到他们所依赖的另一个应用程序可能正在使用易受攻击的集合代码,因此容易受到攻击。

软件材料清单可以帮助管理员了解应用程序中使用的组件,并发现潜在的安全和许可问题。更重要的是,管理员可以使用该列表抽查来自供应商的应用程序和代码,以获得潜在漏洞和弱点的准确视图,并及时推出补丁。

这个故事“你的代码中有什么?为什么你需要软件材料清单”最初由信息世界

加入网络世界社区足球竞猜app软件脸谱网LinkedIn评论最重要的话题。

版权©2016足球竞彩网下载

2021年IT薪资调查:结果在