甲方安全建设初探
2023-3-2 21:18:5 Author: 渗透安全团队(查看原文) 阅读量:25 收藏

 近期想起自己还有一个公众号已经好久没有运营了,看到上一篇文章的时间还是2022年2月,那时还在和网安的几位兄弟一起学习,在学校里组建团队,一起交流探讨,转眼间已经各奔东西了。这一年来,从校园到互联网公司,身份的转变让我对于安全的理解和认知也有了很大的进步与成长,也正想对学到的一些东西进行总结和归纳,后续会继续更新我的公众号,会涉及漏洞挖掘、安全建设、蓝军攻防等方面,并不断提高文章质量,和师傅们交流分享一些工作学习上的心得。

    笔者现在在一家甲方互联网公司,在这里我接触到了很多之前在学校没有见闻的知识,关于安全建设和漏洞治理。笔者经验有限,对于一些知识的理解可能存在误区,希望师傅们可以及时指出。

01

甲方安全建设初探一-SDL基本框架

以我现在的理解,SDL(Security Development Lifecycle)简而言之是将安全嵌入到开发过程中去,与开发流程同步推进,将安全问题左移,有效化漏洞治理,建立流水线的日常安全任务,保证安全纵深覆盖。

具体分为了如下几个阶段:

①培训阶段:安全培训是整个SDL生命周期的起点,是安全建设的基石。对企业员工进行安全意识培训,可以让员工了解基本的安全知识,提高员工整体的安全意识,可以应对一些网络钓鱼攻击、员工操作失误导致企业数据泄露、安全硬编码等等问题。

②需求阶段:在需求阶段通常需要做的工作有确认安全需求、创建质量门槛、安全和隐私风险评估。

③设计阶段:确定设计需求、分析攻击面、威胁建模;这里很主要的一点是威胁建模,威胁建模是在需求设计阶段的一项识别和削减威胁的重要手段,微软提出了“STRIDE”的威胁建模方法,它可以将不同类型的威胁分类,简化整体安全交流。

企业做好威胁建模能够很好的识别体系化的结构缺陷,节约组织安全能本,落地DevSecOps文化,并满足合规需求。

④实施阶段:实施阶段是针对开发时可能存在的安全风险,使用批准的工具确定安全的版本,弃用不安全的函数避免安全隐患,并对代码进行静态分析。

⑤验证阶段:验证阶段包括动态安全测试、模糊测试和攻击面评审,动态安全测试补充了静态安全测试的不足,在测试阶段对程序的安全进行验证。

⑥发布阶段:制定安全响应计划,以便正在发生问题时能够及时找到对应的人员进行漏洞修复,最终的安全评审时在发布前仔细的检查对软件执行的所有安全活动,发布归档时对各种问题和文档进行存在,为紧急响应和产品升级提供帮助。

⑦响应阶段:执行安全应急响应计划。

02


甲方安全初探二-DevSecOps

我理解的DevSecOps和SDL的区别是,DevSecOps更加偏向于自动化去完成SDL流程,借助安全工具去减少安全团队的投入成本,在不影响效率的前提下提升软件系统安全性。

在理解DevSecOps前,我们先来了解DevOps

DevOps是DevSecOps 的前身,DevOps主张在软件开发生命周期的所有步骤实现自动化和监控,缩短开发周期,增加部署频率。DevOps的核心价值是快速交付价值,灵活响应变化,相应的,DevSecOps的价值是在不牺牲所需安全性的前提下,快速和规模地交付安全决策。

企业在推进DevSecOps之前,需要完善DevOps流程,才能更方便的落地DevSecOps。
DevSecOps 的目标是在不影响效率的前提下提升软件系统安全性,使两者能够相得益彰。DevSecOps相对比SDL等更强调自动化,所以相关安全动作通常由安全工具实现,同时安全动作不再只是安全团队执行。

DevSecOps主要分为10个阶段,分别是计划(Plan)、创建(Create)、验证(Verify)、预发布(Preprod)、发布(Release)、预防(Prevent)、检测(Detect)、  响应(Respond)、预测(Predict)、适应(Adapt),其中预防(Prevent)在之前的版本里也有叫做配置(Configure)。

①计划:计划阶段包含了SDL模型里培训、需求、设计等几个阶段,

②创建:创建阶段主要就是指编码阶段。

