Contemu l'agenti "Inspector"

Ùn hè micca sicretu chì u cuntrollu di u bluccatu nantu à a lista di l'infurmazioni pruibiti in Russia hè monitoratu da u sistema automatizatu "Inspector". Cumu funziona hè scrittu bè quì in questu articulu nantu à Habr, foto da u listessu locu:

Contemu l'agenti "Inspector"

Installatu direttamente à u fornitore modulu "Agent Inspector":

U modulu "Agent Inspector" hè un elementu strutturale di u sistema automatizatu "Inspector" (AS "Inspector"). Stu sistema hè cuncepitu per monitorà u rispettu di l'operatori di telecomunicazione cù i requisiti di restrizzioni di l'accessu in u quadru di e disposizioni stabilite da l'articuli 15.1-15.4 di a Legge Federale di 27 July 2006 N ° 149-FZ "In Information, Information Technology and Information Protection. "

U scopu principale di a creazione di l'AS "Revizor" hè di assicurà u monitoraghju di u rispettu di l'operatori di telecomunicazioni cù i requisiti stabiliti da l'articuli 15.1-15.4 di a Legge Federale di u 27 di lugliu di u 2006 n ° 149-FZ "In Information, Information Technology and Information Protection. " in quantu à identificà i fatti di l'accessu à l'infurmazioni pruibiti è ottene materiale di supportu (dati) nantu à e violazioni per restringe l'accessu à l'infurmazioni pruibiti.

In cunsiderà u fattu chì, se micca tutti, allora parechji fornituri anu stallatu stu dispusitivu, duverebbe esse una grande reta di sonde di balise cum'è RIPE Atlas è ancu di più, ma cù accessu chjusu. In ogni casu, un faro hè un faro per mandà signalazioni in tutte e direzzione, ma chì s'ellu ci pigliamu è vede ciò chì avemu pigliatu è quanti?

Prima di cuntà, vedemu perchè questu puderia ancu esse pussibule.

Un pocu di tiurìa

L'agenti verificanu a dispunibilità di una risorsa, ancu attraversu richieste HTTP (S), cum'è questu:

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"

In più di a carica utile, a dumanda hè ancu custituita da una fase di stabilimentu di cunnessione: scambiu SYN и SYN-ACK, è fasi di cumpletamentu di cunnessione: FIN-ACK.

U registru di l'infurmazione pruibita cuntene parechji tippi di bloccu. Ovviamente, se una risorsa hè bluccata da l'indirizzu IP o u nome di duminiu, allora ùn vedemu micca richieste. Quessi sò i tipi di blocchi più distruttivi, chì portanu à l'inaccessibilità di tutte e risorse nantu à una indirizzu IP o tutte l'infurmazioni nantu à un duminiu. Ci hè ancu un tipu di bloccu "per URL". In questu casu, u sistema di filtrazione deve analizà l'intestazione di a dumanda HTTP per stabilisce esattamente ciò chì bluccà. È prima, cum'è si pò vede sopra, ci deve esse una fase di stabilimentu di cunnessione chì pudete pruvà à seguità, postu chì u più prubabilmente u filtru vi manca.

Per fà questu, avete bisognu di selezziunà un duminiu liberu adattatu cù u "URL" è u tipu di bloccu HTTP per facilità u travagliu di u sistema di filtrazione, preferibile longu abbandunatu, per minimizzà l'ingressu di u trafficu straneru, salvu da Agenti. Stu compitu ùn hè micca difficiule, ci sò assai duminii gratuiti in u registru di l'infurmazioni pruibitu è ​​per ogni gustu. Per quessa, u duminiu hè statu acquistatu è ligatu à l'indirizzi IP in un VPS in esecuzione tcpdump è u cunti cuminciò.

Audit di "Auditori"

M'aspittava à vede sferisce periodichi di richieste, chì in u mo parè indicanu azzione cuntrullata. Hè impussibile di dì chì ùn l'aghju micca vistu in tuttu, ma ùn ci era certamente micca una stampa chjara:

Contemu l'agenti "Inspector"

