网络空间安全导论
第2讲 网络空间安全基本机制
1. 网络空间安全形势 (P2)
- 网络安全问题概览
- 病毒、恶意程序
- 漏洞和后门
- 隐私泄露
- 泄密、窃密
- 针对基础设施网络的攻陷
2. 系统性防御思想——网络空间安全机制 (P5-P6)
- 基本前提和出发点
- 网络是一个复杂的分布式系统
- 漏洞和攻击的存在不可避免
3. 各网络空间安全机制详解
- 沙箱 (P11-P21)
- 核心思想——隔离:通过隔离程序运行环境限制不安全操作 (P14)
- 思想来源:降低来源不明程序的风险 (P11)
- 安全目标:防范恶意程序破坏系统环境 (P13)
- 内部工作机理:受限操作系统环境与资源访问控制 (P15)
- 理解角度
- 软件错误隔离:隔离限制不可信模块的危害 (P16)
- 访问控制:面向程序的访问控制 (P17)
- 虚拟化:虚拟机作为沙箱的一种实例 (P18)
- 开源沙箱工具案例——Sandboxie:功能与原理 (P19-P20)
- 反沙箱技术:恶意软件逃逸沙箱的方法,如用户活动检查、系统检查、基于时间得逃逸 (P23-P24)
- 入侵容忍 (P28-P34)
- 思想出发点:在攻击可能存在的前提下保证系统功能 (P28)
- 安全目标:保证系统的机密性、完整性和可用性 (P30)
- 基本原理:通过预防、排除、容忍和处理防止系统失效 (P32)
- 安全能力和核心机制:阻止和预防攻击,错误容忍和处理 (P33)
- 错误容忍和处理:错误检测和恢复 (P34)
- 可信计算 (P38-P49)
- 思想出发点:实现计算机系统的可信性 (P38)
- 安全目标:提升系统安全性和可信性 (P41)
- 核心思想:从可信根出发构建信任链 (P43-P44)
- 关键技术概念:背书密钥、可信第三方等 (P45)
- 可信平台模块TPM:功能与应用场景,如存储密钥、身份识别、数据加密,但仍存风险 (P46-P49)
- 类免疫防御 (P51-P59)
- 思想出发点:借鉴生物学中的免疫机制 (P51)
- 安全目标:使计算机系统具有发现和消灭安全威胁的能力 (P54)
- 基本思想:“识别”+“清除”
- 实现思路:提取攻击特征、生成“抗体”、自适应识别和清除 (P56)
- 与生物免疫的类比:恶意代码检测的免疫机制 (P57)
- 移动目标防御 (P62-P68)
- 思想出发点:增加攻击难度,使攻击难以达成 (P62)
- 安全目标:增加攻击者的难度、使攻击难以达成,从而瓦解攻击(改变传统信息系统的静态性) (P64)
- 基本思想:“动态”+“异构” (P65)
- 五个层次:动态网络、平台、环境、软件、数据 (P66)
- 具体技术:IP地址跳变、端口跳变等 (P67)
- 本质:内置隐式的动态随机性 (P68)
- 拟态防御 (P70-P79)
- 思想出发点:确保有漏洞的系统难以被攻破 (P70)
- 安全目标:形成“测不准”效应,内生安全/广义鲁棒控制功能 (P75)
- 基本思想:“动态”+“异构”+“冗余” (P76-P77)
- 主动防御体系基础架构:随机化和多样化内核 (P78)
- 演进——多模态网络环境理论:解决单一网络体制发展困境 (P79-P87)
- 零信任网络 (P89-P102)
- 思想出发点:内网的安全问题与新型安全威胁 (P89-P90)
- 五个基本假设:网络环境的危险性与动态性 (P92)
- 核心思想:“从来不信任,始终在校验” (P93)
- 架构:NIST的零信任架构模型 (P94-P95)
- 控制平面:策略引擎、策略管理器、策略执行点 (P96)
- 7条基本原则:设计和部署零信任架构的指导原则 (P97-P98)
- 部署场景与案例分析:多分支机构企业、多云/云到云企业、跨企业协作 (P99-P102)
第3讲 数据加密
1. 密码学基础
- 密码的主要用途 (P12-14)
- 数据保密:数据加密(存储和传输)
- 认证技术:实体身份认证、数据源发认证
- 信息完整性保护:传输过程中没有被插入、篡改、重发
- 数字签名和抗抵赖:源发抗抵赖、交付抗抵赖
- 密码学发展史
- 古典密码 (P16-P21)
- 分类:代替密码、换位密码、组合密码
- 例:凯撒密码、猪圈密码、纵行换位密码、戚继光反切码
- 近代密码:对称密码 (P22-P29)
- 香农密码系统理论基础:将算法和密钥分开,算法公开,密钥保密
- ENIGMA机的工作原理与破解
- 现代密码:公钥密码 (P31)
- 对称密钥密码系统的缺陷:密钥必须经过安全的信道分配、无法用于数字签名、密钥管理复杂 O(n2)
- 公钥密码的概念与应用:使用两个密钥,对于密钥分配、数字签名、认证等有深远影响;基于数学函数而不是代替和换位
- 量子密码 (P32-P33)
- 古典密码 (P16-P21)
- 数据加密在数据生命周期中的作用 (P137)
- 数据采集、传输、存储、处理、交换、销毁
- 数据分级分类与数据标签
- 可信身份构建与数据确权
- 密码学发展与未来趋势 (P138-P140)
- 后量子密码体制
- 内生安全体系
- 自主可控密码体制开发设计
- 新型信息技术的数据加密体制
2. 对称密码
- 对称密码基本设计原则 (P35-P37)
- 扩散:重新排列消息中的每一个比特,使明文中的冗余度能够扩散到整个密文,将每一个比特明文的影响尽可能作用到较多的输出密文位中
- 扰乱:密文和密钥之间的统计特性关系尽可能复杂化。如果密钥的一位发生变化,密文的绝大多数位也发生变化
- 分组密码的迭代模式 (P38-P43)
- ECB模式:Electronic CodeBook mode(电子密码模式)
- CBC模式:Cipher Block Chaining mode(密码分组链接模式)
- CFB模式:Cipher FeedBack mode(密文反馈模式)
- OFB模式:Output FeedBack mode(输出反馈模式)
- CTR模式:CounTeR mode(计数器模式)
- DES算法原理 (P46-56):初始置换、一轮迭代、E-盒置换、S-盒代替、P-盒置换、子密钥生成
- 流密码与一次性密码本 (P58-P61)
3. 公钥密码
公钥密码的应用
- 加密/解密
- 数字签名:发送方用自己的私钥签署报文,接收方用对方的公钥验证对方的签名
- 密钥交换:双方协商会话密钥
对公钥密码算法的误解
× 公开密钥算法比对称密钥密码算法更安全
任何一种算法都依赖于密钥长度、破译密码的工作量,从抗分析角度,没有一方更优越
× 公开密钥算法使对称密钥成为过时的技术
公开密钥很慢,只能用在密钥管理和数字签名,对称密钥密码算法将长期存在
× 使用公开密钥加密,密钥分配非常简单
事实上的密钥分配既不简单,也不有效
公钥基础设施PKI (P79-P86)
- PKI:由CA,数字证书等组成的公钥与身份验证体系
- CA(Certificate Authority):可信赖的第三方权威机构,负责给网络实体颁发身份证明书,将用户所持有的公开密钥与其身份信息结合在一起
- PKI的核心组件:数字证书(注意:虽然证书只包含了公钥,但必须与对应私钥配合使用)
- 应用:HTTPS、SSL VPN、RPKI(路由源认证,可用于BGP源认证、BGP路径认证等)
- 安全机制:在线证书状态
- 信任模型:Web信任模型、交叉认证、桥CA (P90-98)
- 可能风险:证书颁发风险、维护风险 (P99-105)
- 解决方案:建立监督机制
4. 摘要与签名
- 散列函数 (P106-P115)
- 散列函数的性质:定长、快速、单向、消息不同摘要不同
- 安全性:HASH碰撞
- 哈希算法实例:SHA1、SHA256
- 散列函数的应用: 比特币
- 消息认证码 (P124-P125):输入包括任意长度的消息和一个发送者与接受者之间共享的密钥,它可以输出固定长度的数据,这个数据称为MAC值
- HMAC:使用散列函数来构造消息认证码
- 数字签名 (P126-P130)
- 数字签名的方法:直接对消息签名的方法、对消息的散列值签名的方法
- RSA数字签名方案:系统的初始化、产生签名和验证签名
- 数字签名的分类与应用(网站认证、比特币、代码签名)
5. 密码分析技术
- 攻击方法分类 (P131-P135):唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击、选择密钥攻击
- 密码算法的相对安全性:破解算法的代价与时间
第4讲 隐私保护
1. 数据隐私保护技术概览
- 面向数据发布的隐私保护技术:
- 基于限制发布的隐私保护:选择性发布数据 (P17)
- 基于数据失真的隐私保护:数据扰动技术 (P18)
- 基于数据加密的隐私保护:加密技术与分布式应用 (P19-P20)
- 面向数据挖掘的隐私保护技术:
- 关联规则挖掘与隐私保护 (P21-P24)
- 规则挖掘:寻找在同一事件中出现的不同项目的相关性
- 两类方法影响规则挖掘:变换(修改支持敏感规则的数据)、隐藏(不修改数据,而是隐藏生成敏感规则的频繁项集)
- 分类和聚类挖掘中的隐私保护 (P25)
- 数据挖掘的过程中,建立准确的、无隐私泄露的分类模型
- 保护敏感的聚类结果信息
- 关联规则挖掘与隐私保护 (P21-P24)
2. 匿名化技术
- 匿名化隐私保护模型:发布数据的隐私保护 (P27)
- 数据表中的概念
- 标识符 (Identifiers): 唯一标识个体身份的属性或者属性的集合
- 准标识符 (Quasi-Identifiers, QID): 与其他数据表进行链接以标识个体身份的属性或属性组合
- 敏感属性 (Sensitive Attributes, SA): 发布时需要保密的属性
- 链接攻击: 攻击者通过链接不同数据集识别个体 (P31-32)
- 传统匿名化局限:仅隐藏姓名和地址不足以防止链接攻击,需隐藏用户身份和数据的对应关系
- 匿名化隐私保护模型
- k-anonymity 模型: 将k个记录放入一个等价类中,要求任意一条记录与其他至少k-1条记录相似而不可区分,降低识别度但可能遭受同质性攻击和背景知识攻击 (P34-37)
- l-diversity 模型: 每个等价类的敏感属性至少包含 l 种不同的值,增加隐私保护但可能存在分布差异风险 (P38-39)
- t-closeness 模型: 要求等价类中敏感属性分布与全局分布差异不超过阈值 t,提高隐私保护 (P41)
- 上述的几个匿名原则并不能够完全保护隐私不被泄露,且造成较大的信息损失
- 数据匿名化方法
- 泛化:准标识符属性用更抽象、上义的值代替精确值 (P43-P44)
- 抑制:数据删除或隐藏 (P48)
- 聚类、微聚集、分解、置换等方法 (P43)
3. 差分隐私(DP)
- 差分隐私基础:定义、思想、实现方式 (P49-P59)
- 为抵抗差分攻击,差分隐私要求保证任意一个个体在数据集中或者不在数据集中时,对最终发布的查询结果几乎没有影响
- 概念介绍:隐私保护机制与邻近数据集 (P53)
- 差分隐私定义:抵抗差分攻击 (P54)
- 差分隐私实现:可以通过在查询函数的返回值中加入噪声来实现
- 全局敏感度和局部敏感度 (P57-59)
- 数值型差分隐私 (P62-P65)
- 拉普拉斯机制:查询结果中添加随机的满足拉普拉斯分布的噪声
- 非数值型差分隐私 (P66-P68)
- 指数机制:定义与应用
4. 同态加密
- 同态加密思想:无需解密即可计算 (P73-P74)
- 同态加密算法流程 4 个组成部分 (P76)
- 同态加密的发展与应用:
- 半同态加密:仅支持加法同态(或乘法同态)的加密体制 (P83)
- 浅同态加密:同时满足加同态和乘同态性质,只能进行有限次的加和乘运算
- 全同态加密:同时满足加同态和乘同态性质,可以进行任意多次加和乘运算 (P90-P92)
- 加密算法功能更强大
- 具有较高的计算复杂度,加密算法设计更复杂
- 整体性能远不及半同态加密算法
5. 安全多方计算 (MPC)
- 概念:相互不信任的多方参与者如何在保护己方数据的前提下进行合作(百万富翁问题)
- 特征:输入独立性、计算正确性、去中心化性 (P98)
- 威胁模型:半诚实模型、诚实模型、恶意模型 (P99)
- 计算模型:基于“可信第三方”的计算模型、交互计算模型、外包计算模型 (P100-P101)
- 基本密码协议:茫然传输协议、混淆电路协议、秘密共享协议等 (P102)
6. 联邦学习
- 基础:数据局限性与数据孤岛问题 (P112-113)
- 定义:分布式机器学习方法。在每轮迭代中,联邦学习允许多个客户端节点独立地根据本地数据更新模型参数,随后将本地模型更新通过加密方式发送到中央服务器。中央服务器使用聚合算法将这些更新用来改进全局模型,然后再将改进后的模型发送回各个客户端。
- 构造方法:模型训练与参数聚合 (P112-P114)
- 分类
- 横向联邦学习:样本重叠少,特征重叠多 (P115)
- 纵向联邦学习:样本重叠多,特征重叠少 (P116-P117)
- 联邦迁移学习:样本和特征重叠均较少 (P118)
第5讲 系统硬件安全
1. 硬件攻击技术
- 漏洞攻击 (P14-P17)
- 定义:利用硬件设计中存在的缺陷
- 常见漏洞:硬件漏洞、指令集漏洞、浮点除(FDIV)的实现漏洞、性能优化缺陷(如Meltdown和Spectre)
- 硬件木马 (P18-P23)
- 定义:故意植入的恶意模块
- 分类:基于插入阶段、抽象级别、激活机制、影响和位置分裂
- 区分
- 电路故障:是指在电路的生产加工过程中由于工艺或者流程不完美造成的电路缺陷
- 硬件木马:是指由人为蓄意加入的指定功能之外的恶意电路模块。电路故障通常能够被检测到而硬件木马的检测比较困难
- 软件木马:是一种带有恶意代码的软件,与硬件木马攻击目标相似,软件木马通常可以在应用领域内解决,而硬件木马一旦植入就很难移除
- 故障注入攻击 (P24-P27)
- 硬件故障:是常见硬件问题,攻击者利用合适的硬件故障就能窃取敏感信息、实施硬件攻击
- 故障注入:通过改变系统工作环境引入故障
- 光故障注入:利用光电效应
- 电磁故障注入:针对CMOS芯片的电磁抗扰度
- 侧信道攻击 (P39-60)
- 定义 (P39-P41): 基于从密码系统的物理实现中获取的信息,例如时间信息、功率消耗、缓存使用等,设备成本低、攻击效果显著
- 物理侧信道 (P42): 分析硬件设备在执行过程中的物理现象
- 时间侧信道 (P43-P44): 利用执行时间差异推断信息,举例网站登录的时间侧信道攻击。
- 功耗侧信道 (P45-P47): 通过分析CPU功耗特征来推测执行信息,包括SPA、DPA和相关功耗分析。
- 电磁侧信道 (P48-P49): 利用处理器电磁辐射进行分析,介绍电磁分析攻击方法。
- 微架构侧信道 (P50-P51): 针对处理器优化技术,如Meltdown和Spectre攻击,介绍微架构状态变化的利用。
- 缓存侧信道 (P52-P56): 利用多核CPU的cache共享特性以及cache命中和失效对应响应时间的差别,攻击者可以通过访问时间的差异,推测cache中的信息,从而获得隐私数据,
- 包括Flush-Flush、Prime-Probe、Flush-Reload和Evict-Reload等攻击方法 (P60)
- 缓存侧信道 (P52-P56): 利用多核CPU的cache共享特性以及cache命中和失效对应响应时间的差别,攻击者可以通过访问时间的差异,推测cache中的信息,从而获得隐私数据,
2. 硬件防护技术
- 木马检测技术 (P62-P66)
- 分类:破坏性与非破坏性检测方法
- 逻辑测试与侧信道分析 (P66)
- 隔离技术 (P67-P75):限制用户访问非授权的计算资源
- 存储器隔离:内存保护技术
- EPT硬件虚拟化技术:虚拟地址转换
- ARM TrustZone与Intel SGX:安全计算环境
- 密码技术 (P76-P81)
- 对称加密与非对称加密
- 物理不可克隆函数(PUF):密钥生成与身份认证
- 侧信道防护 (P82-P84)
- 旁路信息隐藏:物理屏蔽与增加噪声
- 掩码技术:移除输入数据与旁路信道相关性
- 模块划分及物理安全:操作区隔离与基础设施分离
3. 典型漏洞分析
- MOLES (P72-P75):利用木马通过侧信道泄漏芯片内部信息(如密钥),再利用差分能量分析技术提取密钥
- Meltdown (P76-P81):利用乱序执行机制,攻击者可以在任意地址读取数据,映射数据到缓存页,在攻击者Cache提取数据
- Spectre (P82-P87)
- 与Meltdown类似,Spectre的原理是,当CPU发现分支预测错误时会丢弃分支执行的结果,恢复CPU的状态,但是不会恢复CPU Cache的状态,利用这一点可以突破进程间的访问限制,从而获取其他进程的数据
- VoltJockey (P88-P93)
- 动态电源管理技术(DVFS)的漏洞
- 攻击过程:电压故障注入,差分故障分析技术提取密钥
第6讲 操作系统安全
1. 基础攻击方案
- 操作系统漏洞原因: 操作系统的复杂性和性能优先设计导致安全漏洞 (P6-P9)
- 系统攻击前提和目标: 攻击者通过正常I/O与操作系统交互,目标包括进程崩溃、恶意函数调用和权限提升 (P9-P12)
- 操作系统内存管理基础:
- 进程虚拟地址空间的分布和管理:用户空间与内核空间的隔离 (P14)
- 用户区内存包含的六个重要区域:文本段、数据段、BSS段、堆区、内存映射段和栈区 (P15)
- 内存权限管理:包括不同区域的存储内容、权限、增长方向和分配时间 (P16)
- 栈区攻击方案:
- 栈的作用:保存函数调用状态信息 (P19)
- 函数调用过程中的寄存器变化:包括ESP、EBP、EAX和EIP (P20-P23)
- 正常的函数调用历程:参数压栈、EIP和EBP寄存器值压栈、局部变量压栈 (P22-P25)
- 栈区溢出攻击的动机:攻击者通过修改栈帧中的返回地址来劫持进程控制流 (P30)
- 简单的栈区溢出示例:包括返回至溢出数据和返回至库函数的攻击方法 (P31-P35)
- 堆区攻击方案:
- 堆管理器的作用和堆区内存的动态分配 (P39-P40)
- 堆管理器的元数据结构 malloc_chunk 和空闲堆块的组织方式 (P42-P43)
- 堆区溢出攻击:攻击者越界访问并篡改堆管理数据结构,实现恶意内存读写的攻击 (P44-P50)
- 直接覆盖malloc_chunk首部为无意义内容,在堆管理器处理管理元数据时将造成崩溃
- 构造堆块重叠:同一堆区逻辑地址被堆管理器多次分配,攻击者可以通过写入一个堆块,实现对另一堆块内容的写入;同理,读出被覆盖堆块当中的数据
- 其他堆区攻击:Use-After-Free、Double-Free、Heap Over-read(Heartbleed Attack)和Heap Spray (P51-P54)
基础防御方案
- 内存防御技术:
- W^X/NX/DEP:防止在可写的内存页上执行代码 (P56)
- ASLR:通过随机化内存布局来防止攻击者定位攻击目标 (P57-P59)
- Stack Canary:在栈帧中插入金丝雀值来检测栈溢出 (P60)
- SMAP, SMEP:内存隔离技术,防止内核空间的非法访问或执行 (P61)
- SMAP/SMEP 和 W^X 均需要处理器硬件的支持
高级控制流劫持技术
- 面向返回地址编程(ROP):
- ROP的概念:利用程序代码段的合法指令重组恶意程序 (P71-P72)
- ROP的实现方法:Gadget的利用,e.g.系统调用的构造 (P73-P79)
- ROP的优势:可以绕过NX和ASLR防御机制 (P80)
- 全局偏置表劫持(GOT Hijacking):
- GOT表的作用:程序链接表(PLT)和GOT的交互 (P83-P84)
- 为了使进程可以找到内存中的动态链接库,需要维护位于数据段的全局偏移表(Global Offset Table,GOT)和位于代码段的程序连接表(Procedure Linkage Table,PLT)
- 程序使用CALL指令调用共享库函数;其调用地址为PLT表地址,而后由PLT表跳转索引GOT表,GOT表项指向内存映射段,也就是位于动态链接库的库函数
- GOT Hijacking攻击的原理:恶意篡改GOT表项 (P86)
- GOT Hijacking的优势:绕过NX和ASLR防御机制 (P87)
- GOT表的作用:程序链接表(PLT)和GOT的交互 (P83-P84)
- 虚假vtable劫持:
- 文件系统角度的安全威胁:虚假vtable劫持攻击的原理 (P91-P92)
- vtable字段的作用:篡改文件管理数据结构中的vtable字段,把vtable指向攻击者控制的内存,并在其中布置函数指针 (P92-P93)
- 2种具体实现:
- 直接改写vtable指向的函数指针,可通过构造堆块覆盖完成
- 覆盖vtable字段,使其指向攻击者控制的内存,然后在其中布置函数指针
高级系统保护方案
- 控制流完整性保护(CFI):
- CFI的概念:通过控制流图限制程序的控制流转移 (P95-P97)
- CFI的实现:包括原始CFI和改进的CFI方案 (P98)
- CFI的改进:如CCFIR,降低开销的分类处理 (P98)
- 指针完整性保护(CPI):
- CPI的提出动机:解决CFI的高开销问题 (P101)
- CPI的核心思想:控制和约束指针的指向位置 (P101)
- 信息流控制(IFC):
- IFC的概念:操作系统访问权限控制方案 (P102-P103)
- IFC的三要素:约束、权限、属性 (P104)
- IFC的配置复杂性和实际应用问题 (P105-P106)
- I/O子系统保护:
- I/O子系统的作用:网络协议栈和外设I/O交互 (P108)
- 外设I/O系统的攻击和保护方案:包括USB、蓝牙和NFC (P109-P110)
- 网络I/O的攻击与保护方案:TCP/IP协议栈的安全性 (P111)
第7讲 协议栈安全
1. TCP/IP协议工作原理
- 协议栈中消息的纵向传递: 遵循分层模型,每一层完成特定的功能,如寻址、路由和校验等 (P10)
- 协议栈中消息的横向传递: 在局域网中Client访问Server时,数据传递的每一步都可能产生安全问题 (P11-P16)
2. 链路层安全
- 链路层基本功能: 提供透明和可靠的数据传送服务,包括将数据组合成帧、帧在物理信道上的传输控制和数据链路通路管理 (P18)
- ARP欺骗与污染: 攻击技术允许攻击者成为中间人,获取或篡改数据包,同时影响受害主机的正常通信 (P19-P30)
- 防御ARP欺骗的策略: (P31)
- 静态ARP绑定:手动配置将IP地址和MAC地址绑定在一起
- ARP监控:实时监控ARP表的变化
- 虚拟局域网划分:将网络分成多个虚拟的子网,不同的子网之间通过路由器连接,将攻击者与被攻击设备隔离开来
- 网络监听和嗅探与棱镜计划 (P32-P34)
- 洋葱网络和洋葱路由:只有入口节点知道用户真实IP地址,只有出口节点知道用户的目的地和传输内容 (P35-P38)
3. 网络层安全
- 网络层功能:向传输层提供最基本的端到端的数据传送服务 (P40)
- 安全风险
- 源地址假冒攻击: 攻击者通过伪造IP地址进行攻击,如TCP连接劫持和DNS污染攻击 (P41-P45)
- IP分片攻击: 利用IP分组分片和重组机制的攻击方式,可导致拒绝服务攻击、污染攻击和安全策略逃逸 (P46-P69)
- 避免IP分片:路径MTU发现机制,用于确定两台IP主机间的路径MTU
- 安全防御
- IPSec协议: 一种保护IP协议网络传输的框架,提供认证(AH)和加密(ESP)服务,增强数据传输的安全性 (P71-P77)
- 两种传输模式:
- 传输模式:主要用于主机和主机之间,端到端通信的数据保护
封装方式;不改变原有的IP包头,在原数据包头后面插入IPSec包头,只封装数据部分 - 隧道模式:主要用于私网与私网之间,通过公网进行通信,建立安全VPN通道;增加新的IP(外网IP)头,其后是IPSec包头,之后再将原来的整个数据包封装
- 传输模式:主要用于主机和主机之间,端到端通信的数据保护
- 两种传输模式:
- 网络入侵检测系统(IDS):可以监控网络数据传输(NIDS),或者主机系统行为(HIDS),检查是否有可疑活动或者违反预定义的安全策略 (P78-P82)
- 基于特征匹配的IDS
- 基于异常检测的IDS
- IPSec协议: 一种保护IP协议网络传输的框架,提供认证(AH)和加密(ESP)服务,增强数据传输的安全性 (P71-P77)
4. 传输层安全
- 传输层功能:主要负责提供不同主机应用程序进程之间的端到端的服务 (P84)
- 拒绝服务攻击(DoS): 通过消耗资源使服务不可用,包括带宽攻击和连通性攻击 (P85-P88)
- SYN Flooding:是针对TCP协议主要的DoS攻击方式之一,通过发送大量伪造的TCP连接请求,使被攻击方资源耗尽,CPU满负荷或内存不足,一般发生在TCP协议中的三次握手阶段
- TCP劫持攻击: 高级攻击方式,攻击者注入伪造的TCP报文,破坏TCP连接 (P89-P93)
- TLS协议: 传输层安全性协议,提供加密、身份验证和完整性保护的安全性协议,广泛应用于Web应用程序和服务器间通信 (P94-P98)
5. 典型案例分析
- 从协议栈层间交互视角剖析安全问题 (P100)
- 协议层间交互信息泄露: e.g. 无线帧长侧信道 (P101-P109)
- 协议层间交互二义性 (P110-P113)
- 协议层间交互语义缺失漏洞 (P114-P116)
- 协议层间交互身份欺骗问题 e.g. NAT会话劫持(攻击者通过伪造TCP RST报文欺骗NAT路由器,操控TCP连接)(P117-P123)
6. 网络安全共性分析
- 网络攻击的 2 个共性特征: (P125)
- 攻击者可以进行身份欺骗,伪装成网络通信的一端
- 攻击者可以进行推理猜测,构造可被通信对端接受的数据报文
- 协议栈 2 大设计缺陷: (P126-P128)
- 网络地址缺乏足够的真实性验证,可以被恶意伪造
- 网络系统在实现和部署过程中,随机化程度不高,致使网络的状态信息可被恶意攻击者预测推理
- 协议栈安全的 2 大基本防御原理: (P129)
- 基于真实源地址的网络安全防御
- 增强协议栈随机化属性
第8讲 互联网路由安全
1. 层次化路由体系结构
- 路由的定义和作用: 在网络层中,负责将数据包从源地址传输到目的地址 (P5)
- 层次化路由的必要性: 由于网络规模庞大和自主性需求,互联网采用层次化的路由结构 (P6-P7)
- 自治系统 (AS): 路由器按区域组织,同一AS内运行相同的 intra-AS 路由协议,网关路由器之间运行 inter-AS 路由协议 (P8)
- 域内路由协议 OSPF: 开放最短路径优先协议,广泛使用的内部网关协议,支持无类域间路由CIDR、认证和多路径,运行在IP协议之上 (P11)
- OSPF报文类型: 包括Hello、DD、LSR、LSU和LSAck等,每种报文在发现和维护邻居关系中扮演特定角色 (P13)
- OSPF状态机: 描述了从Down到Full的七个状态,展示了OSPF如何逐步建立稳定的邻接关系 (P14)
- OSPF工作过程: 包括邻居发现与维护、代表路由器选举和最短路径计算等步骤 (P15-P18)
- 域间路由协议BGP: 基于策略的路由协议,当今全球互联网使用的外部网关协议(EGP),支持CIDR无类域间路由,使用TCP作为其传输层协议 (P19)
- BGP的工作过程: 包括TCP连接的建立、报文类型和BGP的五种主要报文 (P20-P21)
- BGP属性: 包括公认必遵、公认任意、可选过渡和可选非过渡属性,这些属性用于选择最佳路由 (P23-P24)
- 公认必遵:Origin 起点属性、AS_PATH AS路径属性、Next hop下一跳属性…
- BGP路由选择: 通过Local Preference实现备份策略,以及多运营商备份策略的实施 (P40-P42)
- BGP路由选择优先级: 描述了BGP在选择路由时考虑的多个因素,如下一跳可达性、Local Pref等 (P39)
- 本地优先级属性(Local Pref,公认任意)仅用于iBGP中,路由器更倾向于选择Local Pref数值更高的路径
- AS PATH属性: 通过AS Path属性来调整入站流量,防止形成域间的回路,以及流量通常沿着AS PATH转发的情况 (P43-P45)
- AS少并不代表路径更短
- BGP属性深入: 使用COMMUNITY Attribute来实现更复杂的路由策略,以及Hot Potato Routing和Cold Potato Routing with MEDs的策略 (P48-P53)
- 非穿越和穿越自治系统、对等关系 (P25-P39)
- 路由策略实施: 调整BGP属性以实现入站和出站流量的控制,一般而言,AS对出站流量有更多的控制权 (P38)
- 策略效果和问题: 讨论了路由策略可能产生的奇怪效果,如路由粘连(Route Pinning)问题,以及BGP不能保证收敛到稳定路由的问题 (P54-P55)
- 区分动态语义和静态语义: 在BGP策略中,区分动态语义和静态语义的重要性,以及Stable Paths Problem的讨论 (P56-P59)
- Stable Paths Problem 实例与求解: 通过图的节点和边来解释Stable Paths Problem,以及求解方法和可能的多个解 (P60-P62)
- 全局策略检查: 要求每个AS发布其策略,发现并解决冲突,但存在全局思考与本地执行的平衡问题 (P63)
- BGP系统规模和问题: 讨论了BGP系统规模的增长,以及路由表过大可能带来的问题,如存储和CPU负载 (P64-P65)
- Multihoming 问题: 分析了Multihoming作为路由表增大的主要原因,以及对路由策略的影响 (P66)
2. 路由安全问题
- 域内路由安全: 针对OSPF协议及其Fight-back安全机制的攻击,攻击者通常假装成合法的域内路由器,伪造多个OSPF协议的LSA报文广播出去,迷惑其他路由器路由表的计算;如Periodic injection攻击和Disguised LSA攻击,以及如何通过fight-back机制防御 (P68-P72)
- 域间路由安全: 包括前缀劫持、子前缀劫持、路径劫持和路由泄露等攻击方式,以及相关案例分析:如中国电信路由泄露、巴基斯坦电信劫持YouTube流量 (P73-P81)
3. 路由源验证
- 路由过滤: 通过不接受BOGON ASN和前缀等规则来防止意外或恶意的前缀声明(BOGON主要指不应出现在公共互联网的码号资源) (P83-P84)
- IRR(Internet Routing Registry)
- IRR的作用: IRR是一个全球路由策略分布式数据库,用于保证全球互联网路由的稳定与一致性,排除路由问题,查询对等协议,自动配置骨干路由器 (P87)
- IRR数据库: 分布在不同地区,由权威的RIR、NIR/LIR和第三方组织维护,它们之间相互镜像 (P88)
- RPSL(Routing Policy Specification Language): 定义了IRR数据的语法和格式,使用对象关系表达路由信息,独立于供应商,可进行扩展 (P89)
- IRR对象: 包括route、route6、aut-num、inetnum、inetnum6、mnter等,涵盖路由的各个方面 (P90-P96)
- IRR存在的问题: 数据的准确性、缺乏统一标准、数据的可信性问题,以及管理和维护的复杂性 (P101)
- RPKI(Resource Public Key Infrastructure)
- RPKI的建立: 2006年SIDR WG建立,聚焦路由源验证和路径验证,解决IRR数据不可完全信任的问题 (P102)
- RPKI架构: 是一种数字证书系统,对码号资源提供密码学证书,包括CA和EE,CA证书用来担保IP和AS分配,EE证书用于路由源授权 (P103)
- RPKI证书签发体系: 通过逐级签发数字证书,从RIR到NIR/LIR/ISP,ISP使用自己证书签发ROA,将AS与IP前缀绑定 (P104)
- ROA(Route Origin Attestations): 是经过加密签名的对象,在RPKI框架中声明AS被授权发起的IP前缀 (P105)
- MaxLength: 指定本次授权可以宣告的最大前缀长度,大多数ROA采用默认MaxLength (P106)
- ROA验证: 通过Rsync/RRDP协议同步证书及签名对象,沿证书链验证ROA有效性,并下发到边界路由器 (P107)
- RPKI局限性: 包括同步问题、效率问题、管理问题,以及体系结构的固有缺陷和部署初期的安全隐患 (P109)
- MANRS(Mutually Agreed Norms for Routing Security)
- MANRS的意义: 提供了一套最低限度的路由安全实践,是解决互联网路由安全问题的一种结构和一致的方法 (P110-P111)
- 网络运营商项目: 作为MANRS最重要的项目,目标是提高路由安全问题的认识,促进集体责任文化,展示行业解决路由安全问题的能力 (P112-P113)
- MANRS行动: 包括过滤、反欺骗、全球验证和协作,要求网络运营商防止错误路由信息传播,进行源地址验证,促进全球业务沟通和协调 (P113)
- 其他项目: 包括CDN和云提供商、设备厂商、IXPs等,旨在通过不同的行动提升路由安全和效率 (P114)
- MANRS Observatory: 提供路由安全相关信息的公共平台,包括公共视图和私有视图,展示MANRS参与方的承诺程度和路由安全状态 (P115-P119)
- MANRS局限性: 虽然MANRS是互联网路由安全的重要步骤,但它不是一站式解决方案,而是构建更安全路由基础设施的一步 (P121)
4. 路径验证
- BGPsec: 旨在解决域间路由的AS路径篡改问题,通过签名保护路由路径 (P126-P131)
- FC-BGP: 一种新的路由验证机制,通过分段验证路由宣告路径,提供与BGPsec相同的安全收益但具有更低的验证开销 (P132-P145)
第9讲 DNS安全和真实源地址验证
1. DNS概述
- 域名系统(DNS)功能:实现域名与IP间转换
- DNS的重要性: DNS作为互联网的关键基础设施,提供域名到IP地址的转换服务,支撑着Web访问和电子邮件等应用 (P2)
- DNS的演进: 从host.txt文件到大型分布式系统,DNS不断扩展以支持国际化域名和新型通用顶级域 (P8-P9)
- DNS域名结构: 采用层次化树形结构,从根到顶级域(TLD),再到二级域名(SLD),体现了层次化授权行为 (P10)
- DNS区域组织形式: 每个DNS区域的权威域名服务器负责发布区域信息,可配置主从服务器,主服务器存储所有区域记录的记录,而从服务器使用自动更新机制维护主记录的副本 (P11-P12)
2. DNS使用及解析过程
- DNS使用: 包括设置DNS服务器、浏览器输入域名、查询获得IP地址等步骤 (P16-P17)
- DNS请求过程: 客户端查询本机缓存、向本地DNS服务器发送请求,可能需要进一步查询根服务器、顶级域服务器、域服务器,最终获取IP地址 (P18)
- DNS迭代查询: (P19-P23)
- 域名解析应答,每个数据条目称为一个资源记录(Resource Record, RR),资源记录类型如A、AAAA、MX、NS和CNAME等
- 资源记录的数据格式为标准五元组:域名、类别、类型、生存时间(TTL)与数据
- 交互信息格式包括问题、回复、授权和附加部分
- DNS反向查询:和正向查询相似,使用dig -x IP,给定一个IP地址,DNS解析器通过迭代查询发送请求,从root服务器开始查询,找到指针(PTR)记录,使用IP地址获得相关的域名或主机名 (P24)
3. DNS攻击
- DNS攻击类型: 包括缓存中毒攻击、恶意DNS服务器回复伪造和拒绝服务攻击 (P25)
- DNS攻击面: 分析了操控本地用户主机的难度和收益,以及不同攻击面的影响 (P26-P27)
- 本地缓存中毒攻击: 通过伪造DNS回复,影响单个主机名或整个域的DNS解析 (P28-P30)
- 远程缓存中毒攻击: 如Kaminsky攻击,利用DNS协议漏洞进行大规模DNS缓存投毒 (P31-P37)
- 拒绝服务攻击: 包括对root和TLD服务器的攻击,以及针对特定域名服务器的攻击,如AWS遭受的DDoS攻击 (P41-P44)
4. DNS攻击预防策略
- 基于密码技术:
- DNSSEC: 通过非对称加密验证身份,提供数据真实性和完整性保护 (P47-P52)
- DNS-over-TLS(DoT)和DNS-over-HTTPS (DoH): 利用传输层安全协议对DNS数据进行加密,增强数据安全性 (P54-P55)
- 基于系统管理: 包括规范配置过程、严格检查和降低攻击影响的措施 (P56-P57)
5. 真实源地址验证体系结构
- 互联网体系结构安全现状: 分析了数据转发过程易受攻击、地址易被伪造和隐私信息易泄露的问题 (P64)
- 真实源地址验证体系结构SAVA: 旨在解决IP地址伪造问题,通过接入网、域内和域间三个层次设计源地址验证关键技术 (P75-P76)
- SAVA设计原则: 包括可扩展性、可演进性和安全性,确保SAVA体系结构适应复杂网络环境和新需求 (P90-P92)
6. SAVA体系结构及其关键技术
- 接入网真实源地址验证技术SAVI: 提供端系统粒度的源地址验证,基于报文监听生成绑定表 (P98-P107)
- 域内真实源地址验证技术SAVA-Prefix: 保证从地址域内产生并流出地址域的流量,其源地址不会假冒地址域之外的地址 (P108-P113)
- 基本思路: 路由器通过发送探测报文,探测域内转发路径,沿途路由器根据收到的探测报文生成<源前缀和入接口>的对应关系
- 域间真实源地址验证技术SAVA-X: 通过在地址域之间建立信任联盟实现源地址验证 (P120-P125)
- 真实源地址验证技术产品化和部署
第10讲 流量分析技术
1. 引言
- 流量分析技术诞生背景: 广域网流量激增,承载合法与恶意流量以及用户隐私数据,如DDoS攻击、侧信道攻击等 (P2-P10)
- 流量分析问题定义: 分析流量的特征,推测通讯相关的信息 (P11)
- 流量特征定义:对二进制形式的网络流量进行变换,得到具备语义量化的特征,精准刻画流量的表示
- 流量分析目的 (P12-P15)
- 好的:推测是否为攻击流量进行入侵检测
- 恶意:推测和通讯相关的用户隐私
- 流量分析系统的三要素:流量特征、分析算法、分析的目标 (P16)
- 流量特征:系统采用了何种方法表示流量
- 负载特征:直接将数据包当中的内容作为特征
- (包头)统计特征:例如对于数据包头部内容设计统计量
- 检测算法:固定规则和机器学习算法
- 分析的目标:窃取隐私 / 保护用户
- 流量特征:系统采用了何种方法表示流量
2. 负载特征驱动的流量检测
- 传统恶意流量识别方法: 基于固定规则匹配流量负载 (P19-P24)
- 缺点1:依赖深度包检测技术,对加密流量不可用
- 缺点2:大量过滤规则消耗计算资源
- 缺点3:逃逸策略躲避检测
- 缺点4:人工设计的固定规则仅可针对已知流量进行过滤,无法应对未知攻击 (Zero-Day Attacks)
- 基于人工智能的流量检测: 采用机器学习算法分析负载特征,如网站防火墙和恶意软件检测 (P26-P27)
- 相比于固定规则检测,其优势有:
- 借助机器学习泛化性,检测未知攻击
- 相比于固定规则方案检测准确度更高
- 不依赖人力设定固定规则,低人工处理开销
- 网站防火墙技术: 专门用于监控、过滤和阻止传入和传出Web应用程序的恶意流量的安全系统,专门针对HTTP应用程序进行优化,防止SQL注入、跨站脚本等在线攻击 (P29-P36)
- 恶意软件检测技术: 识别恶意软件下载流量和C2信道流量,采用图神经网络和无监督学习方法 (P38-P46)
- 技术的局限性 (P47)
- 通用性不足:只能针对Web或者恶意软件流量进行检测
- 检测泛化性不足:采用的数据集规模很小
- 无法应对加密流量:现在的恶意软件大多采用加密恶意流量通讯
- 检测实时性无法保证:是离线的检测方法
- 部署范围局限:因为加密问题通常在Web网关或用户端部署
3. 统计特征驱动的流量识别方案
- 基于包粒度特征的检测方法: 提取每个数据包的特征向量,采用机器学习分类正常和恶意数据包 (P49-54)
- 优势:1. 不依赖数据包负载进行检测;2. 细粒度分析网络流量;3.不用维护流状态:一定程度降低了检测开销
- 劣势:1. 逐个数据包分析的效率问题,通常离线运行或工作在低负载网络下;2. 鲁棒性不佳,操纵数据包当中字段可以完成逃逸攻击
- 基于流粒度特征的检测方法: 为每条流提取特征向量,分析流的统计信息,流一般被定义为具备相同五元组的数据包序列,即具备相同源目的地址+源目的端口+传输层协议类型 (P56-P67)
- 优势:1. 可以在流的基础上构造复杂特征,检测复杂攻击;2. 在没有专用硬件的条件下达到良好的效率
- 劣势:1. 分析粒度比较粗糙;2. 将数据包重组为流,引入额外的开销
- 可编程网络设备上的流量检测: 在可编程交换机上实现流量特征提取和机器学习算法,如FlowLens和NetBeacon (P69-P78)
- 优势:1. 高吞吐低延迟实时监测,向着真实世界可用迈了一大步;2. 在高吞吐网络,例如广域网上完成检测,因此可以保护大量的合法用户
- 劣势:1. 硬件资源限制导致可以实现的模型和特征十分有限,检测精度也存在折损
- 加密攻击流量检测:e.g. 基于流量交互图的加密恶意流量识别 (P80-P89)
4. 检测后的防御方案
- 传统防御手段:
- 路由黑洞:在临近攻击者的位置丢弃向全部被保护目标的流量,即路由节点向攻击者隐蔽攻击目标 (P92)
- 优势:1.可以在进入受害者所在AS之前拦截攻击流量;2.可通过BGP协议直接实现不需要额外的设计和设备更新;3.需要的信息较少,只需要受害者的地址
- 劣势:灵活性差,同时拦截正常流量和恶意流量
- IP黑名单:攻击者IP地址的集合,通常由开源社区维护 (P93)
- 优势:1.可以直接部署在防火墙;2.在短期内有效预防攻击
- 劣势:1.灵活性差,同能时拦截正常流量和恶意流量;2.维护IP地址列表人力资源开销大
- 流量清洗中心:通常位于边缘网络,对通过的流量进行流量特征匹配,拦截攻击流量,最后将正常流量返还给目的端 (P94)
- 优势:1.在距离边缘节点近的位置过滤流量;2.可以灵活按需配给
- 劣势:1.流量特征匹配难以实现,因为维护流量状态消耗大量资源,尤其是在流量规模大地址数量多的场景下
- 路由黑洞:在临近攻击者的位置丢弃向全部被保护目标的流量,即路由节点向攻击者隐蔽攻击目标 (P92)
- 可编程交换机方案: 在可编程交换机上部署过滤规则,灵活应对大规模恶意流量,如Poseidon和Jaqen (P95-P100)
5. 流量分析攻击
- 网站指纹攻击 & 流量关联攻击: 分析加密流量特征,推测用户访问的网站,破坏Tor等匿名网络的隐私保护 (P102-P107)
- 其他流量分析攻击: 包括针对APP应用、即时通讯软件和加密DNS流量的分析,采用有监督学习算法 (P109-P111)
- 流量分析攻击的防御手段: 如基于特征扰动和特征消除的方案,构建对抗样本和消除流量特征以抵抗分析 (P113-P114)
第11讲 分布式系统安全
1. 引言
- 分布式系统的起源: 并行计算的早期发展,ARPANET的推出,以及局域网技术的兴起 (P2-P3)
- 分布式系统的定义: 由不同地理位置的系统组件构成,通过网络消息传递实现协作 (P7)
- 分布式系统的组成: 交互网络、分布式算法和信任机制 (P7)
- 分布式系统的三个属性
- 一致性 C: 系统中正确节点对同一变量的状态信息保持一致 (P8)
- 可用性 A: 系统对客户端请求必须给出回应,避免无限等待 (P8)
- 分区容错性 P: 系统容忍节点分区,区域间通信可能完全丢失 (P8)
- CAP定理: 一个分布式系统不可能同时满足一致性、可用性和分区容错性,P总需要满足,而C和A矛盾 (P9)
- 分布式系统安全问题的根源 (P10)
- 攻击者可以攻击交互网络,监听交互过程中的隐私信息或造成网络分区
- 协作过程中可能会出现冲突,故障等问题,从而影响一致性和可用性
- 系统内部可能存在恶意组件,系统和客户端交互时也存在信任问题
2. 建立安全稳定的交互网络
- 交互网络的组成: 节点通过交互信道实现消息传递,包括交互信道和邻居选择机制 (P13)
- 交互信道中的安全隐患: 数据包丢失、重复、泄露 / 节点间的交易请求泄漏、重放、篡改和伪造 (P14-P17)
- 构建TCP交互信道: 通过滑动窗口协议和超时重传机制确保数据包有序提交和解决丢失问题 (P18)
- 构建TLS交互信道: 建立在 TCP 之上,提供数据完整性、身份认证和数据加密,防止数据被篡改和窃听 (P19)
- TLS防重放攻击: 虽然TLS可以防止重放攻击,但某些消息如ClientHello和0-RTT信息仍可能遭受攻击 (P20)
- 基于时间戳和随机数防御重放攻击: 时间戳要求双方时钟同步,随机数则无需同步但需记录大量已用随机数 (P21-P22)
- 时间戳和随机数相结合: 结合使用时间戳和随机数,减少对精确时钟同步的需求并限制重放攻击的时间窗口 (P23)
- 网络链路故障: (P24-P25)
- 链路故障类型: 分为链路崩溃和性能问题
- 链路故障特征: 这类故障通常无法通过网络层路由解决,并且只影响部分节点间的通信,不会导致整个网络分区
- 主要原因:Internet的不稳定性,分布式系统所依赖的底层网络随时都可能出现物理链路故障、路由故障等因素
- 解决思路:构建弹性覆盖网络,完全位于应用层,依靠其他主机实现消息转发
- 弹性覆盖网络RON (P27-P32)
- RON定义: 分布式弹性覆盖网络体系结构,能够检测路径失效和性能降低,并迅速恢复
- 设计目标: 在20秒内完成故障检测和恢复,提升通信可靠性至少十倍,并将路由与应用紧密结合
- 应用场景: 包括协同服务、视频会议、构建VPN和可靠的overlay网络服务
- P2P网络:建立在Internet之上的分布式Overlay网络,不依赖中心节点,通过节点间的协作实现资源发现与共享 (P34)
- P2P网络的建立流程:网络节点发现、邻居节点维护 (P35-P37)
- 日蚀攻击 (P38-P41)
- 攻击目标: 针对网络节点发现和邻居节点维护过程,使受害节点的所有邻居节点都是攻击者控制的恶意节点。
- 危害: 攻击者可以选择性转发消息给受害者,或完全隔离受害者与网络中其他节点的信息交互
- 攻击方式: 挤占入向连接、挤占出向连接、配合路由劫持攻击
- 解决思路 (P39-P41)
- 周期性更换邻居节点: 防止攻击者长期控制受害者的邻居节点
- 增加网络信息表项的大小: 提高存储容量,降低攻击成功率
- 增加出向连接个数: 提升受害者与网络中其他节点建立连接的机会
- 选择少量不易受攻击的可信权威节点: 作为邻居节点,提高网络的安全性
- 邻居选择时考虑AS拓扑: 防止路由劫持攻击,确保通信链路的安全性
3. 分布式算法
- 协作过程中的安全隐患: 缺乏全局时钟、并发请求和系统组件的故障 (P43)
- 时钟同步算法: 包括Cristian算法、Berkeley算法和NTP协议,用于减少时钟同步误差 (P45-P48)
- 并发问题: 并发请求可能导致数据库集群或服务器集群的一致性问题 (P49-P50)
- 事务与分布式事务: 事务是原子的一组请求,事务需满足ACID特性,分布式事务涉及多个服务器管理的对象 (P51)
- 基于锁机制确保隔离性: 通过锁定状态避免并发请求间的相互影响 (P53)
- 两阶段提交确保一致性: 通过协调者和数据库之间的通信确保事务的一致性提交或中止 (P52)
- 故障:数据库节点故障、协调者故障、网络拥塞/链路故障 (P54-57)
- 无法容错的根源:在简单的二阶段提交协议中,必须所有相关节点都进行回应后才成功提交,因此协议无法容忍任何故障 (P58)
- Quorum设计准则: 基于鸽巢原理,基本规则:分布式系统每阶段提案中,诚实节点最多只对一个提案投一次票 (P59-60)
- 故障容错算法
- Paxos:存在有Leader和无Leader两种模式,基于Quorum机制确保一致性和容错性 (P61-P65)
- Raft:Raft基于Leader完成共识过程,并基于Quorum机制确保一致性和容错性 (P66-P72)
4. 信任问题
- 零信任网络: “从来不信任,始终在校验”,不依赖隔离墙,而是让资源具备自保能力 (P74)
- 零信任下访问的基本流程: 访问者身份验证和权限判断,基于认证和授权重构访问控制 (P75)
- 访问控制: 限制用户对信息项的访问或控制功能的使用,基于用户身份和策略组 (P76)
- 基于角色的访问控制(RBAC): 通过角色简化权限管理,用户与角色的关系可以是多对一或多对多 (P77)
- 基于属性的访问控制(ABAC): 根据用户属性实现细粒度访问控制,包括策略实施点、决策点和信息点 (P78)
- 基于信任管理的访问控制: 结合初始信任、直接信任和推荐信任给予访问权限 (P79)
- 局限性:访问控制只能解决对访问者的信任问题,但无法解决对被访问者的信任问题,访问者可能访问到恶意、无效资源
- 信任评价模型: 描述、计算信任值,包括行为模型、计算模型和传播模型 (P81)
- Eigentrust算法: 通过节点间的交互评价计算信誉值,实现声誉管理 (P82)
- 拜占庭将军问题: 描述在存在叛徒的情况下,忠诚的将军如何达成一致行动的问题 (P88-P89)
- 拜占庭容错: 即使部分节点为拜占庭节点,也能达成一致的状态
- 口头消息(OM)协议:假设将军个数为N,且最多存在m个叛徒时,当N≥3m+1时,OM(m) 算法可以确保所有忠诚的将军达成一致 (P97-P111)
- 签名消息(SM)协议:在实际系统中,可以引入签名机制确保节点发送的消息无法被篡改,从而得到签名消息算法SM(Signed Messages);假设将军个数为N,且最多存在m个叛徒时,当N≥2m+1时,SM(1) 算法可以确保所有忠诚的将军达成一致 (P112-P115)
- 拜占庭共识:Quorum设计准则
- 同步和异步BFT共识的缺陷: 分析了同步和异步拜占庭容错共识的局限性 (P121)
- 部分同步网络模型: 引入了部分同步假设,如PBFT和Hotstuff共识机制 (P122)
- 实用拜占庭容错-PBFT: 即使在有拜占庭节点的情况下,也能复制状态机,适用于私有链和联盟链 (P123-P124)
- Hotstuff共识: 实现线性复杂度的拜占庭共识,基于门限签名和共识视图 (P126-P130)
第12讲 应用安全
1. 引言
- 应用安全定义: 指网络应用层协议、技术、软件的安全问题。
- 应用安全重要性: 用户交互接口、使用频率增加、黑客收益提高。
- 网络应用类型: Web、云计算、CDN、物联网、社交网络、移动应用。
- 安全问题实例: 服务崩溃无法连接网页、隐私聊天信息泄露、网络钓鱼等。
2. 网络应用及其安全问题
- Web安全: Web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统
XSS攻击: 跨站脚本攻击,通过漏洞在浏览器运行非法脚本,影响包括骗取个人信息、窃取Cookie、显示伪造内容,包括反射型XSS(非持久型 XSS)、存储型XSS(持久型 XSS) (P10-P12)
防御方法:
- 转义字符,对于引号、尖括号、斜杠进行转义,通常采用白名单过滤的办法
- 通过CSP ,本质上就是建立白名单,开发者明确告诉浏览器哪些外部资源可以加载和执行
CSRF攻击: 跨站请求伪造,利用用户已登录身份完成非法操作,需满足三个条件 (P13-P14)
防范 CSRF 攻击可以使用以下三种方法:
- 对 Cookie 设置 SameSite 属性,避免第三方网站访问到用户 Cookie
- 阻止第三方网站请求接口
- 请求时附带验证信息,比如验证码或者 Token
SQL注入: 未过滤用户输入,攻击者添加额外SQL语句执行非法操作 (P15-P17)
防御SQL注入的基本原理就是将数据与代码分离,具体有四种方法:
- 后端代码检查输入的数据是否符合预期,严格限制变量的类型
- 对进入数据库的特殊字符进行转义处理,或编码转换
- 不要直接拼接 SQL 语句
- 严格限制Web应用的数据库的操作权限
点击劫持: 视觉欺骗,通过iframe嵌入攻击网站,诱导用户点击 (P19)
URL跳转漏洞: 未验证URL跳转导致安全问题,如信息泄露或资金流失 (P20)
OS命令注入: 执行非法操作系统命令达到攻击目的 (P21)
- CDN安全 (P23-P32)
- CDN(Content Delivery Network, 内容分发网络):当前提高网站的性能、可靠性与安全性的最佳实践之一,由分布在不同地理位置的服务器集群组成的分布式网络
- CDN目标:帮助其客户网站实现负载均衡、降低网络延迟、提升用户体验、过滤SQL注入等攻击,分散拒绝服务攻击的流量
- CDN优势:加速了网站的访问、提供一定安全性
- RangeAmp攻击: 利用CDN漏洞进行DoS攻击,包括小字节范围攻击和重叠字节范围攻击,解决方案从服务器、CDN、协议三大角度考虑
- 社交网络安全 (P33-P40)
- 数据挖掘: 数字档案收集、运维数据收集,可能用于非法用途。
- 垃圾信息传播: 社交网络中快速传播垃圾信息。
- 网络钓鱼: 伪装成好友,诱导用户访问恶意URL。
- 女巫攻击: 伪装多种身份,盗取数据、破坏网络可用性。
- 云计算安全 (P41-P51)
- 服务类型:基础设施即服务IaaS、平台即服务PaaS、软件即服务SaaS
- 虚拟化: 虚拟机、Hypervisor、OpenStack、Docker、Kubernetes等
- 虚拟机逃逸: 程序脱离虚拟机控制主操作系统
- 提权攻击: 通过系统漏洞提升权限
- 侧信道攻击: 通过共享信息通道窃取秘密
- 镜像和快照攻击: 感染镜像、非法恢复快照造成安全问题
- 物联网安全 (P52-P55)
- 物联网结构: 综合应用层、管理服务层、网络构建层、感知识别层
- 安全挑战: 包括网关节点被控制、节点密钥泄露、DOS攻击、认证和控制问题等
- 移动应用安全 (P56-P57)
- 移动设备安全威胁: 恶意软件作者目标,包括零日攻击和APT攻击。
- 防御手段: 包括源代码、应用分发渠道、智能终端安全监测层面
3. 应用安全网络攻击的共性特征及基本防御原理
- 共性特征:资源有限、资源共享、系统漏洞 (P59-P62)
- 基本防御原理:身份认证与信任管理、隐私保护、应用安全监控防御 (P63-P66)
4. 应用安全典型案例
- Web安全案例: 新浪微博XSS攻击事件,分析攻击过程和影响 (P68-P73)
- 社交网络安全案例: 微信广告定制、美国大选操纵、剑桥分析数据收集与分析 (P74-P79)
第13讲 人工智能算法安全
1. 人工智能算法安全概述
- 人工智能的滥用风险: 大模型“越狱”、验证码破解、信息伪造和对抗攻击等滥用行为的介绍 (P2-P5)
- 人工智能系统概述: 系统由输入数据、算法模型和底层平台组成,并在训练阶段与推理阶段发挥作用
- 人工智能安全风险的分类: 包括网络安全风险、数据安全风险、算法安全风险、信息安全风险、社会安全风险和国家安全风险 (P24)
- 敌手攻击目标: 根据CIA模型,攻击目标包括破坏机密性、完整性和可用性 (P25)
- 敌手攻击能力: 根据目标模型接触程度分为白盒攻击、灰盒攻击和黑盒攻击,根据攻击行为是否特定分为目标攻击和无目标攻击 (P26-P31)
- 人工智能安全威胁案例 (P32-P41)
- 对抗样本的现实威胁: 自动驾驶系统的欺骗攻击、语音识别系统的攻击以及物理世界的攻击案例
- 人工智能安全应用: 网络信息安全和公共安全领域的应用,如CrowdStrike的主动防御平台和Intel的视觉运算芯片
2. 框架安全
- Tensorflow: 基本概念、计算图和安全漏洞,如类型转换错误和模型加载时的风险 (P52-P54)
- PyTorch: 包括高级功能、优势和内存泄露等安全问题 (P55)
- Keras和Caffe框架: Keras的设计原则和Caffe的主要特点及其安全漏洞 (P56)
- 环境接触带来的漏洞: 第三方软件包的安全风险和容器安全问题,如Kubeflow节点劫持和恶意容器部署 (P57-P63)
3. 算法安全
- 算法鲁棒性: 模型对数据变化的容忍度,鲁棒性越高的模型,其识别噪声和对抗样本的准确率越高
- 鲁棒性差的模型,在受到对抗攻击时,容易给出高可信度的错误结果
- 鲁棒性差的模型,在更换数据集时(如训练数据更换为测试数据或投入使用时的实际数据),性能往往表现出巨大的差异
- 算法可解释性: 让人类了解模型做出某一决策的深层原因,与模型的鲁棒性、安全性息息相关
- 投毒攻击:精心设计一个或者多个攻击样本,这些攻击样本一旦混入到人工智能算法的训练数据中,将会让人工智能算法失效 (P83-P93)
- 基于用户反馈的投毒攻击:将用户反馈系统武器化来攻击合法用户和内容
- 通过公开数据收集实现投毒攻击:e.g. 将大量垃圾邮件提交为非垃圾邮件来让Gmail过滤器不再记录该垃圾邮件,从而使 Gmail 邮件分类器发生偏斜
- 面向支持向量机的投毒攻击、针对推荐系统的投毒攻击
- 针对投毒攻击的防御措施
- 人工智能系统的安全风险:传感器数据欺骗: 超声波干扰传感器造成无人机坠机和汽车超声传感器的干扰;“海豚音攻击”: 超声波对语音服务下达指令的攻击方式
- 对抗攻击: 对原始数据构造人类难以分辨的扰动,将会引起深度学习算法决策输出的改变,造成人类与深度学习模型认知的差异 (P102-P110)
区分:
投毒攻击:强调的是通过混入特殊样本的形式,直接对模型进行修改,而不修改测试数据;
对抗攻击:攻击者在不改变目标机器学习系统的情况下,通过构造特定输入样本以完成欺骗目标系统的攻击。如基于梯度的攻击方法FGSM等,均属于逃逸攻击
分类:基于梯度的攻击、基于优化的攻击
- 模型机密性攻击 (P111-P116)
- 模型萃取攻击:模型窃取攻击是唯一一个针对模型信息(如网络结构或参数等)而非数据的隐私攻击方式
- 成员推理攻击:确定特定的数据是否被用于模型的训练过程,即特定的数据是否存在于训练集中
- 模型逆向攻击:从模型的预测结果中恢复出关于输入数据的信息
- 属性推理攻击:揭露数据中未直接公开的敏感属性,这些属性一般与训练任务无关
4. 人工智能算法的局限性
- 数据局限性: 数据难以获取、不完整或偏斜,以及幸存者偏差问题 (P95-P99)
- 成本局限性: 资源限制引发的训练时间长和经济开销问题 (P100-P103)
- 偏见局限性: AI的种族偏见、性别偏见和算法偏见问题 (P104-P108)
- 伦理局限性: AI失误的责任归属、AI应用的边界界定和人权问题 (P109-P112)
第14讲 大模型安全
1. 大模型安全概述
- 已知安全风险在大模型的体现: 在算法、数据、模型、框架及运行等各层面的安全风险与威胁,继承了传统人工智能技术的安全风险与防御方法
- 大模型的新安全风险: 提示语泄漏、模型越狱、数据隐私、能耗安全、内容治理、模型幻觉等 (P4-P10)
2. 大模型系统安全
- 大模型系统安全风险概述: 供应链安全、硬件安全、网络传输安全、开发与测试安全、操作系统安全等 (P35-P36)
- 硬件安全: Row hammer攻击、能耗攻击风险等 (P38-P47)
- 供应链安全: 学习框架、依赖库安全等 (P48-P49)
- 操作系统安全:支持大模型的操作系统层面漏洞导致数据/模型泄漏 (P50)
- 网络通信安全:会话泄漏与劫持、拒绝服务攻击 (P51-P52)
- 中间人攻击(Man-in-the-Middle Attack,简称MITM),是一种会话劫持攻击。攻击者作为中间人,劫持通信双方会话并操纵通信过程,而通信双方并不知情,从而达到窃取信息或冒充访问的目的
3. 大模型数据安全
- 大模型数据安全风险概述: 公平性问题、数据泄漏、知识缺失幻觉、生成内容滥用等 (P54)
- 训练阶段安全 (P55-P60)
- 多模态输入数据加剧数据收集欺骗
- 敏感数据被大模型“记住”导致数据泄漏
- 有偏的训练数据导致公平性问题
- 推理阶段安全 (P61-P66)
- 幻觉问题:降低了生成内容的可信度
- 机器生成数据鉴别
- 生成内容滥用:生成式人工智能具备高通用性的特点,低使用门槛大幅增加了已有风险的安全威胁
4. 大模型对抗安全
- 大模型对抗安全风险概述: 提示语泄漏、模型越狱、模型窃取、对抗样本、隐私推理等 (P68)
- 恶意输入攻击: 提示注入、越狱、提示语泄漏等 (P69-P74)
- 隐私推理攻击、对抗样本攻击(逃逸攻击)(P75-P76)
- 大模型对抗安全之模型窃取攻击: 设计问题来问询目标黑盒的大模型,再根据目标模型的回答来优化训练自己的模型,使自己的模型与目标大模型的表现接近 (P77)
- API安全 (P78)
- 恶意智能体攻击:对抗性智能体可能尝试以欺骗性行为或恶意行为来干扰模型,用的第三方组件可能存在潜在的安全漏洞,进而被攻击者利用 (P79)
5. 大模型安全防御
- 系统安全防御
- 系统安全静态防御: 供应链安全、依赖库安全、插件安全等 (P82-P84)
- 系统安全动态防御: 可信执行环境(TEE)基于软硬件组合创建安全执行环境,能够更好地确保计算和数据处理机密性和完整性,关键机制:安全隔离、安全验证、安全执行环境 (P85)
- 数据安全防御 (P87-P105)
- 训练阶段:安全的训练数据与训练方式:自动数据清洗、数据脱敏、数据加密、数据隐私计算
- 推理阶段:输入/输出内容筛查
- 全周期隐私保护:限制隐私信息流入等
- 价值观对齐
- 输入端幻觉风险检测: 幻觉风险检测方法、基于中间层状态的检测工具等
- 图像伪造的对抗防护
- 虚假新闻的主动检测
- 对抗安全防御 (P107-P122)
- 安全风险与防御概述、风险分类体系、安全评估基准、有害输入检测
- 对抗样本防御: 鞍点问题、鲁棒性优化、决策边界实现等
- 智能体安全防御: 行为指引、审查监控、行为边界限定等
- 基于大模型的API流量检测
- 模型水印:作为隐藏模式嵌入到人类无法察觉的文本中
- 良好的模型窃取攻击对抗方案
- 可以防止大模型的滥用问题,可以通过算法有效识别文本是否为机器生成的内容
- 基于多方计算的模型安全:通过保护输入和输出数据,从而可以防止LLM的输入-输出泄漏,进一步抵御模型窃取攻击
- 隐私保护训练与推理