③验证:验证阶段其实就是测试阶段,主要以AST(自动化的应用安全测试)和 SCA(软件成分分析)为主。  应用安全测试主要分为DAST(动态应用安全测试)、SAST(静态应用安全测试)、IAST(交互式应用安全测试)。

DAST动态应用安全测试就是常见的黑盒扫描,在测试阶段接过测试流量对其进行黑盒扫描,也是过去最常用的一种应用测试方式,比如我们常见的 APPSCAN、AWVS等 Web 漏洞扫描器就是属于这种类型。

SAST静态应用安全测试是针对源代码的一种分析测试方式,也就是白盒扫描。常见的 Coverity、Fortify Static Code Analyzer、CodeQL 等自动化静态代码审计工具就属于这个类型。

IAST交互式应用安全测试,是一种灰盒测试方法,是将黑白盒进行结合,通过插装部署Agent,在测试部署环境时插入探针,在测试过程中获取请求、代码数据流、控制流等,然后进行综合的判断分析是否存在漏洞。工具分为扫描器端和agent端,Agent端用于收集web应用的运行信息,扫描器端用于处理插件产生的请求信息,并完成整个IAST扫描逻辑。

(图片为OpenRASP的IAST扫描架构图)

SCA软件成分分析主要是关注应用中引入使用的第三方组件的情况。组件漏洞所带来的影响是巨大的,目前企业内越来越多的应用程序由开源代码组成。为了能在漏洞爆出的第一时间对企业的资产进行快速的应急响应,企业需要提前对其资产进行软件成分分析,从而能够快速定位到漏洞组件所在的软件应用,以此消除第三方组件带来的安全风险。

④预发布:预发布阶段一般是测试阶段及正式发布阶段的中间阶段,在DevSecOps工具链中预发布阶段主要包含有混沌工程(Chaos Engineering)、模糊测试(Fuzzing)、集成测试三个安全动作。

⑤发布:针对发布阶段,在DevSecOps的流程中主要动作是软件签名,与预防阶段结合来看,主要是软件防篡改。

⑥预防:该阶段主要包含有签名验证、完整性检查和纵深防御。

⑦检测:从预防阶段,就已经从开发切换到运维阶段,而检测阶段则更符合传统安全中相关的安全监控动作,该阶段主要包含有RASP、UEBA、网络流量监控、 渗透测试几个安全动作。

RASP(应用运行时自我保护),RSAP将自身注入到应用程序中,与应用程序融为一体,实时监测、阻断攻击,使程序自身拥有自保护的能力。RASP的注入方式类似于某些IAST,但其更强调的是安全防护和阻断能力。

⑧响应:在DevSecOps的响应阶段,安全动作主要包含有安全编排、基于RASP/WAF的防护、以及混淆。基于RASP/WAF安全防护是指通过WAF或RASP的方式,针对 Web 攻击进行拦截阻断, 以实现避免由于Web 攻击导致的拖库等后果。

⑨预测:预测阶段主要涉及漏洞相关性分析与威胁情报。

⑩适应:适应阶段主要强调了安全技术债务、修改应急响应方案、安全防御方案等几个点。主要是基于DevSecOps实施的整个流程的情况,进行持续的适配改进和项目调整优化,对应到过去安全动作,可以理解为持续运营反馈调整的过程,包含对相关安全问题的持续跟踪、闭环,对DevSecOps过程中相关安全动作如策略的调整等。

    DevSecOps落地实施困难,需要开发团队、测试团队、安全团队和运营团队的融合协作,笔者也是刚刚接触学习,对里面一些环节的落地细节的认知还不够全面,想要做好甲方安全建设,需要安全团队具有丰富的实际经验以及其他部门的协同配合。


付费圈子

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示

关 注 有 礼

关注下方公众号回复“666”可以领取一套领取黑客成长秘籍

 还在等什么?赶紧点击下方名片关注学习吧!


群聊 | 技术交流群-群除我佬

干货|史上最全一句话木马

干货 | CS绕过vultr特征检测修改算法

实战 | 用中国人写的红队服务器搞一次内网穿透练习

实战 | 渗透某培训平台经历

实战 | 一次曲折的钓鱼溯源反制

免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247499124&idx=4&sn=9b25ec067c7f27a6de83572dd57a3834&chksm=c17600dbf60189cd933679c4a33c6f297c7f843f55f9995ad68d29b70902a076e2bc7c7de406#rd
如有侵权请联系:admin#unsafe.sh