CIS 2021网络安全创新大会《代码安全体系建设》实录(三)

简介: 大家好,非常高兴给大家分享《代码安全体系建设》议题,我是汤青松,目前在 SDL 方面做的比较多的。今天讲的这个话题其实和 SDL 有很大关系的。我这次分享这个话题的其实就是 SDL 当中的一部分。很多同学如果在甲方也会去做 SDL 当中的一些工作,所以我希望我这次分享的内容对大家有所帮助。

0.png


一、背景


汤青松 ,北京趣加科技有限公司 安全工程师,实体书《PHP WEB安全开发实战》作者,擅长企业安全建设,SDL安全建设。PHPCon 2020 第八届 PHP 开发者大会分享《PHP安全编码规范与审查》,NSC 2019第七届中国网络安全大会分享《PHP反序列化漏洞分析实践》看雪2018 安全开发者峰会担任Web安全训练营 讲师


大家好,非常高兴给大家分享《代码安全体系建设》议题,我是汤青松,目前在 SDL 方面做的比较多的。今天讲的这个话题其实和 SDL 有很大关系的。我这次分享这个话题的其实就是 SDL 当中的一部分。很多同学如果在甲方也会去做 SDL 当中的一些工作,所以我希望我这次分享的内容对大家有所帮助。


这次分享的话题是 SDL 当中的一部分,但是它不完全是 SDL 因为我主要还是聚焦于在安全向左移的这样一个概念当中。所以今天分享的话题主要是聚焦于这个代码风险管理。那在这个代码安全当中可能有哪些风险点了?那它可能会包含技术方面的工作和非技术方面的工作,比如说管理工作以及这个学习方面的一些事情都会有讲解到。


二、风险提醒


那接下来我们要讲的就是风险实时提醒。那么我们给他做完培训之后,我们有这个首次培训,也有这个每个季度一次培训,也有这些案例的一些讲解对吧,我们还得有这个监督的一个作用,就是他们写完代码之后,我们得及时去提醒他,以及了我们每一个季度了我们有一次全面扫描等等这些信息。


1、风险提醒的作用

那首先我讲一下这个风险提醒的一个作用,主要就是强化大家的一个提醒的意识。你不要讲了之后就不提醒了,过不了一周两周,他之前的代码习惯了,该怎么写还是怎么写?你会发现你之前的培训白讲了,你给他讲了之后了没有太大的改变。所以你要有提醒。


1.png


那实时提醒了我们可以在 git 的仓库当中做一个勾子事件,每一次它 push 代码的时候,我们可以把他的代码了给拿出来,拿出来之后提取他改动的行,提取改动出来的行了。然后我们来判断一下他有没有危险函数等一些问题。那如果有这些问题了,我们就给他反馈一下,就告诉他你哪个地方了可能会存在危险。


2.png


提醒这件事了有三点意义。第一个就是加强他的安全意识,让他知道这个安全事情有人在管。第二个就是从源头当中去阻挡安全。但这个钩子你不要说遇到这个危险函数了,就直接给打回去。你可以在这个 git 当中给它返回一下,返回一个提示信息,告诉它这个地方可能存在风险,让他去注意一下。比如说在命令执行这个地方你放了一个变量,那么你需要确保你的变量是可控的,是过滤了的给他这样一个提示作用。


第三个就是提升一下安全的反馈速度。那如果说你没有这样一个实时的提醒了,你每个两周去给他这个仓库全面扫描一次,那可能他代码都上线了对吧?


2、风险函数提醒


风险函数我简单列了几个函数,比如说这里了有这个代码注入的,有这个执行系统的命令的,有使用这个明文 FTP 下传文件的,


3.png


还有一些加密库以及一些正则库,那这边还有一些信息泄露的提醒。


4.png


你都可以放到你的这个安全风险提醒里面去。我觉得优先级了,你可以把这些高危的了给大家放进去。比如像 FTP 的,你可以看情况,你放不放都行。那像 pprof 了,我觉得你肯定得注意。那 PP info 里面还是有蛮重要的信息的以及 Golang 里面的,它直接使用了裸写了这个语句以及读取文件内容以及执行系统命令的这些危险函数了,你都给它去提醒一下。


3、钩子使用


那刚才说的这个勾子事件了怎么去使用了?那其实这个勾子的原理主要就是在这个 git 服务器当中了,存放一个勾子的这这个脚本,每次他 push 的时候了,服务器他会触发这样一个脚本。


5.png


触发脚本的时候,你就可以通过一些命令行了,你去获取到他有哪几个文件有改动,那改动了一些行号了,你都能拿到。完了这些数据之后了,你把这个检测的规则就刚才我提供的一些危险函数,以及你自己去拓展一些,把这个规则文件给它写好。


第二个,这个semgrep现在已经比较流行了,已经有很多这个团队在使用了,所以我觉得也是一个比较成熟的东西,你可以通过 sum group 加上这个规则去检测这个代码,然后把这些风险给返回回来。那么具体的实现地址了,我之前写了一篇文章,还是比较详细的,那大家可以去打开,然后按照操作了去实现就行了。


6.png


