28c3: The Science of Insecurity
28c3YouTube ↗
延伸阅读 1
字幕解读
Meredith Patterson 将漏洞视作输入协议和消息格式的结构性问题:过于复杂、难以判定的输入语言会让不同实现产生分歧,并在解析与处理交织时暴露可编程的“怪异机器”。她用计算理论与 Chomsky 语言层级解释风险,建议把输入视为形式语言、从语法生成识别器,在处理前完整验证,并尽量限制协议的计算能力,确保通信双方对消息解释一致。
自动字幕 · 引文按字幕原文展示,可点时间戳回看片段。
内容要点
- 许多漏洞来自协议与消息格式要求实现解决不可判定或无法可靠完成的识别问题。
- 输入识别应与业务处理分离;先确认完整输入属于定义明确的语言,再把解析树交给内部逻辑。
- 协议应采用尽可能简单的输入语言,并让所有端点对消息含义保持计算等价;宽松接受和歧义会带来安全风险。
视频章节 6
- 把安全问题作为可预测的系统性问题
- 漏洞与输入格式设计
- 可信计算与输入识别
- 停机问题和不可判定性
- Chomsky 语言层级
- 跨系统解析一致性与协议设计
具体观点与证据 4
输入识别必须先完整完成,再交给业务处理,避免半验证状态成为攻击者可编程的机器。
主张针对输入边界,不要求CPU或应用整体失去通用计算能力。
if you haven't recognized it don't goddamn process it通信双方必须对同一消息作一致解释,否则攻击者可利用解析差异。
视频用证书实现差异与IDS规避说明,不表示仅有语法一致便保证全部安全。
parse those messages in exactly the same way输入处理的计算能力应视为一种权限,设计协议时尽量限制它。
讲者建议规则或确定性上下文无关语言,并承认运行时间仍有独立问题。
treat input handling computational power as privilege and reduce that privilege把验证散落在处理逻辑中使输入语言隐含化,难以系统测试或调试。
建议从明确定义的语法生成识别器,再操作解析树。
you cannot efficiently and effectively test or debug when you're when you're intermingling补充字幕原文 2
讲者将大量漏洞归因于协议和消息格式设计造成的输入处理困难。
the vast majority of vulnerabilities come from protocol and message format designs接受输入前应以明确的语言定义和对应识别器做完整验证。
be definite about what you accept treat inputs as a language解读边界
这是 Meredith Patterson 从语言理论出发提出的安全设计主张,部分建议(如避免图灵完备输入协议)具有鲜明立场;协议性能与复杂度取舍在问答中仍有争议。字幕包含较多 ASR 错词和专名错误。