前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >业务安全与 DevSecOps 的最佳实践

业务安全与 DevSecOps 的最佳实践

作者头像
DevOps时代
发布2018-06-22 14:04:11
1.3K0
发布2018-06-22 14:04:11
举报

讲师介绍:赵锐,平时负责信息安全工作,主要针对业务风险、信息安全、账户安全、开发安全。

介绍由四部分构成:

  • 第一,讲一下我们的困境;
  • 第二,业务安全与DevSecOps;
  • 第三,最佳实践的要素;
  • 第四,实施最佳实践项目。

1. 困境

业务逻辑的安全极大地影响资金,比如说去年杭州某一个大场吸引用户注册的时候,因为逻辑漏洞损失了很大,那这个损失谁来担?

老板要求快速上线,基本功能都保证了,能测试,减少安全测试,功能快速迭代,上线再改,要开发新功能了怎么办?这就是甩锅游戏。

这是鄙视链,安全是麻烦制造者?整天提安全需求,增加开发工作,增加运维要求,增加不确定性,延后业务上线。运维很苦的,要7×24小时待命。

有以上困境的情况下,我们怎么解决这些问题?老板关注业务,就要从人性的角度上来讲,老板不懂技术,一般会跟你讲哲学,我们要跟老板讲管理和哲学,我们怎么实现?

2. 业务安全与DevSecOps

马斯洛的需求理论,我分成三类:生存、归属、成长。IT人员都是困难群众。

我们要如何工作?想老板所想,急老板所急。老板分为两类,懂技术的和不懂技术的,不懂技术的都是业务老板,技术老板就跟他讲 DevSecOps 和 DevOps。业务老板方面,我们怎么把能力展现给他?

简单介绍一下什么是业务安全。是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库等)、业务系统自身(软件或设备)、业务所提供的服务的安全;狭义的业务安全指业务系统自有的软件与服务的安全。

业务安全的内容怎么把它转化成相应的金额?我去年做安全工作,我把安全分成几部分。不管是APP,还是网站,还是H5界面,只要有用户进来,都有账户体系,这是账户安全。通过业务安全充分体现工作,即降风险、减损失,这是转化成具体的金额。

我们是要把产品给真正需要的客户,而不是给羊毛党拿掉。

数据安全方面,客户的信息、公司的信息泄露了,我们和业务部门、风控部门一起把相应的损失计算出来,安全团队和开发、运维团队的人均是多少计算出来,业务老板一看,这很关注,他觉得你帮公司省了钱,省下来的钱就是利润。

我们如何通过业务安全把这些数值减下来?把 RTO、RPO 减少,我们原来的定性内容改成定量,很多企业最终要考核 KPI,原来是多写废代码。

如果风控来查,懂技术的人是能发现的,我们把它变成时间点和金额的方式展现给老板。

2012年,Gartner 介绍了 DevSecOps 的概念,最初使用的是“ DevOpsSec ”。

如何做好DevSecOps?也是按照生命周期最佳实践的方式,让安全成为每个人工作的一部分,将预防性控制集成到我们的共享源代码库中,将安全与部署管道集成。进行安全测试的时候,你有没有测到它?在上线过程中,要保证安全做好后,进行自动部署。

还有,要保护我们的部署管道,大部分系统都是通过互联网,你的版本机、发布机,放在互联网上,你能不能能被黑客控制?他们加了木马,我们所有的业务就没有了,所有的客户数据也没有了。还要将我们的部署活动与我们的变更审批流程相集成,安全人员也要有安全审核的这一关。减少对分离职责的依赖。

Gartner提出,安全是每个人都有的责任,不可能把安全丢给一个人,如果安全都做好了,前面提到的金额数字就是帮公司创造的价值。

3. 最佳实践的要素

成功三要素包括人、技术、流程。所有的产品、所有的事情都是人做的,但是人无完人,只要是人做的产品,肯定多多少少会有一些问题,就像每个人会生病一样。对于人,我们怎么控制?还有,我们的流程,是不是都是完整?中间有没有缺少某些环节?

在运维监控的过程中,发现了问题,是不是能及时找到相应的人员?有这么多新技术产生,我们选用的技术和方法是不是适用于我们的组织?