Chì ùn hè micca surprisante, ancu in un duminiu chì nimu hà bisognu è nantu à una IP mai utilizata, ci sarà solu una tonna di infurmazione micca dumandata, cusì hè l'Internet mudernu. Ma per furtuna, aghju solu bisognu di richieste per un URL specificu, cusì tutti i scanners è i crackers di password sò stati trovati rapidamente. Inoltre, era abbastanza faciule per capiscenu induve l'inundazione era basatu annantu à a massa di richieste simili. In seguitu, aghju compilatu a freccia di l'occurrence di l'indirizzi IP è andò per tutta a cima manualmente, sepandu quelli chì l'anu mancatu in e tappe previ. Inoltre, aghju tagliatu tutte e fonti chì sò state mandate in un pacchettu, ùn ci era più assai. È questu hè ciò chì hè accadutu:

Contemu l'agenti "Inspector"

Una piccula digressione lirica. Un pocu più di un ghjornu dopu, u mo fornitore di hosting hà mandatu una lettera cù un cuntenutu piuttostu simplificatu, dicendu chì e vostre facilità cuntenenu una risorsa da a lista RKN pruibita, per quessa hè bluccata. In prima aghju pensatu chì u mo contu era bluccatu, questu ùn era micca u casu. Allora aghju pensatu chì mi stavanu solu avvisendu di qualcosa chì sapia digià. Ma resultò chì l'ospitu hà attivatu u so filtru davanti à u mo duminiu è, per via di u risultatu, sò ghjuntu sottu doppia filtrazione: da i fornituri è da l'hoster. U filtru hà passatu solu a fine di e dumande: FIN-ACK и RST taglià tuttu HTTP in un URL pruibitu. Comu pudete vede da u graficu sopra, dopu à u primu ghjornu aghju cuminciatu à riceve menu dati, ma l'aghju sempre ricevutu, chì era abbastanza abbastanza per u compitu di cuntà e fonti di dumanda.

Andate à u puntu. In u mo parè, duie splutazioni sò chjaramente visibili ogni ghjornu, u primu più chjucu, dopu à a mezzanotte, u tempu di Mosca, u sicondu più vicinu à 6 am cù una cuda finu à 12 meziornu. U piccu ùn accade esattamente à u stessu tempu. À u primu, aghju vulsutu selezziunà l'indirizzi IP chì cascanu solu in questi periodi è ognunu in tutti i periodi, basatu annantu à l'assunzione chì i cuntrolli da l'Agenti sò realizati periodicamente. Ma dopu una rivisione attenta, aghju scupertu rapidamente periodi chì cascanu in altri intervalli, cù altre frequenze, finu à una dumanda ogni ora. Allora aghju pensatu à i zoni orari è chì forse avia qualcosa à fà cun elli, allora aghju pensatu chì in generale u sistema puderia micca esse sincronizatu in u mondu. Inoltre, NAT prubabilmente ghjucà un rolu è u stessu Agente pò fà richieste da diverse IP publiche.

Siccomu u mo scopu iniziale ùn era micca esattamente, aghju cuntatu tutti l'indirizzi chì aghju trovu in una settimana è aghju avutu - 2791. U numaru di sessioni TCP stabilitu da un indirizzu hè in media 4, cù una mediana di 2. Sessioni superiore per indirizzu: 464, 231, 149, 83, 77. U massimu da 95% di l'esempiu hè 8 sessioni per indirizzu. A mediana ùn hè micca assai alta, lasciami ricurdà chì u graficu mostra una periodicità chjara di ogni ghjornu, cusì unu puderia aspittà qualcosa intornu à 4 à 8 in 7 ghjorni. Se scacciemu tutte e sessioni chì si trovanu una volta, averemu una mediana uguale à 5. Ma ùn pudia micca escludiri nantu à un criteriu chjaru. À u cuntrariu, una verificazione aleatoria hà dimustratu chì eranu ligati à e dumande per una risorsa pruibita.

