Bilangin natin ang mga ahente na "Inspector"

Hindi lihim na ang kontrol ng pagharang sa listahan ng mga ipinagbabawal na impormasyon sa Russia ay sinusubaybayan ng automated system na "Inspector". Kung paano ito gumagana ay nakasulat nang maayos dito artikulo sa Habr, larawan mula sa parehong lugar:

Bilangin natin ang mga ahente na "Inspector"

Direktang naka-install sa provider module na "Agent Inspector":

Ang module na "Agent Inspector" ay isang istrukturang elemento ng automated system na "Inspector" (AS "Inspector"). Ang sistemang ito ay idinisenyo upang subaybayan ang pagsunod ng mga operator ng telecom sa mga kinakailangan sa paghihigpit sa pag-access sa loob ng balangkas ng mga probisyon na itinatag ng Mga Artikulo 15.1-15.4 ng Pederal na Batas ng Hulyo 27, 2006 No. 149-FZ "Sa Impormasyon, Teknolohiya ng Impormasyon at Proteksyon ng Impormasyon. ”

Ang pangunahing layunin ng paglikha ng AS "Revizor" ay upang matiyak ang pagsubaybay sa pagsunod ng mga operator ng telecom sa mga kinakailangan na itinatag ng Artikulo 15.1-15.4 ng Pederal na Batas ng Hulyo 27, 2006 No. 149-FZ "Sa Impormasyon, Teknolohiya ng Impormasyon at Proteksyon ng Impormasyon " sa mga tuntunin ng pagtukoy ng mga katotohanan ng pag-access sa ipinagbabawal na impormasyon at pagkuha ng mga pansuportang materyales (data) tungkol sa mga paglabag upang paghigpitan ang pag-access sa ipinagbabawal na impormasyon.

Isinasaalang-alang ang katotohanan na, kung hindi lahat, kung gayon maraming provider ang nag-install ng device na ito, dapat ay mayroong isang malaking network ng mga beacon probe tulad ng RIPE Atlas at higit pa, ngunit may saradong pag-access. Gayunpaman, ang isang beacon ay isang beacon upang magpadala ng mga signal sa lahat ng direksyon, ngunit paano kung mahuli natin sila at makita kung ano ang nahuli natin at ilan?

Bago tayo magbilang, tingnan natin kung bakit ito posible.

Isang kaunting teorya

Tinitingnan ng mga ahente ang pagkakaroon ng isang mapagkukunan, kabilang ang sa pamamagitan ng mga kahilingan sa HTTP(S), gaya ng isang ito:

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"

Bilang karagdagan sa payload, ang kahilingan ay binubuo din ng isang yugto ng pagtatatag ng koneksyon: palitan SYN и SYN-ACK, at mga yugto ng pagkumpleto ng koneksyon: FIN-ACK.

Ang rehistro ng ipinagbabawal na impormasyon ay naglalaman ng ilang uri ng pagharang. Malinaw, kung ang isang mapagkukunan ay na-block ng IP address o pangalan ng domain, hindi kami makakakita ng anumang mga kahilingan. Ito ang mga pinaka-mapanirang uri ng pagharang, na humahantong sa hindi naa-access ng lahat ng mga mapagkukunan sa isang IP address o lahat ng impormasyon sa isang domain. Mayroon ding "sa pamamagitan ng URL" na uri ng pagharang. Sa kasong ito, dapat i-parse ng sistema ng pag-filter ang header ng kahilingan sa HTTP upang matukoy kung ano mismo ang haharang. At bago ito, tulad ng makikita sa itaas, dapat mayroong isang yugto ng pagtatatag ng koneksyon na maaari mong subukang subaybayan, dahil malamang na ang filter ay makaligtaan ito.

Upang gawin ito, kailangan mong pumili ng angkop na libreng domain na may uri ng pag-block ng "URL" at HTTP upang mapadali ang gawain ng sistema ng pag-filter, mas mabuti na matagal nang inabandona, upang mabawasan ang pagpasok ng labis na trapiko maliban sa Mga Ahente. Ang gawaing ito ay naging hindi mahirap; mayroong maraming mga libreng domain sa rehistro ng ipinagbabawal na impormasyon at para sa bawat panlasa. Samakatuwid, ang domain ay binili at na-link sa mga IP address sa isang VPS na tumatakbo tcpdump at nagsimula na ang pagbibilang.

