• 企业 SDLC 安全生命周期管理


    最近看了很多SDLC的东西,把其中比较重要关键的记录一下,用简洁的语言说清楚

    0x01 SDL 介绍

    SDL是微软提出的一种软件开发安全生命周期管理的一种最佳安全实践,全称为Security Development Lifecycle

    0x02 为什么要SDL

    目的是为了从安全漏洞产生的根源上解决应用安全问题,通过对软件开发流程的控制,保证产品的安全性。

    SDL它主要侧重于软件开发的安全保证过程,所谓现在很多人说的安全左移

    SDL主要是致力于在软件开发过程中,把安全的东西融入进去,尽量在之前就可以减少软件中漏洞的数量

    核心问题

    SDL的核心理念是将安全考虑集成在软件开发的每一个阶段:需求分析、设计、编码、测试和维护。

    从需求、设计到发布产品的每一个阶段每都增加了相应的安全活动,以减少软件中漏洞的数量并将安全缺陷降低到最小程度。

    SDL基于三个核心概率:培训教育、持续过程改善和责任。

    SDL的一个主要目标:安全和隐私

    SDL在开发过程的所有阶段进行安全和隐私保护

    SDL的核心理念是将安全考虑集成在软件开发的每一个阶段:需求分析、设计、编码、测试和维护。从需求、设计到发布产品的每一个阶段每都增加了相应的安全活动,以减少软件中漏洞的数量并将安全缺陷降低到最小程度
    
    • 1

    0x03 主要流程把控

    安全人员在工作中对于流程的把控是推动落实的关键

    0 安全培训

    产品、设计、研发、安全人员的安全意识培训。

    SDL核心之一就是安全培训,要在所以立项之前就做一些准备

    • 安全编码
    • 安全意识
    • 安全知识库(解漏洞原理、修复方案)
    • 安全SDK(让架构将一些漏洞修复方式用SDK实现,开发只需要导入包即可,比如安全的http方法防SSRF,让开发无感的调用即可)

    1 立项阶段(安全需求设计)

    所有的项目立项都需要通过系统来进行立项,立项评审会议中阐述安全观念,对立项需求可能存在的安全问题提出指导意见,确定安全需求

    制定开发规范(java、php等)

    2 设计阶段 PM–PRD

    开发设计评审会,根据产品设计讲解安全需求CHECKLIST,

    设计安全规范,根据需求文档和项目经理确定安全需求,涉及框架设计、业务逻辑

    3 开发阶段/实施

    开发人员开发工作主要为IDEA等,可以结合FindBugs及安全插件FindSecBugs让开发人员自己进行代码安全审计。

    我们可以根据SonarRQube进行代码审计,检测开发人员的代码是否符合JAVA开发规范和OWASP标准,通过会议方式和项目组开发人员沟通。

    进行安全编码培训,提前把控漏洞风险点,为后续渗透测试节省工作量。

    4 测试阶段

    静态代码扫描 SAST

    利用静态代码扫描工具对代码在编译之前进行扫描,并在静态代码层面上发现各种问题

    这里主要利用就是SAST(自研、Fortify、CHeckmarx、Flawfinder)
    
    静态代码扫描常见采用sonarQube集成,利用FindbugSecurity,精简规则,然后在持续构建过程中,进行静态代码bug,安全扫描。
    
    • 1
    • 2
    • 3

    DAST

    简单理解就是黑盒扫描器

    Web应用扫描:可以由测试人员扫描,安全人员分析报告,跟踪漏洞安全修复。

    人工渗透测试:项目上线前除了自动化工具扫描外,需要人工测试,深挖漏洞;季度渗透测试,如果项目多的话,最起码半年一次全项目的渗透测试。

    IAST

    这个属于一黑白灰结合版本,原理就插桩,进行污点追踪。

    有一张图特别好(https://www.aqniu.com/wp-content/uploads/2019/04/%E5%9B%BE-9.png)

    img

    漏洞修复培训:尽管前面做了大量的工作,安全漏洞出现不可避免,出现漏洞及时和开发人员沟通,面对面交流。

    5 运维监控

    syslog打到日志中心可视化,并定制对应的规则实现告警即可,我们所说的SIEM

    推动系统漏洞修复和系统安全基线检查:系统在整个防护体系的内部,兴许推动起来不那么容易,有时候推动漏洞修复不在于数量而在于精,内网不能出现的系统漏洞一定要及时修复,逐步推动,推动需要和运维讨论。

    • 安全漏洞管理:护漏洞管理系统
    • Git监控:做好代码监控工作,避免出现代码泄露GitHub监控。
    • SRC的运营:如果资金不足可以借助安全平台的SRC,hackerone这种 。
    • 急响应工作,制定入侵检测CHECKLIST:一不小心就会出现入侵,制定入侵检测CHECKLIST
    • 搭建态势感知平台
  • 相关阅读:
    springboot学生综合素质测评系统java
    数据分析基础-数据可视化07-用数据分析讲故事
    [3D检测系列-PV-RCNN] PV-RCNN论文详解、PV-RCNN代码复现、包含官网PV-RCNN预训练权重及报错问题
    枚举算法刷题笔记
    java基于SpringBoot+Vue+nodejs的学生综合成绩测评奖学金系统 Element
    基于or-tools的人员排班问题建模求解(JavaAPI)
    软件项目管理 ——1.3.敏捷项目管理概念
    决策树模型(3)决策树的生成与剪枝
    疯了!全网居然有人一次性把Java虚拟机HotSpot 给讲透彻了
    A-level成绩BBB能申英国哪些大学?
  • 原文地址:https://blog.csdn.net/god_zzZ/article/details/127874991