Arvutame "Revizor" agente

Pole saladus, et Venemaal jĂ€lgib automatiseeritud sĂŒsteem "Revizor" blokeeringute kontrollimist keelatud informatsiooni loendite alusel. Kuidas see töötab, on hĂ€sti kirjutatud siin: artikkel Habris, pilt sealt:

Arvutame "Revizor" agente

Teenusepakkuja juures on paigaldatud "Revizor Agent" moodul:

"Revizor Agent" moodul on automatiseeritud sĂŒsteemi "Revizor" (AS "Revizor") struktuuriline element. See sĂŒsteem on ette nĂ€htud sideoperatsioonide nĂ”uete jĂ€rgimise kontrollimiseks juurdepÀÀsu piiramise osas, nagu on sĂ€testatud 27. juuli 2006. aasta föderaalse seaduse nr 149-FZ "Informatsiooni, informatsioonitehnoloogia ja informatsiooni kaitse kohta" artiklites 15.1-15.4.

AS «Revisor» peamine eesmĂ€rk on tagada sideoperaatorite jaoks nĂ”uete jĂ€rgimise jĂ€lgimine, nagu on kehtestatud Venemaa Föderaalses seaduses 27. juulist 2006 nr 149-ЀЗ „Teabe, infotehnoloogia ja teabe kaitse kohta“ paragrahvide 15.1-15.4 osas, mis puudutab keelatud teabe juurde pÀÀsemise tuvastamist ja kinnitavate materjalide (andmete) saamist rikkumiste kohta, mis piiravad juurdepÀÀsu keelatud teabele.

Arvestades, et paljud teenusepakkujad on selle seadme enda juures paigaldanud, peaks olema loodud suur proovide-majakate vĂ”rgustik, sarnane RIPE Atlas ja isegi rohkem, aga suletud juurdepÀÀsuga. Kuid majakas on ikkagi majakas, et saata signaale kĂ”ikides suundades. Aga mis siis, kui neid pĂŒĂŒtakse ja vaadatakse, mida me pĂŒĂŒdsime ja kui palju?

Enne lugemist vaatame, miks see ĂŒldse vĂ”imalik on.

Natuke teooriat

Agendid kontrollivad ressursi kÀttesaadavust, sealhulgas HTTP(S) pÀringute kaudu, nagu nÀiteks see:

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"

PĂ€ringu kĂ”rval, mis sisaldab kasulikku koormust, koosneb lisaks ka ĂŒhenduse loomise faasist: vahetus SYN ja SYN-ACK, ja ĂŒhenduse lĂ”petamise faasist: FIN-ACK.

Keelatud teabe register sisaldab mitut tĂŒĂŒpi blokeeringuid. Ilmselgelt, kui ressurssi blokeeritakse IP-aadressi vĂ”i domeeninime jĂ€rgi, ei nĂ€e me ĂŒhtegi pĂ€ringut. Need on kĂ”ige hĂ€vitavamad blokeeringud, mis toovad kaasa kĂ”ikide ressursside kĂ€ttesaamatuse samal IP-aadressil vĂ”i kogu teabe domeenis. Samuti on olemas blokkeerimise tĂŒĂŒp „URL-i jĂ€rgi”. Sel juhul peab filtreerimissĂŒsteem analĂŒĂŒsima HTTP-pĂ€ringu pĂ€ist, et tĂ€pselt mÀÀrata, mida blokeerida. Enne seda peab toimuma ĂŒhenduse loomise faas, mida saab tĂ”enĂ€oliselt jĂ€lgida, kuna filtril on tĂ”enĂ€oliselt vĂ”imalus see mööda lasta.

Selleks tuleb valida sobiv vaba domeen, millel on URL-tĂŒĂŒpi blokeering ja HTTP, et kergendada filtreerimissĂŒsteemi tööd. Soovitav on valida pikka aega hĂŒljatud domeen, et minimeerida lisaliiklust, vĂ€lja arvatud Agendid. See ĂŒlesanne osutus ĂŒsna lihtsaks, vaba domeene keelatud teabe registris on kĂŒllaga ja igasuguste veebilehtede jaoks. SeetĂ”ttu osteti domeen, seoti see VPS-i IP-aadressidega, millel oli kĂ€ivitada. tcpdump ja algas arvutamine.

