Keling, "Inspektor" agentlarini hisoblaylik

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 Habr haqidagi maqola, xuddi shu joydan olingan rasm:

Keling, "Inspektor" agentlarini hisoblaylik

To'g'ridan-to'g'ri provayderda o'rnatiladi "Agent inspektori" moduli:

“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. RIPE Atlas va undan ham ko'proq, lekin yopiq kirish bilan. Biroq, mayoq barcha yo'nalishlarda signallarni jo'natish uchun mayoqdir, lekin biz ularni ushlab, nima tutganimizni va qanchaligini ko'rsak nima bo'ladi?

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:

Keling, "Inspektor" agentlarini hisoblaylik

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:

Keling, "Inspektor" agentlarini hisoblaylik

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. Bu haqda RKN xabar bermoqda "Ma'lumotlarni uzatish bo'yicha aloqa xizmatlari, ovozdan tashqari" litsenziyalari - 6387, lekin bu yuqoridan juda yuqori baho, bu litsenziyalarning barchasi Agentni o'rnatishi kerak bo'lgan Internet-provayderlarga tegishli emas. RIPE NCC zonasida Rossiyada ro'yxatga olingan shunga o'xshash AS mavjud - 6230 ta, ularning hammasi ham provayderlar emas. UserSide yanada qat'iy hisob-kitob qildi va 3940 yilda 2017 ta kompaniyani qabul qildi va bu yuqoridan ko'rsatilgan taxmindir. Har holda, bizda ikki yarim baravar kam yoritilgan AS bor. Ammo bu erda AS provayderga mutlaqo teng emasligini tushunish kerak. Ba'zi provayderlarda o'zlarining ASlari yo'q, ba'zilarida bir nechta. Agar hammada hali ham agentlar bor deb hisoblasak, kimdir boshqalardan ko'ra kuchliroq filtrlaydi, shunda ularning so'rovlari axlatdan farq qilmaydi, agar ularga umuman etib borsa. Ammo qo'pol baho berish uchun, hatto mening nazoratim tufayli biror narsa yo'qolgan bo'lsa ham, bunga toqat qilish 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 RIPE Atlas. Bu taqqoslash juda asosli va agentlarning katta tarmog'i foydali bo'lishi mumkin. Masalan, mamlakatning turli hududlarida turli provayderlardan resurslar mavjudligi sifatini aniqlash. Siz kechikishlarni hisoblashingiz, grafiklar yaratishingiz, barchasini tahlil qilishingiz va mahalliy va global miqyosda sodir bo'layotgan o'zgarishlarni ko'rishingiz mumkin. Bu eng to'g'ridan-to'g'ri yo'l emas, lekin astronomlar "standart shamlardan" foydalanadilar, nega Agentlardan foydalanmaslik kerak? Ularning standart xatti-harakatlarini bilib (topib), siz ular atrofida sodir bo'layotgan o'zgarishlarni va bu taqdim etilayotgan xizmatlar sifatiga qanday ta'sir qilishini aniqlashingiz mumkin. Shu bilan birga, siz zondlarni tarmoqqa mustaqil ravishda joylashtirishingiz shart emas, Roskomnadzor ularni allaqachon o'rnatgan.

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

a Izoh qo'shish