知识卡片

功能安全"防小偷"与架构安全"防强盗"的本质区别

结构图卡

内容

安全带来的复杂度可以拆成两类性质完全不同的问题。功能安全对应的是XSS攻击、CSRF攻击、SQL注入、密码破解这类利用系统实现漏洞潜入的手法,本质上是”防小偷”:黑客像小偷一样找系统或代码里不完善的缝隙钻进去,破坏或窃取。它和具体编码强相关、和架构本身关系不大,虽然现在很多开发框架已经内置了常见防护,能省掉大量重复的安全开发工作,但框架只能覆盖已知的常见漏洞类型,无法预知尚未出现的新问题,框架本身也可能有漏洞(如Apache Struts2多次爆出远程代码执行高危漏洞)——功能安全因此注定是一个只能靠”攻防对抗”逐步完善、永远无法在设计阶段一劳永逸解决的持续过程。架构安全对应的则是”防强盗”:强盗不是悄悄潜入,而是直接砸门炸墙搞破坏,对系统的冲击也大得多,互联网时代全球任何地方都可能发起这种攻击。传统应对手段是防火墙,通过划分网络区域、制定跨区域访问控制策略来隔离风险,在传统银行、企业内网场景应用广泛;但防火墙的性能瓶颈使它在互联网领域并不适用——面对海量并发和DDoS攻击(历史上已出现665Gbps级别的攻击带宽),靠堆防火墙硬扛成本极高(一台中高端防火墙约10万元、抗25GB流量,扛住这种攻击级别就需要近30台、近300万元投入,且大部分时间闲置无用),更关键的是DDoS真正打垮的是机房出口总带宽——带宽一旦被占满,用户的正常请求根本进不来,防火墙再强也保护不了”进不来”这件事。所以互联网系统的架构安全目前没有很好的自研设计手段,更多只能依赖运营商或云服务商的带宽储备与流量清洗能力,较少由业务系统自己实现。

结构图

flowchart TB
  A["安全带来的复杂度"]
  A --> B["功能安全=防小偷"]
  B --> B1["利用系统实现漏洞潜入<br/>XSS/CSRF/SQL注入/密码破解"]
  B1 --> B2["与具体编码相关,架构关系不大<br/>框架能防常见漏洞,防不了未知漏洞<br/>框架本身也可能有漏洞"]
  B2 --> B3["只能靠攻防对抗持续完善<br/>无法在设计阶段一劳永逸解决"]
  A --> C["架构安全=防强盗"]
  C --> C1["直接破坏系统,影响远大于窃取<br/>互联网时代全球任何地方可发起攻击"]
  C1 --> C2["传统手段:防火墙隔离网络分区<br/>银行/企业内网场景适用,性能有限"]
  C2 --> C3["互联网场景不适用:<br/>DDoS带宽可达数百Gbps,堆防火墙成本极高<br/>核心风险是出口带宽被打满→用户请求根本进不来"]
  C3 --> C4["只能依赖运营商/云服务商的<br/>带宽与流量清洗能力,业务系统自身难以解决"]

参考来源

- 位置:《从零开始学架构》第07讲《复杂度来源:低成本、安全、规模》"安全"(源文件:_epub-src/OEBPS/text00000.html) - 结论依据:原文明确"功能安全其实就是'防小偷'""架构安全就是'防强盗'",并分别说明功能安全"是一个'攻'与'防'的矛盾,只能在这种攻防大战中逐步完善,不可能在系统架构设计的时候一劳永逸地解决",架构安全"防火墙能够保证内部系统不受冲击,但用户也是进不来的……互联网系统的架构安全目前并没有太好的设计手段来实现,更多地是依靠运营商或者云服务商强大的带宽和流量清洗的能力",直接支撑本卡片结论与结构图划分。 - 原始内容:功能安全其实就是"防小偷"……架构安全就是"防强盗"……防火墙能够保证内部系统不受冲击,但用户也是进不来的……互联网系统的架构安全目前并没有太好的设计手段来实现,更多地是依靠运营商或者云服务商强大的带宽和流量清洗的能力,较少自己来设计和实现。