人是一切的基础,无论你实施多少种技术,最薄弱的环节肯定是人。如果大家有看过黑客的电影就知道,公司的保险库保护得再好,围墙再高,再有安全措施,如果里面的人把你直接带进去,把钥匙给你,里面所有的东西都能拿走了。

人是实施所有工作的起点,在DevSecOps 里,最难实施的因素就是人,人都是自私的,每个人都保护自己,而且多一事不如省一事。我们之前在实施的过程中,发现很多人拒绝别人对他的要求,我们通过升职加薪引导他是很好的办法。

告诉大家,安全人员的收入增长是最快的。京东的安全专家月薪170K,还招商务的外部沟通人员,月薪150K,我经常把这些信息发给我的小伙伴,如果我们下次要走出去,如果哪天公司遇到问题了,我们自己的提升,我们如何实现自己的目标?

我在团队是这样的,大家定好几年内把年薪原来是六位数怎样提到七位数。比较好的认证和方法论,现在最新的,比如说区块链、云、大数据、AI人工智能,我们都在内部分享。

空闲下来的时候,大家不能整天玩游戏,肯定要学习。我们在分享当中,一方面可以打破孤岛,第二方面是共同成长。只要有相互的促进和督促,我们才会把工作做好。

还有另外一种方式,通过考证了,大家给你发红包,大家一定会很好地学习的

流程方面,DevOps的流程有很多,像版本控制、整合流程、CI/CD、合规等等。在版本控制过程中,我们原来做好版本管理的基础上,管理好版本服务器,如果竞争对手要黑我们的服务器,怎么保护它?我们要有相应的编码规范。

这里面安全的内容是怎样的?一般来说,基础的编码规范是有一些公司声明。现在,编码越来越容易,大家都有相应的安全平台,做好后,到平台上扫描,开发人员去改,测试人员进行确认,没有问题就自动上线了。

互联网的系统都是通过堆叠方式实现的,但是原来你只测自己的单元测试,大家结合在一起后,中间的业务逻辑有没有问题?中间会不会产生风险?这些都是需要考虑的。

还有持续发布过程中的安全,监管有这么多法律要求,这是不是都能实现?内部人员可以看敏感信息的时候,如何进行授权?还有架构方面,要考虑上下游系统的平行情况。

发生一些事件后,原来的思路都是让开发解决,外部攻击进来了,我们如何对抗?威胁情报有针对行业的,有通过国家层面的。当你的企业变成世界级独角兽后,很多公司找你麻烦的。

技术方面,自动化和配置管理工具,中间有没有漏洞?安全编码是不是最新的?根据不同的编码工具,不同的版本之间也有编码规范,最新 spring 一直有漏洞,官方提供的补丁一直是无效的。

在这个过程中,我们自己如何在编码过程中给予规范?基线加固,大家会想到网络设备,其实我们的应用也要加固,比如账户安全体系,我们给客户开放的权限也要设置相应的法制。

持续集成连续交付的修补,我能保证目前的能力下是最好的,上线后会有未知的BUG,所以我们要持续地修补和完善。应用程序的审核和扫描,安全人员可以在DevSecOps里,把重复性的繁琐工作里拿出来,做专门的业务逻辑,架构的安全分析。

还有自动漏洞管理扫描、自动合规性扫描,如果涉及到银行卡支付的会知道,有ADSS,会有合规性的扫描要求。敏感信息管理这两年越来越严格了,如果信息泄露,会直接过来抓人、罚款的,这样老板很荒的。

4. 实现最佳实践的项目

我们在 DevOps 的基础上做 DevSecOps,我们要进行选择,有没有成熟的工具?有没有成熟的接口?如果没有这些前提条件的时候,你心里没有底的,如果你没有做好,绩效就没有了。

选择合适的 DevSecOps 的项目,自动化方面,选择工具和API。非强制监管方面,等保三级或以上系统,对监控要求很严格的,对于这方面,我们的经验是先做这方面的安全工作,做好后,先不对外发布,让监控来查,然后通过版本机发布对外部服务。

