BGP前缀劫持是针对Internet组织的持久威胁,原因是域间路由系统缺乏授权和身份验证机制。

  仅在2017年,数千起路由事件导致代价高昂的中断和信息拦截,而问题的确切程度未知。尽管在过去20年中已经进行了大量研究以保护网络免受BGP劫持(检测,反应性缓解,主动防御)的影响,但除了RPKI之外,大多数提议的解决方案还没有找到适合工业的方式。虽然它的部署仍然非常有限。因此,网络仍然容易受到劫持事件的影响,这些事件通常需要数小时(甚至数天)才能得到解决。

  在这篇文章中,我们介绍了ARTEMIS(自动和实时dEtection和MItigation系统),这是一个可以被运营商用来保护自己的网络免受BGP前缀劫持事件的防御系统。使用真实实验,我们已经证明ARTEMIS可以在几秒钟内检测到前缀劫持事件并在一分钟内中和它们;比目前的做法快几个数量级。

  关键点:

  ARTEMIS是一种针对BGP前缀劫持的防御系统,包括监控,检测和缓解服务,并在内部运行。它将劫持检测和缓解时间从数小时/天减少到几秒或几分钟。系统可配置为手动和自动缓解。

  ARTEMIS概述

  ARTEMIS基于AS本身运行的全面,准确和快速检测,可以灵活,快速地缓解劫持事件。它由AS用于保护其自己的前缀,并且作为在网络运营中心(NOC)中的VM/容器上运行的软件在内部运行。运营商只需要配置ARTEMIS,提供有关已宣布的网络前缀及其邻居的信息(配置文件;其生成可以使用来自IRR,RPKIDB和本地路由器的信息自动生成)。

  该系统由三个主要模块/服务组成:

  监视,从公共监视器(例如,RIPERIS和RouteView)和本地路由器接收信息。

  检测,通过将监视信息与配置文件(“基础事实”)进行比较来识别劫持事件。

  减缓,经由在内部自定义(或任选外包)机制,以所检测到的事件劫持自动或手动反应。

  图1-ARTEMIS系统概述

  ARTEMIS可以检测到简单的劫持(例如,涉及假源或受保护网络的上游AS)和高级劫持(例如,子前缀,中间人或路径操纵攻击)。图2描绘了ARTEMIS如何在后一种情况下操作的示例(使用伪链接进行路径操作)。

  图2-ARTEMIS操作示例:通过伪链接+子前缀进行路径操作

  监控

  ARTEMIS通过利用普遍公开的BGP监控服务(例如RIPERIS和RouteViews(以及他们最近获得的实时流功能))持续监控互联网控制平面。

  具体来说,它从以下地址接收实时BGP更新:

  RIPERIS使用socket.io接口进行监视

  RouteViews和RIPERIS监视器,使用BGPStreamAPI和本地BGP路由器通过exaBGP和iBGP。

  在我们的工作中,我们表明现有的公共监控基础设施可以实现对所有有影响力的劫持事件的实时检测。实际上,虽然劫持者可以采用多种手段实现隐身,即BGP监视器看不到劫持,但这只能以有限的影响(不到AS级污染的1-2%)为代价来实现。

  将更多监视器转换为实时流式传输将进一步提高全局可见性并缩短检测时间。

  发现

  检测通过交叉检查监控模块/服务接收的BGP更新,针对本地配置文件(例如,源/邻居ASN和已公布的前缀)和知识库(包含例如观察到的AS级链路和相关元数据)由ARTEMIS自动创建并存储在本地。

  ARTEMIS检测方法是:

  全面的检测控制平面上可见的所有可能的攻击类型。准确,为基本劫持类型生成零误报(FP)/否定(FN)(例如,虚假起源/上游公告,或任何类型的子前缀劫持),以及非常低的可调FP-FN权衡其他(例如,路径操纵攻击)。具体而言,基于使用PEERING测试平台的实际实验,我们已经证明实时监测和检测的阶段只需几秒钟,这与现有检测系统有所不同(见图3)。

  图3-ARTEMIS检测延迟(箱线图;y轴);字母(x轴)表示用作受害者和劫持者的不同PoP

  减轻

  利用可靠的检测信息,ARTEMIS可以自动缓解劫持事件。

  检测后可立即触发缓解;如果需要,也可以手动缓解(例如,等待操作员批准)。此外,缓解可以是灵活的,例如,可根据前缀,劫持类型,观察到的影响等进行配置。

  目前,ARTEMIS提供两种主要的缓解方法。第一种方法基于“自己动手”的方法,网络通过前缀解聚反应,以便将流量吸引回自己的路由器。此技术对所有未经过滤的前缀都有效,特定于/24。

  对于/24前缀的攻击,ARTEMIS可以启用类似于当前提供的DDoS保护即服务的缓解解决方案。特别是,受影响的AS可以请求其他(协作)网络从其自己的场所(多个源AS)宣布被劫持的前缀,然后将它们吸引的流量隧道传送回受害者(例如,通过受害者的上游提供商)。

  正如我们在图4中所示,基于我们的PEERING实验,劫持的监测-检测-缓解周期最多需要1分钟。因此,脱离目前的人工干预方法,将重点放在网络本身,大大减少了防御对策的反应时间。

  图4-PEERING试验台的真实实验;检测和缓解周期

  最先进的

  网络运营商目前使用两种主要的防御类型处理BGP前缀劫持:主动(如RPKI)和被动(如第三方检测服务),提出运营商需要手动验证和解决的警报(例如,通过前缀解除聚合)或联系其他网络进行过滤)。

  一方面,RPKI和BGPsec等技术只有在全局部署时才能完全有效(并且仍然可能无法阻止所有潜在的攻击);实际上,由于相关的技术和财务成本/风险,以及有限采用和部署之间的循环依赖性,运营商不愿意部署它们(目前只有不到10%的前缀由ROA承保)(见图5)。

