Hech kimga sir emaski, Rossiyada taqiqlangan ma'lumotlar ro'yxatidagi blokirovkalarni nazorat qilish "Inspektor" avtomatlashtirilgan tizimi tomonidan nazorat qilinadi. Bu qanday ishlaydi, bu erda yaxshi yozilgan
To'g'ridan-to'g'ri provayderda o'rnatiladi
“Agent inspektor” moduli “Inspektor” avtomatlashtirilgan tizimining (“Inspektor” AS) tarkibiy elementi hisoblanadi. Ushbu tizim "Axborot, axborot texnologiyalari va axborotni himoya qilish to'g'risida" 15.1 yil 15.4 iyuldagi 27-FZ-sonli Federal qonunining 2006-149-moddalarida belgilangan qoidalar doirasida aloqa operatorlari tomonidan kirishni cheklash talablariga rioya etilishini nazorat qilish uchun mo'ljallangan. ”
"Revizor" ASni yaratishning asosiy maqsadi "Axborot, axborot texnologiyalari va axborotni himoya qilish to'g'risida" 15.1 yil 15.4 iyuldagi 27-FZ-sonli Federal qonunining 2006-149-moddalarida belgilangan talablarga aloqa operatorlarining muvofiqligi monitoringini ta'minlashdan iborat. "taqiqlangan ma'lumotlarga kirish faktlarini aniqlash va taqiqlangan ma'lumotlarga kirishni cheklash uchun huquqbuzarliklar to'g'risida tasdiqlovchi materiallarni (ma'lumotlarni) olish nuqtai nazaridan.
Hammasi bo'lmasa ham, ko'plab provayderlar ushbu qurilmani o'rnatganligini hisobga olsak, mayoq zondlarining katta tarmog'i bo'lishi kerak edi.
Hisoblashdan oldin, keling, nima uchun bu mumkin bo'lishi mumkinligini bilib olaylik.
Bir oz nazariya
Agentlar resurs mavjudligini, shu jumladan HTTP(S) so'rovlari orqali tekshiradi, masalan:
TCP, 14678 > 80, "[SYN] Seq=0"
TCP, 80 > 14678, "[SYN, ACK] Seq=0 Ack=1"
TCP, 14678 > 80, "[ACK] Seq=1 Ack=1"
HTTP, "GET /somepage HTTP/1.1"
TCP, 80 > 14678, "[ACK] Seq=1 Ack=71"
HTTP, "HTTP/1.1 302 Found"
TCP, 14678 > 80, "[FIN, ACK] Seq=71 Ack=479"
TCP, 80 > 14678, "[FIN, ACK] Seq=479 Ack=72"
TCP, 14678 > 80, "[ACK] Seq=72 Ack=480"
So'rov foydali yukdan tashqari, ulanishni o'rnatish bosqichidan ham iborat: almashinuv SYN
и SYN-ACK
, va ulanishni yakunlash bosqichlari: FIN-ACK
.
Taqiqlangan ma'lumotlar reestri blokirovkaning bir nechta turlarini o'z ichiga oladi. Shubhasiz, agar manba IP manzili yoki domen nomi bilan bloklangan bo'lsa, biz hech qanday so'rovlarni ko'rmaymiz. Bu blokirovkaning eng halokatli turlari bo'lib, ular bitta IP-manzildagi barcha resurslarga yoki domendagi barcha ma'lumotlarga kirish imkoniga ega bo'lmasligiga olib keladi. Bloklashning "URL bo'yicha" turi ham mavjud. Bunday holda, filtrlash tizimi aniq nimani blokirovka qilishni aniqlash uchun HTTP so'rov sarlavhasini tahlil qilishi kerak. Va undan oldin, yuqorida ko'rsatilgandek, siz kuzatishga harakat qilishingiz mumkin bo'lgan ulanishni o'rnatish bosqichi bo'lishi kerak, chunki filtr uni o'tkazib yuborishi mumkin.
Buni amalga oshirish uchun siz "URL" va HTTP blokirovkalash turiga ega mos keladigan bepul domenni tanlashingiz kerak, bu filtrlash tizimining ishini osonlashtirish uchun, afzalroq uzoq vaqt davomida tashlab qo'yilgan, agentlardan tashqari begona trafikning kirishini minimallashtirish uchun. Bu vazifa unchalik qiyin emasligi ma'lum bo'ldi, taqiqlangan ma'lumotlar reestrida va har qanday lazzat uchun juda ko'p bepul domenlar mavjud. Shuning uchun, domen sotib olindi va VPS ishlayotgan IP manzillari bilan bog'landi tcpdump
va hisoblash boshlandi.
"Auditorlar" auditi
Men vaqti-vaqti bilan so'rovlar paydo bo'lishini kutgandim, bu mening fikrimcha, nazorat qilinadigan harakatni ko'rsatadi. Men buni umuman ko'rmadim deb aytish mumkin emas, lekin aniq rasm yo'q edi:
Buning ajablanarli joyi yo'q, hatto hech kimga kerak bo'lmagan domenda va hech qachon foydalanilmaydigan IP-da, shunchaki bir tonna keraksiz ma'lumotlar bo'ladi, masalan, zamonaviy Internet. Yaxshiyamki, menga faqat ma'lum bir URL uchun so'rovlar kerak edi, shuning uchun barcha skanerlar va parol krakerlari tezda topildi. Bundan tashqari, shunga o'xshash so'rovlar massasiga asoslanib, suv toshqini qaerda ekanligini tushunish juda oson edi. Keyinchalik, men IP-manzillarning paydo bo'lish chastotasini tuzdim va oldingi bosqichlarda o'tkazib yuborganlarni ajratib, butun yuqori qismini qo'lda bosib o'tdim. Bundan tashqari, men bitta paketda yuborilgan barcha manbalarni kesib tashladim, endi ularning ko'pi yo'q edi. Va bu sodir bo'ldi:
Kichik lirik chekinish. Bir kundan ko'proq vaqt o'tgach, mening hosting provayderim sizning ob'ektlaringizda RKN taqiqlangan ro'yxatidagi resurs mavjud, shuning uchun u bloklanganligini aytib, ancha soddalashtirilgan tarkibga ega xat yubordi. Avvaliga mening hisobim bloklangan deb o'yladim, unday emas. Keyin ular meni allaqachon bilgan narsam haqida ogohlantirmoqda deb o'yladim. Ammo ma'lum bo'lishicha, hoster mening domenim oldida o'z filtrini yoqdi va natijada men ikki marta filtrlashdan o'tdim: provayderlardan va hosterdan. Filtr faqat so'rovlarning oxiridan o'tdi: FIN-ACK
и RST
taqiqlangan URL manzilidagi barcha HTTP-ni kesib tashlash. Yuqoridagi grafikdan ko'rinib turibdiki, birinchi kundan keyin men kamroq ma'lumot ola boshladim, lekin men hali ham uni oldim, bu so'rov manbalarini hisoblash vazifasi uchun etarli edi.
Gapga keling. Menimcha, har kuni ikkita portlash aniq ko'rinadi, birinchisi kichikroq, Moskva vaqti bilan yarim tundan keyin, ikkinchisi ertalab soat 6 ga yaqinroq, kunduzgi soat 12 ga qadar quyruq bilan. Tepalik aynan bir vaqtda sodir bo'lmaydi. Avvaliga men agentlar tomonidan tekshiruvlar vaqti-vaqti bilan amalga oshiriladi degan taxminga asoslanib, faqat shu davrlarda va har bir davrdagi IP manzillarini tanlamoqchi edim. Ammo diqqat bilan o'rganib chiqqandan so'ng, men har soatda bitta so'rovgacha boshqa chastotalar bilan boshqa intervallarga tushadigan davrlarni tezda topdim. Keyin men vaqt zonalari haqida o'yladim va ehtimol bu ular bilan bog'liqdir, keyin umuman tizim global miqyosda sinxronlashtirilmasligi mumkin deb o'yladim. Bundan tashqari, NAT, ehtimol, rol o'ynaydi va bir xil Agent turli ommaviy IP-lardan so'rovlar yuborishi mumkin.
Dastlabki maqsadim aniq bo'lmaganligi sababli, men bir hafta ichida duch kelgan barcha manzillarni sanab chiqdim va oldim - 2791. Bitta manzildan o'rnatilgan TCP seanslari soni o'rtacha 4 ta, medianasi 2. Har bir manzil bo'yicha eng yaxshi seanslar: 464, 231, 149, 83, 77. Namunaning 95% dan maksimali har bir manzil uchun 8 seans. Median unchalik yuqori emas, shuni eslatib o'tamanki, grafik aniq kunlik davriylikni ko'rsatadi, shuning uchun 4 kun ichida 8 dan 7 gacha bir narsa kutish mumkin. Agar biz bir marta sodir bo'lgan barcha seanslarni tashlasak, biz 5 ga teng medianani olamiz. Lekin men ularni aniq mezon asosida istisno qila olmadim. Aksincha, tasodifiy tekshirish ularning taqiqlangan resurs so'rovlari bilan bog'liqligini ko'rsatdi.
Manzillar manzillardir, lekin Internetda avtonom tizimlar - AS muhimroq bo'lib chiqdi 1510, har bir AS uchun medianasi 2 boʻlgan oʻrtacha 1 ta manzil. AS uchun eng yaxshi manzillar: 288, 77, 66, 39, 27. Namunaning maksimal 95%i AS uchun 4 ta manzil. Bu erda mediana kutilmoqda - har bir provayder uchun bitta Agent. Biz ham yuqori o'rinni kutmoqdamiz - unda katta futbolchilar bor. Katta tarmoqda agentlar, ehtimol, operator mavjud bo'lgan har bir mintaqada joylashgan bo'lishi kerak va NAT haqida unutmang. Agar biz uni mamlakat bo'yicha oladigan bo'lsak, maksimallar: RIPE NCC emas, balki boshqa mintaqalardan 1409 - RU, 42 - UA, 23 - CZ, 36. Rossiyadan tashqaridagi so'rovlar e'tiborni tortadi. Bu, ehtimol, ma'lumotlarni to'ldirishda geolokatsiya xatolari yoki ro'yxatga oluvchi xatolar bilan izohlanishi mumkin. Yoki Rossiya kompaniyasining rus ildizlariga ega bo'lmasligi yoki xorijiy vakolatxonaga ega bo'lishi osonroq bo'lishi mumkin, bu RIPE NCC xorijiy tashkiloti bilan ishlashda tabiiydir. Ba'zi qismi, shubhasiz, ortiqcha, lekin uni ajratish ishonchli qiyin, chunki resurs blokirovka ostida, ikkinchi kundan boshlab esa ikki marta blokirovka ostida va ko'pchilik seanslar bir nechta xizmat paketlarini almashtirishdan iborat. Keling, bu kichik bir qism ekanligiga rozi bo'laylik.
Bu raqamlarni allaqachon Rossiyadagi provayderlar soni bilan solishtirish mumkin.
DPI haqida
Mening hosting provayderim ikkinchi kundan boshlab filtrni yoqganiga qaramay, birinchi kundagi ma'lumotlarga asoslanib, blokirovka muvaffaqiyatli ishlayapti degan xulosaga kelishimiz mumkin. Faqatgina 4 ta manba HTTP va TCP seanslaridan o'tishga muvaffaq bo'ldi (yuqoridagi misolda bo'lgani kabi). Yana 460 yuborilishi mumkin GET
, lekin sessiya darhol tomonidan tugatiladi RST
. E'tibor bering TTL
:
TTL 50, TCP, 14678 > 80, "[SYN] Seq=0"
TTL 64, TCP, 80 > 14678, "[SYN, ACK] Seq=0 Ack=1"
TTL 50, TCP, 14678 > 80, "[ACK] Seq=1 Ack=1"
HTTP, "GET /filteredpage HTTP/1.1"
TTL 64, TCP, 80 > 14678, "[ACK] Seq=1 Ack=294"
#Вот это прислал фильтр
TTL 53, TCP, 14678 > 80, "[RST] Seq=3458729893"
TTL 53, TCP, 14678 > 80, "[RST] Seq=3458729893"
HTTP, "HTTP/1.1 302 Found"
#А это попытка исходного узла получить потерю
TTL 50, TCP ACKed unseen segment, 14678 > 80, "[ACK] Seq=294 Ack=145"
TTL 50, TCP, 14678 > 80, "[FIN, ACK] Seq=294 Ack=145"
TTL 64, TCP, 80 > 14678, "[FIN, ACK] Seq=171 Ack=295"
TTL 50, TCP Dup ACK 14678 > 80 "[ACK] Seq=295 Ack=145"
#Исходный узел понимает что сессия разрушена
TTL 50, TCP, 14678 > 80, "[RST] Seq=294"
TTL 50, TCP, 14678 > 80, "[RST] Seq=295"
Buning o'zgarishlari boshqacha bo'lishi mumkin: kamroq RST
yoki ko'proq qayta uzatish - shuningdek, filtr manba tuguniga nima yuborishiga bog'liq. Qanday bo'lmasin, bu eng ishonchli shablon bo'lib, undan so'ralgan taqiqlangan manba ekanligi aniq. Bundan tashqari, har doim bilan sessiyada paydo bo'ladigan javob bor TTL
oldingi va keyingi paketlarga qaraganda kattaroq.
Qolganlardan ham buni ko'ra olmaysiz GET
:
TTL 50, TCP, 14678 > 80, "[SYN] Seq=0"
TTL 64, TCP, 80 > 14678, "[SYN, ACK] Seq=0 Ack=1"
#Вот это прислал фильтр
TTL 53, TCP, 14678 > 80, "[RST] Seq=1"
Yoki shunday:
TTL 50, TCP, 14678 > 80, "[SYN] Seq=0"
TTL 64, TCP, 80 > 14678, "[SYN, ACK] Seq=0 Ack=1"
TTL 50, TCP, 14678 > 80, "[ACK] Seq=1 Ack=1"
#Вот это прислал фильтр
TTL 53, TCP, 14678 > 80, "[RST, PSH] Seq=1"
TTL 50, TCP ACKed unseen segment, 14678 > 80, "[FIN, ACK] Seq=89 Ack=172"
TTL 50, TCP ACKed unseen segment, 14678 > 80, "[FIN, ACK] Seq=89 Ack=172"
#Опять фильтр, много раз
TTL 53, TCP, 14678 > 80, "[RST, PSH] Seq=1"
...
Farqi aniq ko'rinadi TTL
agar filtrdan biror narsa chiqsa. Ammo ko'pincha hech narsa kelmasligi mumkin:
TCP, 14678 > 80, "[SYN] Seq=0"
TCP, 80 > 14678, "[SYN, ACK] Seq=0 Ack=1"
TCP Retransmission, 80 > 14678, "[SYN, ACK] Seq=0 Ack=1"
...
Yoki shunday:
TCP, 14678 > 80, "[SYN] Seq=0"
TCP, 80 > 14678, "[SYN, ACK] Seq=0 Ack=1"
TCP, 14678 > 80, "[ACK] Seq=1 Ack=1"
#Прошло несколько секунд без трафика
TCP, 80 > 14678, "[FIN, ACK] Seq=1 Ack=1"
TCP Retransmission, 80 > 14678, "[FIN, ACK] Seq=1 Ack=1"
...
Va bularning barchasi takrorlanadi va takrorlanadi va takrorlanadi, grafikda ko'rinib turganidek, har kuni bir martadan ko'proq.
IPv6 haqida
Yaxshi xabar shundaki, u mavjud. Ishonch bilan ayta olamanki, taqiqlangan resursga davriy so'rovlar 5 xil IPv6 manzilidan kelib chiqadi, bu men kutgan agentlarning xatti-harakatidir. Bundan tashqari, IPv6 manzillaridan biri filtrlash ostida emas va men to'liq seansni ko'raman. Yana ikkitadan faqat bitta tugallanmagan sessiyani ko'rdim, ulardan biri to'xtatildi RST
filtrdan, vaqt bo'yicha ikkinchi. Umumiy hisob 7.
Manzillar kam bo'lgani uchun men ularning barchasini batafsil o'rganib chiqdim va u erda faqat 3 ta provayder borligi ma'lum bo'ldi, ularni olqishlash mumkin! Yana bir manzil Rossiyadagi bulutli xosting (filtrlanmaydi), boshqasi Germaniyadagi tadqiqot markazi (filtr bor, qayerda?). Lekin nima uchun ular jadval bo'yicha taqiqlangan resurslar mavjudligini tekshiradi - bu yaxshi savol. Qolgan ikkitasi bitta so'rov qildi va Rossiyadan tashqarida joylashgan va ulardan biri filtrlangan (tranzitda, axirmi?).
Bloklash va agentlar IPv6 ga katta to'siq bo'lib, uni amalga oshirish juda tez emas. Bu achinarli. Bu muammoni hal qilganlar o'zlari bilan to'liq faxrlanishlari mumkin.
Xulosa
Men 100% aniqlikka intilmadim, buning uchun meni kechiring, umid qilamanki, kimdir bu ishni yanada aniqroq takrorlashni xohlaydi. Bu yondashuv printsipial jihatdan ishlaydimi yoki yo'qligini tushunish men uchun muhim edi. Javob ha. Olingan raqamlar, birinchi taxminiy, menimcha, juda ishonchli.
Yana nima qilish mumkin edi va men qilish uchun juda dangasa bo'lgan narsa DNS so'rovlarini hisoblash edi. Ular filtrlanmagan, lekin ular ham unchalik aniqlik bermaydi, chunki ular butun URL uchun emas, balki faqat domen uchun ishlaydi. Chastota ko'rinadigan bo'lishi kerak. Agar siz uni to'g'ridan-to'g'ri so'rovlarda ko'rinadigan narsalar bilan birlashtirsangiz, bu sizga keraksizlarni ajratish va qo'shimcha ma'lumot olish imkonini beradi. Hatto provayderlar tomonidan ishlatiladigan DNS-ni ishlab chiquvchilarni aniqlash mumkin va yana ko'p narsalar.
Men hoster mening VPS uchun o'z filtrini ham qo'shishini kutmagan edim. Ehtimol, bu odatiy amaliyotdir. Oxir-oqibat, RKN hosterga resursni o'chirish uchun so'rov yuboradi. Ammo bu meni ajablantirmadi va qaysidir ma'noda mening foydamga ham ishladi. Filtr juda samarali ishladi, taqiqlangan URL manziliga barcha to'g'ri HTTP so'rovlarini kesib tashladi, lekin ilgari provayderlar filtridan o'tgan to'g'ri so'rovlar ularga etib bormadi, garchi faqat tugatish shaklida bo'lsa ham: FIN-ACK
и RST
- minus uchun minus va bu deyarli ortiqcha bo'lib chiqdi. Aytgancha, IPv6 hoster tomonidan filtrlanmagan. Albatta, bu to'plangan materialning sifatiga ta'sir qildi, ammo bu hali ham chastotani ko'rish imkonini berdi. Ma'lum bo'lishicha, bu resurslarni joylashtirish uchun sayt tanlashda muhim nuqta, taqiqlangan saytlar ro'yxati va RKN so'rovlari bilan ishlashni tashkil qilish masalasiga qiziqishni unutmang.
Boshida men "Inspektor" ASni solishtirdim
Yana bir jihatga to‘xtalib o‘tmoqchiman, har bir asbob qurol bo‘lishi mumkin. "Inspektor" AS - bu yopiq tarmoq, ammo Agentlar taqiqlangan ro'yxatdagi barcha resurslarga so'rov yuborish orqali hammani topshiradilar. Bunday resursga ega bo'lish hech qanday muammo tug'dirmaydi. Umuman olganda, agentlar orqali provayderlar beixtiyor o'z tarmoqlari haqida ko'proq ma'lumot berishadi: DPI va DNS turlari, agentning joylashuvi (markaziy tugun va xizmat ko'rsatish tarmog'i?), kechikishlar va yo'qotishlar tarmoq belgilari - va bu faqat eng aniq. Kimdir Agentlarning o'z resurslarining mavjudligini yaxshilash bo'yicha harakatlarini kuzatishi mumkin bo'lgani kabi, kimdir buni boshqa maqsadlarda ham qilishi mumkin va bunga hech qanday to'siq yo'q. Natijada ikki qirrali va juda ko'p qirrali asbob paydo bo'ldi, buni har kim ko'rishi mumkin.
Manba: www.habr.com