前面的流程中,可以在开发、测试过程中,采用部分DevSecOps。

我们系统都是快速迭代的,目前大部分都是APP,不管是安卓的还是IOS的,还是Web site。我们的定级参考前面的账户安全、支付数据,比如内部的邮件系统,如果这个系统的数据泄露了,会丢失什么信息?

邮件里会发公司的行政资料,这些有问题了也无所谓的。我们放在微信公众号里吸引客户注册的,如果出了问题造成信息泄露,H5的安全性比较弱,我们只能做客户的引流,所以这块是没有问题的。如果这些沟通好了,我们就可以做DevSecOps了。我们还要参考DevSecOps的适用性、开发方法和项目约束,来选择合适的项目。

原来的时候,在瀑布模型里,软件产品生命周期大家都知道,也都参与其中。我们用的方式和方法都是最佳实践,可以延续下去。只是我们原来的工具,相应之间的接口都串到一起了。

比如原来有以色列的安全扫描工具,我们把代码传上去后,这没有自动,我们调控一个接口。我们把代码统一开发后,自动传输到系统里,根据产品的名称定义好,也知道谁提交的代码,生成报告后,把安全问题摘出来,把问题解决后重新提交。

测试人员也是一样的,在后续的安全部署过程中,我们原来是手动点的,现在不用手动点了。我们要把各项安全工作进行相应的左移。

这些都做好之后,我们要开始计划,看有没有安全问题,准备我们的基线,就是根据你所用的操作系统、数据库、选择的开发语言,代码规范是怎样的,进行安全培训、威胁建模、收集安全需求。

接下来是创建,把安全IDE插件做好,进行安全拼写检查,在计划过程中的问题,在创建过程中都解决了,安全架构是很值钱的。开源产品好是好,当出现安全问题后,它不管你的。

前面做了这么多安全工作,要进行相应的验证,扫描已知的漏洞,这些都可以用自动化的工具进行。扫描基线、配置、未知漏洞,从而执行安全策略。做了验证之后,根据历史情况,解决的问题可以变成相应的金额给老板看。

上线之前,安全人员要做安全测试,查看之前经过什么攻击,进行Fuzz测试。

接下来,要进行相应的安全发布,要确定一致性、安全性。

上线后,要关注业务的情况,进行深度防御措施,应用安全控制,进行网络防护。

请外部的安全团队,把产品放到SRC上进行渗透测试。

RASP是运行时应用自我保护,UEBA是用户行为风险分析。

接下来就是响应,包括几部分。大家都知道我们的系统运行过程中出问题了,运维第一个看,进行相应的处理。

在这个过程中,DevSecOps 要把安全的内容纳进去,对于安全的攻击要进行分类,从系统中分类出来。举个例子,把的流量、设备、软件、硬件都吃掉的情况下,怎么办?我们很多时候只看CPU百分之百、内存百分之百,卡死了,跑不动了,能不能设备重启?

大型机重启时间很久的,这种情况下,我们要和运维人员一起,根据我们历史的情况、根据之前外部所学习到的,把这些都放进我们相应的知识库里,帮助运维人员一起解决。

我们要进行相应的预测,要和前沿的机构保持联系,要参加像全球运维大会,知道最新的发展趋势,知道未来有什么情况出现,防范于未然。

开发做得最好应该是在 AIOps 上,还有AI开发。我们最近研究汽车安全,有自动驾驶,要看你的算法是不是好的。

最后就是适应性,要持续改进和项目优化,我们把数据拿出来了,让老板越来越支持我们。

对于DevSecOps,我们也做了很多,我们在工信部的支持下,也支持我们的DevOps标准,现在名字是“ 研发运营一体化能力成熟度模型 ”。

制定 DevSecOps 标准,最关键的几点是,人员、工具、过程、流程、技术、分类和分级。

讲师介绍:赵锐,平时负责信息安全工作,主要针对业务风险、信息安全、账户安全、开发安全。

介绍由四部分构成:

  • 第一,讲一下我们的困境;
  • 第二,业务安全与DevSecOps;
  • 第三,最佳实践的要素;
  • 第四,实施最佳实践项目。