L'indirizzi sò indirizzi, ma in Internet, i sistemi autònumi - AS, chì sò diventati più impurtanti 1510, in media 2 indirizzi per AS cù una mediana di 1. Top indirizzi per AS: 288, 77, 66, 39, 27. U massimu di 95% di a mostra hè 4 indirizzi per AS. Quì a mediana hè prevista - un Agente per fornitore. Aspittemu ancu a cima - ci sò grandi attori in questu. In una grande reta, Agenti deve esse prubabilmente situatu in ogni regione di a prisenza di l'operatore, è ùn vi scurdate di NAT. Se l'avemu pigliatu per paese, i massimi seranu: 1409 - RU, 42 - UA, 23 - CZ, 36 da altre regioni, micca RIPE NCC. E dumande da fora di Russia attiranu l'attenzione. Questu pò esse probabilmente spiegatu da errori di geolocalizzazione o errori di registratu quandu si riempie e dati. O u fattu chì una sucietà Russian ùn pò hannu radiche Russian, o hannu un ufficiu di rapprisintanti straniera perchè hè più faciule, chì hè naturali quandu si tratta di una urganisazione straniera RIPE NCC. Qualchì parte hè senza dubbitu superflua, ma hè affidabile difficiuli di separà, postu chì a risorsa hè sottu bloccu, è da u sicondu ghjornu sottu duppiu bluccatu, è a maiò parte di e sessioni sò solu un scambiu di parechji pacchetti di serviziu. Accordemu chì questu hè una piccula parte.

Sti numeri pò esse digià paragunatu cù u numeru di fornituri in Russia. Sicondu RKN licenze per "Servizi di cumunicazione per a trasmissione di dati, senza voce" - 6387, ma questu hè una stima assai alta da quì sopra, micca tutte queste licenze s'applicanu specificamente à i fornitori di Internet chì anu bisognu di installà un Agente. In a zona RIPE NCC ci hè un numeru simili di ASes registrati in Russia - 6230, di quale ùn sò micca tutti i fornituri. UserSide hà fattu un calculu più strettu è hà ricevutu 3940 cumpagnie in 2017, è questu hè piuttostu una stima da sopra. In ogni casu, avemu duie volte è mezzo menu menu di AS illuminati. Ma quì vale a pena capisce chì AS ùn hè micca strettamente uguale à u fornitore. Certi fornituri ùn anu micca u so propiu AS, alcuni anu più di unu. Sè noi assume chì ognunu hà sempre Agenti, allura qualcunu filtri più forti chè l'altri, cusì chì e so richieste sò indistinguishable da basura, s'ellu ghjunghjenu à tutti. Ma per una valutazione approssimativa hè abbastanza tollerabile, ancu s'ellu qualcosa hè stata persa per via di a mo sorveglianza.

À propositu di DPI

Malgradu u fattu chì u mo fornitore di hosting hà attivatu u so filtru à partesi da u sicondu ghjornu, basatu annantu à l'infurmazioni da u primu ghjornu, pudemu cuncludi chì u bloccu hè travagliatu bè. Solu e fonti 4 anu pussutu passà è anu cumpletu cumplettamente sessioni HTTP è TCP (cum'è in l'esempiu sopra). Un altru 460 pò esse mandatu GET, ma a sessione hè subitu terminata da RST. Prestate attenzione à 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"

Variazioni di questu pò esse diverse: menu RST o più retransmits - dipende ancu da ciò chì u filtru manda à u node fonte. In ogni casu, questu hè u mudellu più affidabile, da quale hè chjaru chì era un risorsu pruibitu chì hè statu dumandatu. In più ci hè sempre una risposta chì appare in a sessione cù TTL più grande chì in i pacchetti precedenti è successivi.

Ùn pudete mancu vede da u restu 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"

Or so:

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"
...

A diferenza hè definitivamente visibile TTL se qualcosa vene da u filtru. Ma spessu nunda ùn pò ghjunghje in tuttu:

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"
...

Or so:

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"
...

È tuttu questu hè ripetutu è ripetutu è ripetutu, cumu si pò vede nantu à u graficu, più di una volta, ogni ghjornu.

À propositu di IPv6

A bona nutizia hè chì esiste. Puderaghju in modu affidabile chì e dumande periodiche à una risorsa pruibita si trovanu da 5 indirizzi IPv6 differenti, chì hè esattamente u cumpurtamentu di l'Agenti chì aghju aspittatu. Inoltre, unu di l'indirizzi IPv6 ùn cascà micca in filtrazione è vecu una sessione completa. Da dui più aghju vistu solu una sessione infinita, una di quale hè stata interrotta da RST da u filtru, secondu in u tempu. A quantità tutale 7.

Siccomu ci sò pochi indirizzi, aghju studiatu tutti in dettagliu è hè risultatu chì ci sò solu 3 fornituri, ponu esse datu una ovazione! Un altru indirizzu hè cloud hosting in Russia (ùn filtra micca), un altru hè un centru di ricerca in Germania (ci hè un filtru, induve?). Ma perchè verificanu a dispunibilità di risorse pruibiti nantu à un schedariu hè una bona quistione. I dui restanti anu fattu una dumanda è sò situati fora di Russia, è unu di elli hè filtratu (in transitu, dopu?).

