Segala-galanya sangat buruk atau jenis pemintasan lalu lintas baharu

13 Mac kepada kumpulan kerja anti-penyalahgunaan RIPE satu tawaran telah diterima anggap rampasan BGP (hjjack) sebagai pelanggaran dasar RIPE. Jika cadangan itu diterima, penyedia Internet yang diserang oleh pemintasan lalu lintas akan berpeluang menghantar permintaan khas untuk mendedahkan penyerang. Jika pasukan penyemak mengumpul bukti sokongan yang mencukupi, LIR yang menjadi sumber pintasan BGP akan dianggap sebagai penceroboh dan boleh dilucutkan status LIRnya. Terdapat juga beberapa hujah terhadap ini perubahan.

Dalam penerbitan ini kami ingin menunjukkan contoh serangan yang bukan sahaja penyerang sebenar dipersoalkan, tetapi juga keseluruhan senarai awalan yang terjejas. Lebih-lebih lagi, serangan sedemikian sekali lagi menimbulkan persoalan tentang motif pemintasan masa depan jenis trafik ini.

Sejak beberapa tahun yang lalu, hanya konflik seperti MOAS (Multiple Origin Autonomous System) telah dibincangkan dalam akhbar sebagai pemintasan BGP. MOAS ialah kes khas di mana dua sistem autonomi berbeza mengiklankan awalan bercanggah dengan ASN yang sepadan dalam AS_PATH (ASN pertama dalam AS_PATH, selepas ini dirujuk sebagai ASN asal). Walau bagaimanapun, kita boleh menamakan sekurang-kurangnya 3 jenis tambahan pintasan lalu lintas, membenarkan penyerang memanipulasi atribut AS_PATH untuk pelbagai tujuan, termasuk memintas pendekatan moden untuk penapisan dan pemantauan. Jenis serangan yang diketahui Pilosova-Kapely - jenis pemintasan yang terakhir, tetapi tidak penting sama sekali. Ada kemungkinan bahawa ini adalah jenis serangan yang telah kita lihat sejak beberapa minggu lalu. Peristiwa sedemikian mempunyai sifat yang boleh difahami dan akibat yang agak serius.

Mereka yang mencari versi TL;DR boleh menatal ke sari kata "Perfect Attack".

Latar belakang rangkaian

(untuk membantu anda memahami dengan lebih baik proses yang terlibat dalam kejadian ini)

Jika anda ingin menghantar paket dan anda mempunyai berbilang awalan dalam jadual penghalaan yang mengandungi alamat IP destinasi, maka anda akan menggunakan laluan untuk awalan dengan panjang terpanjang. Jika terdapat beberapa laluan berbeza untuk awalan yang sama dalam jadual penghalaan, anda akan memilih yang terbaik (mengikut mekanisme pemilihan laluan terbaik).

Pendekatan penapisan dan pemantauan sedia ada cuba menganalisis laluan dan membuat keputusan dengan menganalisis atribut AS_PATH. Penghala boleh menukar atribut ini kepada sebarang nilai semasa pengiklanan. Hanya menambah ASN pemilik pada permulaan AS_PATH (sebagai ASN asal) mungkin cukup untuk memintas mekanisme semakan asal semasa. Lebih-lebih lagi, jika terdapat laluan dari ASN yang diserang kepada anda, anda boleh mengekstrak dan menggunakan AS_PATH laluan ini dalam iklan anda yang lain. Sebarang pemeriksaan pengesahan AS_PATH sahaja untuk pengumuman yang anda buat akhirnya akan lulus.

Masih terdapat beberapa batasan yang patut disebutkan. Pertama, dalam kes penapisan awalan oleh pembekal huluan, laluan anda mungkin masih ditapis (walaupun dengan AS_PATH yang betul) jika awalan itu bukan kepunyaan kon klien anda yang dikonfigurasikan di huluan. Kedua, AS_PATH yang sah boleh menjadi tidak sah jika laluan yang dibuat diiklankan dalam arah yang salah dan, dengan itu, melanggar dasar penghalaan. Akhir sekali, mana-mana laluan dengan awalan yang melanggar panjang ROA boleh dianggap tidak sah.

Insiden