1. 困境

业务逻辑的安全极大地影响资金,比如说去年杭州某一个大场吸引用户注册的时候,因为逻辑漏洞损失了很大,那这个损失谁来担?

老板要求快速上线,基本功能都保证了,能测试,减少安全测试,功能快速迭代,上线再改,要开发新功能了怎么办?这就是甩锅游戏。

这是鄙视链,安全是麻烦制造者?整天提安全需求,增加开发工作,增加运维要求,增加不确定性,延后业务上线。运维很苦的,要7×24小时待命。

有以上困境的情况下,我们怎么解决这些问题?老板关注业务,就要从人性的角度上来讲,老板不懂技术,一般会跟你讲哲学,我们要跟老板讲管理和哲学,我们怎么实现?

2. 业务安全与DevSecOps

马斯洛的需求理论,我分成三类:生存、归属、成长。IT人员都是困难群众。

我们要如何工作?想老板所想,急老板所急。老板分为两类,懂技术的和不懂技术的,不懂技术的都是业务老板,技术老板就跟他讲 DevSecOps 和 DevOps。业务老板方面,我们怎么把能力展现给他?

简单介绍一下什么是业务安全。是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台(操作系统、数据库等)、业务系统自身(软件或设备)、业务所提供的服务的安全;狭义的业务安全指业务系统自有的软件与服务的安全。

业务安全的内容怎么把它转化成相应的金额?我去年做安全工作,我把安全分成几部分。不管是APP,还是网站,还是H5界面,只要有用户进来,都有账户体系,这是账户安全。通过业务安全充分体现工作,即降风险、减损失,这是转化成具体的金额。

我们是要把产品给真正需要的客户,而不是给羊毛党拿掉。

数据安全方面,客户的信息、公司的信息泄露了,我们和业务部门、风控部门一起把相应的损失计算出来,安全团队和开发、运维团队的人均是多少计算出来,业务老板一看,这很关注,他觉得你帮公司省了钱,省下来的钱就是利润。

我们如何通过业务安全把这些数值减下来?把 RTO、RPO 减少,我们原来的定性内容改成定量,很多企业最终要考核 KPI,原来是多写废代码。

如果风控来查,懂技术的人是能发现的,我们把它变成时间点和金额的方式展现给老板。

2012年,Gartner 介绍了 DevSecOps 的概念,最初使用的是“ DevOpsSec ”。

如何做好DevSecOps?也是按照生命周期最佳实践的方式,让安全成为每个人工作的一部分,将预防性控制集成到我们的共享源代码库中,将安全与部署管道集成。进行安全测试的时候,你有没有测到它?在上线过程中,要保证安全做好后,进行自动部署。

还有,要保护我们的部署管道,大部分系统都是通过互联网,你的版本机、发布机,放在互联网上,你能不能能被黑客控制?他们加了木马,我们所有的业务就没有了,所有的客户数据也没有了。还要将我们的部署活动与我们的变更审批流程相集成,安全人员也要有安全审核的这一关。减少对分离职责的依赖。

Gartner提出,安全是每个人都有的责任,不可能把安全丢给一个人,如果安全都做好了,前面提到的金额数字就是帮公司创造的价值。

3. 最佳实践的要素

成功三要素包括人、技术、流程。所有的产品、所有的事情都是人做的,但是人无完人,只要是人做的产品,肯定多多少少会有一些问题,就像每个人会生病一样。对于人,我们怎么控制?还有,我们的流程,是不是都是完整?中间有没有缺少某些环节?

在运维监控的过程中,发现了问题,是不是能及时找到相应的人员?有这么多新技术产生,我们选用的技术和方法是不是适用于我们的组织?

人是一切的基础,无论你实施多少种技术,最薄弱的环节肯定是人。如果大家有看过黑客的电影就知道,公司的保险库保护得再好,围墙再高,再有安全措施,如果里面的人把你直接带进去,把钥匙给你,里面所有的东西都能拿走了。

人是实施所有工作的起点,在DevSecOps 里,最难实施的因素就是人,人都是自私的,每个人都保护自己,而且多一事不如省一事。我们之前在实施的过程中,发现很多人拒绝别人对他的要求,我们通过升职加薪引导他是很好的办法。

