当前位置:主页 > 姚记论坛资料区 >

组织可以从DevSecOps中获益的5种实用方法133最快开

发表时间: 2019-11-03

  在这个流行语的背后,对于组织来说,探索DevSecOps是否有真正的需求和价值?理解为什么DevSecOps在当今这个安全漏洞横行的时代如此重要,以及它对您的组织会有哪些实际的好处,这一点很重要。

  它的名字:DevSecOps,一个集开发、安全和操作的混合词,意味着你需要尽早引入安全性作为您的组织所使用的全面的、敏捷的软件开发生命周期(SDLC)的一部分,而不是重复地或等到发布之后才这样做。

  考虑到安全漏洞已经成为了每天都能见到的新闻,开发人员再忽视安全编码的严重性就没有道理了。不过,这里有一个小秘密:由于显而易见的原因,开发人员往往不是最注重安全性的人。这不是他们的首要职责。软件开发人员的首要任务是构建一个应用程序,让它很好地执行预期的任务,有时候也许还要考虑总体的用户体验(UX)和满意度。如果他们足够勤奋,133最快开奖结果。他们可能会将基本的“安全检查”作为编码过程的一部分--比如不盲目地信任用户输入并对其进行清理,但除此之外,开发人员可能并不单独拥有足够的带宽或专业知识来将最优秀的安全检查整合到应用程序当中。

  实话实说:尽管我在Sonatype从事过DevSecOps方面的工作,但在很长一段时间里,我都不明白这个流行词到底是什么意思。我经常问自己,“组织在这方面会有什么好处?这完全是一种营销时尚吗?”

  随着时间的推移,我观察到行业中有一种趋势和向上的推动,即实现某种内在的“安全性”来作为其开发工作流程的一部分,下面是我能够立即想到的5个好处。

  虽然开发人员可能会在实现基本级别的安全检查方面进行尽职调查,但是没有人能够知道在这个拥有数百万存储库的巨大开源生态系统中,有多少软件包包含着安全漏洞,以及在哪个版本当中。如果数量巨大,又没有某种安全自动化,就不可能意识到这一点。

  国家漏洞数据库(NVD)是美国NIST的一个倡议,它绝不是一个全面或准确的清单,它刚刚在2018年突破了第10万个漏洞,而且每天都有更多的漏洞被添加进来。这并不仅仅只是包括“安全漏洞”和发布在GitHub或ExploitDB上的问题。

  支持某种自动化的集成开发服务解决方案或工作流可以帮助开发人员发现他们是否无意中使用了任何具有已知漏洞的开源库,甚至是在他们开始对软件项目的其余模块进行编码之前,就意识到他们需要重新开始。

  由于开源社区传统上欢迎“任何人”的贡献,这也为恶意行为者的滥用打开了大门。2019年,多起恶意软件伪装成合法开源软件包的报道被曝光了。虽然npm的代表能够从他们的服务器上发现和“移除”这些组件,但这个过程并不总是很快。一个已经在使用其中一个受损组件的毫无防备的开发人员将无法知道这一点,除非有一个自动工具能够不断扫描他们的项目并指出任何恶意的开源组件。这就是IDE集成解决方案可以将开发人员和整个组织从发布后可能出现的失误和尴尬中拯救出来的地方。

  作为一名前软件开发人员,我可以权威地反思“依赖项”在软件开发过程中是如何构成问题的,并对工作流的其余部分进行批判性地塑造。通俗地说,如果应用程序需要特定库依赖于另一个库B,而这又进一步取决于另一个C库的版本2这会是脆弱的,因为这意味着您不能使用这三个库中的任何一个,除非库A和B支持库C的非易受攻击的版本3,前提是存在这样一个版本。

  你可以看到这会变得多么乏味。想象一下,你必须为大中型软件项目接受20个或更多组件的潜在安全风险,或者探索其他的开源库。

  对于项目经理和开发人员来说,提前掌握这些知识并能够尽早评估风险意味着能够从一开始就寻找更好的替代方案并设计更加安全的软件,而不是等到发布之后才这样做,因为在发布之后,漏洞评估可能会在未来暴露出一个关键性的漏洞。实际上,这便意味着能够极大地节省工时和资源管理成本。

  您的开发人员可能很忙,他们的任务是用代码为您的用户实现特定的功能。由于截止日期的限制,或者是开发人员自身也缺乏安全专业知识,安全性可能并不总是他们的首要任务。然而,在DevSecOps软件解决方案中,不断地“提醒”将某些组件排除在软件构建之外,并提供可信的理由,这使得您的开发人员在每次看到这样的警告时都会对安全性更感兴趣也更加地清楚。

  从长远来看,这可能会习惯性地强化开发人员的思维模式,即完全避免使用在多个版本中都有安全缺陷的开源组件。

  组织经常说,“我们会认真对待你的安全和隐私”,但没有多少人真正以此为生。如果他们这样做了,当前频繁的网络安全漏洞环境也将不复存在了。不管怎样,任何这样的破坏性新闻都会严重影响一个组织的品牌声誉,并可能导致潜在的诉讼和罚款。在软件项目的每个方面都遵循安全实践即使是一个简单的网站,也更有可能减少这种风险和影响,而这些风险和影响可能来自于对安全的自满态度。

  总之,从各个方面来看,从来没有办法知道你的应用程序或项目是否是完全安全的:毕竟,我们不能声称能够预测或排除未知的风险。但是遵循DevSecOps术语所概括的最佳实践和自动化可以极大地降低您从一开始就使用具有已知漏洞的软件组件所带来的风险。