从DevOps到DevSecOps,贯穿始终的安全栈

从DevOps到DevSecOps,贯穿始终的安全栈

作者:虫虫安全 2019-12-24 08:29:25

云计算 “二十一世纪最重要的啥?人才!”。葛大爷在《天下无贼》曾经这样呼喊。但是在时下虫虫要说最重要是数据安全。不管是自动化DevOps,大数据还是AI,安全都是第一要务和基础,甚至国家层面安全也都提到国家战略中。

 “二十一世纪最重要的啥?人才!”。葛大爷在《天下无贼》曾经这样呼喊。但是在时下虫虫要说最重要是数据安全。不管是自动化DevOps,大数据还是AI,安全都是第一要务和基础,甚至国家层面安全也都提到国家战略中。在开发即上线的DevOps一栈式模式下,对Devops做安全升级,在全栈每一阶段都进行安全检查和整改,建设成安全栈式DevSecOps势在必行。本文虫虫就就来给大家谈谈DevSecOps各阶段进行的安全实践活动和工具。

[[286538]]

DevSecOps基本上基础也采用DevOps实践,并在相应阶段增加安全性检查,并集成到的CI/CD管道中,扩展现有的devops工具和实践。

给Pipeline增加安全罩

安全无易事!当给DevOps集成安全功能时候,最容易变得不堪重负并迷失!了解当前的工作流程和工具是给管道集成安全检查和安全控制的关键。一般来说DevOps持续集成(CI),持续交付和连续部署(CD)管道分为6阶段:

编码:开发阶段,在代码进入源代码存储库之前。

构建:构建并执行系统的基本自动化测试。

测试:成功构建后,工件将部署到临时和测试环境中。

主机运行:此阶段涉及需要应用于基础架构的配置和版本更新。

运行:如果主机运行通过,则表明应用程序已准备好部署到生产环境中,可以灰度发布和升级。

监控:持续测量和监控生产活动。

本文中,我们基于以上6个阶段进行安全集成实践和探索。

开发阶段

DevOps实践强调编写良好的代码。代码运行良好,易于更改和理解。 DevSecOps通过添加用于编写良好和安全代码的安全检查来扩展这些实践。

传统的单元测试,静态代码分析,代码审查,预提交Hooks(git 客户端钩子)等实践可以扩展到该阶段的安全性检查。为了不影响开发人员的工作效率,可以在将代码提交到源代码存储库之前查找并修复常见的安全问题。

代码审查

代码审查是提搞代码安全性的重要手段。它可以增加开发人员的责任感和透明度,降低来自内部威胁的风险(比如有人代码中投毒、隐藏后门以及逻辑炸弹等),同时代码审查也有助于提高代码质量。除了代码外一些关键配置文件比如Puppet清单,Ansible playbooks,Dockerfiles,.gitlab-ci.yml等也需要纳入代码审查的范畴。

静态分析工具

市面上有大量的静态分析,包括开源和商业工具,可以将其集成到喜欢的IDE中,帮助我们检查代码的一致性,可维护性,清晰度,错误模式等等,还可以通过添加基本的规则(工具针对该语言)来识别基本安全漏洞。

工具列表

可以在此阶段使用的非详尽工具列表包括:

Gerrit,Phabricator,SpotBugs,PMD,CheckStyle,Find Security Bugs等等

项目构建

将代码提交到源存储库后(比如gitlab),将执行应用程序的构建和基本自动化测试,以确保代码始终可编译可构建。

同样,需要在此阶段添加检查,以检测严重和高危安全性问题。如果发现严重问题,则需要进行安全控制,设定构建为失败并发送警报通知。

依赖组件安全性分析

根据Sonatype的2018年软件供应链报告,在该年度开发人员总共下载使用过逾3000亿的开源组件,其中八分之一都包含已知的漏洞。而且今年内由于基础库被注入木马的安全事件也频繁发生,这虫虫之前的文章曾专门介绍过,大家可以搜索历史文章。

使用依赖组件安全性分析可以发现,依赖的开源组件(类库)是否包含已知的安全漏洞。运行SCA工具有助于识别具有已知安全漏洞的过时库和框架。

SAST(静态分析安全测试)

在此阶段提高安全性并向团队提供快速反馈的另一种有效方法是运行静态分析软件测试。这些工具可以找到审核者遗漏的隐藏错误,这类错误往往很难通过其他类型的测试找到。

单元测试

在重构代码或进行其他更改时,单元测试对于扑捉回归漏洞非常重要。对每一功能块添加单元安全测试很有必要。

工具列表