Pag-audit ng "Mga Auditor"

Inaasahan kong makakita ng panaka-nakang pagsabog ng mga kahilingan, na sa aking opinyon ay magsasaad ng kinokontrol na pagkilos. Imposibleng sabihin na hindi ko ito nakita, ngunit tiyak na walang malinaw na larawan:

Bilangin natin ang mga ahente na "Inspector"

Alin ang hindi nakakagulat, kahit na sa isang domain na walang nangangailangan at sa isang hindi nagamit na IP, magkakaroon lamang ng isang tonelada ng hindi hinihinging impormasyon, tulad ng modernong Internet. Ngunit sa kabutihang palad, kailangan ko lang ng mga kahilingan para sa isang partikular na URL, kaya ang lahat ng mga scanner at password cracker ay mabilis na natagpuan. Gayundin, napakadaling maunawaan kung saan nakabatay ang baha sa dami ng mga katulad na kahilingan. Susunod, pinagsama-sama ko ang dalas ng paglitaw ng mga IP address at dumaan sa buong tuktok nang manu-mano, na naghihiwalay sa mga nakaligtaan nito sa mga nakaraang yugto. Bukod pa rito, pinutol ko ang lahat ng mga pinagmumulan na ipinadala sa isang pakete, hindi na marami sa kanila. At ito ang nangyari:

Bilangin natin ang mga ahente na "Inspector"

Isang maliit na lyrical digression. Pagkalipas ng kaunti, ang aking hosting provider ay nagpadala ng isang sulat na may medyo streamline na nilalaman, na nagsasabi na ang iyong mga pasilidad ay naglalaman ng isang mapagkukunan mula sa listahan ng ipinagbabawal ng RKN, kaya ito ay naharang. Nung una akala ko blocked yung account ko, hindi pala ganito. Pagkatapos ay naisip ko na binabalaan lang nila ako tungkol sa isang bagay na alam ko na. Ngunit na-on pala ng hoster ang filter nito sa harap ng aking domain at bilang resulta ay sumailalim ako sa double filtering: mula sa mga provider at mula sa hoster. Ang filter ay pumasa lamang sa mga dulo ng mga kahilingan: FIN-ACK и RST putulin ang lahat ng HTTP sa isang ipinagbabawal na URL. Tulad ng nakikita mo mula sa graph sa itaas, pagkatapos ng unang araw ay nagsimula akong makatanggap ng mas kaunting data, ngunit natanggap ko pa rin ito, na sapat na para sa gawain ng pagbibilang ng mga mapagkukunan ng kahilingan.

Umabot sa punto. Sa palagay ko, dalawang pagsabog ang malinaw na nakikita araw-araw, ang una ay mas maliit, pagkatapos ng hatinggabi na oras ng Moscow, ang pangalawa ay mas malapit sa 6 ng umaga na may buntot hanggang 12 ng tanghali. Ang peak ay hindi nangyayari nang eksakto sa parehong oras. Noong una, gusto kong pumili ng mga IP address na nahulog lamang sa mga panahong ito at bawat isa sa lahat ng panahon, batay sa pag-aakalang ang mga pagsusuri ng mga Ahente ay pana-panahong ginagawa. Ngunit sa maingat na pagsusuri, mabilis kong natuklasan ang mga panahon na bumabagsak sa iba pang mga agwat, na may iba pang mga frequency, hanggang sa isang kahilingan bawat oras. Pagkatapos ay naisip ko ang tungkol sa mga time zone at marahil ito ay may kinalaman sa kanila, pagkatapos ay naisip ko na sa pangkalahatan ay maaaring hindi naka-synchronize ang system sa buong mundo. Bilang karagdagan, malamang na gaganap ng papel ang NAT at ang parehong Ahente ay maaaring gumawa ng mga kahilingan mula sa iba't ibang pampublikong IP.