Revisjon „Revisoreid“

Ootasin perioodiliste pĂ€ringute tĂ”usude nĂ€gemist, mis nĂ€itaksid minu arvates juhitud tegevust. Ei saa öelda, et ma seda ĂŒldse ei nĂ€inud, kuid selget pilti kindlasti ei olnud:

Arvutame "Revizor" agente

Pole ime, isegi tĂ€iesti kasutu domeen ja kunagi mitte kasutatav IP kogub kohutavalt palju soovimatut teavet, see on tĂ€napĂ€eva Internet. Õnneks vajasin aga ainult konkreetse URL-i pĂ€ringute andmeid, seetĂ”ttu leidsin kiiresti kĂ”ik skannerid ja paroolide jĂ€rjekid. Samuti oli lihtne aru saada, kus toimus massiline sama tĂŒĂŒpi pĂ€ringute ĂŒlekoormus. Edasi koostasin IP-aadresside esinemise sagedused ja lĂ€bisin kogu tabeli kĂ€sitsi, eraldades need, kes eelmistest etappidest lĂ€bi libisesid. Lisaks eemaldasin kĂ”ik allikad, kes saatsid ainult ĂŒhe paketi, neid polnud palju. Ja tulemus oli jĂ€rgmine:

Arvutame "Revizor" agente

Veidi poeetiline kĂ”rvalepĂ”ige. Veidi rohkem kui pĂ€ev hiljem saatis mu hosting-teenuse pakkuja ĂŒsna ĂŒmarate vĂ€ljenditega kirja, et teie ressurssidelt leiti RKN-i musta nimekirja kuuluv sisu, mistĂ”ttu see blokeeritakse. Algul mĂ”tlesin, et mu konto on blokeeritud, kuid see polnud nii. Siis mĂ”tlesin, et mind lihtsalt hoiatatakse millegi eest, millest ma juba teadsin. Kuid osutus, et hostija aktiveeris oma filtri minu domeeni ees ja lĂ”puks sattusin kahefiltermise alla: teenusepakkujate ja hostija poolt. Filter vahelesegasid ainult pĂ€ringute lĂ”ppe. FIN-ACK ja RST kĂ€rpides kogu HTTP keelatud URL-i alusel. Nagu ĂŒlaltoodud graafikust nĂ€ha, hakkasin esimestest pĂ€evadest alates saama vĂ€hem andmeid, kuid ma siiski sain neid, mis piisavalt katab pĂ€ringute allikate arvutamise ĂŒlesande.

As for the matter at hand, it is quite clear to me that there are two spikes each day; the first, smaller one occurs after midnight Moscow time, and the second around 6 AM, extending into noon. The peak doesn't happen at exactly the same time. Initially, I wanted to highlight the IP addresses that fell within these periods and those that appeared across all periods, based on the assumption that checks by Agents are done periodically. However, upon closer inspection, I quickly discovered periods that fell into other intervals with different frequencies, even down to one request every hour. Then I thought about time zones and considered that this could be a factor; I also wondered if the system might not be globally synchronized. Furthermore, NAT would surely play a role, as the same Agent could make requests from different public IPs.

Since my initial goal was not accuracy, I counted all the addresses that came up over the week and got — 2791. Üksikute aadresside puhul on keskmine TCP sessioonide arv neljalt aadressilt 4, medianna 2. Suurim sessioonide arv aadressil: 464, 231, 149, 83, 77. 95% valimist maksimum — 8 sessiooni aadressi kohta. Medianna ei ole eriti kĂ”rge, meenutan, et graafikust on selgelt nĂ€ha pĂ€evane perioodsus, seega vĂ”is oodata midagi vahemikus 4 kuni 8 seitsme pĂ€eva jooksul. Kui vĂ€lja arvata kĂ”ik ĂŒhekordselt esinevad seansid, saame tĂ”epoolest medianna 5. Kuid ei suutnud neid selgest kriteeriumist kĂ”rvaldada. Vastupidi, valimipĂ”hine kontroll nĂ€itas, et need on seotud keelatud ressursi pĂ€ringutega.

