您的位置: 首页 > 生活常识 >

qbq问题背后的问题(如何系统性解决问题背后的问题)

100次浏览     发布时间:2024-08-09 08:01:45    

  近期一幅关于软件开发的漫画非常流行:一名开发者发现象征着软件开发系统的管道漏水,于是抄起扳手修复了漏水点。但这却引发了更多漏水点的出现,直至开发者关闭了总闸门,才避免了一场灾害的出现。而实际上,从QBQ(问题背后的问题)方法出发,漏水点不过只是一个“伪问题”,其背后真正的问题却经常被掩盖、隐藏住了,一个小问题因此而可能引发一系列严重的问题。

  当开源软件成为软件供应链的重要环节,一旦具有大规模用户基础的开源软件存在安全漏洞,势必会影响整个软件行业的安全,小小问题因而需要一个系统性的解决方案。也许正是基于这个原因,Gartner才会预测2026年将有40%的企业会启用ASPM(应用安全态势管理解决方案)。

  问题初现

  软件测试人员一定不会对这样的场景感到陌生:本来软件开发周期就被压缩得非常短,在业务部门的一再催促之下,全体开发人员都在加班加点,但偏偏测试结果还在不断涌现安全报错。这个时候,开发人员多数会选择一个折衷的方案,只要大体应用功能过得去,就可以忽略暂时不影响使用的漏洞。

  在当前的软件项目管理中,往往只考虑质量、进度和成本三个维度,但后期一个小小的安全漏洞,却可能引发一系列严重问题。因此,软件项目管理中需要引入第四个维度,这就是安全。这四个维度互相制衡,项目管理人员需要在几个维度之间做平衡,而这种平衡就需要依托工具进行。但在引入一系列工具之后,问题却并没有得到解决。