Dahil hindi eksakto ang aking paunang layunin, binilang ko ang lahat ng mga address na nakita ko sa isang linggo at nakuha ko - 2791. Ang bilang ng mga session ng TCP na itinatag mula sa isang address ay nasa average na 4, na may median na 2. Mga nangungunang session bawat address: 464, 231, 149, 83, 77. Ang maximum mula sa 95% ng sample ay 8 session bawat address. Ang median ay hindi masyadong mataas, hayaan mo akong ipaalala sa iyo na ang graph ay nagpapakita ng isang malinaw na pang-araw-araw na periodicity, kaya maaaring asahan ang isang bagay sa paligid ng 4 hanggang 8 sa 7 araw. Kung itatapon natin ang lahat ng session na nangyayari nang isang beses, makakakuha tayo ng median na katumbas ng 5. Ngunit hindi ko maibubukod ang mga ito batay sa isang malinaw na pamantayan. Sa kabaligtaran, ipinakita ng isang random na pagsusuri na nauugnay ang mga ito sa mga kahilingan para sa isang ipinagbabawal na mapagkukunan.

Ang mga address ay mga address, ngunit sa Internet, mga autonomous system - AS, na naging mas mahalaga 1510, sa average na 2 address sa bawat AS na may median na 1. Mga nangungunang address sa bawat AS: 288, 77, 66, 39, 27. Ang maximum na 95% ng sample ay 4 na address sa bawat AS. Dito inaasahan ang median - isang Ahente bawat provider. Inaasahan din namin ang nangungunang - may malalaking manlalaro dito. Sa isang malaking network, malamang na matatagpuan ang mga Ahente sa bawat rehiyon ng presensya ng operator, at huwag kalimutan ang tungkol sa NAT. Kung kukunin natin ito ayon sa bansa, ang maximum ay magiging: 1409 - RU, 42 - UA, 23 - CZ, 36 mula sa ibang mga rehiyon, hindi RIPE NCC. Ang mga kahilingan mula sa labas ng Russia ay nakakaakit ng pansin. Malamang na maipaliwanag ito ng mga error sa geolocation o mga error sa registrar kapag pinupunan ang data. O ang katotohanan na ang isang kumpanyang Ruso ay maaaring walang pinagmulang Ruso, o mayroong tanggapan ng kinatawan ng dayuhan dahil mas madali ito, na natural kapag nakikitungo sa isang dayuhang organisasyon na RIPE NCC. Ang ilang bahagi ay walang alinlangan na labis, ngunit ito ay mapagkakatiwalaan na mahirap paghiwalayin ito, dahil ang mapagkukunan ay nasa ilalim ng pagharang, at mula sa ikalawang araw sa ilalim ng dobleng pagharang, at karamihan sa mga sesyon ay isang palitan lamang ng ilang mga packet ng serbisyo. Sumang-ayon tayo na ito ay isang maliit na bahagi.

Ang mga numerong ito ay maihahambing na sa bilang ng mga provider sa Russia. Ayon sa RKN mga lisensya para sa "Mga serbisyo ng komunikasyon para sa paghahatid ng data, hindi kasama ang boses" - 6387, ngunit ito ay isang napakataas na pagtatantya mula sa itaas, hindi lahat ng mga lisensyang ito ay partikular na nalalapat sa mga provider ng Internet na kailangang mag-install ng Ahente. Sa RIPE NCC zone mayroong isang katulad na bilang ng mga AS na nakarehistro sa Russia - 6230, kung saan hindi lahat ay mga provider. Gumagawa ang UserSide ng mas mahigpit na pagkalkula at nakatanggap ng 3940 kumpanya noong 2017, at ito ay isang pagtatantya mula sa itaas. Sa anumang kaso, mayroon kaming dalawa at kalahating beses na mas kaunting bilang ng mga iluminadong AS. Ngunit narito ito ay nagkakahalaga ng pag-unawa na ang AS ay hindi mahigpit na katumbas ng provider. Ang ilang provider ay walang sariling AS, ang ilan ay may higit sa isa. Kung ipagpalagay natin na ang lahat ay mayroon pa ring Ahente, kung gayon ang isang tao ay nagsasala nang mas malakas kaysa sa iba, upang ang kanilang mga kahilingan ay hindi matukoy ang pagkakaiba sa basura, kung maabot nila sila. Ngunit para sa isang magaspang na pagtatasa ay medyo matatagalan, kahit na may nawala dahil sa aking pangangasiwa.

