Что же всё-таки случилось с TPB

в 16:08, , рубрики: BGP, The Pirate Bay, информационная безопасность, КНДР, коммунизм, маршрутизация, Сетевые технологии, Телекомы, файлообмен, метки: , , , , ,

Недавно в интернетах вызвала бурное обсуждение информация, что The Pirate Bay захостился в Северной Корее и это якобы подтверждалось трассировкой и таблицами BGP. Довольно скоро появилось опровержение (1, 2) с подробным техническим разбором. Изначально я хотел перевести статью по ссылке, но решил написать свою, с исследованием ситуации.
Что же всё таки случилось с TPB

Итак, пускаем traceroute на thepiratebay.se:

sudo traceroute thepiratebay.se
traceroute to thepiratebay.se (194.71.107.15), 30 hops max, 60 byte packets
1 91.232.0.1 (91.232.0.1) 0.327 ms 0.396 ms 0.448 ms
2 94.76.105.37.freenet.com.ua (94.76.105.37) 0.187 ms 0.212 ms 0.243 ms
3 94.76.105.137.freenet.com.ua (94.76.105.137) 0.705 ms 0.738 ms 0.783 ms
4 * * *
5 ams-ix.as39138.net (195.69.147.245) 41.191 ms 41.510 ms 41.820 ms
6 * * *
7 xe-3-2.r02.dsdfge01.de.bb.gin.ntt.net (129.250.5.174) 44.582 ms 44.318 ms 45.124 ms
8 xe-0-3-0-6.r02.amstnl02.nl.bb.gin.ntt.net (129.250.2.64) 45.462 ms 45.728 ms 47.038 ms
9 xe-0.sprint.amstnl02.nl.bb.gin.ntt.net (129.250.9.50) 50.189 ms 50.179 ms 50.175 ms
10 sl-bb21-ams-0-0-0.sprintlink.net (217.149.32.206) 52.468 ms 51.389 ms 55.655 ms
11 sl-bb23-lon-0-4-0-0.sprintlink.net (213.206.129.143) 64.725 ms 64.745 ms 64.741 ms
12 sl-crs2-lon-0-8-0-0.sprintlink.net (213.206.128.184) 64.529 ms 63.331 ms 63.316 ms
13 sl-crs1-nyc-0-5-2-0.sprintlink.net (144.232.9.163) 124.478 ms 124.467 ms 124.456 ms
14 144.232.5.216 (144.232.5.216) 144.236 ms 144.301 ms 144.221 ms
15 sl-crs1-akr-0-3-0-0.sprintlink.net (144.232.18.59) 144.129 ms 144.111 ms 148.600 ms
16 144.232.1.73 (144.232.1.73) 151.939 ms 151.940 ms 151.925 ms
17 144.232.11.17 (144.232.11.17) 189.222 ms 189.223 ms 189.167 ms
18 144.232.12.41 (144.232.12.41) 197.121 ms 193.412 ms 193.377 ms
19 144.232.7.124 (144.232.7.124) 196.889 ms 196.110 ms 196.087 ms
20 sl-st20-sj-0-0-0.sprintlink.net (144.232.18.106) 200.195 ms 200.205 ms 200.190 ms
21 sl-china6-192107-0.sprintlink.net (144.223.242.82) 443.512 ms 443.504 ms 443.475 ms
22 219.158.32.174 (219.158.32.174) 493.977 ms 493.961 ms 493.941 ms
23 175.45.177.217 (175.45.177.217) 501.857 ms * *
24 * * *

IP 175.45.177.217 принадлежит северокорейскому ISP STAR-KP, кроме того, присутствует характерная задержка в 500мс.
Автор вышеуказанной статьи пускал трассировку на 175.45.177.217 и получил совершенно другой путь, что вызвало первые подозрения. У меня путь получился такой же.

Скрытый текст