告诉大家,安全人员的收入增长是最快的。京东的安全专家月薪170K,还招商务的外部沟通人员,月薪150K,我经常把这些信息发给我的小伙伴,如果我们下次要走出去,如果哪天公司遇到问题了,我们自己的提升,我们如何实现自己的目标?

我在团队是这样的,大家定好几年内把年薪原来是六位数怎样提到七位数。比较好的认证和方法论,现在最新的,比如说区块链、云、大数据、AI人工智能,我们都在内部分享。

空闲下来的时候,大家不能整天玩游戏,肯定要学习。我们在分享当中,一方面可以打破孤岛,第二方面是共同成长。只要有相互的促进和督促,我们才会把工作做好。

还有另外一种方式,通过考证了,大家给你发红包,大家一定会很好地学习的

流程方面,DevOps的流程有很多,像版本控制、整合流程、CI/CD、合规等等。在版本控制过程中,我们原来做好版本管理的基础上,管理好版本服务器,如果竞争对手要黑我们的服务器,怎么保护它?我们要有相应的编码规范。

这里面安全的内容是怎样的?一般来说,基础的编码规范是有一些公司声明。现在,编码越来越容易,大家都有相应的安全平台,做好后,到平台上扫描,开发人员去改,测试人员进行确认,没有问题就自动上线了。

互联网的系统都是通过堆叠方式实现的,但是原来你只测自己的单元测试,大家结合在一起后,中间的业务逻辑有没有问题?中间会不会产生风险?这些都是需要考虑的。

还有持续发布过程中的安全,监管有这么多法律要求,这是不是都能实现?内部人员可以看敏感信息的时候,如何进行授权?还有架构方面,要考虑上下游系统的平行情况。

发生一些事件后,原来的思路都是让开发解决,外部攻击进来了,我们如何对抗?威胁情报有针对行业的,有通过国家层面的。当你的企业变成世界级独角兽后,很多公司找你麻烦的。

技术方面,自动化和配置管理工具,中间有没有漏洞?安全编码是不是最新的?根据不同的编码工具,不同的版本之间也有编码规范,最新 spring 一直有漏洞,官方提供的补丁一直是无效的。

在这个过程中,我们自己如何在编码过程中给予规范?基线加固,大家会想到网络设备,其实我们的应用也要加固,比如账户安全体系,我们给客户开放的权限也要设置相应的法制。

持续集成连续交付的修补,我能保证目前的能力下是最好的,上线后会有未知的BUG,所以我们要持续地修补和完善。应用程序的审核和扫描,安全人员可以在DevSecOps里,把重复性的繁琐工作里拿出来,做专门的业务逻辑,架构的安全分析。

还有自动漏洞管理扫描、自动合规性扫描,如果涉及到银行卡支付的会知道,有ADSS,会有合规性的扫描要求。敏感信息管理这两年越来越严格了,如果信息泄露,会直接过来抓人、罚款的,这样老板很荒的。

4. 实现最佳实践的项目

我们在 DevOps 的基础上做 DevSecOps,我们要进行选择,有没有成熟的工具?有没有成熟的接口?如果没有这些前提条件的时候,你心里没有底的,如果你没有做好,绩效就没有了。选择合适的 DevSecOps 的项目,自动化方面,选择工具和API。非强制监管方面,等保三级或以上系统,对监控要求很严格的,对于这方面,我们的经验是先做这方面的安全工作,做好后,先不对外发布,让监控来查,然后通过版本机发布对外部服务。前面的流程中,可以在开发、测试过程中,采用部分DevSecOps。

我们系统都是快速迭代的,目前大部分都是APP,不管是安卓的还是IOS的,还是Web site。我们的定级参考前面的账户安全、支付数据,比如内部的邮件系统,如果这个系统的数据泄露了,会丢失什么信息?

邮件里会发公司的行政资料,这些有问题了也无所谓的。我们放在微信公众号里吸引客户注册的,如果出了问题造成信息泄露,H5的安全性比较弱,我们只能做客户的引流,所以这块是没有问题的。如果这些沟通好了,我们就可以做DevSecOps了。我们还要参考DevSecOps的适用性、开发方法和项目约束,来选择合适的项目。

原来的时候,在瀑布模型里,软件产品生命周期大家都知道,也都参与其中。我们用的方式和方法都是最佳实践,可以延续下去。只是我们原来的工具,相应之间的接口都串到一起了。

比如原来有以色列的安全扫描工具,我们把代码传上去后,这没有自动,我们调控一个接口。我们把代码统一开发后,自动传输到系统里,根据产品的名称定义好,也知道谁提交的代码,生成报告后,把安全问题摘出来,把问题解决后重新提交。

测试人员也是一样的,在后续的安全部署过程中,我们原来是手动点的,现在不用手动点了。我们要把各项安全工作进行相应的左移。

这些都做好之后,我们要开始计划,看有没有安全问题,准备我们的基线,就是根据你所用的操作系统、数据库、选择的开发语言,代码规范是怎样的,进行安全培训、威胁建模、收集安全需求。

接下来是创建,把安全IDE插件做好,进行安全拼写检查,在计划过程中的问题,在创建过程中都解决了,安全架构是很值钱的。开源产品好是好,当出现安全问题后,它不管你的。

前面做了这么多安全工作,要进行相应的验证,扫描已知的漏洞,这些都可以用自动化的工具进行。扫描基线、配置、未知漏洞,从而执行安全策略。做了验证之后,根据历史情况,解决的问题可以变成相应的金额给老板看。

上线之前,安全人员要做安全测试,查看之前经过什么攻击,进行Fuzz测试。

接下来,要进行相应的安全发布,要确定一致性、安全性。

上线后,要关注业务的情况,进行深度防御措施,应用安全控制,进行网络防护。

请外部的安全团队,把产品放到SRC上进行渗透测试。

RASP是运行时应用自我保护,UEBA是用户行为风险分析。

接下来就是响应,包括几部分。大家都知道我们的系统运行过程中出问题了,运维第一个看,进行相应的处理。

在这个过程中,DevSecOps 要把安全的内容纳进去,对于安全的攻击要进行分类,从系统中分类出来。举个例子,把的流量、设备、软件、硬件都吃掉的情况下,怎么办?我们很多时候只看CPU百分之百、内存百分之百,卡死了,跑不动了,能不能设备重启?

大型机重启时间很久的,这种情况下,我们要和运维人员一起,根据我们历史的情况、根据之前外部所学习到的,把这些都放进我们相应的知识库里,帮助运维人员一起解决。

我们要进行相应的预测,要和前沿的机构保持联系,要参加像全球运维大会,知道最新的发展趋势,知道未来有什么情况出现,防范于未然。

开发做得最好应该是在 AIOps 上,还有AI开发。我们最近研究汽车安全,有自动驾驶,要看你的算法是不是好的。

最后就是适应性,要持续改进和项目优化,我们把数据拿出来了,让老板越来越支持我们。

对于DevSecOps,我们也做了很多,我们在工信部的支持下,也支持我们的DevOps标准,现在名字是“ 研发运营一体化能力成熟度模型 ”。

制定 DevSecOps 标准,最关键的几点是,人员、工具、过程、流程、技术、分类和分级。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps时代 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2. 业务安全与DevSecOps
  • 3. 最佳实践的要素
  • 4. 实现最佳实践的项目
  • 1. 困境
  • 2. 业务安全与DevSecOps
  • 3. 最佳实践的要素
  • 4. 实现最佳实践的项目
相关产品与服务
业务风险情报
业务风险情报(Business Risk Intelligence,BRI)为您提供全面、实时、精准的业务风险情报服务。通过简单的 API 接入,您即可获取业务中 IP、号码、APP、URL 等的画像数据,对其风险进行精确评估,做到对业务风险、黑产攻击实时感知、评估、应对、止损。您也可利用业务风险情报服务搭建或完善自身的风控体系,补充自身风险情报数据,提升对风险的感知、应对能力。BRI 支持按需付费,您可根据您的需求,选取不同的套餐,更易优化成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档