论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
安全
›
网络安全
›
DevSecOps:软件安全捍卫者
DevSecOps:软件安全捍卫者
魏晓东
金牌会员
|
2022-10-22 02:01:35
|
显示全部楼层
|
阅读模式
楼主
主题
765
|
帖子
765
|
积分
2295
顾名思义,DevSecOps是DevOps(链接)概念的延续,为应对安全漏洞日益严重的当下DevOps可能存在的安全问题而提出,旨在最大程度减少软件开发全生命周期(Software Development Life Cycle,SDLC)中的产品漏洞,以避免安全问题可能导致的经济与法律问题。
安全“左移”
在软件复杂度高速增加的大趋势下,避免安全漏洞成为了棘手的难题。即便在舍弃传统瀑布式线性开发、避免冗长测试报告过于拖进度而采用DevOps的情况下,开发团队与运维团队的界限已被打破,但安全问题往往仍处于被忽视的状态。
测试“左移”是广为人知的凭借更早执行测试任务提高产品质量、缩短SDLC的概念,DevSecOps可同样理解为安全“左移”。DevSecOps强调从软件构建起就注重安全性,并将安全检查部署至
CI/CD流水线(点击查看详情)
的每个自动化测试步骤中,比起传统在研发完成后才确认安全性更易实践,也更符合软件安全性要求。
Security as Code:安全即代码
对外行而言,实现安全“左移”只需在CI/CD流水线中设置一处安全需求限制即可,但此解决方式或因实施时间太久而被忽略,或将导致流水线整体陷入停滞、产品发布无限期推迟,DevOps最关键的团队凝聚力也将因此受损。
安全“左移”暂时没有放之四海而皆准的可供实践的解决方案,但以下观点和技术将能确保一定程度上的SDLC集成安全。
1. 指定安全专员
通过知会让开发团队对软件安全负责是远远不够的,而且掌握最新的安全漏洞、攻击媒介及恶意插件并非易事,让全员具备同样水平是既不必要也不现实的。指定一位安全专员全职负责此类事项,通过分享最佳实践来指导团队将有助于建立企业安全合作文化。
2. 让安全成为约束
将安全设定为审查会议的核查项,在增加新功能前先讨论其可能带来的安全风险及其解决方案,使安全成为每位开发人员的责任。可采用如STRIDE、OWASP等寻找潜在威胁并建立对抗的威胁建模策略来推动DevSecOps文化落地。
3. 添加自动化安全测试
自动化是DevOps的核心所在,可在编写自动化单元测试、集成测试、端到端测试时将安全视作必要条件。添加自动化安全测试可使安全自然而然地贯穿SDLC始终。
4. 使用专业工具
除了执行自行编写的测试用例,测试人员还可利用各种专为自动化设计的安全测试工具。静态应用程序安全测试(Static Application Security Testing,SAST)工具可通过静态代码分析检查源代码安全漏洞,如缓冲区溢出、SQL(Structured Query Language,结构化查询语言数据库)注入。由于SAST工具存在语言限制,测试人员可在集成开发环境(Integrated Development Environment,IDE)中按需运行测试,更快修复问题,同时也可设置特定警报驳回以避免误报。
动态应用程序安全测试(Dynamic Application Security Testing,DAST)工具独立于应用程序的代码细节,是外部的漏洞扫描程序,可通过黑盒测试检查跨站点脚本、命令及SQL注入。DAST工具需要部署至测试环境进行使用,因此往往被使用于CI/CD流水线后期。
5. 检查依赖项
几乎每个代码库都包含开源库和其他组件,处处都存在安全漏洞的可能。软件成分分析(Software Composition Analysis,SCA)工具可在CI/CD流水线早期运行自动化安全测试,保障开源组件和代码库的可见性,帮助企业管理组件安全、规避许可证相关风险。
SCA工具可以生成开源组件的全面列表,包括从应用程序构建阶段解析到项目的任何依赖项,输出开源组件的版本、来源、文件路径等基本信息,还可作为IDE插件即时提供反馈。
6. 设置“红队”
可参考战争游戏中的“红队”概念,将部分开发人员划分为“红队”,不参与被测系统的开发,跳出既有测试框架,在与生产环境尽可能类似的暂存环境中以非预期的方式使用软件,以便找出软件可能存在的弱点。
7. 对安全问题与错误一视同仁
DevSecOps需要每位成员都对安全性负责,将安全漏洞与Bug同等对待,有助于提升团队的专业知识,在更多项目中受益。
8. 保持关注
为降低随时可能发生的黑客攻击而毁掉先前所有努力的风险,可应用新型应用安全保护技术——运行时应用程序自我保护(Runtime Application Self Protection,RASP),使程序具备自我监控能力并识别有害输入及行为,以便运维人员立即响应和进行及时处理。
DevSecOps:如何应用
DevOps的应用意味着SDLC将频繁迭代,而将安全纳入CI/CD流水线则意味着应用程序安全的反馈将与软件状况反馈一样易于获取,可像改进其他功能一样改进安全设置,通过检查和防范安全漏洞让软件保持足够的安全性。
最后,DevSecOps与DevOps一样,需要团队文化的渲染与配合,其关键在于营造责任共担的安全合作文化,每位团队成员都应对安全的重要性有着明确认知及责任意识。
传统嵌入式软件的DevSecOps实践,往往由于其过分依赖硬件而难以深入,可使用SkyEye作为辅助工具进行推进。
SkyEye,中文全称天目全数字实时仿真软件(点击查看详情)
,是基于可视化建模的硬件行为级仿真平台,支持用户通过拖拽的方式对硬件进行行为级别的仿真和建模,使嵌入式软件可以不加修改地在PC机上运行。其内置的自动化测试脚本,可以在每个代码提交节点触发持续集成工作流进行安全性测试,是实践嵌入式DevSecOps的最佳拍档。
参考链接
https://www.jetbrains.com/teamcity/ci-cd-guide/what-is-devsecops/
原文链接:https://mp.weixin.qq.com/s/XeF-XpFCO1LsyZGu5Z0_pg
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
魏晓东
金牌会员
这个人很懒什么都没写!
楼主热帖
基础常用dos命令
云原生之旅 - 14)遵循 GitOps 实践的 ...
Unity技术手册 - Shader实现灵魂状态 ...
火山引擎 DataLeap 计算治理自动化解决 ...
Vulnhub靶机-Al-Web-1
.NET主流的几款重量级 ORM框架 ...
vuluhub_jangow-01-1.0.1
2022年总结-博客篇
数仓实践丨常量标量子查询做全连接导致 ...
30 个 IDEA 常用小技巧,应有尽有,让 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表