如何鱼与熊掌兼得:高遵从性环境下的软件

Liran Haimovitch
联合创始人

与DevOps领域的许多其他公司一样,Rookout很早就意识到遵从性可能是我们销售周期进展的严重障碍。他们在安全方面有着长期的经验,但在合规性方面却毫无经验,他们开始在软件开发过程中遵循SOC 2。他们很快了解到,很少有关于如何成为SOC 2兼容的公开文档。在swampUP 2020的这个会议上,他们分享了他们围绕敏捷软件开发和DevOps模式(如CI/CD和GitOps)构建SOC 2过程的方法。虽然完成SOC 2合规通常需要大约一年的时间,但他们在不到6个月的时间内获得了认证。您将了解敏捷流程和DevOps如何解决并超越管理安全性和合规性的传统方法。这个演讲将使您能够根据您想要的软件开发过程定制您的企业遵从性需求。简而言之,面向软件的组织可以鱼与熊掌兼得。

视频记录

嘿,每一个人。我的名字是Liran Haimovitch,今天我要讲的是在高遵从性环境下管理软件开发。记住,当你看这个演讲的时候,我就在你旁边聊天所以如果你有任何问题或者任何事情只要在聊天里写出来,我会回答的。看我自己现场演讲可能会有点奇怪,但我们还是去做吧。现在,在我开始之前,对……只是……几分钟前这个DevSecOps轨道上约翰·威利斯DevOps讨论实现治理,这对我来说是很特别的,因为4年前,我刚进入DevOps类由约翰·威利斯,在线课程,EDX和我知道DevOps来自他对我来说有点特殊的时刻之后他说话。