​  图5-不使用RPKI的原因

  另一方面,当前的第三方服务存在多个问题,例如:

  全面性有限,因为它们只检测到简单的攻击。

  FP和FN方面的准确度有限。

  延迟解决劫持问题。

  妥协隐私和共享私人信息的需要(例如网络的路由策略)。

  因此,在这种制度下,前缀劫持仍会影响网络的关键时间段,最长可达数天(见图6),对受害者网络的成本和声誉造成严重后果。

专家告诉你!如何避免黑客BGP劫持?的更多相关文章

  1. 4G手机网络通信是如何被黑客远程劫持的?

    你的4G手机网络通信是如何被黑客远程劫持的?如果您的移动运营商提供LTE(也称为4G网络),则需要小心,因为您的网络通信可能会被远程劫持. 中国一组研究人员发现了无处不在的LTE移动设备标准中的一些关 ...

  2. 如何使您的Wifi路由器更安全,网络安全专家告诉您!

    中国知名“黑客”教父,网络安全专家郭盛华曾说过,Wifi路由器这样设置最安全.因为无线路由器都有不同的接口,不同的设置方式以及可以调整的不同设置.在本文中,我将探讨TP-LinkArcher的界面.您 ...

  3. Google DNS劫持背后的技术分析

    0×00 背景 最近世界真是越来越不太平了,尤其是对于大部分普通人而言.昨天又传来噩耗,根据网络监测公司BGPMon,Google的公开DNS服务器 IP 8.8.8.8被劫持到了委内瑞拉和巴西超过2 ...

  4. MongoDB数据库遭大规模勒索攻击,被劫持26000多台服务器 #精选GITHUBMYSQL

    昨天,一个大新闻爆出,MongoDB数据库叕被攻击了.就在上周末,三个黑客团伙劫持了MongoDB逾26000多台服务器,其中规模最大的一组超过22000台. “MongoDB启示录”再临?   此次 ...

  5. BGP的那些安全痛点(转)

    0x00 BGP(RFC 1771. RFC 4271)定义 全称是Border Gateway Protocol, 对应中文是边界网关协议,最新版本是BGPv4. BGP是互联网上一个核心的互联网去 ...

  6. ISP路由表分发中的AS与BGP

    ➠更多技术干货请戳:听云博客 摘要 本文面向,初级网络工程师,数据挖掘工程师,涉及EGP(外部网关协议; Exterior Gateway Protocol),IGP(内部网关协议; Interior ...

  7. Mininet实验 基于Mininet实现BGP路径挟持攻击实验

    参考:基于Mininet实现BGP路径挟持攻击实验 实验目的: 掌握如何mininet内模拟AS. 掌握BGP路径挟持的原理和分析过程. 实验原理: 互联网是由相互连接的自治系统AS组成的,通过一个通 ...

  8. CCNP路由实验之七 动态路由之BGP

     CCNP路由实验之七 动态路由之BGP 动态路由协议能够自己主动的发现远程网络,仅仅要网络拓扑结构发生了变化,路由器就会相互交换路由信息,不仅能够自己主动获知新添加的网络,还能够在当前网络连接失 ...

  9. 一个老鸟发的公司内部整理的 Android 学习路线图

    基础工具部分: 中文手册,我猜测是Maven中文手册,可是我并没有找到这样的资源,欢迎知道的朋友告诉我: Android部分有 『第三方库集合』,我没能找到资源地址: 书籍我大多是给的豆瓣链接,如果觉 ...

随机推荐

  1. 【洛谷P2239 螺旋矩阵】

    题目链接 直接看题 一看就很数学 我们不妨来画图 画出几个矩阵,找他们的关系 然后发现 当i==1时,对应的值就是j所对应的值: 当i==n时,所对应的值就是3*n-2-j+1: 当j==1时,所对应 ...

  2. vb语法

    If IsNull(rs(0)) = False Then picPath = rs(0) End If 判断查询数据库结果集是否为null, 如果用rs(0)则会报错,这样获取不到这条记录的null ...

  3. Vuex的安装、使用及注意事项

    使用Vuex的步骤: (1)安装: 1.使用npm安装: 1 npm install vuex  --save 2.使用script标签引入 1 2 3 <script src="/p ...

  4. bp文件错误消除

    代码文件报错, error: unused parameter 'data' [-Werror,-Wunused-parameter]‘ 按提示在cflags中加入: "-Wunused-p ...

  5. c++调用c#代码

    // ConsoleApplication1.cpp : 此文件包含 "main" 函数.程序执行将在此处开始并结束. // #include "pch.h" ...

  6. ubuntu环境下重启mysql服务报错“No directory, logging in with HOME=-”

    前提:使用系统的环境 3.13.0-24-generic mysql的版本:5.6.33 错误描述: 首先用mysqld_safe启动报错如下: root@zabbix-forFunction:~# ...

  7. python时间模块time,时间戳,结构化时间,字符串时间,相互转换,datetime

    time.time() 时间戳 time.localtime() time.localtime() 得到的是一个对象,结构化时间对象 struct_time 通过对象.属性,拿到对应的值 time.g ...

  8. 练习3-python-创造百万条数据库数据

    有时候需求大批量的数据做测试支撑,如果使用传统的添加数据的方式可能比较耗费时间,利用python可以轻松的完成这项任务,还可以后续维护使用脚本. 方法1:insert into table selec ...

  9. go工具链

    1 编辑器 goland 2 GOPATH GOPATH是go的一个环境变量,它以绝对路径提供go的工作目录. go工程的源码存放在${GOPATH}/src目录下,go编译过程中生成的中间文件存放在 ...

  10. Git-第五篇廖雪峰Git教程学习笔记(4)分支

    1.一开始,只有一个主分支(master),HEAD指向Master,而Master指向主分支.现在我们创建dev分支. lfy@lfy-PC MINGW64 /c/fyliu/lfyTemp/git ...