sudo traceroute 175.45.177.217
traceroute to 175.45.177.217 (175.45.177.217), 30 hops max, 60 byte packets
1 91.232.0.1 (91.232.0.1) 0.423 ms 0.490 ms 0.552 ms
2 94.76.105.37.freenet.com.ua (94.76.105.37) 0.192 ms 0.271 ms 0.298 ms
3 94.76.105.137.freenet.com.ua (94.76.105.137) 65.005 ms 65.057 ms 65.056 ms
4 * * *
5 xe-5-1-0-xcr2.fra.cw.net (62.208.212.141) 26.213 ms 26.223 ms 26.218 ms
6 ae0-xcr1.fra.cw.net (195.2.30.25) 115.686 ms 116.726 ms 115.208 ms
7 ae3-xcr1.prp.cw.net (195.2.9.45) 35.207 ms 35.172 ms 35.233 ms
8 xe-7-1-0-xcr1.ash.cw.net (195.2.25.193) 115.546 ms xe-4-1-0-xcr1.ash.cw.net (195.2.21.70) 114.006 ms 113.969 ms
9 144.228.205.5 (144.228.205.5) 120.730 ms 120.726 ms 120.717 ms
10 sl-crs1-dc-0-13-0-0.sprintlink.net (144.232.19.231) 120.586 ms 120.582 ms sl-crs2-dc-0-13-0-0.sprintlink.net (144.232.25.14) 120.525 ms
11 sl-crs2-dc-0-0-0-1.sprintlink.net (144.232.18.185) 140.040 ms sl-crs1-dc-0-0-0-1.sprintlink.net (144.232.18.201) 139.569 ms sl-crs2-dc-0-0-0-1.sprintlink.net (144.232.18.185) 140.005 ms
12 144.232.11.190 (144.232.11.190) 159.813 ms sl-crs1-kc-0-0-0-2.sprintlink.net (144.232.18.112) 160.880 ms 144.232.11.190 (144.232.11.190) 159.780 ms
13 144.232.1.99 (144.232.1.99) 149.355 ms 144.232.1.101 (144.232.1.101) 151.134 ms 151.505 ms
14 144.232.11.17 (144.232.11.17) 186.236 ms 186.494 ms 144.232.11.19 (144.232.11.19) 187.472 ms
15 144.232.12.43 (144.232.12.43) 188.385 ms 188.818 ms 144.232.12.41 (144.232.12.41) 222.972 ms
16 144.232.7.126 (144.232.7.126) 188.317 ms 144.232.7.124 (144.232.7.124) 187.952 ms 188.084 ms
17 sl-st20-sj-0-0-0.sprintlink.net (144.232.18.106) 187.673 ms 187.906 ms sl-st20-sj-13-0-0.sprintlink.net (144.232.9.58) 187.636 ms
18 sl-china6-192107-0.sprintlink.net (144.223.242.82) 345.228 ms 345.122 ms 345.117 ms
19 219.158.32.174 (219.158.32.174) 439.681 ms 412.880 ms 409.919 ms
20 175.45.177.194 (175.45.177.194) 410.036 ms * *

А вот на третий с конца IP трассировка идёт всё-таки правильная, через Китай. Ниже я обьясню подробнее этот момент.

Скрытый текст

traceroute 219.158.32.174
traceroute to 219.158.32.174 (219.158.32.174), 30 hops max, 60 byte packets
1 91.232.0.1 (91.232.0.1) 0.384 ms 0.457 ms 0.497 ms
2 94.76.105.37.freenet.com.ua (94.76.105.37) 0.210 ms 0.213 ms 0.274 ms
3 94.76.105.137.freenet.com.ua (94.76.105.137) 0.426 ms 0.465 ms 0.505 ms
4 freenet1.br01-kiev-vlan3959.top.net.ua (77.88.200.245) 0.641 ms * *
5 xe-5-1-0-xcr2.fra.cw.net (62.208.212.141) 26.253 ms 26.248 ms 26.238 ms
6 ae0-xcr1.fra.cw.net (195.2.30.25) 181.754 ms 181.640 ms 181.624 ms
7 ae3-xcr1.prp.cw.net (195.2.9.45) 188.904 ms 179.051 ms 179.060 ms
8 xe-7-1-0-xcr1.ash.cw.net (195.2.25.193) 115.992 ms 114.569 ms 115.978 ms
9 xe-3-2-0-xcr1.lax.cw.net (195.2.28.50) 177.066 ms 177.071 ms 177.062 ms
10 china-unicom-gw.lax.cw.net (195.2.22.54) 220.911 ms 220.917 ms 220.906 ms
11 219.158.25.21 (219.158.25.21) 457.292 ms 457.299 ms *
12 * * *

Теперь смотрим маршрут к TPB в BGP таблице.

