ASPA缓解路径劫持能力分析

admin 2024年1月5日22:35:00评论22 views字数 4802阅读16分0秒阅读模式

01引言

当前,RPKI提供了源认证,能够防止源劫持攻击,但是对于路径劫持攻击,尽管有BGPsec等方案被提出,但是由于过大的开销以及在未完全部署下受限的保护能力,导致了其在部署过程中遇到了较大的阻力。为此,IETF正在为ASPA(Autonomous System Provider Authorization,自治域提供商认证)方案制定草案。ASPA的主要思想与ROA类似,将某一AS与对其满足某些BGP商业关系的AS集合绑定,并存放在RPKI资源库中。路由器可以通过依赖方软件获取这一数据,用于验证路径中每一跳AS之间的关系,从而判断路径的合法性。本文通过讨论ASPA的工作原理,初步分析了ASPA对路由劫持的缓解能力,并说明了其在部分部署情况下的优势。

02ASPA工作原理

1BGP商业关系
ASPA草案文档对BGP商业关系进行了如下划分:
  • Provider/Customer:Provider为Customer提供中转服务,会向自己的其他客户和上游Provider宣告到达该Customer的路由。
  • Lateral peer:对等关系,互相为对方及其客户提供中转服务,向对方宣告自身及客户的路由,并向客户宣告对方及其客户的路由,但不会向上游Provider宣告对方的路由或将从上游Provider得到的路由宣告给对方。
  • Mutual-transit:兄弟关系,会互相为对方提供免费的中转服务,中转对方的所有流量,即互相为对方的Provider。
  • RS/RS-client:RS即IXP Route Server,可以认为是为多个互为对等体(Lateral peer)的AS(即RS-client)传达可达性信息,以节省全连接的开销。因此RS可以认为是RS-client的Provider。
草案文档中使用“Provider+”来泛指Provider、Mutual-transit与RS三种关系。ASPA将AS与该AS的Provider+ AS进行绑定用于提供认证。
2ASPA单跳认证
在RPKI的依赖方中记录了所有有效的ASPA项(VAP-SPAS),每一项是客户AS(CAS)到其Provider+ AS的集合(Set of Provider AS,即SPAS)的映射,由Customer AS进行签名并发布。
文档中定义了hop(AS(i), AS(j))函数用于验证AS(j)是否是AS(i)的Provider+,其返回结果如下:
  • VAP-SPAS中没有一项,使得其CAS等于AS(i),则返回”No Attestation”,对应AS(i)未注册ASPA的情况。
  • VAP-SPAS中存在一项,其CAS等于AS(i),且AS(j)在该项的SPAS中,则返回”Provider+”。
  • VAP-SPAS中存在一项,其CAS等于AS(i),但AS(j)不在该项的SPAS中,则返回”Not Provider+”。
3)上行路径检查
当AS收到来自Customer或Lateral peer AS的路由时,其对该路由进行上行路径检查。
根据BGP路由的无谷原则,如果该AS收到来自Customer或Lateral peer的AS路径,设为{AS(N), AS(N-1), ..., AS(2), AS(1)},那么该路径中的每一跳都应该满足从Customer到Provider+的关系,否则就是不合法的。因此,需对每一跳的两个AS进行ASPA验证。验证过程如下
  1. 如果,存在1 <= i <= N-1,使得hop(AS(i),AS(i+1))=”Not Provider+”,则路径认证结果为”Invalid”。
  2. 否则,如果存在1 <= i <= N-1,使得hop(AS(i),AS(i+1))=”No Attestation”,则路径认证结果为”Unknown”。
  3. 如果每一跳的结果满足”Provider+”,则路径认证结果为”Valid”。
4)下行路径检查
当AS收到来自Provider或Mutual-transit AS的路由时,其对该路由进行下行路径检查。
设收到的路径为{AS(N), AS(N-1), ..., AS(2), AS(1)},如果该路径合法,则其分为上行部分和下行部分。上行部分满足每一跳AS都是下一跳AS的Customer,而下行部分每一跳AS都是下一跳AS的Provider。其路径可以表示为图1所示形式,上行部分在AS(K)结束,下行部分从AS(L)开始。

ASPA缓解路径劫持能力分析

图1 下行路经检查中的路径形式

在下行路径检查中,假设ASPA完全部署,则K和L可以按照如下方法确定:
在路径{AS(N), AS(N-1), ..., AS(2), AS(1)}中,找到最小的u使得hop(AS(u-1), AS(u))=”Not Provider+”,则上行部分在AS(u-1)处结束,K=u-1。找到最大的v使得hop(AS(v+1), AS(v))=”Not Provider+”,则下行部分从AS(v+1)处开始,L=v-1。
在下行路径验证中,合法的顶层AS可能出现的关系如图2所示。
图2(a)中,AS M为AS M+1和AS M-1的Provider,根据ASPA路径检测算法,此时认为上行路径在AS M处结束,下行路径从AS M处开始,L=K=M,L-K=0。
图2(b)中,AS M到AS M+k为一系列Mutual-transit,根据ASPA路径检测算法,此时认为上行路径在AS M+k处结束,下行路径从AS M处开始,K=M+k,L=M,L-K=-k。其中k>=1,所以L-k<=-1。
图2(c)中,AS M作为AS M+1和AS M-1的RS,根据ASPA路径检测算法,此时认为上行路径在AS M处结束,下行路径从AS M处开始,L=K=M,L-K=0。
图2(d)中,AS M+1与AS M互为Lateral peer,根据ASPA路径检测算法,此时认为上行路径在AS M处结束,下行路径从AS M+1处开始,K=M,L=M+1,L-K=1。

ASPA缓解路径劫持能力分析

