Ieu aya rusiah yén kontrol blocking dina daptar informasi dilarang di Rusia diawaskeun ku sistem otomatis "Inspektur". Kumaha gawéna ditulis ogé di dieu di ieu
Dipasang langsung di panyadia
Modul "Agen Inspektur" mangrupikeun unsur struktural tina sistem otomatis "Inspektur" (AS "Inspektur"). Sistem ieu dirancang pikeun ngawas pamatuhan operator telekomunikasi sareng syarat larangan aksés dina kerangka katangtuan anu ditetepkeun ku Pasal 15.1-15.4 Hukum Federal 27 Juli 2006 No. 149-FZ "Dina Émbaran, Téknologi Informasi sareng Perlindungan Émbaran. ”
Tujuan utama nyiptakeun AS "Revizor" nyaéta pikeun mastikeun ngawaskeun patuh operator telekomunikasi sareng sarat anu ditetepkeun ku Artikel 15.1-15.4 tina Hukum Féderal 27 Juli 2006 No. 149-FZ "Ngeunaan Émbaran, Téknologi Informasi sareng Perlindungan Émbaran. "Dina hal ngaidentipikasi kanyataan aksés kana inpormasi anu dilarang sareng kéngingkeun bahan pendukung (data) ngeunaan palanggaran pikeun ngawatesan aksés kana inpormasi anu dilarang.
Nyandak kanyataan yén, upami henteu sadayana, maka seueur panyadia parantos dipasang alat ieu, kedahna aya jaringan panyilidikan lantera anu ageung sapertos
Sateuacan urang ngitung, hayu urang tingali naha ieu tiasa waé.
Bit téori
Agén pariksa kasadiaan sumber daya, kalebet ngalangkungan pamundut HTTP(S), sapertos kieu:
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"
Salian payload, pamundut ogé diwangun ku fase ngadegkeun sambungan: bursa SYN
и SYN-ACK
, sareng fase parantosan sambungan: FIN-ACK
.
Daptar inpormasi anu dilarang ngandung sababaraha jinis pameungpeuk. Jelas, upami sumberdaya diblokir ku alamat IP atanapi nami domain, maka urang moal ningali pamundut naon waé. Ieu mangrupikeun jinis pameungpeuk anu paling ngaruksak, anu nyababkeun teu tiasa diakses sadaya sumber dina hiji alamat IP atanapi sadaya inpormasi dina domain. Aya ogé "ku URL" tipe blocking. Dina hal ieu, sistem nyaring kudu parse lulugu pamundut HTTP pikeun nangtukeun kahayang pikeun meungpeuk. Sareng sateuacanna, sapertos anu tiasa ditingali di luhur, kedah aya fase ngadegkeun sambungan anu anjeun tiasa nyobian ngalacak, sabab paling dipikaresep saringan bakal sono.
Jang ngalampahkeun ieu, anjeun kudu milih hiji domain bébas cocog jeung "URL" jeung tipe blocking HTTP pikeun mempermudah karya sistem nyaring, preferably lila ditinggalkeun, pikeun ngaleutikan asupna lalulintas extraneous iwal ti Agen. Tugas ieu tétéla henteu sesah, aya cukup seueur domain gratis dina daptar inpormasi anu dilarang sareng pikeun unggal rasa. Ku alatan éta, domain ieu dibeuli na numbu ka alamat IP dina VPS ngajalankeun tcpdump
sarta cacah dimimitian.
Audit "Auditor"
Kuring diperkirakeun ningali bursts périodik tina requests, nu dina pamadegan mah bakal nunjukkeun aksi dikawasa. Teu mungkin mun disebutkeun yen kuring teu ningali eta pisan, tapi aya pasti euweuh gambar jelas:
Nu teu héran, sanajan dina domain nu teu saurang ogé merlukeun sarta dina IP pernah-dipaké, ngan bakal aya ton informasi unsolicited, misalna Internet modern. Tapi untungna, kuring ngan diperlukeun requests pikeun URL husus, jadi sagala scanner na crackers sandi gancang kapanggih. Ogé, éta rada gampang ngartos dimana caah ieu dumasar kana massa requests sarupa. Salajengna, kuring nyusun frékuénsi lumangsungna alamat IP sareng ngalangkungan sadayana luhur sacara manual, misahkeun jalma anu sono dina tahap sateuacana. Salaku tambahan, kuring motong sadaya sumber anu dikirim dina hiji pakét, henteu seueur deui. Sareng ieu anu kajantenan:
A digression liris leutik. Sakedap langkung ti sadinten, panyadia hosting kuring ngirim surat kalayan eusi anu rada ramping, nyatakeun yén fasilitas anjeun ngandung sumber tina daptar larangan RKN, ku kituna diblokir. Mimitina kuring ngira yén akun kuring diblokir, ieu sanés masalahna. Teras kuring ngira yén aranjeunna ngan ukur ngingetkeun kuring ngeunaan hal anu kuring parantos terang. Tapi tétéla yén hoster dihurungkeun filter na di hareup domain kuring jeung salaku hasilna kuring datang dina saringan ganda: ti panyadia jeung ti hoster nu. Saringan ngan ukur ngalangkungan tungtung pamundut: FIN-ACK
и RST
motong kaluar kabeh HTTP dina URL dilarang. Sakumaha anjeun tiasa tingali tina grafik di luhur, sanggeus poé kahiji kuring mimiti nampi kirang data, tapi kuring masih narima eta, nu éta cukup keur tugas cacah sumber pamundut.
Meunang ka titik. Dina pamanggih kuring, dua bursts jelas katempo unggal poe, kahiji leutik, sanggeus tengah wengi waktos Moscow, kadua ngadeukeutan ka 6 am kalawan buntut nepi ka 12 beurang. Puncak henteu lumangsung dina waktos anu sami. Mimitina, kuring hoyong milih alamat IP anu murag ngan dina période ieu sareng masing-masing dina sadaya période, dumasar kana anggapan yén pamariksaan ku Agén dilaksanakeun sacara périodik. Tapi nalika ditinjau sacara ati-ati, kuring gancang mendakan période ragrag kana interval anu sanés, kalayan frékuénsi anu sanés, dugi ka hiji pamundut unggal jam. Teras kuring mikir ngeunaan zona waktos sareng panginten éta aya hubunganana sareng aranjeunna, teras kuring ngira yén sacara umum sistem éta henteu tiasa disingkronkeun sacara global. Salaku tambahan, NAT sigana bakal maénkeun peran sareng Agén anu sami tiasa ngadamel pamundut ti IP umum anu béda.
Kusabab tujuan awal kuring henteu persis, kuring ngitung sadaya alamat anu kuring datang dina saminggu sareng ngagaduhan - 2791. Jumlah sesi TCP ngadegkeun ti hiji alamat rata-rata 4, kalawan median 2. sesi Top per alamat: 464, 231, 149, 83, 77. Maksimum ti 95% tina sampel nyaéta 8 sesi per alamat. Median teu pisan tinggi, hayu atuh ngingetan yén grafik nembongkeun periodicity poean jelas, jadi hiji bisa ngaharepkeun hal sabudeureun 4 ka 8 dina 7 poé. Lamun urang buang kaluar kabeh sesi anu lumangsung sakali, urang bakal meunang median sarua jeung 5. Tapi kuring teu bisa ngaluarkeun aranjeunna dumasar kana kriteria jelas. Sabalikna, cek acak nunjukkeun yén aranjeunna aya hubunganana sareng paménta sumber anu dilarang.
Alamat nyaéta alamat, tapi dina Internét, sistem otonom - AS, anu tétéla langkung penting 1510, rata-rata 2 alamat per AS kalawan median 1. Top alamat per AS: 288, 77, 66, 39, 27. Maksimum 95% sampel nyaéta 4 alamat per AS. Di dieu median diperkirakeun - hiji Agen per panyadia. Kami ogé ngarepkeun anu luhur - aya pamaén gedé di jerona. Dina jaringan anu ageung, Agén sigana kedah aya di unggal daérah ayana operator, sareng ulah hilap ngeunaan NAT. Upami urang nyandak ku nagara, maksimalna bakal: 1409 - RU, 42 - UA, 23 - CZ, 36 ti daérah sanés, sanés RIPE NCC. Requests ti luar Rusia narik perhatian. Ieu sigana tiasa dijelaskeun ku kasalahan geolokasi atanapi kasalahan registrar nalika ngeusian data. Atawa kanyataan yén hiji parusahaan Rusia bisa jadi teu boga akar Rusia, atawa boga kantor perwakilan asing sabab leuwih gampang, nu lumrah lamun kaayaan hiji organisasi asing RIPE NCC. Sababaraha bagian anu undoubtedly superfluous, tapi reliably hésé pikeun misahkeun eta, saprak sumberdaya nu aya dina blocking, sarta ti dinten kadua dina blocking ganda, sarta lolobana sesi téh ngan hiji bursa sababaraha pakét jasa. Hayu urang satuju yén ieu bagian leutik.
Angka ieu parantos tiasa dibandingkeun sareng jumlah panyadia di Rusia.
Ngeunaan DPI
Sanaos kanyataan yén panyadia hosting kuring dihurungkeun saringanna ti dinten kadua, dumasar kana inpormasi ti dinten kahiji urang tiasa nyimpulkeun yén pameungpeukna parantos suksés. Ngan 4 sumber anu tiasa ngalangkungan sareng parantos réngsé sési HTTP sareng TCP (sapertos dina conto di luhur). 460 deui tiasa dikirim GET
, tapi sési langsung ditungtungan ku RST
. Nengetan 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"
Variasi ieu tiasa béda: kirang RST
atawa leuwih retransmits - ogé gumantung kana naon filter nu ngirimkeun ka titik sumber. Dina naon waé, ieu mangrupikeun template anu paling dipercaya, anu jelas yén éta mangrupikeun sumber anu dilarang anu dipénta. Ditambah sok aya jawaban nu nembongan dina sési kalawan TTL
leuwih gede ti dina bungkusan saméméhna jeung saterusna.
Anjeun malah teu bisa ningali eta ti sésana 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"
Atanapi kitu:
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"
...
Bédana pasti katingali TTL
lamun aya anu asalna tina saringan. Tapi sering teu aya anu tiasa sumping:
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"
...
Atanapi kitu:
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"
...
Sareng sadaya ieu diulang sareng diulang sareng diulang, sapertos anu tiasa ditingali dina grafik, langkung ti sakali, unggal dinten.
Ngeunaan IPv6
Warta alus nyaéta yén éta aya. Kuring reliably bisa disebutkeun yen requests periodik ka sumberdaya dilarang lumangsung ti 5 alamat IPv6 béda, nu persis paripolah Agén nu kuring ekspektasi. Sumawona, salah sahiji alamat IPv6 henteu digolongkeun saringan sareng kuring ningali sési pinuh. Ti dua deui kuring nempo ngan hiji sési tacan beres, salah sahiji nu interrupted ku RST
ti saringan, kadua dina waktosna. Jumlah total 7.
Kusabab aya sababaraha alamat, kuring diajar sadayana sacara rinci sareng tétéla aya ngan ukur 3 panyadia di dinya, aranjeunna tiasa dipasihan standing ovation! Alamat anu sanés nyaéta cloud hosting di Rusia (henteu nyaring), sanés mangrupikeun pusat riset di Jerman (aya saringan, dimana?). Tapi naha maranéhna pariksa kasadiaan sumberdaya dilarang dina jadwal hiji patarosan alus. Dua sésana dijieun hiji pamundut sarta lokasina di luar Rusia, sarta salah sahijina disaring (dina transit, sanggeus kabeh?).
Meungpeuk sareng Agén mangrupikeun halangan ageung pikeun IPv6, palaksanaan anu henteu gancang pisan. Sedih. Jalma anu ngajawab masalah ieu bisa pinuh reueus sorangan.
dina kacindekan
Kuring henteu narékahan pikeun akurasi 100%, punten ngahampura kuring pikeun ieu, kuring ngarepkeun aya anu hoyong ngulang karya ieu kalayan akurasi anu langkung ageung. Éta penting pikeun kuring ngartos naha pendekatan ieu bakal dianggo prinsipna. Jawabna enya. Angka anu diala, salaku perkiraan anu munggaran, kuring nyangka, cukup dipercaya.
Naon deui anu tiasa dilakukeun sareng naon anu kuring teu puguh nyaéta ngitung pamundut DNS. Aranjeunna teu disaring, tapi maranéhna ogé teu nyadiakeun loba akurasi saprak maranéhna ngan dianggo pikeun domain, sarta henteu pikeun sakabéh URL. Frékuénsina kedah katingali. Upami anjeun ngagabung sareng anu katingali langsung dina patarosan, ieu bakal ngamungkinkeun anjeun pikeun misahkeun anu teu perlu sareng nampi inpormasi anu langkung seueur. Malah mungkin pikeun nangtukeun pamekar DNS anu dianggo ku panyadia sareng seueur deui.
Kuring leres-leres henteu nyangka yén hoster ogé bakal ngalebetkeun saringan sorangan pikeun VPS kuring. Meureun ieu prakték umum. Tungtungna, RKN ngirimkeun pamundut pikeun ngahapus sumber daya ka hoster. Tapi ieu teu kaget kuring sarta dina sababaraha cara malah digawé pikeun kaunggulan kuring. Saringan digawé sacara efektif, motong sadaya pamundut HTTP anu leres ka URL anu dilarang, tapi henteu leres anu sateuacana ngalangkungan saringan panyadia ngahontal aranjeunna, sanaos dina bentuk tungtung: FIN-ACK
и RST
- minus pikeun dikurangan sareng ampir janten tambah. Ku jalan kitu, IPv6 henteu disaring ku hoster. Tangtosna, ieu mangaruhan kualitas bahan dikumpulkeun, tapi masih ngamungkinkeun pikeun nempo frékuénsi. Tétéla yén ieu mangrupikeun titik anu penting nalika milih situs pikeun nempatkeun sumber daya; ulah hilap nyandak minat kana masalah pangatur padamelan sareng daptar situs anu dilarang sareng pamundut ti RKN.
Dina awalna, kuring dibandingkeun AS "Inspektur" kalawan
titik sejen Abdi hoyong noél dina éta unggal alat bisa jadi pakarang. AS "Inspektur" mangrupakeun jaringan katutup, tapi Agen nyerah dulur ku ngirim requests pikeun sakabéh sumber tina daptar dilarang. Ngagaduhan sumberdaya sapertos kitu henteu aya masalah. Dina total, panyadia liwat Agén, tanpa disadari, nyarios langkung seueur ngeunaan jaringanna tibatan anu sigana patut: DPI sareng jinis DNS, lokasi Agen (titik pusat sareng jaringan jasa?), spidol jaringan telat sareng karugian - sareng ieu. ngan nu paling atra. Sapertos aya anu tiasa ngawas tindakan Agén pikeun ningkatkeun kasadiaan sumber dayana, batur tiasa ngalakukeun ieu pikeun tujuan anu sanés sareng teu aya halangan pikeun ieu. Hasilna mangrupikeun alat dua sisi sareng multifaceted, saha waé tiasa ningali ieu.
sumber: www.habr.com