#sh ip bgp 194.71.107.15
BGP routing table entry for 194.71.107.0/24, version 6376408
Paths: (1 available, best #1, table default)
Multipath: eBGP
  Advertised to update-groups:
     34         35         36        
  21011 39138 22351 131279 51040
    77.88.200.245 from 77.88.200.245 (88.81.250.22)
      Origin IGP, localpref 100, valid, external, best
      Community: 21011:400 21011:6777 21011:64528

И обращаем внимание на AS_PATH:
AS51040 — TPB, AS131279 — Северная Корея, AS22351 — Intelsat, AS39138 — rrbone. На первый взляд всё «правильно» — TPB анонсирует свои сети STAR-KP, корейцы анонсируют их Intelsat и так далее.
Однако давайте же посмотрим маршруты к самой AS131279

#sh ip bgp | inc 131279
*> 175.45.176.0/24  77.88.200.245                          0 21011 1273 1239 4837 131279 ?
*> 175.45.177.0/24  77.88.200.245                          0 21011 1273 1239 4837 131279 ?
*> 175.45.178.0/24  77.88.200.245                          0 21011 1273 1239 4837 131279 ?
*> 175.45.179.0/24  77.88.200.245                          0 21011 1273 1239 4837 131279 ?

Так вот, у STAR-KP единственный аплинк — China Unicom (AS4837). Никаких пирингов с Intelsat или ещё кем-то у них нет. На всякий случай уточню — такую же информацию показывают все looking glass'ы. На этом этапе уже очевидно, что TPB заанонсили свои сети с «левым» AS_PATH и Северная Корея тут вообще не при делах. Настоящий их аплинк — немецкий провайдер rrbone (AS39138). И, скорее всего, там есть «свои» люди, которые разрешили в фильтрах такое.

Теперь посмотрим, что вообще анонсирует rrbone в Интернет:

#sh ip bgp | inc 39138
*> 5.61.128.0/22    77.88.200.245                          0 21011 39138 58243 ?
*> 5.61.132.0/22    77.88.200.245                          0 21011 39138 58243 ?
*> 5.61.136.0/22    77.88.200.245                          0 21011 39138 58243 ?
*> 5.61.140.0/22    77.88.200.245                          0 21011 39138 58243 ?
*> 31.172.0.0/17    89.252.35.162                 101      0 35297 1299 2914 39138 39138 39138 ?
*                   77.88.200.245                          0 21011 39138 ?
*> 83.243.0.0/21    89.252.35.162                 101      0 35297 1299 2914 39138 39138 39138 ?
*                   77.88.200.245                          0 21011 39138 ?
*> 184.164.242.0/24 77.88.200.245                          0 21011 1273 174 2637 47065 39138 47065 i
*> 184.164.244.0/24 77.88.200.245                          0 21011 3549 7922 88 88 47065 39138 47065 i
*> 194.71.107.0     77.88.200.245                          0 21011 39138 22351 131279 51040 i
*  195.182.2.0      77.88.200.245                          0 21011 39138 ?
*>                  89.252.35.162                 101      0 35297 9031 3549 4436 23352 39138 i

Удивительно, но они не анонсируют ни одной сети Intelsat или STAR-KP. Только одинокий маршрут к TPB со странным AS_PATH.
Снова посмотрев на трассу к thepiratebay.se, можно делать вывод, что последний настоящий хоп — ams-ix.as39138.net (195.69.147.245). Шестой хоп (не отвечает) — шлюз TPB, и дальше полностью подделанная трасса. Это может быть пачка виртуалок на рабочем тазике Фальквинге. На самом деле, TPB хостится где-то в Германии или, возможно, в другой европейской стране, но уж никак не в Северной Корее.

Выводы

1. Само по себе подделывание icmp ответов — вещь относительно легко выполнимая (в Интернете практически никто не проверяет source ip) и безобидная, ничего от этого не сломается.
2. Подделывание AS_PATH — уже серьёзная вещь. У TPB, очевидно, есть свои люди в rrbone, которые поправили фильтр, чтоб разрешить такое непотребство. Пока TPB проанонсили туда только свою сеть — как бы всё в порядке, однако если фильтр пропустит другие сети, начнутся серьёзные проблемы. Так можно отрезать от Интернета, например, всю Северную Корею (будет доступна только из Китая, где короче AS_PATH). И подобным образом можно серьёзно поломать Интернет, или же преднамеренно отключить отдельно взятую страну (начинающим кровавым диктаторам на заметку).
3. Почему к TPB и к предпоследнему хопу (175.45.177.217) трассы получаются то разные, то одинаковые? Все пути к Северной Корее идут через Китай, а вот к Китаю уже есть разные пути, и от разных точек мира трассы туда могут быть разные. TPB взяли для подделки одну из них, у меня она совпала с реальной, у кого-то может не совпасть.
4. Почему TPB не могли подделать трассировку к нескольким последним хопам? Для этого им пришлось бы анонсировать чужие сети. Даже если бы фильтры у rrbone такое пропустили, это сломало бы маршрутизацию к проанонсированым сетям. Инцидент бы начали разбирать и лавочку пришлось бы прикрыть.

Автор: Levor

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js