Blocking and Agents sò un grande ostaculu à IPv6, l'implementazione di quale ùn si move micca assai rapidamente. Hè tristu. Quelli chì risolviu stu prublema ponu esse fieru di sè stessu.

In cunclusioni

Ùn aghju micca sforzatu per una precisione di 100%, per piacè perdonami per questu, speru chì qualchissia vole ripetiri stu travagliu cù più precisione. Era impurtante per mè di capisce se stu approcciu funzionava in principiu. A risposta hè sì. Cum'è una prima approssimazione, i figuri ottenuti, pensu, sò abbastanza affidabili.

Chì altru puderia esse fattu è ciò chì era troppu pigro per fà era cuntà e dumande DNS. Ùn sò micca filtrati, ma ancu ùn furnisce micca assai precisione postu chì travaglianu solu per u duminiu, è micca per l'URL sanu. A frequenza deve esse visibile. Se combina cù ciò chì hè visibile direttamente in e dumande, questu vi permetterà di separà l'innecessariu è uttene più infurmazione. Hè ancu pussibule di determinà i sviluppatori di u DNS utilizatu da i fornituri è assai più.

Assolutamente ùn m'aspittava micca chì l'hoster includia ancu u so propiu filtru per u mo VPS. Forse questu hè una pratica cumuni. In fine, RKN manda una dumanda per sguassà a risorsa à l'hoster. Ma questu ùn m'hà micca surprisatu è in certi modi hà ancu travagliatu à u mo vantaghju. U filtru hà travagliatu in modu assai efficace, tagliatu tutte e dumande HTTP currette à un URL pruibitu, ma micca quelli curretti chì avianu passatu prima per u filtru di i fornituri anu righjuntu, ancu s'ellu solu in forma di finali: FIN-ACK и RST - minus per minus è guasi hè diventatu un plus. In modu, IPv6 ùn hè micca filtratu da l'hoster. Di sicuru, questu hà affettatu a qualità di u materiale cullatu, ma hà ancu permessu di vede a freccia. Risultava chì questu hè un puntu impurtante quandu sceglite un situ per mette risorse ùn vi scurdate di piglià un interessu in u prublema di l'urganizazione di u travagliu cù a lista di i siti pruibiti è e dumande da a RKN.

À u principiu, aghju paragunatu l'AS "Inspector" cù RIPE Atlas. Stu paragone hè abbastanza ghjustificatu è una grande reta di Agenti pò esse benefica. Per esempiu, a determinazione di a qualità di a dispunibilità di risorse da diversi fornituri in diverse parti di u paese. Pudete calculà i ritardi, pudete custruisce grafici, pudete analizà tuttu è vede i cambiamenti chì accadenu in u locu è in u mondu. Questu ùn hè micca u modu più direttu, ma l'astrònomu usanu "candele standard", perchè micca aduprà Agenti? Sapendu (avè trovu) u so cumpurtamentu standard, pudete determinà i cambiamenti chì si trovanu intornu à elli è cumu questu affetta a qualità di i servizii furniti. È à u stessu tempu, ùn avete micca bisognu di mette in modu indipindente e sonde nantu à a reta Roskomnadzor hà digià stallatu.

Un altru puntu chì vogliu tuccà hè chì ogni strumentu pò esse un'arma. AS "Inspector" hè una reta chjusa, ma l'Agenti trasmettenu à tutti mandendu dumande per tutte e risorse da a lista pruibita. Avè tali risorsa ùn presenta micca prublemi à tutti. In u tutale, i fornituri attraversu l'Agenti, senza vole, dicenu assai di più nantu à a so reta di ciò chì probabilmente vale a pena: tipi DPI è DNS, locu di l'Agente (node ​​centrale è rete di serviziu?), marcatori di rete di ritardi è perdite - è questu hè solu i più evidenti. Cum'è qualchissia pò monitorà l'azzioni di l'Agenti per migliurà a dispunibilità di i so risorse, qualchissia pò fà questu per altri scopi è ùn ci sò micca ostaculi per questu. U risultatu hè un strumentu à doppiu tagliu è assai multifaceted, qualcunu pò vede questu.

Source: www.habr.com

Add a comment