Tungkol sa DPI

Sa kabila ng katotohanan na ang aking hosting provider ay na-on ang filter nito simula sa ikalawang araw, batay sa impormasyon mula sa unang araw maaari naming tapusin na ang pagharang ay matagumpay na gumagana. 4 na source lang ang nakalusot at ganap na nakumpleto ang mga sesyon ng HTTP at TCP (tulad ng sa halimbawa sa itaas). Maaaring ipadala ang isa pang 460 GET, ngunit ang session ay agad na tinapos ng RST. Bigyang-pansin ang 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"

Maaaring iba ang mga pagkakaiba-iba nito: mas kaunti RST o higit pang mga retransmit - depende rin sa kung ano ang ipinapadala ng filter sa source node. Sa anumang kaso, ito ang pinaka maaasahang template, kung saan malinaw na ito ay isang ipinagbabawal na mapagkukunan na hiniling. Dagdag pa, palaging may sagot na lumalabas sa session na may TTL mas malaki kaysa sa nauna at kasunod na mga pakete.

Ni hindi mo ito makikita mula sa iba 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"

O kaya:

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

Ang pagkakaiba ay tiyak na nakikita TTL kung may nanggaling sa filter. Ngunit kadalasan ay walang maaaring dumating sa lahat:

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

O kaya:

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

At ang lahat ng ito ay paulit-ulit at paulit-ulit at paulit-ulit, tulad ng makikita sa graph, higit sa isang beses, araw-araw.

Tungkol sa IPv6

Ang mabuting balita ay na ito ay umiiral. Mapagkakatiwalaan kong masasabi na ang mga pana-panahong kahilingan sa isang ipinagbabawal na mapagkukunan ay nagaganap mula sa 5 magkakaibang IPv6 address, na eksakto ang pag-uugali ng mga Ahente na inaasahan ko. Bukod dito, ang isa sa mga IPv6 address ay hindi nasa ilalim ng pag-filter at nakikita ko ang isang buong session. Mula sa dalawa pa ay nakita ko lamang ang isang hindi natapos na sesyon, ang isa ay nagambala ng RST mula sa filter, pangalawa sa oras. Kabuuang halaga 7.

Dahil kaunti lang ang address, pinag-aralan ko lahat ng detalyado at 3 lang pala ang provider doon, pwede silang bigyan ng standing ovation! Ang isa pang address ay cloud hosting sa Russia (hindi nag-filter), ang isa pa ay isang research center sa Germany (may filter, saan?). Ngunit bakit nila sinusuri ang pagkakaroon ng mga ipinagbabawal na mapagkukunan sa isang iskedyul ay isang magandang tanong. Ang natitirang dalawa ay gumawa ng isang kahilingan at matatagpuan sa labas ng Russia, at ang isa sa kanila ay na-filter (nasa transit, pagkatapos ng lahat?).

Ang Pag-block at Mga Ahente ay isang malaking hadlang sa IPv6, ang pagpapatupad nito ay hindi masyadong mabilis na gumagalaw. Ito ay malungkot. Ang mga nakalutas sa problemang ito ay maaaring ganap na ipagmalaki ang kanilang sarili.

Sa pagtatapos

Hindi ako nagsusumikap para sa 100% na katumpakan, mangyaring patawarin mo ako para dito, sana ay may gustong ulitin ang gawaing ito nang may higit na katumpakan. Mahalaga para sa akin na maunawaan kung ang pamamaraang ito ay gagana sa prinsipyo. Ang sagot ay oo. Ang nakuha na mga numero, bilang isang unang pagtatantya, sa palagay ko, ay lubos na maaasahan.

Ano pa ang maaaring gawin at ang tinatamad kong gawin ay magbilang ng mga kahilingan sa DNS. Hindi sila na-filter, ngunit hindi rin sila nagbibigay ng katumpakan dahil gumagana lang ang mga ito para sa domain, at hindi para sa buong URL. Ang dalas ay dapat na nakikita. Kung isasama mo ito sa kung ano ang direktang nakikita sa mga query, ito ay magbibigay-daan sa iyong paghiwalayin ang mga hindi kailangan at makakuha ng higit pang impormasyon. Posible pa ring matukoy ang mga developer ng DNS na ginagamit ng mga provider at marami pang iba.

