DevSecOps中,人员、流程和工具是三个缺一不可的关键要素。
人员方面,首先领导层一定要去重视,领导的作用是很大的,只有领导重视了,才会有相应的流程、规范,才会去招聘相应的人员、做相关的培训、采购工具。做安全一定是自上而下的。
其实我们的程序员的安全储备是不够的,对于安全开发、安全编码的培训是非常重要的。开发不是说功能实现了就可以了,一定要高质量。除了安全性,在其他方面也有代码质量的体现。
人员很优秀了还不够,流程也很重要,后面我们会为大家分享一些最佳实践的案例。
再就是工具,工具也很重要,有一个好的工具事半功倍。后面我也会给大家推一些业界最牛的工具,帮助大家去更好地实践。
我们本次讲座主要介绍的还是流程和工具,人员的话主要还是需要通过一些培训解决。
工具和流程都是指技术层面的。在技术层面,我认为目前最重要的三个目标和方向就是集成,自动化和敏捷。做好应用安全,做好DevSecOps,在技术层面最重要的就是这三点。
首先是集成。因为我本身是做开发出身的,我很清楚一个应用的诞生是非常不容易的,整个生命周期是非常复杂的一个过程。其中涉及到很多开发的工具链、测试的工具链。我们也称之为SDLC,工具链非常多,在这些工具链中,我们都应该将应用安全嵌入进去,做好集成这点很重要。
再就是自动化。尽量去提高效率,减少人为的工作量。通过无感知的方式去完成我们的测试,不需要投入太多的人力和时间。比如说通过一个命令脚本,在下班的时候开启一个自动化扫描任务,第二天一上班测试完成了,我们开始去分析结果就可以了。
我们的触发条件不只是特定的时间,也可以是比如说我们有一个新的变更、有一个新的版本要发布,就触发新一轮的测试,通过自动化的方式去测试。
最后一点是敏捷。我们提倡敏捷开发、敏捷测试,敏捷的含义不光是测试的效果,不光是指快速地测完,这只是一个方面。我们更多的是提倡能够把测试的结果非常敏捷、快速地提交给开发人员,开发人员能够很快地看到这个测试结果,而且通过这个报告分析结果,能够快速地修复。最根本的目的是把它修复掉,这是敏捷的价值。