图2 下行路径检查中顶层AS可能出现的关系

由上述分析可得,合法的路径必须满足L-K>=-1,再考虑部分部署的情况,完整路径检查算法如下:
  1. 如果N<=2,则检查结果为“Valid”。
  2. 如果N>=3,先判断该路径是否为“Invalid”。找到最小的u使得hop(AS(u-1), AS(u))= “Not Provider+”,找到最大的v使得hop(AS(v+1), AS(v))= “Not Provider+”。则上行路径最晚在AS(u-1)处结束,下行路径最早从AS(v+1)开始,如果u <= v,说明对应上图中的L-K = v+1 - (u-1) >= 2,该路径是不合法的,检查结果为“Invalid”。
  3. 判断该路径是否是”Valid”。找到最大的i使得hop(AS(i-1),AS(i))=”Provider+”,找到最小的j使得hop(AS(j+1),AS(j)) = “Provider+”。则有ASPA认证的上行路径在AS(i)处结束,有ASPA认证的下行路径从AS(j)处开始,如果j-i <= 1,则该路径上行和下行部分都完全由ASPA认证,因此该路径一定是合法的,检查结果为”Valid”。
  4. 否则,从i到j之间的路径无法使用ASPA认证,检查结果”Unknown”。

03
缓解路径劫持能力分析

设AS M为攻击者,其将自身添加到合法路径{AS N, AS N-1, ..., AS 2, AS 1}的末尾形成新的伪造路径{AS M, AS N, AS N-1, ..., AS 2, AS 1}并发布给AS N+1。考虑ASPA完全部署和未完全部署两种情况。
(1)ASPA完全部署
在路径劫持攻击中,AS M一定不是AS N的提供商,因此hop(AS N, AS M)=”Not Provider+”。
如果AS N+1为AS M的Provider或Lateral peer,如图3所示,当AS N+1收到AS M的宣告时,会进行上行路径检查,发现路径中hop(AS N, AS M)=”Not Provider+”,判定该路径为”Invalid”,不会使用或向外宣告该路径。

ASPA缓解路径劫持能力分析

图3 攻击者向上游AS宣告路径

如果AS N+1为AS M的Customer或Mutual-transit,,如图4所示,当AS N+1收到AS M的宣告时,进行下行路径检查,如果AS N处于上行路径,在发现hop(AS N-1, AS N)=“Provider+”,hop(AS N, AS M)=”Not Provider+”时,认为上行部分在AS N处结束,而hop(AS N+1, AS M)=”Provider+”,根据下行路径检查,该情况符合L-K=1,因此该伪造路径可以绕过ASPA检测,如果AS N处于下行路径,同样也能绕过ASPA路径检测。但是由于Provider通常是受Customer信任的,因此这种攻击可以认为不会发生。

ASPA缓解路径劫持能力分析

图4 攻击者向下游AS宣告路径

(2)ASPA未完全部署
如图5所示,若AS N部署了ASPA,则hop(AS N, AS M)=”Not Provider+”。此时AS M将宣告向上传播,传播到上行路径的终点AS K时,如果AS K与AS K+1部署了ASPA,则会有hop(AS K, AS K+1) = “Not Provider+”,那么路径中存在两跳的认证结果为”Not Provider+”,路径被判定为”Invalid”,其会在AS K+1处停止向外宣告。在该情形下,非法路径的影响就被限制在了顶层自治域AS K之下。由此可见,如果上层AS部署了ASPA,那么部署了ASPA的下层AS就会受到一定程度的保护。

ASPA缓解路径劫持能力分析

图5 ASPA在部分部署情况下缓解路由劫持

若AS N未部署ASPA,则无法检测路径劫持。但是,随着ASPA部署范围的增加,攻击者需要构造更长的路径来找到未部署ASPA的AS进行路径劫持,而这种长路径在选路时更难与其他合法的短路径竞争,因此也增加了攻击的困难性。
结合以上分析,与BGPsec在完全部署的条件下才有保护作用相比,随着ASPA的部署程度增加,其对路径劫持的防御能力会逐渐增强,部署了ASPA的AS获得的安全收益也更高。此外,由于ASPA的方法基于RPKI,因此在部署上只需要在RPKI资源库中添加ASPA的信息,所需要的额外开销也相对较少。

04
总结展望

本文主要从ASPA原理上对ASPA缓解路由劫持的作用进行了理论上的分析,说明ASPA解决路径劫持的能力会随着部署程度不断提高。如果需要进一步验证结论的准确性,需要在真实的网络拓扑中进行模拟实验。此外,ASPA是基于商业关系来提供路径的认证,实际互联网的路由策略比较复杂,在部分情况下,也会存在合法的路径也不满足商业关系的要求,在复杂的网络环境下ASPA应该如何表现,也需要在未来的工作中进行进一步的讨论与研究。
参考文献
  1. Azimov, A., Uskov, E., Bush, R., Snijders, J., Housley, R., and B. Maddison, "A Profile for Autonomous System Provider Authorization", Work in Progress, Internet-Draft, draft-ietf-sidrops-aspa-profile-16, 10 July 2023.
  2. Azimov, A., Bogomazov, E., Bush, R., Patel, K., Snijders, J., and K. Sriram, "BGP AS_PATH Verification Based on Autonomous System Provider Authorization (ASPA) Objects", Work in Progress, Internet-Draft, draft-ietf-sidrops-aspa-verification-16, 29 Augest 2023

 

       

 

原文始发于微信公众号(风眼实验室):ASPA缓解路径劫持能力分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月5日22:35:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ASPA缓解路径劫持能力分析https://cn-sec.com/archives/2368583.html

发表评论

匿名网友 填写信息