笔记: BGP安全
资料
BGP Routing Security 一些资料索引
whois.bgpmon.net 可以查bgp异常监测
案例
2014.03.17-Google DNS servers suffer brief traffic hijack
路由泄漏 More Leaky Routes
More Specifics 问题
Type I - Hole Punching : more Specifics与origin有不同的出口
Type II - Traffic Engineering:more Specifics出口与origin相同,中间路径不同
Type III - Overlay:多个more Specifics与origin的路径完全相同
内容描述比较简单直接,重点在文章最后一句
笔记
BGP安全研究
BGP安全研究 清华的综述
前缀劫持
internet地址分配:IANA -> RIR -> LIR
某个AS宣告一个未获授权的前缀,该前缀事实上属于其他AS或尚未分配。
运维:IGP到BGP的路由重分发配置出错,容易导致此类问题。
恶意:伪造BGP Update中的NLRI信息,某个AS向外宣告到<别的AS所拥有的IP段>的路由,其问题是同一个前缀被多个AS通告(MOAS, multiple origin as)别的AS所拥有的IP段>
恶意:伪造NLRI信息和AS_PATH路径,某个恶意AS伪造前缀并声称自身是对端节点到该前缀的较优路径的一跳
路由泄漏
路由通吿给了不合适的对象,导致流量重定向
通告信息本身是合法的,只不过一般是违反了通用处理策略。路由认证机制无法解决该问题。
尤其是从 customer -> peer -> provider 的链条来说,考虑经济利益,通用的出站策略
与TCP协议相关的安全性
TCP攻击导致BGP消息update困难
运维解决方案
不修改路由协议
可加强路由过滤,例如地址信息更新、异常地址过滤、customer路由前缀信息检查。。。
IRR路由策略信息检验。。。
等等。。。
前缀劫持检测
与历史信息比对 + 主动探测,等等。。。
协议解决方案
BGP安全之争 sbgp跟sobgp的组件
SIDR:
AS是否拥有某IP前缀的合法授权?(origin AS的真实性)
BGP路由中的AS_PATH是否与其NLRI实际传播路径一致?(AS_PATH的完整性)
S-BGP
BBN公司,Stephen Kent
ISP自身有两套证书:IP证书,AS证书
ISP再签发两套证书:自身拥有的AS证书,BGP路由器证书
地址证明(Address Attestations):ISP签发,该AS被ISP允许通告其拥有的IP地址前缀
路由证明(Route Attestations):BGP路由器签发,BGP路由对等体的AS号是否能继续通告该IP前缀的授权
用ISP公钥校验地址证明,用路由器证书逐跳校验AS_PATH中的路由证明
需要引入两套PKI,路由收敛时间长、计算开销大、内存需求大
soBGP(第三方认证,网状信任)
思科
EntityCert:AS证书,标识某实体确实拥有该AS,由第三方进行签名(网状信任)
AuthCert:源授权证书(Origin Authorization Certificates),AS拥有IP前缀
注意AuthCert带有上一级AS的EntityCert的指针
ASPolicyCert:AS策略证书(AS Policy Certificates), 当前AS与其连接的对等体AS列表证书
各AS可以通过“AS策略证书”构建AS的网络拓扑图,从而判断路由通告中的AS_PATH属性是否真实
soBGP机制只能提供路由源验证,无法保证路径验证
RPKI + BGPSec
RPKI 负责对互联网码号资源INR(包括IP地址前缀和AS号)的所有权和使用权的认证,进行合法路由源(Origin AS)的验证
BGPsec在RPKI的基础上,引入BGPsec_Path,进行AS_PATH的验证
基于DNSSEC
DNSSEC protected routing announcements for BGP 通过dnssec认证bgp宣告,draft没成
rover 地址源认证
基于DNSSEC部署成果。。。
难点
BGP: the Tragedy of the Commons
BGP的任务:宣告自身拥有的前缀,标记邻居连接信息及路由策略,接收处理邻居路由更新信息,过滤伪造路由信息
运维错误没法通过技术手段避免,合法不等于正确,legal vs correct
三个主要问题:宣告不属于自身的前缀,宣告错误路径,内部路径泄漏
层次信任 vs 网状信任
一个AS可能并不想公开自身与其他AS的全部连接信息,可观察 vs 全宣告,即 observe vs claim
单AS唯一公钥 vs 每路由器一个公钥,per AS vs per eBGP speaker, 涉及前缀变动时的签名更新、接收路由更新、证书撤销等等的成本考量
任一AS_PATH路径上的所有路由必须做签名计算,因为是链式签名的连续开销,签名各各不同
如果有效签名的合法信息已失效,如何确保其他AS同样更新?如何防重放?
如果维护全局签名撤销集中数据库,开销、效率?
如果在BGP update里加入时间戳信息,那么全局更新频率设置,以及全球路由器的路由计算负载
If you haven’t found the tradeoffs, you haven’t looked hard enough.