1) 【一句话结论】
在基础设施安全运营中,漏洞扫描与修复需遵循“发现-评估-修复-验证”闭环,通过自动化工具发现、专业评估风险、协作修复并验证,确保系统安全。
2) 【原理/概念讲解】
老师讲解:
- 漏洞扫描:就像给系统做“体检”,通过工具(如Nessus、OpenVAS)模拟攻击,检查常见漏洞(如SQL注入、XSS、弱口令)。
- 风险评估:评估漏洞的严重性(CVSS评分)、影响范围(如是否影响核心业务),类比“医生诊断病情,判断是否需要紧急处理”。
- 修复:根据风险评估结果,制定修复方案(如补丁、配置调整),可能涉及开发、运维协作。
- 验证:修复后用工具或手动测试,确认漏洞已消除,确保修复有效。
3) 【对比与适用场景】
(静态扫描 vs 动态扫描)
| 类别 | 静态扫描 | 动态扫描 |
|---|
| 定义 | 不运行程序,分析源代码/二进制 | 运行程序,模拟正常/异常输入 |
| 特性 | 速度快,发现代码级漏洞(如硬编码密码) | 检测运行时漏洞(如SQL注入、缓冲区溢出) |
| 使用场景 | 代码审查、新功能上线前 | 生产环境或测试环境漏洞检测 |
| 注意点 | 可能漏掉运行时漏洞 | 耗时,可能影响系统性能 |
4) 【示例】
假设扫描工具发现一个SQL注入漏洞(如Web表单的输入参数未过滤)。
- 发现:扫描工具发送恶意请求(如
id=1' or '1'='1),返回错误信息(如数据库查询结果异常),确认漏洞。
- 评估:CVSS评分7.5(高),影响核心业务(用户数据查询),需紧急修复。
- 修复:开发人员修改代码,将原拼接SQL语句改为使用PreparedStatement,避免用户输入被解析为SQL代码。运维部署补丁。
- 验证:用工具再次扫描,或手动输入测试数据,确认漏洞已消除。
5) 【面试口播版答案】
(约80秒)
“我之前参与过一个Web服务SQL注入漏洞的修复。首先,通过自动化扫描工具(比如Nessus)发现了一个输入参数(用户ID字段)的SQL注入点。然后,我们用手动验证,构造恶意请求,确认漏洞存在。接下来,进行风险评估,根据CVSS评分(7.5分,属于高严重性),判断会影响用户数据查询,属于高风险。修复时,开发团队修改了代码,将原拼接SQL语句改为使用PreparedStatement,避免用户输入被解析为SQL代码。修复后,我们用扫描工具重新扫描,并手动测试,确认漏洞已修复,系统恢复正常。整个过程需要安全、开发和运维团队协作,确保漏洞从发现到验证的闭环。”
6) 【追问清单】
- 问:如何处理高风险漏洞的优先级?
答:根据CVSS评分和业务影响,制定修复优先级,高风险(如CVSS 7.5以上)优先处理,并通知相关团队。
- 问:修复后如何验证?
答:用自动化工具重新扫描,或手动构造测试用例,确认漏洞不再触发异常。
- 问:如果修复后漏洞复现,怎么办?
答:重新评估修复方案,可能需要调整代码逻辑,或增加输入验证规则,并重新测试。
- 问:是否考虑过漏洞的复现条件?
答:在发现漏洞时,记录复现步骤(如输入参数、请求方法),用于修复和验证。
7) 【常见坑/雷区】
- 夸大漏洞影响:比如将低风险漏洞描述为高风险,显得不专业。
- 修复后不验证:只修复不测试,可能导致漏洞未消除。
- 忽略协作:只自己处理,未通知开发或运维,修复无法落地。
- 漏洞描述不具体:只说“发现一个漏洞”,未说明类型、位置,显得不清晰。
- 忽略漏洞复现步骤:没有记录如何复现,导致修复后无法验证。