Beberapa minggu yang lalu kami menerima aduan daripada salah seorang pengguna kami. Kami melihat laluan dengan awalan ASN dan /25 asalnya, manakala pengguna mendakwa bahawa dia tidak mengiklankannya.

TABLE_DUMP2|1554076803|B|xxx|265466|78.163.7.0/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.7.128/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.18.0/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.18.128/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.226.0/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.226.128/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.164.7.0/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.164.7.128/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||

Contoh pengumuman awal April 2019

NTT dalam laluan untuk awalan /25 menjadikannya sangat mencurigakan. LG NTT tidak mengetahui laluan ini semasa kejadian. Jadi ya, sesetengah pengendali mencipta keseluruhan AS_PATH untuk awalan ini! Memeriksa penghala lain mendedahkan satu ASN tertentu: AS263444. Selepas melihat laluan lain dengan sistem autonomi ini, kami menghadapi situasi berikut:

TABLE_DUMP2|1554076800|B|xxx|265466|1.6.36.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.6.38.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.23.143.0/25|265466 262761 263444 22356 6762 9498 9730 45528|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.23.143.128/25|265466 262761 263444 22356 6762 9498 9730 45528|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.24.0.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.24.128.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.26.0.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.26.128.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.64.96.0/20|265466 262761 263444 6762 3491 4760|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.64.112.0/20|265466 262761 263444 6762 3491 4760|IGP|xxx|0|0||NAG||

Cuba teka apa yang salah di sini

Nampaknya seseorang telah mengambil awalan daripada laluan, membahagikannya kepada dua bahagian dan mengiklankan laluan dengan AS_PATH yang sama untuk dua awalan tersebut.

TABLE_DUMP2|1554076800|B|xxx|263444|1.6.36.0/23|263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|263444|1.6.38.0/23|263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|61775|1.6.36.0/23|61775 262761 263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|61775|1.6.38.0/23|61775 262761 263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.6.36.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.6.38.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|28172|1.6.36.0/23|28172 52531 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|28172|1.6.38.0/23|28172 52531 263444 52320 9583|IGP|xxx|0|0||NAG||

Contoh laluan untuk salah satu pasangan awalan berpecah

Beberapa persoalan timbul serentak. Adakah sesiapa yang benar-benar mencuba pemintasan jenis ini dalam amalan? Adakah sesiapa yang mengambil laluan ini? Apakah awalan yang terjejas?

Di sinilah rentetan kegagalan kami bermula dan satu lagi pusingan kekecewaan dengan keadaan semasa kesihatan Internet.

Jalan kegagalan

Perkara pertama dahulu. Bagaimanakah kita boleh menentukan penghala yang menerima laluan yang dipintas sedemikian dan lalu lintas yang boleh dihalakan semula hari ini? Kami fikir kami akan bermula dengan awalan /25 kerana ia "semata-mata tidak boleh mempunyai pengedaran global." Seperti yang anda boleh meneka, kami sangat salah. Metrik ini ternyata terlalu bising dan laluan dengan awalan sedemikian boleh muncul walaupun daripada pengendali Tahap-1. Sebagai contoh, NTT mempunyai kira-kira 50 awalan sedemikian, yang ia edarkan kepada pelanggannya sendiri. Sebaliknya, metrik ini adalah buruk kerana awalan sedemikian boleh ditapis keluar jika pengendali menggunakan menapis awalan kecil, dalam semua arah. Oleh itu, kaedah ini tidak sesuai untuk mencari semua pengendali yang lalu lintasnya diubah hala akibat kejadian sedemikian.

Satu lagi idea bagus yang kami fikir adalah untuk melihat POV. Terutamanya untuk laluan yang melanggar peraturan maxLength ROA yang sepadan. Dengan cara ini kita boleh mencari bilangan ASN asal yang berbeza dengan status Tidak Sah yang kelihatan kepada AS tertentu. Walau bagaimanapun, terdapat masalah "kecil". Purata (median dan mod) nombor ini (bilangan ASN asal yang berbeza) adalah kira-kira 150 dan, walaupun kita menapis awalan kecil, ia kekal di atas 70. Keadaan ini mempunyai penjelasan yang sangat mudah: hanya terdapat beberapa pengendali yang sudah menggunakan penapis ROA dengan dasar "set semula laluan tidak sah" di pintu masuk, supaya di mana-mana laluan dengan pelanggaran ROA muncul di dunia nyata, ia boleh disebarkan ke semua arah.