Talagang hindi ko inaasahan na isasama rin ng hoster ang sarili nitong filter para sa aking VPS. Marahil ito ay karaniwang gawain. Sa huli, nagpapadala ang RKN ng kahilingan na tanggalin ang mapagkukunan sa hoster. Ngunit hindi ito nagulat sa akin at sa ilang mga paraan kahit na nagtrabaho sa aking kalamangan. Ang filter ay gumana nang napaka-epektibo, na pinutol ang lahat ng tamang HTTP na kahilingan sa isang ipinagbabawal na URL, ngunit hindi ang mga tama na dati nang dumaan sa filter ng mga provider ay nakarating sa kanila, kahit na sa anyo lamang ng mga pagtatapos: FIN-ACK и RST - minus para sa minus at ito ay halos naging isang plus. Sa pamamagitan ng paraan, ang IPv6 ay hindi na-filter ng hoster. Siyempre, naapektuhan nito ang kalidad ng nakolektang materyal, ngunit ginawa pa rin nitong posible na makita ang dalas. Ito ay naging isang mahalagang punto kapag pumipili ng isang site para sa paglalagay ng mga mapagkukunan; huwag kalimutang magkaroon ng interes sa isyu ng pag-aayos ng trabaho kasama ang listahan ng mga ipinagbabawal na site at mga kahilingan mula sa RKN.

Sa simula, inihambing ko ang AS "Inspector" sa RIPE Atlas. Ang paghahambing na ito ay lubos na makatwiran at ang isang malaking network ng mga Ahente ay maaaring maging kapaki-pakinabang. Halimbawa, ang pagtukoy sa kalidad ng pagkakaroon ng mapagkukunan mula sa iba't ibang provider sa iba't ibang bahagi ng bansa. Maaari mong kalkulahin ang mga pagkaantala, maaari kang bumuo ng mga graph, maaari mong pag-aralan ang lahat ng ito at makita ang mga pagbabagong nagaganap sa lokal at sa buong mundo. Hindi ito ang pinakadirektang paraan, ngunit ang mga astronomo ay gumagamit ng "karaniwang mga kandila", bakit hindi gumamit ng Ahente? Alam (nahanap) ang kanilang karaniwang pag-uugali, matutukoy mo ang mga pagbabagong nagaganap sa kanilang paligid at kung paano ito nakakaapekto sa kalidad ng mga serbisyong ibinigay. At sa parehong oras, hindi mo kailangang independiyenteng maglagay ng mga probe sa network; Na-install na sila ng Roskomnadzor.

Ang isa pang punto na nais kong hawakan ay ang bawat kasangkapan ay maaaring maging sandata. AS "Inspector" ay isang saradong network, ngunit ang mga Ahente ibigay ang lahat sa pamamagitan ng pagpapadala ng mga kahilingan para sa lahat ng mga mapagkukunan mula sa ipinagbabawal na listahan. Ang pagkakaroon ng gayong mapagkukunan ay hindi nagpapakita ng anumang mga problema. Sa kabuuan, ang mga provider sa pamamagitan ng Mga Ahente, nang hindi sinasadya, ay nagsasabi ng higit pa tungkol sa kanilang network kaysa sa malamang na katumbas ng halaga: mga uri ng DPI at DNS, lokasyon ng Ahente (central node at network ng serbisyo?), mga marker ng network ng mga pagkaantala at pagkalugi - at ito ay tanging ang pinaka-halata. Kung paanong masusubaybayan ng isang tao ang mga aksyon ng mga Ahente upang mapabuti ang pagkakaroon ng kanilang mga mapagkukunan, magagawa ito ng isang tao para sa iba pang mga layunin at walang mga hadlang dito. Ang resulta ay isang double-edged at napaka-multifaceted na instrumento, makikita ito ng sinuman.

Pinagmulan: www.habr.com

Magdagdag ng komento