就在这里,请记住,演讲有很多共同点,所以我希望我能在他之后变得有趣和有教育意义。祝我们好运。我们开始吧。正如我提到的,我叫Liran Haimovitch,是Rookout的联合创始人和首席技术官,我是现代软件开发方法的倡导者,如Agile, DevOps和Lean,在创建Rookout之前,我花了大约十年的时间为以色列做网络安全工作。
我担任过网络安全研究员、开发人员、团队领导、项目和产品经理等多个角色,后来加入了Rookout,我也对合规性有了很多了解。在Rookout,我们已经完成了很多合规工作,特别是对于这样一家成立不到3年的年轻公司。
在此过程中,我们已经获得了HIPAA SOC 2 Type 2 ISO 27001以及GDPR和CCPA。我们经历了这么多合规的原因是Rookout与客户合作的方式,为您提供了一些背景。Rookout是一个可以部署在客户环境上的SDK,无论是他们的生产环境,都可以用来动态提取数据,而无需编写更多代码,重新部署或重新启动。现在,让我们的客户将我们部署在这些环境中,既需要我们的信任,也需要我们满足他们的合规性和法律需求。这就是我们现在变得如此深入合规这么早,大约2年前,2年半前我们刚刚开始我们的第一个合规- SOC 2 2型DevOps主管我坐下来与我们的时间和他和我分享他的故事从一个以前的雇主,他们通过SOC 2 2型合规,它变得如此糟糕开发人员无法做这项工作,他几乎放弃,假设对我来说并不是最令人鼓舞的事情我们都知道,为了让开发人员做好他们的工作,尤其是在现代的、小型的、敏捷的组织中,你希望他们得到授权。
我认为了解它的最好方法是通过DevOps报告的状态,这是当今DevOps最重要的知识存储之一,Nicole和团队的这段话是这样说的:“我们自己的研究发现,一个组织的文化能够优化信息流信任,创新和风险共享,这是软件开发组织绩效的预测。”因此,我们正在努力赋予我们的开发人员权力,我们正在努力向左转移,我们正在尽可能多地给他们。同时,看看这段关于治理的引用,这段引用来自Align Org solutions的Read Deshler他说的是,在商业中,我们经常使用更政治的术语治理而不是控制,你可以继续在网上阅读这篇文章它确实提出了挑战治理并不一定意味着控制有不同的方法,但传统上,遵从变更委员会的传统形式以及所涉及的所有内容都是关于控制,一直是关于你作为高管告诉你的员工做什么,怎么做,什么时候做,我们正在关注敏捷和DevOps,这不是我们试图实现的目标,也不是我们试图实现它的方式。
因此,我们必须弄清楚如何实现无控制的治理,这实际上是可能的,这两种想法不一样,措辞也不一样。
可以实现治理通过定义你的团队为你的团队的基本规则,你可以让他们获得有需要做什么,以保持你的密码安全与合规,你只需要有测量的边界的地方,知道当你的团队,当你的工程师的界限你必须知道如果有人窃听你的系统,你必须知道什么是错误的,但你不需要控制一切。你只需要制定基本规则。DevOps有很多原则。这堂课,我选了这一篇,来自“看整个”博客。
它展示了DevOps社交方面、自动化、质量保证精益、共享和度量的6个不同原则,正如你所看到的,其中一些原则,如社交方面、信任和共享与控制不太一致,因为你试图授权,你试图信任,你试图实现另一方面,许多其他的东西,如质量保证、度量,在某种程度上,自动化实际上与治理携手并进,你必须缓和这场冲突。你通过DevOps实现治理,就像John说的那样,而不是试图实现控制,在这个过程中,我有自己的小框架,试图找出如何做到这一点,今天我想和你们分享一下,这是我对现有DevOps实施治理的方式,它已经为我们提供了多个合规周期,所以,每当你做合规无论是从外部审计师或一些内部审计师或指令从你的老板你会得到要求的要求是要问你需要确保已经采取了和治理一个可预测的方式你必须问自己这是目前满足现有DevOps过程在我的团队,我的组内如果这个需求目前遇到了那么你的黄金。
您所要做的就是记录您通过现有流程满足需求的方式。就是这样。另一方面,您可能会发现现有的DevOps流程目前无法满足此需求。这就引出了一个问题为什么?我的意思是,DevOps都是关于持续学习的现在,把它想象成一个学习的机会有人告诉你这个要求是必须的,这部分是必要的,可以避免商业风险为你的企业避免商业风险为你的客户避免商业风险你同意他们的观点吗?你认为这会带来很大的风险吗?如果是这样,那么你已经学到了一些东西。有一个新的风险,也许是你所瞄准的新市场或地理位置的结果,你必须面对这个风险,但你可以用DevOps的方式来处理它。
不减轻风险通过添加变更委员会或手动过程减轻风险通过自动化通过把责任转移到开发人员通过测量的风险,所以,一旦你遇到了这样的风险你所要做的是文档,分享现在的审计师,有时一旦你理解风险,你可能会发现,这种风险不重要你的业务或产品或平台,因此,在许多情况下,你可以把它作为一个可接受的管理风险记录下来,我理解我们试图控制的风险,我理解需要的控制,我觉得现有的条件已经足够好了,现在,你会感到惊讶,但在很多情况下,一旦你熟练了,一旦你了解合规当你开始理解你的流程的业务=你可以经常让审计师和客户,真正的风险是可以接受的,并且是不值得的时间和精力去修复它不幸的是在某些情况下这不会走得好,在Rookout已经有为数不多的情况下,我们需要实现控制其区域内我们没有必要觉得正是为了满足治理控制为例,我们一直觉得我们办公室的物理安全对于我们服务的安全并不重要所有的笔记本电脑都是加密的,密码保护的我们使用mfa登录等等不幸的是,我们遇到的一位合规审计员不同意在这一要求上让步所以我们不得不升级我们的物理安全以满足更高的标准,尽管对我们来说,这不是我们最好的判断但是在一天结束的时候在整个过程中,Rookout的开发者几乎没有受到我们现在经历的合规过程的影响通过这个过程通过这个框架我们最终通过三个主要支柱实现了合规让我和你们分享,第一个是自动化,我们在DevOps会议上,每个人都会谈论自动化的价值,他们会谈论它如何节省存储,如何加快速度,如何提供更一致的结果,所有这些在我们的案例中都是正确的,从安全和治理的角度来看,最重要的是我们所说的关于赋予人们权力和信任他们的困难,设定界限保持平衡,这不是真的可以很容易与机器机器控制通过控制你写一个脚本,你控制它,所以机器可预见和让你非常非常容易goverened最重要的是,当你为安全自动化思考如何从员工删除权限,工程师和停止给人们访问生产环境中通常可以有脚本为他们做这项工作,所以你不需要给人们尽可能多的特权,所以,这是我们做的方式在Rookout我们所有员工权限授予一个自动化自动化门户在我们的案例中是詹金斯集群哩数可能不同,每一个员工都有一个登录门户和被访问各种各样的工作根据他需要任何的自动完成从门户是否为Kubernetes供应环境,扩展云资源上下旋转机器备份数据库,等等。2022世界杯阿根廷预选赛赛程
现在整个过程中发生的一切员工登录,员工触发工作以及工作的实际工作一切都被审计到日志中,我们对流程进行了管理,同时我们不需要让员工通过SSH通过管理员访问来访问生产环境,但最好的是员工不会把它看作是削弱或伤害他们或阻止他们工作的东西。
另一方面,这使员工能够做他们真正的工作并节省辛劳。现在,所有的自动化候选部署和发布,供应和取消供应环境,系统和集成测试,维护、清理、备份和恢复,这与你从开发和运维的角度自动化的东西没有什么不同,你唯一需要考虑的是是否要自动化,这样我就可以给更少的人更少的权限,通过更少的权限,你现在可以改善你的治理,在Rookout的第二个支柱是CI/CD和GitOps,本质上是把自动化提升到一个新的水平,把它直接融入到公司的工作流程中。现在,正如我所提到的,这是一个DevOps会议所以人们会谈论CI / CD一整天甚至还有这个新CI / CD提供从JFrog我确信你会听到很多关于今天,我要让别人讨论我想与你分享CI / CD的值在治理和相当多的第一次,你得到一个把一切真理的来源在Git中,然后你可以去那里看看是什么配置,代码是什么,部署了什么,是什么,在哪里,事情是如何发展的,其次,你的左移,而不是在应用程序编写完成后添加所有这些治理要求,之后经过测试后准备部署你左移位尽可能要求开发人员构建一个安全管理应用程序从第0天给他们每一个要求你可以挑战他们找出如何编写代码以及如何测试它,确保它被支配,你实际上已经有了一个本机默认机制来做的,把请求包括人类和机器的过程评价和评估变化的代码就像你测试bug,测试代码的可读性一样,你可以通过拉取请求测试任何安全需求,你实际上有……所有的东西都被记录下来,你实际上知道谁打开了拉取请求,谁批准了它,它是如何被测试的,并确保一切看起来都很好。最好的是,所有这些现有的工作处理和控制已经到位,大多数团队已经知道如何以这种方式工作,如何使用它,你不需要对他们的日常生活做出任何改变,他们只需要通过拉取请求执行一些额外的步骤,这些步骤大部分是自动化的。
正如我所提到的,所有的东西都被审计了,包括Git在源代码库中的更改,以及CI/CD上的更改,所有的东西都被审计了,你确切地知道发生了什么,为什么,谁触发了它,所以你可以很容易地把它提供给你的审计人员作为证据。现在,实现合规的第三个支柱是监控和可观察性,现在有两个原因。
第一个原因,我不会花太多时间讨论的是为了确保合规你实际上必须知道发生了什么你必须从你的环境中收集信息来知道例如,如果你的治理需要正常运行时间监控你必须监控正常运行时间如果你做其他保证那么你也必须监控这些但更重要的是,在生产环境中组织中的每个人都想知道生产环境中发生了什么业务人员销售和营销人员想知道有多少人注册了他们付了多少钱产品和用户体验人员想知道用户如何使用你的系统使用得更多的是什么,什么少使用什么更直观或者与其说你有行动和安全人们试图确保系统安全,按预期工作,最后,肯定不是最不重要的是,开发人员通常你这里最大的危险,因为开发者需要不同的数据每天不管是修复一个缺陷是开发一个新功能开发人员日常数据需求变更而我提到过的所有其他群体倾向于需要相同的数据,开发人员每天都需要根据他们正在处理的任务进行更改,这经常导致我们中的许多人授予他们过多的访问生产环境的权限,只是为了查看代码,这样做我们正在伤害我们对生产环境的治理,所以,确保您有适当的监控工具,以确保每个人都能获得他们需要的数据,而不必以不受控制的方式直接访问产品;确保您为业务人员拥有商业智能工具;确保您为安全和运维人员拥有日志记录和apm。
确保为工程师和错误跟踪发送尽可能多的数据从应用程序到谁需要它显然你必须确保所有这些监视工具也安全,访问控制等等关于Rookout的好处之一是,我们使用我们自己的产品,允许开发人员访问生产环境中根据需要收集数据安全审计的方式没有发放到生产服务器本身的直接访问。hth华体会最新官方网站
现在,构建你的可观察性和监控是一个很大的话题,可以说和写它甚至可能有一些会谈今天肯定还有其他我甚至给一些我想给几个指针特别是集中在安全所以先混合和匹配工具没有一个工具,将提供你所需要的一切你可能会获得那些和你要留意的在这个范围内,从安全的角度来看尽可能多地获取现成的软件有很多商业和开源软件可供你使用,但最终,你有时候要做自己周围是否把一些胶带绑定在一起或开发一些自己尽量不要做太多,除非是真正必要的修订数据确保你刚刚经历了一个完整的磨难让你生产安全生产管理,确保你知道发生了什么,所以确保它被屏蔽的数据根据其敏感性和它在哪里会这样you’re not accidentally sending data under compliance to non-compliant systems and last but not least make sure to have retrospectives at the end of the day, there is no better way to figure out what you need than by seeing what you needed in the past now especially when you have production issues and data is needed then everybody needs to step in use the permissions they have and extract the data from production to fix it but once the dust settles down have a retrospective, think through it what data was missing? what data did you have to risk your activities in Ops or security perspective to get and how can you make sure that next time that data will be available faster, easier and to people who might not have as many privileges as the Ops people? Now, that’s it.
这就是我今天的全部内容。正如我提到的,我就在这个频道里,所以如果有更多的问题可以在rookout.com上提问,也可以在推特上关注我的@liran_last

免费试用JFrog !