软考-系统架构设计师 信息安全的抗攻击技术详细讲解
个人博客:blogs.wurp.top
一、核心安全目标与攻击类型对应关系
所有抗攻击技术都围绕保障CIA三元组展开:
- 机密性 (Confidentiality) -> 对抗窃听、爬取等攻击。
- 完整性 (Integrity) -> 对抗篡改、病毒等攻击。
- 可用性 (Availability) -> 对抗拒绝服务(DoS/DDoS)等攻击。
此外,还需保障: - 认证性 (Authentication) -> 对抗身份伪造等攻击。
- 不可否认性 (Non-Repudiation) -> 对抗事后抵赖。
二、防御性技术架构与基础设施
这是架构师设计系统时首要考虑的全局性防御措施。
1. 防火墙 (Firewall) - 网络边界防御的核心
- 功能:根据预定义的安全规则,控制进出网络的流量,相当于一个“过滤网关”。
- 部署位置:网络边界(内网与外网之间)、不同安全级别的网络区域之间(如办公网与数据中心网)。
- 主要类型:
- 包过滤防火墙:工作在网络层和传输层,基于IP、端口、协议类型进行过滤。速度快但安全性较低。
- 状态检测防火墙:现代主流。能检测连接状态(如是否是已建立连接的返回包),比简单包过滤更智能、安全。
- 应用代理防火墙/下一代防火墙 (NGFW):工作在应用层,能理解应用层协议(如HTTP、FTP),可防御基于应用层的攻击。性能开销大但安全性最高。
2. WAF (Web Application Firewall) - 应用层防御核心
- 功能:专门针对Web应用的安全防护设备/软件,置于Web服务器之前。
- 防御范围:专门防御SQL注入、XSS、CSRF、文件包含等OWASP Top 10 Web攻击。
- 工作原理:基于规则库(特征码)和异常行为分析,对HTTP/HTTPS流量进行深度检测和清洗。
- 形态:可以是硬件设备、软件产品或云服务(云WAF)。
3. IPS/IDS (入侵防御/检测系统)
- IDS (入侵检测系统):监控网络或系统,发现攻击行为时产生报警。是一种“事后”监督机制。
- IPS (入侵防御系统):实时检测并主动阻断攻击流量。是一种“事中”拦截机制。
- 部署:IDS旁路监听,IPS在线部署。
4. Anti-DDoS 解决方案 - 可用性保障核心
- 目的:抵御洪水般的流量攻击,保障服务可用性。
- 架构:
- 本地防护设备:在企业网络入口部署Anti-DDoS设备,清洗流量。
- 云清洗服务:当前主流方案。将流量引流到云上的巨大清洗中心,过滤掉攻击流量,将正常流量回源到服务器。能抵御远超企业出口带宽的超大流量攻击。
5. VPN (虚拟专用网)
- 目的:在不可信的公共网络(如互联网)上建立一条加密的、安全的通信隧道。
- 应用场景:远程安全访问内网资源、连接不同地域的数据中心。
- 协议:IPSec VPN, SSL VPN(常用,无需安装客户端,通过浏览器即可接入)。
三、针对特定攻击的防御技术
1. 针对 SQL 注入 (SQL Injection)
- 根源:用户输入被拼接为SQL指令并执行。
- 防御方案:
- 首选:使用预编译(Prepared Statement):将SQL语句的结构和数据分离,用户输入永远只被当作参数处理,而非代码执行。这是最有效、最根本的解决方案。
- 最小权限原则:为数据库操作账户分配最小必要权限,禁止使用root/sa等高权限账户进行Web查询。
- 输入验证与过滤:对用户输入进行严格的长度、类型、格式检查。
- 使用ORM框架:间接使用预编译,避免手写SQL字符串拼接。
2. 针对 跨站脚本 (XSS)
- 根源:不可信的数据被当作HTML/JS代码执行。
- 防御方案:
- 输出转义 (Html Encode):在将用户输入输出到HTML页面时,对特殊字符(如
<, >, ", ', &
)进行转义(如<
转为<
)。 - 内容安全策略 (CSP):非常有效的防御手段。通过HTTP响应头
Content-Security-Policy
告诉浏览器只允许加载和执行来自指定来源的脚本,从根本上杜绝内联脚本和非法外链脚本的执行。 - 输入校验:对富文本输入,使用白名单机制进行严格的标签过滤(如使用Jsoup等库)。
- 输出转义 (Html Encode):在将用户输入输出到HTML页面时,对特殊字符(如
3. 针对 跨站请求伪造 (CSRF)
- 根源:浏览器会自动携带用户的认证信息(如Cookie)发起请求,攻击者诱使用户访问恶意页面,该页面会自动向目标网站发起伪造的请求。
- 防御方案:
- Anti-CSRF Token:最常用、最有效的方法。在表单或请求中加入一个随机的、不可预测的Token(存储在Session中)。服务器处理请求前验证Token的有效性。攻击者无法伪造此Token。
- 同源策略检查:检查HTTP请求头中的
Origin
或Referer
字段,判断请求是否来自同源域名。 - 设置Cookie属性:将关键Cookie设置为
SameSite=Strict
或Lax
,限制第三方网站发请求时携带Cookie。
4. 针对 拒绝服务 (DoS/DDoS)
- 防御方案:见上文 Anti-DDoS 解决方案。
- 扩容与负载均衡:通过增加服务器节点和负载均衡(如Nginx, F5),提高系统整体的吞吐能力和冗余性,抵抗小规模的流量攻击。
- 限流 (Rate Limiting):在应用层对API或服务的访问频率进行限制,防止资源被耗尽(如使用Redis实现接口限流)。
四、安全开发与架构设计原则
架构师需要在系统和应用设计的源头融入安全思想。
- 最小权限原则:任何用户、进程或系统只拥有完成其任务所必需的最小权限。
- 纵深防御 (Defense in Depth):不依赖任何单一的安全措施,而是构建多层次、互相冗余的防御体系。即使一层被攻破,还有其他层提供保护。
- 默认拒绝:除非明确允许,否则一律禁止。例如防火墙策略应先拒绝所有流量,再逐个开放需要的端口和服务。
- 安全 by Design:在系统设计的初始阶段就考虑安全需求,而不是事后补救。
- 零信任架构 (Zero Trust):“从不信任,始终验证”。不再区分内网和外网,对所有访问请求都进行严格的身份认证、授权和加密。
五、软考考点总结与应用
-
选择题:
- 直接考查各种防御技术的作用(如WAF防御什么?Prepared Statement解决什么问题?)。
- 考查防火墙、IPS、IDS的区别。
- 考查针对OWASP Top 10攻击的特定防御措施(如CSRF用Token防御)。
- 考查安全原则(如最小权限、纵深防御)。
-
案例分析题:
- 题目给出一个系统,描述其存在的安全漏洞或面临的威胁。
- 问题1:分析该系统存在哪些安全风险。(例如:SQL注入风险、DDoS风险、CSRF风险)。
- 问题2:请为你设计一套安全加固方案。(答题套路:1. 网络层:部署防火墙、WAF、Anti-DDoS设备/服务;2. 应用层:采用预编译防注入、Token防CSRF、转义防XSS;3. 数据层:加密敏感数据;4. 管理上:建立安全开发流程、定期进行安全审计和渗透测试)。
- 问题3:如何保证方案的有效性和可持续性?(答:引入SDL(安全开发生命周期)、建立安全运维团队、定期更新WAF规则库和系统补丁)。
-
论文题:
- 可能围绕“论信息系统安全架构的纵深防御体系”、“Web应用的安全防护设计与实践”、“论DDoS攻击的防护与系统高可用设计”等主题。
- 写作时,必须结合纵深防御的思想,从网络、主机、应用、数据等多个层面展开论述,并详细说明你如何运用上述具体的抗攻击技术(如WAF、预编译、Token等)来解决实际的安全问题。
总结
对于软考架构师,掌握抗攻击技术的关键在于:
- 建立体系化思维:从网络到应用,从技术到管理,构建多层次防御。
- 深入理解原理:不仅知道“怎么做”,更要理解“为什么这么做”,才能灵活应用。
- 紧跟最佳实践:掌握OWASP推荐的防御方案,如预编译防注入、CSP防XSS、Token防CSRF。
- 权衡与决策:作为架构师,需要在安全成本、性能开销、用户体验和业务需求之间做出最佳权衡。