0%

Web安全体系建设

Web安全体系建设

SDL

  • 简介
    SDL(Security Development Lifecycle)即:安全开发生命周期。由微软最早提出,是一种专注于软件开发的安全保障流程。
  • 为什么要使用SDL?
    1. 提升Web应用的安全性
      • 减少Web应用的安全漏洞
    2. 降低安全漏洞修复成本
      • 美国国家标准与技术研究所(NIST)估计,如果项目在发布后再执行漏洞修复计划,其修复成本相当于在设计阶段执行修复的30倍

SDL安全开发流程

漏洞和事件处理

  1. 发现安全问题

    1. 安全需求分析
      • 项目初期接入,提前发现安全问题
      • 使用Web框架和语言的选型建议
      • 敏感信息的保存方案
      • 是否有上传功能
      • ……
    2. 安全扫描
      • 通过扫描器发现安全问题
        • 自动化
        • 周期性执行
    3. 安全测试
      • 发现安全问题的主要方式
        • 黑盒测试
        • 白盒测试
      • 通常以黑盒测试为主
    4. 入侵检测
      • 包含多种检测方式
        • 网络层的入侵检测
          对网络流量进行分析,检测入侵行为。
        • 主机层的入侵检测
          在主机上安装程序搜集主机上的文件、日志、进程等信息进行综合分析来检测入侵行为
    5. 日志分析
      • 常见模式
        • 可疑日志 + 人工分析
        • 可疑日志 + 扫描器
      • 很多企业开始把大数据应用到了安全防御领域
    6. 建立SRC(安全应急响应中心)
      • 通过安全爱好者发现安全问题
      • 企业和白帽子的双赢
    7. 与漏洞搜集平台合作
      • 成本更低
      • 略显被动
      • 在当前,两者结合是更普遍的方式。
    8. 其他渠道
      • 黑产卧底
      • 和国家执法部门合作
      • ……
  2. 漏洞处理

    • 防御
      1. 输入检查
        • 在服务端检查(防止绕过)
        • 数据合法性校验:类型、范围、长度
        • 尽可能使用“白名单”
      2. 输出检查
        • 在数据输出的点也要做一些特定的过滤和转义
      3. 针对性防御
        • 针对特定安全漏洞的利用方式,有特定的防御策略
      4. WAF(Web Application Firewall)
        • 拦截攻击(针对SQL注入、XSS、远程代码执行等漏洞进行的攻击)
        • 原理
          • 对每个Web请求进行规则检查,从而匹配可能的Web攻击并进行拦截
        • 优点
          • 对爆发的新漏洞可以及时地打一个虚拟补丁,为后面的修复争取时间
        • 缺点
          • WAF的规则需要专业的维护,可能会成为性能的瓶颈
        • 是否使用WAF需要根据业务场景进行综合的考量
    • 修复
      1. 漏洞知识库
        • 漏洞修复需要一个强大的漏洞知识库进行支撑,对各种漏洞的原理和防护方法都需要在知识库中体现,并根据应用的特点和场景进行定制。
        • 提供详细的漏洞说明和修复方案
        • 修复方案需要可落地执行
          • 结合公司的开发情况:框架、语言
          • 包含各种框架、语言的修复方案
      2. 漏洞修复周期
        • 漏洞修复需要有时间限制
        • 根据漏洞危害等级限定漏洞修复周期
          • 如严重漏洞需要在24小时内修复
      3. 漏洞复查
        • 漏洞修复后需要安全团队复查,保证修复是完整的,业务方和开发不可信
  3. 事件处理

    • 漏洞是一种客观存在,可能会被利用也可能不会造成任何危害。事件是已经发生了,并对公司造成了一定危害的事实。
    • 安全事件分类
      • 入侵事件
      • 攻击事件
      • 信息泄露事件
    • 安全事件分级
      • 高危
      • 中危
      • 低危
      • 事件的分级并不是一成不变的,可能会随着调查的深入以及事态的发展而升级或降级
    • 安全事件应急响应流程
      1. 事件确认
        • 由产品方、安全方确认安全事件的真实性
        • 必要时需要和运维、公关和法务等其他团队共同确认
      2. 事件汇报
        • 事件处理需要高层的支持才能获得足够的资源来处理
        • 根据事件的不同分级会通知到不同级别的人员
      3. 事件处理
        1. 成立安全应急小组
        2. 应急方案确定
        3. 应急方案执行
        4. 事件恢复
      4. 归档和复盘
        • 事件处理过程需要详细记录、归档
        • 对事件进行复盘

安全运营

  1. 概述
    • 安全是一个过程
      • 安全是一个动态变化的过程,需要持续的运营
      • 需要将端口扫描、漏洞扫描、代码白盒扫描等问题发现方式变成周期性的任务
      • 除了对技术和业务进行升级之外,还要引入新的对抗手段
      • 内部的安全流程持续不断地修正和改进才能符合产品的研发和运营以及应对黑产的攻击
    • 安全运营有哪些工作?
      • 发现和修复安全问题
        • 漏洞扫描、渗透测试、代码审计、……
      • 防御体系建设和快速响应攻击
        • 入侵检测系统、Web应用防火墙、防DDoS设备、……
  2. 对内工作
    70%以上的安全问题是由于内部原因引起的
    • 安全扫描(周期性)
      • 定期检测保障安全
    • 安全漏洞预警
      • 关注重大漏洞事件
      • 提前部署防御方案
      • 提前提供解决方案
    • 应急响应
    • 安全监控与入侵检测
      • 通过监控发现安全问题,及时响应和处理
  3. 对外工作
    • 建立外部沟通渠道
      • 提供统一对外沟通的邮件、IM工具
      • 提供安全相关的沟通群
      • 提供外部反馈问题的网站
    • 安全圈关系
      • 了解著名的安全公司和安全圈子
      • 积极参加安全会议
      • 积极融入安全圈,进行合作
    • 品牌建设
      • 参加合作会议
      • 举办安全会议
      • 打造安全产品
      • 成立安全实验室