漏洞与安全事件处理
安全问题就像定时炸弹——一旦通过 Web 漏洞拿到服务器后门,敏感信息就面临风险。这篇讲如何发现安全问题、如何处理漏洞(防御与修复),以及安全事件的应急响应流程。
安全问题 ≠ 安全漏洞
- 安全漏洞:仅指存在于程序中、可以被利用的代码或脚本。
- 安全问题:范围更大,除安全漏洞外,还包括一些非人为的因素,如地震、机房断电、硬件损坏等自然灾害。
应对安全问题的总思路:前期避免 → 中期发现 → 后期补救。
发现安全问题的渠道
| 渠道 | 说明 |
|---|---|
| 安全需求分析 | 项目初期就确认 Web 框架和语言选型、敏感信息保存方案、上传文件风险及其他常见漏洞,提前发现问题 |
| 安全扫描 | 通过扫描器发现问题,自动化、周期性实现 |
| 安全测试 | 黑盒/白盒等渗透方法检测,发现自动化工具扫不到的问题 |
| 入侵检测 | 分网络层和主机层入侵检测,上线后监控入侵行为 |
| 日志分析 | 上线后分析日志,常用方式有"日志 + 人工"、“可疑日志 + 扫描器” |
| 建立 SRC | 安全应急响应中心(Security Response Center),借助安全爱好者发现问题 |
| 与漏洞平台合作 | 借助漏洞平台的力量和影响力发现问题 |
| 其他渠道 | 如黑产卧底、与国家执法部门合作等 |
漏洞处理:防御
输入检查
- 对各类输入做检查:用户输入、文件系统输入、系统参数输入、环境变量输入。
- 在服务端检查(客户端校验可被绕过)。
- 数据合法性校验:类型、范围、长度。
- 尽可能使用白名单。
输出检查
在数据输出的点做特定的过滤和转义。例如 XSS——输出到 HTML 标签时进行 HTML 编码;防 SQL 盲注等同理。
针对性防御
针对特定漏洞的利用方式采取特定策略。例如把重要 Cookie 设置为 HttpOnly,这样 XSS 就获取不到该 Cookie。
WAF
**WAF(Web Application Firewall,Web 应用防火墙)**能够拦截攻击,如针对 SQL 注入、XSS 和远程代码执行等漏洞的攻击。
漏洞处理:修复
- 漏洞知识库:提供详细的漏洞说明和修复方案。
- 修复方案需可落地执行:结合公司的开发情况(框架、语言),包含各种框架/语言的修复方案。
- 漏洞修复周期:修复要有时间限制,根据漏洞危害等级限定周期。例如严重漏洞需在 24 小时内修复。
- 漏洞复查:修复后需要安全团队复查,业务和开发方的自述不可全信。
安全事件处理
事件分类
- 入侵事件
- 攻击事件
- 信息泄露事件
事件分级
每个公司都有自己的分级标准,一般分为:高危事件、中危事件、低危事件。
应急响应流程
事件确认 → 事件汇报 → 事件处理 → 归档和复盘最后更新于