black duck 下载_如何创建安全的Java软件:与Black Duck的Tim Mackey交谈

black duck 下载

在TheServerSide对安全Java软件开发的持续报道中,我最近与Black Duck Software的IT传播者Tim Mackey进行了交谈。 这次对话非常有趣,足以将一些引文引申到TSS上发表的几篇文章中,包括以下两篇有关安全开源软件以及安全微服务和容器的文章:

隐藏在原本安全的软件堆栈中的隐藏威胁

微服务和容器是否简化了软件安全性任务?

鉴于在创建安全Java应用程序的各种文章中都会窃取访谈的报价,我认为提供采访的完整记录是值得的,因为Mackey的见解在更大的背景下提供更大的价值,而不只是在较小故事中的小引用。


《黑鸭》的蒂姆·麦基访谈

卡梅隆·麦肯齐(Cameron McKenzie) :关于开源软件 ,开源治理和创建安全的Java应用程序,我想与之交谈的组织之一是Black Duck Software。 前几天,我很幸运地给蒂姆·麦基打电话。 我相信他是Black Duck Software的IT传播者,而我上次与他交谈时,我相信他将在2017年5月参加Red Hat Summit。

因此,我想知道的第一件事是当您去参加Red Hat峰会时,看到了哪些内容,发现了哪些趋势,以及在该论坛上看到的一些总体主题?您认为有趣的会议预示着2017年和2018年的趋势将如何?

蒂姆·麦基(Tim Mackey) :因此,最热门的话题是OpenShift,人们可以做什么来在生产场景中以非常敏捷的方式增加对容器技术的采用。 因此,它已经从“好吧,我们真的不确定这将如何进行,并且我们不确定我们将如何驯服这件事,因为它发展得如此之快”,已经不再是Red Hat了。具有良好,可靠,可扩展的功能,并且具有企业希望听到的所有内容,例如: 你们这里有些东西。 我们去弄清楚。”

所以这对我来说是很大的嗡嗡声。 这验证了我们一直在努力的事情,我们将其称为过去六个月,这是将我们的核心技术引入到容器环境中的最终目的,是大大缩短安全事件发生的时间。进行补救。 因此,例如,加拿大税务局大约一个月前就遭受了Apache Struts漏洞的攻击,他们花了一周的大部分时间才真正弄清楚这一点。 如果他们有像我们提供的解决方案那样的解决方案,我们将已经能够说:“看,这就是您受此影响的应用程序堆栈。 根据该应用程序的治理要求,找出您的补救措施。”

容器,微服务和安全的Java软件

卡梅隆·麦肯齐(Cameron McKenzie) :现在,没有争议的事实是微服务和容器是当今的大趋势,但是将数百个微服务部署到数百个容器中的整个想法不是在制造软件管理梦night吗?

蒂姆·麦克基(Tim Mackey) :您是通过现有数据中心运营商的眼光看待它的,所以这是一个完全有效的问题。 容器化方式的优点之一就是采用了整个云模板模型,而Amazon和Microsoft以及Azure,世界上的OpenStack和CloudStack确实落伍了,并说:“好吧,让我们容器的黄金大师,该容器本身应具有足够的操作环境才能真正有用。”

因此,如果您要谈论的是Apache Web服务器,也许您是在谈论的是Apache Tomcat,因此其中包含了一些Java。 那有一些用户空间组件,但是因为Docker占用了用户空间并将它与内核分开,所以我那里没有任何内核组件,所以从攻击面的角度来看,我已经有了一些更小的东西。 而且由于这些容器可以快速旋转,并且通过扩展,可以快速旋转,因此,如果需要修补它们,则可以很容易地构建具有最小破坏性的滚动升级。

卡梅隆·麦肯齐(Cameron McKenzie) :那么,这些滚动升级之一是什么样的? 它是通过Groovy脚本实现的,该脚本知道所有容器在何处运行以及它们在哪些端口上运行,还是通过开源容器编排工具完成的?

蒂姆·麦基(Tim Mackey):所以,如果我们两年前说的话,那么使用Groovy脚本的场景就是您处理该脚本的方式。 您将创建自己的业务流程管理范例。 因此,例如,如果我从OpenShift的角度来看它,当我决定要创建一个应用程序时,该应用程序将要有一个容器映像,并且我将决定我要复制多少个副本。我将在那里。 因此,基本上,例如,我的Web场有多大。 我将能够按比例放大和缩小。 部署配置规范的一部分是在发生某些更改时应采取的措施。 因此,如果我更新该容器映像,该怎么办? 一种情况是,我可以将一定比例的现有容器移动到该新映像上(可能是50%),并进行A / B测试。 也许我可以去放一个单独的容器,并进行测试,这样我才不会打扰系统。 那将是金丝雀的情况。

对结果感到满意后,我就可以翻转开关,然后它们都将自动滚动,因为微服务的宗旨之一是它是无状态的。 然后,我可以按照需要的任何方式进行扩展,如果它碰巧失败了,那么另外一个人将在那儿而不是在这里。 因此,这是您尝试在容器化微服务方案中进行修补时获得的价值之一。 因此,一旦您披露了该安全漏洞并确定了它的位置,便可以有效地对其进行测试。 您可以对其进行审核,然后将其作为“黄金大师”(Golden Master)投入使用,并且可以很快将其投入生产。

混合云和软件安全

卡梅隆·麦肯齐(Cameron McKenzie) :现在,组织(如OpenStack)可以将公共云带回家。 他们可以创建混合云。 他们可以在本地数据中心中安装云计算软件。 这会降低安全风险,还是会产生新的,不可预见的安全风险?

蒂姆·麦克基(Tim Mackey):它的作用是创建文档和交流信息,我将使用“负担”一词。 这可能不是正确的词,但这是义务。 因此,举例来说,如果我要在AWS中部署和部署所有内容,那么我相信Amazon所做的事情完全正确。 我相信我的工程师已经解决了……我为背景噪音感到抱歉……他们了解如何配置网络组件,VPN设置正确,子网都在正确的位置,快照是实际上,所有这些事情都按照应有的方式发生,并且Amazon正在适当地管理该基础架构。

一旦我转移到OpenStack并将其引入内部,现在我必须承担这些责任。 因此,有效地,当我将其现有数据中心运营离岸到AWS环境中时 ,通过转到OpenStack,我将其重新带回了。我现在重新获得了控制权,所有权和责任。整个基础架构,而不只是在虚拟化基础架构上运行的应用程序。

安全的Java 和 JavaScript?

卡梅隆·麦肯齐(Cameron McKenzie) :现在,JavaScript越来越流行, Node.js在服务器端带来了大量JavaScript。 JavaScript在服务器上运行什么类型的安全性问题,或者甚至可以很快分叉的Node.js和子技术之类的技术,对组织有什么类型的安全性影响?

蒂姆·麦基(Tim Mackey): Node是一个有趣的环境。 我把它比作怀亚特·厄普(Wyatt Earp)的狂野西部。 发生了很多变化。 您不一定完全知道软件包的来源。 一个包每天可能更改多次。 您已经有了相关性,并且在Node世界中,您已经有了npm可以使世界稍微平滑一点,因此npm就像Wyatt Earp。 他要对环境强加一定的规则,但是他不知道正在发生的一切。 因此,从安全性角度来看,真正的挑战是,因为事情发展Swift,因此像数据网格之类的组件的分支变得很容易被分叉,并且发生了很多安全问题。在分叉的中间流中提出某个观点时,要真正识别易受攻击的代码存在于何处和不存在何处变得更加困难。 这样一来,像我们在监视容器中所具有的能力那样的解决方案便开始真正发挥作用,因为我们是围绕整个系统进行设计的……这就是开源行为的表现方式。

卡梅隆·麦肯齐(Cameron McKenzie) :那么Black Duck Software如何与开放源代码软件一起工作,以及您所说的对开放源代码软件行为的了解,为您带来了行业竞争优势?

蒂姆·麦基(Tim Mackey):因此,对我而言,后代是OpenSSL。 因此,如果您查看Black Duck的历史,自成立以来我们一直在谈论许可证合规性。 而且, 随之而来的是Heartbleed ,它袭击了整个世界。 当我讲话时,我经常说:“我断言,会议室中的每个人都清楚地知道他们在做什么,当Heartbleed遭受打击时,他会感到多么痛苦,因为那是对业界的唤醒。”

人们对开源安全性工作方式不了解的一件事是,例如,如果您使用OpenSSL,则Heartbleed与一个提交ID关联到另一个提交ID。 涉及到范围。 开源的方面之一就是我可以分叉。 如果您今天查看GitHub和OpenSSL项目,您会发现发生了14、15、17、1800种不同的OpenSSL分叉。 因此,在这种情况下,至少有许多OpenSSL实现的派生产品,但仅会针对该主线版本报告该安全漏洞。

因此,如果您使用的是OpenSSL,则将其分叉,也许您已删除了一个密码套件 ,添加了一个密码套件 ,将其嵌入到您的依赖项集中,然后转移到其他可能对其进行了稍微修改的人。 然后重复该过程,最终将其嵌入到其他应用程序堆栈中。 也许它是容器基本图像的一部分。 您可能不知道自己处于脆弱状态,除非您了解开源实际上是如何工作的,并且您不仅在监视针对主线组件的漏洞,而且实际上可以在衍生分支上工作。

黑鸭软件中心

Cameron McKenzie :现在,您提供一个开源解决方案,以帮助组织填补安全性,治理和策略漏洞。 Hub到底是什么?它对创建安全的Java软件有何帮助?

Tm Mackey:因此,应用程序本身称为Hub ,而Hub应用程序则是……它具有三个主要组件。 第一个组成部分是我们的知识库。 知识库是我们在整个历史中一直在创造的东西,因此称之为十几年。 它是专门针对某人将在开源世界中表现出的行为类型而设计的。 它是在某个时间点创建的,当时公司知识产权律师对于GPL对他们的意义确实不确定。 因此,我们必须想出一种方法来跟踪给定的许可证,无论该许可证位于代码库中的哪个位置,无论该代码是否已经输入。 因此,这是该知识库的设计原则之一。

因此,今天的知识库包含了实用目的,现代开放源代码计算的整个历史。 它的大小略超过500 TB,其中有9,000个不同的数据源。 因此,这是一个非常非常丰富的环境。 为了让您了解数据源的类型,整个GitHub都被视为一个数据源。 来自NIST的整个国家漏洞数据库都被视为另一个数据源。 Bugtraq的全部都算作另一个数据源。 Red Hat Errata是另一种,通常,如果我坐下来与人们交谈,我可以提出20到25种不同的明显数据源,并且我们会不断增加。

这是很少有人愿意从事托管业务的一个组成部分,因此我们托管它。 那位于我们的数据中心中,我们对其进行管理,并实时进行更新。 因此,随着活动在开源世界中发生,它会在知识库中直接进行更新。 集线器应用程序本身就是安装在客户站点的场所中([听不清00:12:39]),并且可能在AWS环境中。 那可能是在Azure中。 那可能是在OpenStack中他们自己的专案中。 真的没关系。 那就是UI,那就是API端点。

所需集中的第三个组件是我们的扫描客户端。 扫描客户端本身最终被嵌入到某种形式的工作流中。 因此,这可能在Jenkins管道中进行持续集成。 [听不清00:13:08]例如,詹金斯将其放在Bamboo中。 如果要使信息直接显示在开发人员的控制台中,该信息可以是Microsoft TFS,也可以在Eclipse内部。 我们也可以向右移动,这就是我们在红帽方面所做的。 我们中间有Docker,因此我们可以考虑很多活动。 不一定只是监视的情况,因此在Jenkins示例中,我们将自己注入到构建周期中。 我们将看到该构建的一部分的源代码。 因此,我们将能够对其进行扫描,对其进行指纹识别,然后这些指纹将上传至集线器服务器。 集线器服务器根据知识库进行匹配,并针对与许可证合规性,安全性合规性和操作风险有关的问题提供了一系列答案。 而且,我们不需要再次扫描它,因为我们已经知道其中的内容,除非发生某些变化,在这种情况下您可以进行另一次扫描。

如果外部环境发生变化,因此发生了新的安全漏洞披露,或者发布了新版本的组件,则我们可以生成一组通知,其中最常见的是创建JIRA票证,因此实际的活动开发人员,运营团队,产品所有者,敏捷工作流程的整个堆栈在工作流程中都知道其整个应用程序的安全状态。 因此,对我们来说,这简直就是漫长的总结。

卡梅隆·麦肯齐(Cameron McKenzie):所以,当我们在这里整理内容时,我给您最后的话。 您想传达给更大的企业计算社区的信息是什么?

蒂姆·麦基(Tim Mackey):我想向观众传达的一个重要信息是,今天的开源是世界运作的一种方式,但是要完全了解您所依赖的开源组件,您需要一点点的工作。 因此,像黑鸭一样的解决方案就开始真正发挥作用。 一旦有了实际的物料清单和存货清单,您就可以更好地评估组织的风险是否可以接受,并且正在以符合要求的方式增加或减少业务目标,以及在发生外部事件时(例如,提出新的安全漏洞披露),您处于更好的状态以能够确定应从何处开始修复,因此不仅如此,“哦,太好了。 我们刚刚有一个新漏洞。 让我们再次开始消防演习并做出相应的React。” 因此,您实际上可以开始将其构建到流程中。

卡梅隆·麦肯齐(Cameron McKenzie):要进一步了解Black Duck和Hub ,请转到blackducksoftware.com ,如果您想在Twitter上关注Tim Mackey,请使用@TimInTech 。 您也可以关注我: @cameronmcnz

翻译自: https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-create-secure-Java-software-A-talk-with-Black-Ducks-Tim-Mackey

black duck 下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值