Aadressid on tĂ€htsad, kuid internetis on olulisemad autonoomsed sĂŒsteemid — AS, mida on tekkinud 1510, keskmiselt 2 aadressi AS-is, mediaan 1. Topp aadressid AS-is: 288, 77, 66, 39, 27. Maksimum 95% valimist on 4 aadressi AS-is. Siin on mediaan ootuspĂ€rane — ĂŒks agenti pakkuja kohta. Topp on samuti ootuspĂ€rane — seal on suured mĂ€ngijad. Suures vĂ”rgus peaksid agentuurid olema kohal igas operaatori piirkonnas, Ă€rgem unustagem ka NAT-i. Riikide kaupa vaadates on maksimumid: 1409 — RU, 42 — UA, 23 — CZ, 36 teistest piirkondadest, mitte RIPE NCC-st. Venemaalt saabuvad pĂ€ringud tĂ”mbavad tĂ€helepanu. Seda vĂ”ib ilmselt selgitada geolokatsiooni vigade vĂ”i registripidajate eksimustega andmete tĂ€itmisel. VĂ”i vĂ”ib juhtuda, et Venemaa ettevĂ”ttel on mitte-venelased juured vĂ”i omab vĂ€l representatsiooni, sest nii on lihtsam, tegeledes vĂ€lisorganisatsiooniga RIPE NCC. Osa on kindlasti ĂŒleliigne, kuid usaldusvÀÀrselt eristada seda on keeruline, kuna ressurss on blokeeritud, ja teisel pĂ€eval on see kahekordse blokeeringu all ning enamik seansse koosneb vaid paarist teeninduspaketist. Leppime kokku, et see on vĂ€ike osa.

Nende numbritega saab juba vĂ”rrelda Venemaa pakkujate arvuga. RKNi andmete kohaselt on litsentse "Andmeside teenuste, vĂ€lja arvatud hÀÀlt" — 6387, kuid see on tugevalt ĂŒles hinnatud number, mitte kĂ”ik need litsentsid ei kuulu just nendele Interneti-teenuse pakkujatele, kellele on vaja Agent paigaldada. RIPE NCC piirkonnas on sarnane AS-de arv, mis on Venemaal registreeritud — 6230, millest mitte kĂ”ik teenusepakkujad. UserSide tegi rangema arvestuse ja sai 2017. aastal 3940 ettevĂ”tet, ja see on pigem ĂŒles hinnatud number. Igatahes nĂ€eme, et avalike AS-de arv on kaks ja pool korda vĂ€iksem. Siiski tuleb mĂ”ista, et AS ei ole rangelt vĂ”rdne teenusepakkujaga. MĂ”nedel teenusepakkujatel ei ole oma AS-i, mĂ”nel on rohkem kui ĂŒks. Kui eeldada, et Agendid on tĂ”epoolest kĂ”ikjal, tĂ€hendab see, et mĂ”ned filtreerivad tugevamalt kui teised, nii et nende pĂ€ringud ei ole prĂŒgist eristatavad, kui nad ĂŒldse kohale jĂ”uavad. Kuid jĂ€medaks hindamiseks on see tĂ€iesti vastuvĂ”etav, isegi kui midagi on kaduma lĂ€inud minu eksimuse tĂ”ttu.

DPI kohta

Kuigi minu hostiteenuse pakkuja aktiveeris oma filtri alates teise pĂ€eva, vĂ”ib esimese pĂ€eva andmetest jĂ€reldada, et blokeeringud toimivad tĂ”husalt. Ainult 4 allikat suudavad lĂ€bi pÀÀseda ja omavad tĂ€ielikult lĂ”petatud HTTP ja TCP sessioone (nagu ĂŒlaltoodud nĂ€ites). Veel 460 saavad saata GET, kuid sessioon katkeb koheselt RST. Pange tĂ€hele 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"

#See on saadud filtrist
TTL 53, TCP, 14678 > 80, "[RST] Seq=3458729893"
TTL 53, TCP, 14678 > 80, "[RST] Seq=3458729893"

HTTP, "HTTP/1.1 302 Found"

#Ja see on lÀhtepunkti katse kaotust saada
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"

