钛媒体注:亚马逊首席技术官、副总裁Werner Vogels今日出席了腾讯公司主办的第五届互联网安全领袖峰会(Cyber Security Summit2019,简称CSS2019)。
Werner 在演讲中表示,安全不仅仅是安全团队的任务,而是每个工程师都需要关注到的内容,我们要有将安全纳入战略思考的思维。因为安全问题不仅仅是阻止非安全事件的发生,而是还要以最快的速度管控黑客攻击、考虑顾客对安全的需求等等。
同时,在安全自动化方面,他认为安全应该实现自动化:“我们应该很大程度上尽可能把安全操作都进行自动化,这样才可以让客户以自我保护的方式更好地保护自己。”
对此,他提出了两个安全防护措施,首先是关于管道本身,如部署的服务器以及构建的服务器都必须得到很好的保护,应该有一些访问权限,或者对构建的服务器节点进行硬化。二是CI/CD管线当中的安全,即安全应该融入到管道当中的每一部分。
另外,Werner也表示,以前的一些做法安全防护的做法,如软件打包,等待警告等实际上已经完全过时了,这些方式非常脆弱也非常容易被攻击。(本文首发钛媒体)
以下为Werner演讲全文,略经钛媒体编辑整理:
大家早上好!我的演讲将关注几个内容,其中一点是我认为安全并不是安全团队的任务,而是每一个工程师都需要关注到的内容。
安全是每个工程师的事情
每年当我们考虑到安全时,不同资本市场都在考虑不同的一些内容:安全问题会给我们带来更多的损失,尤其会受到很多影响。
在我的祖国荷兰这样一个小国也可能会遭受到很多安全问题。从去年开始,我们有超过15000个左右的安全问题。
这是在一个小国发生的问题,全世界范围之内安全问题可能也非常普遍。于是,我们想阻止这些安全问题,我认为不仅仅是安全团队,所有人都应该加入到其中,我们要有将安全纳入战略思考的思维。
在这个变革中的社会,我们必须要明确,安全问题不仅仅是阻止安全事件的发生,而且需要先人一步考虑到不同黑客的攻击,以及顾客的需求,我们必须要以最快的速度来进行思考。所有安全问题,不仅仅是需要阻断,而是需要通过这些方式进行更好的管控。
公司的每一位工程师都需要承担起安全方面的职责和任务,安全团队中的人员涉及运营、工程、应用与合规多个方面,在新的安全团队中应该也有开发人员。
我们用6个月或9个月时间开发了一个软件,安全问题也就随之来了——几千、几万行的代码只放一些防护的东西就真的安全了吗?
过去,我们会用防火墙保护公司或个人数据,这种情况下很多数据的破坏是破门而入的。比如很多员工收到了新邮件,里面有一个链接,打开链接,你的系统就被攻击了,有些java系统在下载时就被攻击了。现在所有东西都已经开放了,因此每个人都应该有安全的职责,安全分析也变得非常重要。
在一个公司,每周大概有174000个警告需要去进行检查,用人工的话基本没有这个时间,比如Capital One这个金融机构曾经花了两天的时间才解决掉被攻击以及漏洞问题。
在一个开源世界当中,很多安全问题出现了,但开发人员并不关注也没有采取措施,因为他们觉得这不是他们的任务。现在开源软件的使用越来越多,开发人员也应当关注安全,因为这是每个人的职责、每个人的任务。
安全应该实现自动化
我关注的第二个问题是,安全应该实现自动化,即我们应该尽可能把安全操作都进行自动化,这样才可以更好地让客户用自我保护的方式保护自己。
在哪里做这些安全保护?
我认为开发人员需要承担起相应的职责。开发人员的软件开发最终都需要进入部署阶段,开发人员也在等待这一天要去进行持续的部署。但是如果一天部署了几百次,如何能够保证你所开发的软件在几百次更新之后依然是合规的,依然能够满足安全的要求,依然能够保护客户呢?
看一下整个开发管道,有两方面需要给予足够关注。首先是关于管道本身,如部署的服务器以及构建的服务器都必须得到很好的保护,应该有一些访问权限,或者对构建的服务器节点进行硬化。二是CI/CD管线当中的安全,即安全应该融入到管道当中每一部分。
如图,在一个持续部署环境当中,可以看到部署服务器的传统情况,现在每一步都需要加上安全措施,需要有这样的一些挂钩来做连续的安全保护。比如阻挡资质,有一些有版本控制的软件可能会不断进行更新,几乎每天都会有新的客户进来,新的客户把他们一些阻挡资质放进来,系统就能够进行自动安全的验证,而不是由人工去做。
基础设施需要做一个代码,也就是安全性应该作为一个代码来进行保护与描述。需要对其进行不断的检查。关于基础设施每一个方面的改变都需要进行检查、进行测试,来保证其安全性。
另外这个过程也需要API驱动,我们可以建立相应工具对这个系统进行自动安全检测,一旦配置发生一些改变,整个系统工具能够对其进行自动安全方面的检查。这个检查不仅仅是要拦截,还需要去分析为什么会出现这样一些攻击。
以前的一些做法,如软件打包,等待警告,实际上已经完全过时了。 那些做法非常脆弱,非常容易被攻击。所以代码部署之前或之后都需要不断检查,在之前要尽可能进行控制和验证,过去的做法如果有警告的话,就在你的库里加入一个新的内容或基础设施上加入一个新的内容,或进行拦截。
我认为,应该关注非常敏感的API,对这些敏感的API要一直进行追踪,比如安全组或防火墙,以及加密密钥,如果出现任何一些变化,都需要对其保持警惕。
还有触发器,触发器也是基于事件的,当然每天也都会有一些变化,是基于API或者基于事件的一些日志,如果整个基础设施出现任何变化的话,就会有一些警告,需要有人对其进行检查,看一下具体问题是什么。
如何把这样一些过程自动化呢?
在过去几年中,我们建立了很多新的工具来帮助客户能够进行自我保护。举例,我们有静态配置的检查,包括一些配置变更的监控,可以帮助客户自动做出一些检查,可以告诉你出现的任何变化,关于配置方面任何变化也都需要给予警告。通过这些警告,可以新旧对比,看到出现的变化在哪里。
实时、合规的检查,不仅仅是合规,还包括漏洞方面的问题。这是非常好的工具,客户利用这个工具对他们部署的环境不断进行检查,告知他们整个部署环境是否合规,让他们知道可能出现的漏洞在哪里,而且他们也通过这个工具会知道他们的弱点到底在哪里。通过这个工具可以帮助他们实时检测他们的软件。这也是安全领域非常热的一个话题,都是基于机器学习的。
很多时候数据集是在快速迭代、快速增加的,实时的一些数据产生的非常快、产生的量非常大,是前所未有的。更为重要的是,很多客户对于这类情况不是很清楚,不知道他们数据在哪里,他们有什么数据。比如有一些公司有3-4个并购,可能每天都会产生很多数据,但他们根本不知道。如何更好对数据进行实时管理,不清楚他们可能的漏洞在哪里,因此他们需要使用自然语言分析的工具来知道数据在哪里、数据的漏洞在哪里。
机器学习可以用于网络安全,通过机器学习可以大量处理这些数据,可以确保数据得到更好的使用,而且可以减少误报的问题。这对于每一个客户来说都是不一样的,如每个客户控制数据访问的方式都不一样,因此需要去了解每个客户的不同点在哪里,而且这些客户的行为也都是在不断变化的,需要了解客户的行为变化是什么,对他的行为进行分析,这样才可以更好地了解他正常的基线行为是什么,以为客户定制一个属于他们情况的系统。
同时也可以根据客户竞争对手一些情况进行分析。 可以利用行为分析来确定一些正常的基线行为类型,然后可以根据访问的数据价值情境化,其目的就是为了更好地避免误报的问题,收集所有的数据,做特点的分析,然后映射用户时间线,找他的对等组,预测用户的行为,升级相应模型,识别异常行为等等。
机器学习也可以驱动内容的分类,让你了解为什么一些人是这样的信息,还有他们的证书、隐私问题、存储在文件当中的内容,以确保更好地理解客户并对他们进行更好的保护。
腾讯的朋友希望我说一下亚马逊在硬件方面的创新,如何通过硬件创新来保护客户呢?
在云上,我们提出了一个共享责任的模型,即我们对云的安全负责,不管是软件、硬件,所有关于云的一切安全我们都负责。由于客户要对他们自己负责,也要对他们自己进行更好的保护,所有他们能利用我们所提供的工具,就会很好确保对自己进行正确的保护。
同时这个模型,作为云的提供者,可以帮助他们进行基于云的创新,这方面的创新是客户之前从来没有看到过的。
从传统模式到现在,我们会通过软件解决一些问题,这对我们而言是非常重要的一点。事实上可以看到我们有4个不同的内容,我们非常高兴软件可以解决这些问题,而且涉及到不同的领域。
有些时候我们想说是否能用不同方式来进行创新呢?而且同时我们是否能够创造出一个全新的系统?在这里会有更多要求。通过不同方式能够进行更好创新,例如API,或者通过软件与硬件相结合的方式。
所有软件可以创造出一种相应的方式及环境,通过这些方式可以涉及到不同领域。基于此,我们可以在基础设施上进行更好的创新、提升能力、更好的管控。涉及到加密等情况,在一些控制层面上可以作出其他的一些加密。还有其他一些方式,平台上可以作出很多创新,比如涉及到微型平台及微型系统,我们有更好的数据容器,通过这些方式能够进行更好的掌控。
在这里,想让大家理解到的是所有安全问题需要所有人都负起责任来,这就是我今天带来的演讲。谢谢!
声明:本文来自ITValue,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。