可以在该阶段使用的工具包括:众所周知的Sonarqube,OWASP依赖性检查,sourceclear,Retire.js和snyk等。

测试阶段

成功构建后,通过选择生成的工件并将其部署到到容器或者测试环境来触发测试阶段。这些测试包括功能测试,集成测试,性能测试,高级SAST,安全性和DAST。

这个阶段通常需要更多的时间和资源来执行,并且遵循失败快速方法优先原则,即更费劲和耗时的测试要尽可能后延,只有在其他测试都通过时才执行。

有针对性的动态扫描

一旦部署,应用程序就会暴露到各类可能攻击中,例如跨站点脚本,SQL注入或身份验证越过等等。而这些正是动态应用程序安全测试(DAST)发挥作用的地方。可以根据OWASP Top 10中总结的常见关高危漏洞来分析当前测试的应用程序。

 

 

模糊测试(Fuzzy)

模糊测试是一种黑盒测试,暴力可靠性测试技术,主要包括以自动方式使用非预期的数据测试结果以发现漏洞的测试方法。

自动攻击

作为自动化测试周期的一部分,我们可以进一步尝试模拟对运行应用程序的攻击,对系统执行基本的针对性自动渗透测试。

工具列表

该阶段可用的工具(开源和商业)包括:Acunetix Web Vulnerability Scanner,BDD Security,JBroFuzz,Boofuzz,OWASP ZAP,Arachi,IBM AppScan,Mittn,GAUNTLT,SecApp套件等等

主机运行(单机)

在主机运行阶段主要立足于保护运行时环境和保护其上运行的应用程序。多年来,业界提出了很多最佳安全实践,模式,指南和工具,以帮助加强基础架构并使其更具弹性。

降权、最低权限

PoLP声明每个模块(例如进程,用户或程序,取决于主题)必须只能访问其合法用途所必需的信息和资源。

配置自动化

配置管理工具可以轻松地反复大规模部署和创建安全基础架构。通过标准化配置,CM工具可以减少与补丁管理相关的问题,最大限度地降低黑客可以利用未修补的服务器的风险,并有助于减少不同环境之间的差异。值得一提的是,使用CM工具可以在中央存储库和版本控制下跟踪配置信息。

不可变基础架构

使用不可变基础架构,一旦在系统中创建工件,它就不会通过用户修改而改变,则不会有增量更改:创建新服务器实例并替换旧服务器实例,而不是一系列增量更新和更改。一。

安全标准

许多社区提供了基础架构加强指导和建议。这些标准包括Internet安全中心(CIS)基准测试和NIST配置清单等。

 

 

工具列表

该阶段可使用工具包括:Ansible,Puppet,(R)?ex,HashiCorp Terraform,Chef,Docker等等

运行阶段

如果上述所有阶段成功运行,则需要准备投入生产环境运行。该阶段目标主要是验证在配置或部署时间内是否存在任何错误,这些错误是否会降低系统的可靠性和弹性,是否可以在故障情况通过这些进行攻击。

该阶段使用自动化运行时检查和测试中发挥重要作用的地方,特别是发现安全违规和漏洞的安全问题,并突出了风险,如访问控制策略或防火墙规则的变化。

工具列表

这方面我们要特别提及一个Netflix开源的工具chaosmonkey,利用混沌学原理,在分布式系统上进行实验, 目的是建立对系统抵御生产环境中失控条件的能力以及信心。

 

 

监控阶段

系统投入生产后,安全性不会终止,而是真正开始。在DevSecOps中,自动安全检查和监视反馈循环迭代是生产操作的基本部分。

持续监控可以深入了解应用程序正在接收的流量类型,并帮助识别恶意用户的攻击模式。

运行时应用程序安全保护

RASP技术可实时识别和阻止应用程序安全威胁。通过向应用程序运行时环境添加检测和保护功能,RASP使应用程序能够通过自动重新配置来”自我保护”,无需人工干预,以响应某些条件。

安全监控

首先是自动收集和分析潜在安全威胁指标的过程,定义应触发警报的行为类型,并对警报采取严肃措施。比如IDS,主机进程监控,工作目录变更监控,流量监控等等。

漏洞悬赏

通过漏洞悬赏计划,借助第三方的力量,深入漏洞挖掘,充分了解现实的风险水平,系统弱点和漏洞。他们通常可以自由地采取行动,不会破坏系统或破坏或泄露敏感数据。

工具列表

市场上存在许多运行时防御工具:Prevoty,Alert Logic,HALO,EVIDENT等等。

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/293571.html<

(0)
管理的头像管理
上一篇2025-05-20 16:28
下一篇 2025-05-20 16:29

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注