#LÀhtepunkt mÔistab, et sessioon on hÀvitatud
TTL 50, TCP, 14678 > 80, "[RST] Seq=294"
TTL 50, TCP, 14678 > 80, "[RST] Seq=295"

Selle variatsioonid vĂ”ivad olla erinevad: vĂ€hem RST vĂ”i rohkem edastusi — see sĂ”ltub ka sellest, mida filter saadab algsesse sĂ”lme. Igatahes on see kĂ”ige usaldusvÀÀrsem malli, millest on nĂ€ha, et kĂŒsiti just keelatud ressurssi. Pluss on alati olemas vastus, mis ilmub seansiga koos TTL suurema kui eelnevatel ja jĂ€rgnevatel paketidel.

Teistest ei ole isegi nÀha GET:

TTL 50, TCP, 14678 > 80, "[SYN] Seq=0"
TTL 64, TCP, 80 > 14678, "[SYN, ACK] Seq=0 Ack=1"

#See on, mida filter saatis
TTL 53, TCP, 14678 > 80, "[RST] Seq=1"

VÔi nii:

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"

#Siin on veel ĂŒks sĂ”num filtrilt
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"

#JĂ€lle filter, korduvalt
TTL 53, TCP, 14678 > 80, "[RST, PSH] Seq=1"
...

Erinevus on kindlasti nĂ€htav TTL kui filter midagi saadab. Kuid sageli ei pruugi ĂŒldse midagi saabuda:

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

VÔi nii:

TCP, 14678 > 80, "[SYN] Seq=0"
TCP, 80 > 14678, "[SYN, ACK] Seq=0 Ack=1"
TCP, 14678 > 80, "[ACK] Seq=1 Ack=1"

#MÔned sekundid on möödunud ilma liikluseta

TCP, 80 > 14678, "[FIN, ACK] Seq=1 Ack=1"
TCP Retransmission, 80 > 14678, "[FIN, ACK] Seq=1 Ack=1"
...

Ja see kordub ja kordub taas, nagu graafikult nĂ€ha, mitte vĂ€hem kui ĂŒks kord iga pĂ€ev.

IPv6 kohta

Hea uudis — see on olemas. Ma vĂ”in kindlalt öelda, et 5 erinevast IPv6-aadressist tulevad perioodilised pĂ€ringud keelatud ressurssidele, just selline agentide kĂ€itumine, mida ma ootasin. Üks IPv6-aadressidest ei jÀÀ filtreerimise alla ning ma nĂ€en tĂ€ielikku sessiooni. Kahest teisest nĂ€gin vaid ĂŒhte lĂ”petamata sessiooni, millest ĂŒks katkestati RST filtri tĂ”ttu, teine aja tĂ”ttu. Kokku 7.

Kuna aadresse on vĂ€he, uurisin neid pĂ”hjalikult ning selgus, et tegelikult on teenusepakkujaid vaid kolm, neile vĂ”ib seista aplodeerida! Üks teine aadress on Venemaal asuv pilvepĂ”hine hostimine (ei filtreeri), teine on Saksamaal asuv teaduskeskkond (seal on filter, kus?). Kuidas nad kontrollivad keelatud ressursside kĂ€ttesaadavust ajakava jĂ€rgi, on hea kĂŒsimus. ÜlejÀÀnud kaks tegid ĂŒhe pĂ€ringu ja ei asu Venemaa piires, samas kui ĂŒks neist filtreeritakse (kas siiski transiidis?).

IPv6 kasutuselevĂ”ttu takistavad blokeeringud ja agentuurid on suur pidurdus, mille areng ei edene juba niigi kiiresti. See on kahju. Need, kes selle probleemi tĂ€ielikult lahendasid, vĂ”ivad selle ĂŒle uhked olla.

KokkuvÔtteks

Ma ei pĂŒĂŒdnud saavutada 100% tĂ€psust, palun mind selle eest andestada; loodan, et keegi soovib teha sellist tööd suurema hoolikuse ja tĂ€psusega. Minu jaoks oli oluline mĂ”ista, kas selline lĂ€henemine ĂŒldse töötab. Vastus on — töötab. Saadud numbrid on esialgses hinnangus tĂ€iesti usaldusvÀÀrsed, ma arvan.