那这里我给大家展示一下这个钩子了,它会是一样一个什么样效果?比如说我在命令行当中,我输入了一个 git commit 然后提交这个代码,然后在推送的时候它就会触发。那么在推送的时候,我们可以看到他这边告诉我哪个文件。那么它的行号,当中有个 EXEC 执行了这个 git 当中的 A 这个变量,那么它有可能会导致一个命令注入,那一定要确保内容不是用户随意控制的。那么这样一个提示性的话语,那具体了你可以去把这个界面了给它优化一下也可以。

目录
相关文章
|
4月前
|
安全 API 网络安全
通付盾WAAP入选国家工业信息安全发展研究中心2023年数字化转型自主创新解决方案
为提升自主创新产品质量和技术创新能力,助力重点行业自主可控基础设施建设,加速重点行业数字化转型工作进程,促进重点行业产业链数字化升级,推动重点行业数字化、网络化、智能化发展。
|
存储 供应链 算法
看见云上新力量|专访快准车服CIO牛小虎:全面信息化支持,让车爱上快准
从“数字化汽配基础设施的创造者”到“让车爱上快准”,快准车服的探索与前行执著而坚定!基于数字化能力,面向3万亿的未来市场,我们拭目以待!——快准车服CIO 牛小虎
看见云上新力量|专访快准车服CIO牛小虎:全面信息化支持,让车爱上快准
|
数据采集 SQL 安全
CIS 2021网络安全创新大会《代码安全体系建设》实录(五)
大家好,非常高兴给大家分享《代码安全体系建设》议题,我是汤青松,目前在 SDL 方面做的比较多的。今天讲的这个话题其实和 SDL 有很大关系的。我这次分享这个话题的其实就是 SDL 当中的一部分。很多同学如果在甲方也会去做 SDL 当中的一些工作,所以我希望我这次分享的内容对大家有所帮助。
98 0
CIS 2021网络安全创新大会《代码安全体系建设》实录(五)
|
SQL 安全 网络协议
CIS 2021网络安全创新大会《代码安全体系建设》实录(二)
大家好,非常高兴给大家分享《代码安全体系建设》议题,我是汤青松,目前在 SDL 方面做的比较多的。今天讲的这个话题其实和 SDL 有很大关系的。我这次分享这个话题的其实就是 SDL 当中的一部分。很多同学如果在甲方也会去做 SDL 当中的一些工作,所以我希望我这次分享的内容对大家有所帮助。
150 0
CIS 2021网络安全创新大会《代码安全体系建设》实录(二)
|
SQL 安全 Java
CIS 2021网络安全创新大会《代码安全体系建设》实录(四)
大家好,非常高兴给大家分享《代码安全体系建设》议题,我是汤青松,目前在 SDL 方面做的比较多的。今天讲的这个话题其实和 SDL 有很大关系的。我这次分享这个话题的其实就是 SDL 当中的一部分。很多同学如果在甲方也会去做 SDL 当中的一些工作,所以我希望我这次分享的内容对大家有所帮助。
175 0
CIS 2021网络安全创新大会《代码安全体系建设》实录(四)
|
安全 测试技术 网络安全
CIS 2021网络安全创新大会《代码安全体系建设》实录(一)
大家好,非常高兴给大家分享《代码安全体系建设》议题,我是汤青松,目前在 SDL 方面做的比较多的。今天讲的这个话题其实和 SDL 有很大关系的。我这次分享这个话题的其实就是 SDL 当中的一部分。很多同学如果在甲方也会去做 SDL 当中的一些工作,所以我希望我这次分享的内容对大家有所帮助。
125 0
CIS 2021网络安全创新大会《代码安全体系建设》实录(一)
|
人工智能 算法 数据挖掘
服务学术共同体创新全链路,清华大学温江涛团队推出新一代科技创新评价和支撑平台「Phocus」
在计算机领域,有一个广为人知的故事:1973 年,在施乐公司帕克研究中心(The Xerox PARC),第一台个人电脑 Alto 诞生了,这台电脑首次使用了桌面比拟(Desktop metaphor) 和鼠标驱动的图形用户界面(GUI)技术。接下来的几十年,Alto 极大地影响了个人电脑的设计,包括苹果的 Macintosh。
191 0
服务学术共同体创新全链路,清华大学温江涛团队推出新一代科技创新评价和支撑平台「Phocus」
|
安全 区块链 数据安全/隐私保护
带你读《企业安全建设指南:金融行业安全架构与技术实践》之二:金融行业的信息安全
本书全面、系统地介绍企业信息安全的技术架构与实践,总结了作者在金融行业多年的信息安全实践经验,内容丰富,实践性强。第一部分“安全架构”主要内容:信息安全观、金融行业信息安全的特点、安全规划、内控合规管理、信息安全团队建设、安全培训规划、外包安全管理、安全考核、安全认证等。第二部分“安全技术实战”主要内容:互联网应用安全、移动应用安全、企业内网安全、数据安全、业务安全、邮件安全、活动目录安全、安全检测、安全运营、SOC、安全资产管理和矩阵式监控、信息安全趋势和安全从业者的未来等。