Dua pendekatan terakhir membolehkan kami mencari pengendali yang melihat kejadian kami (kerana ia agak besar), tetapi secara umum ia tidak berkenaan. Baiklah, tetapi bolehkah kita mencari penceroboh itu? Apakah ciri umum manipulasi AS_PATH ini? Terdapat beberapa andaian asas:

  • Awalan tidak pernah dilihat di mana-mana sebelum ini;
  • ASN asal (peringatan: ASN pertama dalam AS_PATH) adalah sah;
  • ASN terakhir dalam AS_PATH ialah ASN penyerang (sekiranya jirannya menyemak ASN jiran pada semua laluan masuk);
  • Serangan itu berasal dari penyedia tunggal.

Jika semua andaian adalah betul, maka semua laluan yang salah akan menunjukkan ASN penyerang (kecuali ASN asal) dan, dengan itu, ini adalah titik "kritikal". Antara perampas sebenar ialah AS263444, walaupun terdapat yang lain. Walaupun kami membuang laluan insiden daripada pertimbangan. kenapa? Titik kritikal mungkin kekal kritikal walaupun untuk laluan yang betul. Ia boleh sama ada akibat ketersambungan yang lemah di rantau atau pengehadan dalam keterlihatan kita sendiri.

Akibatnya, terdapat cara untuk mengesan penyerang, tetapi hanya jika semua syarat di atas dipenuhi dan hanya apabila pemintasan cukup besar untuk melepasi ambang pemantauan. Jika beberapa faktor ini tidak dipenuhi, bolehkah kita mengenal pasti awalan yang mengalami pemintasan tersebut? Untuk pengendali tertentu - ya.

Apabila penyerang mencipta laluan yang lebih khusus, awalan sedemikian tidak diiklankan oleh pemilik sebenar. Jika anda mempunyai senarai dinamik semua awalan daripadanya, maka anda boleh membuat perbandingan dan mencari laluan yang lebih spesifik yang diherotkan. Kami mengumpulkan senarai awalan ini menggunakan sesi BGP kami, kerana kami diberikan bukan sahaja senarai penuh laluan yang boleh dilihat oleh pengendali sekarang, tetapi juga senarai semua awalan yang ingin diiklankan kepada dunia. Malangnya, kini terdapat beberapa dozen pengguna Radar yang tidak melengkapkan bahagian terakhir dengan betul. Kami akan memberitahu mereka sebentar lagi dan cuba menyelesaikan masalah ini. Orang lain boleh menyertai sistem pemantauan kami sekarang.

Jika kami kembali kepada kejadian asal, kedua-dua penyerang dan kawasan pengedaran telah dikesan oleh kami dengan mencari titik kritikal. Anehnya, AS263444 tidak menghantar laluan rekaan kepada semua pelanggannya. Walaupun ada saat yang asing.

BGP4MP|1554905421|A|xxx|263444|178.248.236.0/24|263444 6762 197068|IGP|xxx|0|0|13106:12832 22356:6453 65444:20000|NAG||
BGP4MP|1554905421|A|xxx|263444|178.248.237.0/24|263444 6762 197068|IGP|xxx|0|0|13106:12832 22356:6453 65444:20000|NAG||

Contoh terbaru percubaan untuk memintas ruang alamat kami

Apabila yang lebih khusus dicipta untuk awalan kami, AS_PATH yang dicipta khas telah digunakan. Walau bagaimanapun, AS_PATH ini tidak boleh diambil dari mana-mana laluan kami sebelum ini. Kami bahkan tidak mempunyai komunikasi dengan AS6762. Melihat laluan lain dalam kejadian itu, sesetengah daripadanya mempunyai AS_PATH sebenar yang digunakan sebelum ini, manakala yang lain tidak, walaupun ia kelihatan seperti yang sebenar. Menukar AS_PATH juga tidak masuk akal, kerana trafik akan diubah hala kepada penyerang, tetapi laluan dengan AS_PATH yang "buruk" boleh ditapis oleh ASPA atau mana-mana mekanisme pemeriksaan lain. Di sini kita fikirkan tentang motivasi perampas. Pada masa ini kami tidak mempunyai maklumat yang mencukupi untuk mengesahkan bahawa insiden ini adalah serangan yang dirancang. Walau bagaimanapun, ia adalah mungkin. Cuba kita bayangkan, walaupun masih hipotesis, tetapi berpotensi agak nyata, suatu situasi.