Mida veel saaks teha ja mida ma laiskusega ei teinud — lugeda DNS-i pĂ€ringuid. Need ei filtreerita, kuid ei anna ka suurt tĂ€psust, kuna need töötavad ainult domeeni tasandil, mitte kogu URL-i jaoks. Perioodilisus peaks olema nĂ€htav. Kui seda koos sellele, mis on otse pĂ€ringutes nĂ€htav, kombineerida, siis see vĂ”imaldaks eristada liigset ja saada rohkem teavet. VĂ”ib-olla isegi tuvastada DNS-i arendajad, keda pakkujad kasutavad, ja palju muud.

Ma ei oodanud ĂŒldse, et mu VPS-i eest vastutav hostija aktiveerib ka oma filtri. VĂ”ib-olla on see tavaline praktika. LĂ”ppude lĂ”puks saadab RKN taotluse ressursi eemaldamiseks just hostijale. Kuid see ei ĂŒllatanud mind ja isegi osaliselt mĂ€ngis see mulle kasuks. Filter töötas vĂ€ga tĂ”husalt, blokeerides kĂ”ik Ă”iged HTTP-pĂ€ringud keelatud URL-ile, kuid vale, mis lĂ€bi edastajate filtri pÀÀses, jĂ”udis kohale, kui mitte midagi muud, siis ainult lĂ”ppudena: FIN-ACK ja RST — miinus miinuse peale ja peaaegu sai pluss. Muide, hostija ei blokeerinud IPv6. Loomulikult mĂ”jutas see kogutud materjali kvaliteeti, kuid see andis siiski vĂ”imaluse nĂ€ha perioodilisust. Selgus, et see on oluline punkt ressursside paigutamise koha valimise juures; Ă€rge unustage uurida, kuidas korraldada tööd keelatud saitide nimekirjade ja RKN-i taotluste osas.

Alguses vĂ”rdlesin AS-i "Revisori" RIPE Atlas. See vĂ”rdlus on tĂ€iesti pĂ”hjendatud ja suur agentide vĂ”rk vĂ”ib tuua kasu. NĂ€iteks erinevate teenusepakkujate ressursi kĂ€ttesaadavuse kvaliteedi mÀÀramine eri regioonidest. Saab mÔÔta viivitusi, luua graafikuid, analĂŒĂŒsida andmeid ja nĂ€ha muudatusi nii lokaalsetel kui ka globaalsel tasandil. See ei ole kĂ”ige otsem tee, kuid astronoomid kasutavad ju "standardeid", miks mitte kasutada agente? Teades (leidnud) nende tavalist kĂ€itumist, saab mÀÀrata ĂŒmberringi toimuvaid muudatusi ja kuidas see mĂ”jutab teenuste kvaliteeti. Ja samal ajal ei pea ise proove sisse seadma, need on juba paigaldanud Roskomnadzor.

Veel on ĂŒks teema, mida ma tahan kĂ€sitleda: iga tööriist vĂ”ib olla relv. AS "Revisor" on suletud vĂ”rk, kuid Agendid annavad kĂ”ik ĂŒles, saates pĂ€ringuid kĂ”igile keelatud loendisse kuuluvatele ressurssidele. Sellise ressursi hankimine ei ole mingitpidi keeruline. LĂ”ppkokkuvĂ”ttes rÀÀgivad pakkujad Agente kaudu, seda tahes vĂ”i tahtmata, oma vĂ”rgust oluliselt rohkem, kui vĂ”ib-olla peaks: DPI ja DNS tĂŒĂŒbid, Agendi asukoht (keskpood ja teenindusvĂ”rk?), viivituse ja kadude vĂ”rgu markerid — ja see on vaid kĂ”ige ilmselgem. Nii nagu keegi vĂ”ib jĂ€lgida Agentide tegevusi oma ressursside kĂ€ttesaadavuse parandamiseks, vĂ”ib keegi seda teha ka muudel eesmĂ€rkidel ja sellele ei ole takistusi. Tulemus on kahe teraga ja vĂ€ga mitmekesine tööriist, milles vĂ”ib igaĂŒks veenduda.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster