企业安全之浅谈devsecops
2023-9-5 14:34:11 Author: www.freebuf.com(查看原文) 阅读量:7 收藏

前言

前面写了一篇关于SDL实践方面文章,但是目前越来越多的公司开始转向了devsecops体系的建设,看了一些关于这方面的文章,浅谈一下自己的理解。devsecops说白了就是devops+sec。在devops的开发流程下嵌入安全。

由于本人水平有限,文章中可能会出现一些错误,欢迎各位大佬指正,感激不尽。如果有什么好的想法也欢迎交流~~

开发模式的演变

在了解devsecops以前,有必要了解一下开发模式的演变过程,大致经历了三个阶段:瀑布开发,敏捷开发,devops。这三个阶段并无优劣之分,只是适应的场景不同。

瀑布开发

传统的开发模式,我们称之为瀑布开发。

瀑布模型,简而言之,就是等一个阶段所有工作完成之后,再进入下一个阶段。

这种模型适合条件比较理想化(用户需求非常明确、开发时间非常充足)的项目。大家按部就班,轮流执行自己的职责即可。

适用场景:用户需求非常明确、开发时间非常充足

1693894012_64f6c57c59d81d0bdeb39.png!small?1693894013452

敏捷开发

目前随着市场竞争的加剧,传递的开发模型已经不太适合。等你把全部的功能开发完成上线,别人早就已经占领了市场,因此为了适应目前的环境,提出了敏捷开发。敏捷开发就是为了适应目前的互联网时代快速上线的需求,把大需求变成小需求,把大的时间周期缩小为短的周期,尽快上线运行。

适用场景:项目开发周期短,要求尽快上线

1693894041_64f6c5992224d0b930887.png!small?1693894042263

devops

敏捷开发加快了版本更新的速度,但是它还存在着问题,那就是开发,qa,运维还是各干各的,成为了新的瓶颈。这时候devops就被提出了。

适用场景:对敏捷开发的进一步补充,通过对各种工具的使用,进一步加快开发部署过程

1693894070_64f6c5b69fb9aa3b7714e.png!small?1693894071306

简单地来说,就是更好的优化开发(DEV)、测试(QA)、运维(OPS)的流程,开发运维一体化,通过高度自动化工具与流程来使得软件构建、测试、发布更加快捷、频繁和可靠

devops打破了开发与运维之间的壁垒,促进开发和运维人员的沟通,增进彼此的理解。在DevOps的流程下,运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。而开发人员也会在运维的初期参与到系统部署中,并提供系统部署的优化建议。

目前经常说的CI/CD可以说就是把devops从理论变成现实的一种方案。开发人员和测试人员,运维人员使用CI/CD流水线确保以快速、安全和可靠的方式创建和发布软件。

下面的图可以比较形象的看出来他们的区别

1693894098_64f6c5d25dcc855e26fd8.png!small?1693894099474

devops的工具支持

devops既然讲究快速更新迭代,那么使用人工的方式就是行不通的。必须要借助自动化工具的帮助,下面是devops流程中经常会使用的工具。

代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion

构建工具:Ant、Gradle、maven

自动部署:Capistrano、CodeDeploy

持续集成(CI):Bamboo、Hudson、Jenkins

配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail

容器:Docker、LXC、第三方厂商如AWS

编排:Kubernetes、Core、Apache Mesos、DC/OS

服务注册与发现:Zookeeper、etcd、Consul

脚本语言:python、ruby、shell

日志管理:ELK、Logentries

系统监控:Datadog、Graphite、Icinga、Nagios

性能监控:AppDynamics、New Relic、Splunk

压力测试:JMeter、Blaze Meter、http://loader.io

预警:PagerDuty、pingdom、厂商自带如AWS SNS

HTTP加速器:Varnish

消息总线:ActiveMQ、SQS

应用服务器:Tomcat、JBoss

Web服务器:Apache、Nginx、IIS

数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库

项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

1693894123_64f6c5eb38f7d83c984df.png!small?1693894125182

devops带来新的安全风险

1)大规模使用容器技术带来的安全风险:镜像安全,k8s等平台安全,容器运行时安全,容器安全基线等

2)devops的微服务架构中存在大量的API接口,api接口的安全性如何防范也是需要思考的:api资产梳理,api漏洞检测

3)CI/CD平台的安全:如jenkins平台的安全

4)组件安全:为了快速交付使用了大量的第三方组件,这些组件的安全性也需要进行监控

上面这些


文章来源: https://www.freebuf.com/articles/es/377112.html
如有侵权请联系:admin#unsafe.sh