Serangan Sempurna

Apa yang kita ada? Katakan anda ialah pembekal transit laluan penyiaran untuk pelanggan anda. Jika pelanggan anda mempunyai berbilang kehadiran (multihome), maka anda hanya akan menerima sebahagian daripada trafik mereka. Tetapi lebih banyak trafik, lebih banyak pendapatan anda. Jadi, jika anda mula mengiklankan awalan subnet bagi laluan yang sama ini dengan AS_PATH yang sama, anda akan menerima trafik mereka yang selebihnya. Akibatnya, baki wang.

Adakah ROA akan membantu di sini? Mungkin ya, jika anda memutuskan untuk berhenti menggunakannya sepenuhnya panjang maksimum. Di samping itu, adalah sangat tidak diingini untuk mempunyai rekod ROA dengan awalan bersilang. Bagi sesetengah pengendali, sekatan sedemikian tidak boleh diterima.

Memandangkan mekanisme keselamatan penghalaan lain, ASPA juga tidak akan membantu dalam kes ini (kerana ia menggunakan AS_PATH daripada laluan yang sah). BGPSec masih bukan pilihan yang optimum kerana kadar penerimaan yang rendah dan kemungkinan serangan penurunan taraf yang tinggal.

Jadi kami mempunyai keuntungan yang jelas untuk penyerang dan kekurangan keselamatan. Campuran hebat!

Apa yang perlu saya lakukan?

Langkah yang jelas dan paling drastik ialah menyemak dasar penghalaan semasa anda. Pecahkan ruang alamat anda kepada bahagian terkecil (tiada pertindihan) yang anda ingin iklankan. Tandatangani ROA untuk mereka sahaja, tanpa menggunakan parameter maxLength. Dalam kes ini, POV semasa anda boleh menyelamatkan anda daripada serangan sedemikian. Walau bagaimanapun, sekali lagi, bagi sesetengah pengendali pendekatan ini tidak munasabah kerana penggunaan eksklusif laluan yang lebih khusus. Semua masalah dengan keadaan semasa ROA dan objek laluan akan diterangkan dalam salah satu bahan masa hadapan kami.

Di samping itu, anda boleh cuba memantau pemintasan tersebut. Untuk melakukan ini, kami memerlukan maklumat yang boleh dipercayai tentang awalan anda. Oleh itu, jika anda mengadakan sesi BGP dengan pengumpul kami dan memberikan kami maklumat tentang keterlihatan Internet anda, kami boleh mencari skop untuk insiden lain. Bagi mereka yang belum disambungkan kepada sistem pemantauan kami, sebagai permulaan, senarai laluan hanya dengan awalan anda sudah memadai. Jika anda mempunyai sesi dengan kami, sila semak bahawa semua laluan anda telah dihantar. Malangnya, ini perlu diingat kerana sesetengah pengendali melupakan satu atau dua awalan dan dengan itu mengganggu kaedah carian kami. Jika dilakukan dengan betul, kami akan mempunyai data yang boleh dipercayai tentang awalan anda, yang pada masa hadapan akan membantu kami mengenal pasti dan mengesan jenis pemintasan trafik ini (dan lain-lain) secara automatik untuk ruang alamat anda.

Jika anda menyedari tentang pemintasan trafik anda dalam masa nyata, anda boleh cuba mengatasinya sendiri. Pendekatan pertama ialah mengiklankan laluan dengan awalan yang lebih khusus ini sendiri. Sekiranya berlaku serangan baharu pada awalan ini, ulangi.

Pendekatan kedua ialah menghukum penyerang dan mereka yang dia adalah titik kritikal (untuk laluan yang baik) dengan memotong akses laluan anda kepada penyerang. Ini boleh dilakukan dengan menambahkan ASN penyerang ke AS_PATH laluan lama anda dan dengan itu memaksa mereka untuk mengelakkan AS itu menggunakan mekanisme pengesanan gelung terbina dalam dalam BGP untuk kebaikan anda sendiri.

Sumber: www.habr.com

Tambah komen