新思科技中国区应用安全技术总监付红勋

  新思科技中国区应用安全技术总监付红勋介绍说:“当前应用安全计划不够理想的原因,可以归结为三‘低’和两‘难’。”

  三低中的第一低是AppSec在执行的过程中效率低。在软件系统生命周期(SDLC)内,不同职责的人做了不同的测试,结果出了各种格式的报告,但这些报告因为汇总困难,因而在不同团队之产的传送效率非常低。而对于安全人员来说,最难回答的就是安全风险到底在哪里这样的问题,因此对软件风险把控的准确率比较低。这样的结果就意味着招了不少人,也买了不少工具,但在应用发布时却没有安全性的底气,因而投资回报率比较低。

  这三低同时也造就了两难。首先是大量开源组件的采用,让开发工作变成了混源的状态,而自己开发、采用开源组件、应用第三方供应商的代码,在AppSec策略上要区别对待,混源因而造成了AppSec策略的统一有效管理比较难。此外,太多的测试工具给了太多的测试结果,其中必然存在重复的、误报的,太多的安全噪音让开发人员也难以聚焦到关键的安全工作上。

  针对两难三低,付红勋认为企业需要做好三个整合:“首先是整合供应商、整合工具。比如SAST(静态应用安全测试)、SCA(软件组成分析)等各个领域优化关键工具、提升资源效率。其次是整合流程,将各个环节安全活动的策略做整合,做到标准化、集中化管理,然后按策略实现自动编排、调度、去重和关联分析。最后是整合洞察发现,把AST工具的测试结果放到一个统一的数据仓库里,做出一份让大家都能看得懂的安全报告。”

  帮助实现整合的,正是ASPM(应用安全态势管理解决方案)。它可以把从研发、部署到运维的整个应用生命周期内,跟安全相关的信息汇聚管理起来,提高可见性,从而更好地帮助企业按既定的AppSec策略去做管理和控制。概括起来说,ASPM既要让企业看到主要的安全风险在哪里,又要让企业高效、智能、自动地去处置这些主要风险。新思科技并没有让ASPM停留在理论层面上,通过自己的软件风险管理平台SRM方案,去帮助企业解决三低两难问题。

  答案背后的逻辑

  新思科技的SRM方案有一个独特的功用,就是可以把风险漏洞显示在代码行中,让开发人员更直观地找到风险存在的位置。从QBQ方法出发,真正的问题是“问题背后的问题”,也就是问题的本质与关键。而在一堆“伪问题”之中找出隐藏其中的底层逻辑,才能找出“问题背后的问题”。因此反过来想,识得万千“术”易,要找出最终的那个“道”却无比困难,简单功能中要实现决定安全成果走向的底层逻辑,并不容易。

  付红勋介绍了SRM方案中隐藏着的底层逻辑:“新思科技的SRM方案有策略、编排、关联以及内嵌等4个关键点,支撑了ASPM方案的全部核心诉求。”

  从策略层面来看,在安全风险扫描之前,需要检测哪类代码、检测到什么深度、什么时候检测、扫描之后发现的问题应当如何归类、依据什么维度去归类等问题,都可以归入策略。这些策略被以脚本的方式写入了SRM平台。

  正是有了策略即代码做基础, SRM方案才能把关键的缺陷直接推送给开发人员,甚至可以把一些不符合策略项直接定位到代码行中,还附上解决建议,推送给开发人员,让开发人员知道如何优先处理这些问题。

  报告不能统一一直是企业面临的一大困扰,由于不同测试工具给出的报告格式并不相同,并且这些测试是发生在软件生命周期的不同阶段,所以负责风险管理的人最后要花费大量力气进行整合工作。但SRM方案会形成一份统一的报告,就可以通过可视化的方式反映整个企业的软件风险状态,从而回答了哪个软件的哪个组件的哪个安全问题,造成了当前最主要的安全问题。

  而在内嵌方面,新思科技内嵌了Coverity(SAST)和Black Duck(SCA)两款工具,用户在此可以一站式地享受到业界领先的SAST和SCA的扫描引擎。 AST测试工具非常多,谁能支持的第三方工具最多,谁的ASPM平台才更有价值。在这方面,新思科技目前支持了超过135种商业或开源的AST工具,是业界对AST工具支持最多的ASPM厂商。

  付红勋将SRM方案的特点简化为三化两快:“三化首先是管理简化,我们可以把DevOps CI/CD工具、AST工具、缺陷跟踪工具等都统一对接到SRM平台,使得管理非常简单。其次是实现了风险可视化,将不符合策略的违规项映射到测试结果甚至到代码行。然后是工作的标准化,通过API接口把策略写入SRM平台,基于既定的策略,在合适的时间、对合适的对象、开展合适的测试并测试到合适的深度,然后开展关联分析、去重、排序、修复和跟踪等工作。两快首先是可以快速确定风险的优先级,然后是可以快速同步业界领先的AppSec测试能力(SRM已经内嵌了新思科技业界领先的Coverity与Black Duck引擎)。”

  ASPM的演进过程

  相比于其他应用安全方案,ASPM的最大特点就是将安全防范措施与业务场景紧密地结合起来。那么,在企业向ASPM演进的过程中,又需要注意哪些新问题呢?

  付红勋介绍说:“要做到跨行业的通用型ASPM,从整个行业来看都是比较困难的,所以ASPM系统需要结合用户的业务场景去调优。我们在落地时,会首先把软件资产进行分类,不同软件的不同功能,其重要程度都是不同的,其中会有业务核心系统,也有支撑核心业务的边缘系统,这样不同的业务、不同的软件所处的地位不同,这也是制定策略时需要考虑的一个维度。此外,还要考虑SLA(服务级别协议),不同系统出现问题时所要去的修复时间也不一样。此外还有别的维度,比如缺陷年龄。综合来看要依据企业的业务需求制定具体的安全策略。”

  企业的安全系统往往是CIO或CSO们慎之又慎的系统,因此大家都不愿做尝鲜者。付红勋则表示SRM方案并非是一个推倒重来的新产品,而是针对企业实际的业务问题,重新整合增强的一个平台。

  例如SRM内嵌了Coverity和Black Duck,都是经过长期验证的平台。SCA领域的Black Duck,背后有一个经历多年积累的TB级别的知识库,这个知识库把当前开源界的众多开源项目、开源组件、版本、漏洞等信息进行了完整的收录。而SAST工具Coverity则可以扫描自有代码的安全风险,保障代码发布即可信。

  事实上,SRM平台就是在新思科技原来的Code Dx以及Intelligent Orchestration(IO)演进而来的。Gartner当年将这两个系统叠加在一起,称之为ASOC(应用安全编排与关联分析)。Code Dx平台此前已在业界应用了15年,众多用户都是在基于Code Dx和IO进行调度和编排,再做去重、排序、优先级等工作。此后,新思科技将这两个平台进行了进一步的延展,才演化出了今天的ASPM。这同时表明,原有的IO和Code Dx的用户,仅需要极低的切换成本,就可以换到新思科技的ASPM。

  付红勋强调:“数字化转型在企业业务中发挥着越来越重要的作用,因此要特别重视软件安全。因为数字化转型的载体是软件,软件风险即业务风险,所以在日益缩短的TTM(Time to Market)要求下,要构建安全可信的软件,就要掌握应用安全风险的总体态势、聚焦重要的安全工作,这就需要应用安全风险态势管理工具(ASPM)的支撑。”

相关文章