天天看点

企业软件安全开发建设

  目前国内据我所知企业软件安全开发建设大致分为3类,一类走SDL路线,起源于微软,一类走DevSecOps,起源于Gartner 研究公司的分析师 David Cearley,“它是糅合了开发、安全及运营理念以创建解决方案的全新方法”。第三类无拘无束,走企业自己的路,SDL内容和DevSecOps内容都借鉴也都不走寻常路(基本还是原始管理方式加前两者的改进)。我这里介绍的参考了SDL和DevSevOps内容。

下图是DevSecOps的常见模型,

企业软件安全开发建设

​ 研究DevSecOps需要先理解DevOps是干啥的,DevOps(Development和Operations的组合词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠(引自维基百科)。说人话就是DevOps是让企业开发自己的软件更有产出,

企业软件安全开发建设
企业软件安全开发建设

​ 但是Sec也是就是安全部分仍然相对独立在项目流程外,DevSecOps就是解决安全融入项目质量提高的过程。为什么要这么搞也很好理解——省钱,就目前历史教科书上对王朝统治者搞了啥动作大部分的解释都可以收束为——维护王朝统治,企业搞一切动作都要有个收益问题,之前安全部门不能和群众们打成一片就会影响效率,降低收益。

企业软件安全开发建设

​ 这里经常提到的一个概念就是安全左移,什么是安全左移呢?结合下图对DevSecOps和SDL进行对比图示来介绍:

企业软件安全开发建设

​ 这里是完整的两个流程对比,从实践上讲SDL对发挥人的作用更对,DevSecOps对工具的作用更重视,但是两者都是把安全的关注点放到了项目的最初部分,也就是说传统厂商对我自己发布一个软件是不是安全如何确定?入场标准检测也就是对应市场入场标准,市场让我进去了,能卖了,能赚钱了,安全就到位了。市场审查查到我哪里不安全,达不到标准就打回来——查问题,各部门全家上阵改问题。时间和钱都得花很多。再之后,厂商学乖了,把入场标准搞一份,在出场的时候就搞安全审查,这样我自己企业内部沟通总比被有关部门查出来再改容易。安全就从进入市场标准左移到了企业内部出厂标准。出场标准之后,还是有问题——如上图场景二,自己内部安全审查反馈给研发和测试也花时间和银子啊——核心问题就被注意到了:代码质量不行啊,十行代码十五个洞,给企业内外安全测试人员当内鬼呢?所以安全还得左移——让研发把代码质量提上去,产出可信的产品提供给市场。这里给推荐任正非老板的一个企业内部信可以去看下。安全左移到开发之后通过继续的探索——有些问题不是我代码有问题,是架构的问题,设计的憨批操作导致了这种安全漏洞,这里给大家推荐妇科圣手TK的一个演讲"代码未写,漏洞已出"。左移就移到项目架构设计部分来解决。

​ 总结下,安全建设企业要搞,为啥要搞?赚钱不搞不行!为啥搞SDL和DevSecOps,通过搞SDL和DevSecOps能节省成本提高整体赚钱能力。商业就是要搞钱,花钱是为了赚更多钱!资本永不眠~

扯了挺多,下面介绍,甲方怎么搞企业软件安全建设的一些参考,主要涉及各流程的一些开源工具,道术法,SDL和DevSecOps更多算术一层面,具体搞起来还是看——法,具体做法。下面介绍的不必全搞,也没总结全,按实际需求进行采纳。希望对关注这个领域的师傅们有所帮助。

Plan

安全知识库搭建

文档借鉴:OWASP NIST CAPEC

Security-Portal(安全知识管理)

知识库产物:

安全威胁库

Cigital ARA

MS Treat Modeling

安全编码规范

Confluence

安全需求&安全设计库

Jira

供应商评估

VSAQ

安全需求

来源:法律法规 行业监管 公司内部要求 业界安全实践

方法:OWASP ASVS checklist

Create

标准化与加固

CIS Benchmark

CI自动集成工具

Jenkins

威胁建模

过程:

​ 1·识别资产

​ 2·访谈架构设计开发人员 了解应用程序架构 应用程序分解 绘制数据流图(信任边界划分 关键点)

​ 3· 威胁分析 风险评估

​ 4·制定缓解措施 威胁优先级排序

​ 工具:微软系列 Threat Modeling Tool Threat Dragon(OWASP) ThreatModeler(自动化 轻量)

​ 建模方法:STRIDE (仿冒、篡改、抵赖、信息泄露、拒绝服务、特权提升)

源代码安全扫描

​ IDE安全插件(IAST 交互式源码安全扫描)

​ Java Find Security Bugs

​ SAST源代码安全扫描 (静态)

​ Sonarqube 命令行 开发根据建议改 安全调优扫描规则

​ DAST 动态 黑盒安全测试(FUZZ)

​ Web ZAP (OWASP)

​ IBM APPScan

​ AWVS

​ Mantra (OWASP)

​ SCA开源组件安全扫描

​ Dependency-check(OWASP 依据NVD) Black-Duck-Hub

​ 容器安全扫描

​ clair(支持和镜像仓库集成 harbor) Nessus-for-Docker

​ 主机安全扫描&配置基线加固安全扫描

​ Tenable-Nessus

​ 专向扫描工具

​ BurpSuite Pro

​ SQLMap

​ Metasploit

​ Infection Monkey

​ 自动化渗透测试工具集

Verify

MAST 移动引用安全测试

MOBSF(Android ios)提供API接口

安全加固 (安全配置基线)

CIS Benchmarks 基线配置脚本化

漏洞跟踪管理

DefectDojo(OWASP) 支持API接口自动化集成

RASP 运行时应用自我保护

OpenRASP 百度 开源 识别运行时应用异常

Monitoring&Analytics

应用资产风险感知&漏洞聚合平台

Kibana 可视化资源管理 研发质量可视化

ThreadFix

代码质量管理平台

SonarQube

威胁监控

ELK 开源

logstash日志统一管理

Zeek【Bro】 suricata 流量管理

ET 开源规则 清洗

ES 库

Kibana 可视化演示

Preproduction

主机环境验证测试

Tennable Nessus

数据库安全扫描

APPDetective

Release

安全风险评估记录

Jira/Confluence

制品库

Jfrog/Nexus

漏洞修复计划

Jira

FW开通

ITSM tool

资产管理平台

us

数据库安全扫描

APPDetective

Release

安全风险评估记录

Jira/Confluence

制品库

Jfrog/Nexus

漏洞修复计划

Jira

FW开通

ITSM tool

资产管理平台

以上是内容基本是对概念做了简单映射到工具的总结,每一个工具落地是否对企业口味因人而异。

继续阅读