Contacte

Ce este dns spoofing. Scriem un plugin pentru serverul DNS Microsoft pentru a proteja împotriva falsificării IDN. IDN Clones - o tehnică bazată pe similitudinea externă a afișării numelor de domenii

Original: atacuri cibernetice explicate: invazii DNS
Autor: Prashant Phatak
Data publicării: 22 februarie 2012
Traducere: A. Panin
Data transferului: 8 decembrie 2012

Vedem adesea site-uri care au fost deformate, ale căror pagini principale au fost înlocuite cu intruși. Cum reușesc atacatorii să efectueze astfel de atacuri și cum ne putem proteja infrastructura de rețea de ele? Acest articol discută despre modul în care atacatorii pot interfera cu DNS (Domain Name System). Atacurile DNS sunt complexe din punct de vedere tehnic și periculoase pentru rețea și infrastructura web. Administratorii de rețea ar trebui să cunoască cât mai multe despre acest tip de atac și să ia toate măsurile posibile pentru a asigura securitatea infrastructurii pe care o deservesc.

După cum știm, motivul existenței DNS este faptul că o persoană nu își poate aminti multe adrese IP pentru a accesa site-uri, în timp ce își poate aminti cu ușurință numele site-urilor constând din litere și cifre. Sistemul DNS a fost conceput într-un moment în care Internetul era folosit de oameni prietenoși, ceea ce a condus la unele dintre particularitățile acestui sistem în timpurile moderne.

Figura 1 ilustrează principiile fundamentale ale serviciului de rezoluție a numelor de rețea. Când o aplicație (cum ar fi un browser) dorește să se conecteze la un serviciu de la distanță, solicită serverului DNS o adresă IP. Această solicitare sub formă de pachet este trimisă prin portul UDP 53, după care serverul returnează un răspuns sub forma unui pachet. (Rețineți că, datorită datagramei UDP de 512 octeți, stiva de protocoale utilizează automat TCP pentru a face cereri și a primi răspunsuri.) Când un client primește un răspuns, adaugă datele în memoria cache locală, ceea ce poate accelera apelurile ulterioare către acelasi domeniu. Elementele din memoria cache locale sunt distruse automat după durata de viață (parametru TTL (Time to Live)).

Figura 1: Rezoluția numelui de domeniu

Sistemul DNS utilizează tipuri de înregistrări precum A, CNAME, SOA, MX și altele. Deși este dincolo de scopul acestui articol de a descrie aceste tipuri de înregistrări, este important ca administratorii de sistem să știe când și cum ar trebui să fie utilizate și ar trebui făcute cercetări pentru securitatea viitoare a sistemului înainte de a le utiliza. Înainte de a analiza atacurile asupra sistemului DNS, trebuie să ne uităm la două tipuri de interogări - iterative și recursive.

  • Interogări DNS iterative: În timp ce clientul trimite o solicitare către serverul DNS, dorind să obțină informații despre domeniu, serverul DNS poate avea sau nu informații despre acest domeniu. Dacă serverul DNS nu are răspuns, în loc să completeze cererea, trimite clientului numele serverului DNS superior, care poate avea informațiile de care are nevoie. Acest proces este denumit în mod obișnuit trimitere DNS. Clientul trimite o cerere către următorul server (specificat); dacă nu are răspuns, trimite clientului numele serverului superior. Acest proces continuă până când clientul primește fie o adresă IP, fie un mesaj de eroare care afirmă că solicitarea nu a putut fi îndeplinită.
  • Interogări recursive DNS: În acest caz, procesul începe cu clientul care face o cerere de rezoluție a numelui de domeniu direct către serverul DNS. Dacă serverul DNS nu are un răspuns, ar trebui să facă treaba de a comunica cu serverele superioare în loc să furnizeze doar numele acestora clientului. Din nou, dacă serverul superior nu are informațiile necesare pentru a răspunde la cerere, acesta trimite cererea către serverul superior. Acest proces continuă până când cererea ajunge la serverul DNS rădăcină, care ar trebui să aibă informatie necesarași un răspuns este returnat clientului, iar dacă numele solicitat nu există, un mesaj de eroare este returnat clientului de-a lungul lanțului de servere. Spre deosebire de metoda iterativă, interogarea recursivă este considerată mai agresivă în obținerea rezultatului.

Interogările iterative sunt de obicei făcute de serverele DNS, în timp ce interogările recursive sunt făcute de către clienți, deoarece acest tip de interogare evită recurgerea la un mecanism complex de procesare a redirecționărilor DNS. Din perspectiva securității sistemului, administratorii trebuie să cunoască elementele de bază ale modului în care funcționează sistemele DNS, deoarece o organizație poate opera mai multe servere DNS, sincronizând înregistrările de zonă pentru a menține consistența datelor.

Datele DNS sunt sincronizate periodic, fără a fi nevoie să reporniți serviciile de sistem, iar atunci când se fac modificări pe serverul rădăcină, acesta trimite automat datele de modificare către serverele din aval. Timpul necesar pentru sincronizarea datelor este stabilit de parametrul de viață al fiecărei înregistrări. În cazul serverelor DNS dispersate geografic, perioada de sincronizare a datelor poate dura până la o zi, deoarece fiecare dintre serverele din lanț folosește propriul cache pentru a accelera procesarea cererilor.

Atacurile DNS

S-a observat că administratorii de sistem petrece mult timp dezvoltând sisteme de securitate pentru aplicații, servere și alte componente de infrastructură, dar, din păcate, tind să uităm de sistemele de securitate pentru serverele DNS. Luați în considerare Figura 2, care arată posibilele slăbiciuni ale serverelor DNS care le fac vulnerabile la atacuri. DNS este proiectat în așa fel încât cea mai mare parte a comunicațiilor se face prin UDP, nu are securitate încorporată și nici suport încorporat pentru autentificare - toate acestea îl fac mai vulnerabil la atacuri decât alte servicii de rețea. Să aruncăm o privire la mai multe tipuri de atacuri DNS cele mai comune.


Figura 2: Potențiale puncte slabe ale serverului DNS

Otrăvirea cache-ului DNS

Acest atac vă permite să interferați cu procesul de rezoluție a numelui în două moduri. În prima metodă, cracker-ul instalează software rău intenționat (rootkit sau virus) care ar trebui să fie controlat de localul. cache DNS pe aparatul clientului. Înregistrările din memoria cache DNS locală sunt apoi modificate pentru a indica adrese IP diferite.

De exemplu, dacă un browser încearcă să acceseze un site cu adresa http://www.cnn.com/, în loc de adresa IP CNN, acesta primește o adresă stabilită de software-ul crackerului, care de obicei duce la un site situat pe un server deținut de cracker și care conține software rău intenționat sau un mesaj care jignește utilizatorul.

A doua metodă, mai periculoasă, este ca un atacator să atace un server DNS și să-i modifice memoria cache locală, astfel încât toate serverele care folosesc acest server pentru rezolvarea numelor vor primi adrese IP incorecte, ceea ce va duce în cele din urmă la încălcarea acestora. în pierderea sau furtul de informații.

În cazuri foarte rare, atacatorii pot obține acces la serverul DNS rădăcină, care stochează înregistrările principale ale domeniilor rădăcină, cum ar fi .com, .net sau înregistrările sistemului de nume de domeniu ale țărilor individuale. Atacatorii pot modifica înregistrările de pe acest server, în timp ce alte servere vor primi automat datele modificate, ceea ce poate duce la întreruperi globale ale serviciilor și site-urilor de rețea comercială. Deși astfel de situații sunt foarte rare, ele apar - nu cu mult timp în urmă, o mare rețea socială a fost perturbată de un atac similar.

Înlocuirea serverului DNS (deturnarea DNS)

Acest atac este adesea folosit pentru a schimba modul în care funcționează sistemele DNS. În acest caz, nu se fac modificări în memoria cache-ului DNS al clientului, ci se fac modificări ale setărilor, după care toate cererile de rezoluție a numelor sunt adresate serverului DNS personal al atacatorului. De obicei, acest atac nu vizează furtul de date, ci colectarea de informații statistice de pe computerul clientului. Toate cererile de rezoluție de nume trimise către serverul atacatorului funcționează corect, dar atacatorul primește informații despre site-urile vizitate de client.

Aceste informații pot fi folosite ulterior pentru a le arăta clientului. publicitate contextuală... Unii atacatori folosesc redirecționarea utilizatorilor către site-urile lor sau motoare de căutare pentru a strânge fonduri din publicitate sau pur și simplu pentru a fura date și a folosi tehnici de inginerie socială. În cazurile în care această caracteristică Operațiunea DNS nu poate fi folosită pentru câștig personal; este folosită de multe site-uri și furnizori de internet cunoscuti pentru a colecta date statistice despre resursele vizitate de utilizator.

Falsificarea DNS

Acest atac este un atac de interceptare asistat de om în care un atacator câștigă controlul asupra rețelei care rulează serverul DNS și modifică memoria cache ARP prin falsificarea pachetelor. Odată ce rețeaua deține controlul asupra nivelului adresei MAC, atacatorul calculează adresa IP a serverului DNS și începe să monitorizeze și să modifice cererile destinate serverului respectiv.

Toate cererile din rețea trec prin computerul atacatorului și ajung la serverul DNS real. Acest atac poate avea consecințe grave, deoarece toate computerele din rețea nu vor înregistra în niciun caz faptul atacului și vor trimite toate interogările DNS la adresa computerului atacatorului.

Există cale alternativă acest atac, numit DNS ID spoofing. Fiecare cerere și răspuns DNS are identificatori unici menționați să separe cererile trimise către serverul DNS în același timp. Acești identificatori unici sunt adesea formați din adresa MAC, data și ora la care a fost făcută cererea și sunt generați automat de stiva de protocoale.

Atacatorul folosește un sniffer pentru a capta una sau mai multe cereri și răspunsuri cu identificatorii lor corespunzători și apoi generează o solicitare cu identificatorul corespunzător și cu o adresă IP falsificată. Ca urmare a acestor acțiuni, o adresă IP falsificată este salvată în memoria cache locală a sistemului atacat. După aceea, sistemul atacat poate fi deteriorat plasându-l pe serverul cu adresa malițioasă software.

Relegare DNS

Acest atac este numit și „DNS pinnig” și este un atac deosebit de complex. În acest proces, atacatorul își înregistrează mai întâi propriul nume de domeniu, apoi setează valoarea minimă pentru durata de viață a înregistrărilor, ceea ce împiedică informațiile despre acest nume de domeniu să intre în cache.

Atacurile de refuzare a serviciului DNS

După cum am aflat în primul articol din serie, bombardarea portului 53 cu pachete UDP sau TCP cu cereri poate duce la un server de denial of service. O altă metodă de a efectua acest atac este atacul cu un flux de pachete ping sau segmente TCP SYN. Ideea principală din spatele acestor acțiuni este de a maximiza utilizarea resurselor serverului ( unități centrale de procesareși memorie cu acces aleator) pentru ca serverul să nu mai răspundă. Deși serverele DNS sunt protejate de firewall-uri, dacă porturile DNS UDP nu sunt blocate de la accesul din rețelele care nu sunt de încredere, sistemul de rezoluție a numelor de domeniu devine disponibil pentru de acest tip atacuri.

Încărcarea mare se referă la încărcarea serverului DNS cu sarcini pe care serverul nu le poate îndeplini. Există mai multe moduri de a porni un server și, în cele din urmă, de a-l face inutilizabil. Pentru a implementa una dintre metode, se folosește software rău intenționat (calul troian) care modifică memoria cache DNS locală a multor noduri. După acești pași, toate nodurile cu memoria cache modificată încep să trimită cereri către un anumit server de nume, preselectat de atacatori.

Fiecare server poate răspunde doar la un număr limitat de solicitări într-o perioadă limitată de timp (în funcție de performanța și configurația CPU) și în cele din urmă începe să adauge cereri în coadă. Cu cât mai mulți clienți sunt supuși modificărilor la memoria cache-ului DNS local, cu atât mai multe cereri vor fi puse în coadă și în cele din urmă serverul va fi paralizat.

Într-un alt tip de acest atac, crackerul modifică memoria cache server DNS; în loc să înlocuiască adresele IP care se potrivesc cu înregistrările A sau CNAME, numele de domenii sunt modificate. Pentru a complica lucrurile, lungimea fiecărui nume de domeniu poate fi de până la câteva sute sau mii de caractere. Procesul de sincronizare a datelor după modificare implică trimiterea a mulți kiloocteți de date de la serverul de nume principal către serverele din aval și, eventual, către clienți.

După expirarea duratei de viață a înregistrărilor, procesul de sincronizare a datelor începe din nou și poate duce la defecțiunea unuia sau mai multor servere DNS din lanț. Aceste efecte de cache simulează un atac distribuit de denial of service care este periculos și greu de controlat.

Protejarea sistemelor bazate pe software liber

În lumea sistemelor gratuite, există o implementare a serviciului de rezoluție a numelor de domeniu, cunoscut în întreaga lume datorită celei mai mari viteze de lucru în comparație cu analogii. Această soluție cea mai utilizată și cunoscută este serviciul Bind. Cu toate acestea, deoarece majoritatea atacurilor asupra serviciilor DNS exploatează defecte de protocol, sarcina de a securiza sistemele gratuite cu servicii de rezoluție a numelor de domeniu devine mai dificilă.

Primul pas în proiectarea unui sistem de securitate ar trebui să fie blocarea stratul de rețea... Pe lângă porturile pentru întreținerea serverului, doar porturile pentru interogări DNS ar trebui să rămână deschise, iar toate celelalte porturi ar trebui să fie blocate atât pe firewall, cât și direct pe server folosind sistemul de operare.

Următorul pas important este să vă asigurați că nu este instalat niciun software pe server, altul decât serviciul de rezoluție a numelui de domeniu. Această precauție trebuie luată în special atunci când lucrați cu un server de rezoluție de nume rădăcină corporativă care acceptă rezoluția tuturor numelor de domenii interne și deservește toate cererile de rezoluție de nume către servere externe pentru rețeaua locală.

Se întâmplă adesea ca o vulnerabilitate în program terță parte vă permite să pătrundeți în serverul de rezoluție de nume. Deși cele mai critice părți ale infrastructurii de rețea sunt protejate de un firewall, Unified Threat Management și puternic program antivirus, este adesea necesar să se întărească protecția cu sistemul de detectare a intruziunilor. Se apără împotriva atacurilor OSI Layer 2 și Layer 3, cum ar fi falsificarea ARP, falsificarea IP, atacurile sniffer și alte tipuri de atacuri.

Pe lângă măsurile de precauție critice descrise mai sus, există și câteva metode complexe care ar trebui aplicate. După cum am aflat mai devreme, fiecare cerere are propriul său identificator unic și este trimisă într-un pachet UDP. Din păcate, datorită caracteristicilor de design ale stivei DNS descrise în standardele RFC, acești identificatori sunt ușor de previzibil, astfel încât utilizarea numere aleatorii pentru generarea de identificatori este o idee bună pentru a ajuta la prevenirea atacurilor de falsificare. De asemenea, numărul portului UDP pe care serverul de rezoluție de nume acceptă cereri și răspunde este, de asemenea, ușor de previzibil și poate fi schimbat într-unul aleatoriu.

În aceste scopuri, există programe cu deschidere cod sursa, dar atunci când le folosiți, amintiți-vă că introduc o mică întârziere în procesarea cererii. O tehnologie de securitate relativ nouă și populară este DNSSEC (DNS Security Extensions). Protejează clienții și serverele de atacurile care modifică memoria cache DNS prin semnarea înregistrărilor folosind criptarea cu cheie publică... Similar cu SSL, solicitantul și răspunsul stabilesc o conexiune de încredere unul cu celălalt și, odată ce aceasta este stabilită, începe procesul de rezolvare a numelui.

Odată ce procesul de rezolvare a numelui este finalizat, sesiunea este abandonată și astfel se menține securitatea ambelor părți. Tehnologia DNSSEC este implementată pe majoritatea serverelor furnizorilor de servicii Internet din lume.

Modificarea DNS este un tip comun de atac. Începe cu exploatarea defectelor de protocol și duce la accesul atacatorului la infrastructura IT sau la utilizarea computerelor pentru a efectua alte tipuri de atacuri, cum ar fi phishingul. Sistemele software libere sunt, de asemenea, susceptibile la aceste atacuri, astfel încât administratorii de sistem trebuie să înțeleagă și să folosească tehnici pentru a proteja infrastructura de bază împotriva pierderii sau furtului de date.

Acest articol face parte dintr-o serie despre atacurile cibernetice ale aceluiași autor (Prashant Phatak). Vezi și alte articole din această serie.

Spoofing DNS

sistem DNS ( numele domeniului) convertește un nume de domeniu (de ex. www.test.com) în adresa sa IP (de ex. 192.168.0.1) și invers. Acest atac folosește tehnologia de a trimite răspunsuri false la interogările DNS ale victimei. Atacul se bazează pe două metode principale.

Falsificarea ID-ului DNS

Antetul pachetului de protocol DNS conține un câmp de identificare pentru a potrivi cererile și răspunsurile. Scopul falsificării ID-ului DNS este de a trimite răspunsul la o interogare DNS înainte ca un server DNS real să răspundă. Pentru a face acest lucru, trebuie să preziceți ID-ul cererii. La nivel local, acest lucru se face prin simpla ascultare a traficului din rețea. Cu toate acestea, este mult mai dificil să efectuați această sarcină de la distanță. Există diverse metode:

    verificând toate valorile disponibile câmp de identificare. Nu este foarte practic, deoarece numărul total de valori posibile este de 65535 (dimensiunea câmpului este de 16 biți);

    trimiterea de câteva sute de interogări DNS în ordinea corectă. Evident, această metodă nu este foarte fiabilă;

    Găsirea unui server care generează identificatori predictibili (de exemplu, crescând cu 1). Acest tip de vulnerabilitate este inerent unor versiuni de Bind și sisteme Windows 9x.

În orice caz, trebuie să răspundeți înaintea serverului DNS real. Acest lucru poate fi realizat, de exemplu, prin efectuarea unui atac de tip denial of service împotriva serverului.

Pentru un atac de succes, un atacator trebuie să controleze serverul DNS (ns.attaquant.com) cu autoritate pentru zona attaquant.com. Se crede că serverul DNS țintă (ns.cible.com) generează predicții numere de identificare(crește cu 1 la fiecare cerere).

Un atac necesită patru pași:

Drept urmare, memoria cache a serverului DNS țintă va conține potrivirea cerută de atacator și următorii clienți care solicită adresa www.spoofed.com vor fi furnizați cu adresa mașinii atacatorului. Poate conține o copie a acestui site, cu ajutorul căreia un atacator poate fura informații confidențiale.

Modificarea otrăvirii cache-ului DNS

Serverele DNS folosesc un cache pentru a stoca rezultatele interogărilor anterioare pentru o perioadă de timp. Acest lucru se face pentru a evita solicitările repetate constante către serverele autorizate ale domeniilor corespunzătoare. A doua variantă a unui atac de falsificare DNS este modificarea memoriei cache a serverului DNS. Iată un exemplu:

Folosim aceleași date ca în exemplul anterior. Iată punctele cheie ale acestei opțiuni de atac:

    trimiteți o solicitare DNS pentru a rezolva numele www.attaquant.com către serverul DNS al domeniului cible.com;

    serverul DNS țintă trimite o solicitare de rezolvare a numelui www.attaquant.com către serverul DNS al atacatorului;

Falsificarea DNS este o metodă simplă de falsificare a dns-ului sistemului, un bloc de rezoluție a numelui dns care utilizează informații false primite de la o gazdă care nu este responsabilă pentru acele informații. Fiecare pachet dns are un număr de id pe 16 biți, numărul de id este o parte a pachetului dns care permite identificarea fiecărui pachet dns care trece prin portul 53 și, de asemenea, cererea poate fi de mai multe ori. id este singura modalitate de a face distincția între diferitele solicitări legate de dns pe care serverele dns le folosesc pentru a determina care a fost cererea inițială. În cazul BIND, acest număr este incrementat cu 1 nivel pentru fiecare cerere. Se poate face un atac precum TCP seq id, deși este mai dificil. Chiar dacă BIND nu poate stoca în cache informațiile pe care le trimiteți, va trimite răspunsul înapoi gazdei inițiale. În cazul în care ircd va face o solicitare PTR ca răspuns la gazda care se conectează la acesta, pachetul de răspuns poate fi formulat pentru a conține Informații suplimentare din care ircd va face caching intern. Acest atac necesită acces root „a” pe serverul dns responsabil pentru blocul de informații Arpa dns. De asemenea, ircd poate stoca în cache doar un domeniu. Există un alt atac, deoarece id-ul este de 16 biți. Utilizatorul poate itera peste întregul idspace. Pentru a-ți falsifica dn-ul, să spunem pe DALNet „e, trebuie să trimiți 65000 de solicitări generate către serverul ns, de îndată ce computerul primește un răspuns la cerere, va trebui să citești pachetul și id-ul corect va fi scris în el. De îndată ce obțineți id-ul, trebuie să găsiți orice „pachet” instrument de creație„pentru a face un pachet dns. Tot ce rămâne este să falsificați pachetele dns, să trimiteți la ns. dal. net și să obțineți falsificarea unei conexiuni TCP.

Formularea generală a problemei În legătură cu creșterea rapidă a Internetului, problema protecției resurse informaționale devin din ce în ce mai semnificative. Dacă sunteți conectat la Internet, sistemul dumneavoastră poate fi atacat. Să aruncăm o privire la modul în care funcționează DNS. Adresarea segmentelor externe se realizează prin adrese IP, dar serverele sunt de obicei adresate prin nume de domenii. În acest sens, a fost creat un sistem de conversie (cartografiere) a numelor de domenii în adrese IP - servere DNS (Domain Name System). Acest sistem este responsabil pentru găsirea adresei IP a unei gazde la distanță după numele acesteia. Principiul de funcționare al sistemului DNS este următorul - gazda la distanță trimite o solicitare specială la adresa IP a celui mai apropiat server DNS, care indică numele serverului a cărui adresă IP se găsește. După primirea cererii, serverul DNS caută în baza sa de date numele de domeniu solicitat. Dacă numele este găsit, serverul DNS returnează un răspuns care indică adresa IP căutată. Dacă serverul DNS nu a găsit numele specificat în cerere în baza sa de nume, atunci cererea DNS este trimisă de serverul DNS către unul dintre serverele DNS rădăcină și procedura descrisă în acest paragraf se repetă până când numele este găsit. Să luăm în considerare o schemă generalizată a unui server DNS fals: așteptarea unei cereri DNS; după ce a primit o solicitare DNS, extragerea informațiilor necesare din aceasta și transmiterea unui răspuns DNS fals prin rețea gazdei solicitante, în numele (de pe adresa IP) serverului DNS real, care indică adresa IP a DNS-ului fals Server; în cazul primirii unui pachet de la o gazdă, schimbarea adresei IP din antetul IP al pachetului la adresa IP a serverului DNS fals și transmiterea pachetului către server (adică serverul DNS fals funcționează cu serverul pe în nume propriu); în cazul primirii unui pachet de la server, schimbarea adresei IP din antetul IP al pachetului cu adresa IP a serverului DNS fals și transmiterea pachetului către gazdă (pentru gazdă, serverul DNS fals este serverul real). ).

O condiție prealabilă pentru acest tip de atac este interceptarea cererii DNS. Acest lucru este posibil doar dacă atacatorul se află fie în calea traficului principal, fie în segmentul serverului DNS real. Îndeplinirea uneia dintre aceste condiții pentru localizarea atacatorului în rețea face ca un astfel de atac de la distanță să fie dificil de implementat în practică (cel mai probabil atacatorul nu va reuși să intre în segmentul serverului DNS și cu atât mai mult în inter -canal de comunicare segment). Cu toate acestea, dacă aceste condiții sunt îndeplinite, este posibil să se efectueze un atac de la distanță pe segmente încrucișate pe Internet. Rezultatul acestui atac este introducerea unei corespondențe impuse între adresa IP și numele domeniuluiîn memoria cache a serverului DNS. Ca urmare a executării cu succes a unui astfel de atac, toți utilizatorii serverului DNS vor primi informații incorecte despre numele de domenii și adresele IP. Acest atac este caracterizat de o cantitate mare Pachete DNS cu același nume de domeniu. Acest lucru se datorează necesității de a selecta unii parametri de schimb DNS.

După cum arată analiza metodelor de protecție existente, atacurile pot fi contracarate prin următoarele metode. Prin conversia DNS în TCP Trecerea de la UDP la TCP va încetini oarecum sistemul. Când utilizați TCP, este necesar să creați o conexiune virtuală și, de asemenea, merită să luați în considerare faptul că sistemele de operare ale rețelei finale trimit mai întâi o solicitare DNS folosind protocolul UDP, iar dacă primesc un răspuns special de la serverul DNS, atunci rețeaua. OS va trimite o solicitare DNS folosind TCP... Utilizarea TCP va complica atacul de falsificare a pachetelor, dar îl va încetini. Prin analizarea traficului DNS. Puteți contracara atacurile analizând traficul. Pachetele falsificate cu adrese IP false sunt trimise constant către serverul DNS. Dacă pachetul fals primit se potrivește cu cererea, atunci IP-ul fals este acceptat ca adevărat. Dacă pachetul nu este interceptat de la server, atunci atacul este caracterizat de un număr mare de pachete DNS cu același nume. Acest lucru se datorează necesității de a selecta unii parametri de schimb DNS. Analizând traficul DNS, puteți ignora astfel de pachete pentru a evita falsificarea adresei IP.

Concluzii După examinarea funcționării serverului DNS, se poate observa că versiunea actuală este mai degrabă sub-optimă și vulnerabilă la atacuri de diferite tipuri. Puteți contracara atacurile analizând traficul DNS sau transferând DNS de la UPD la TCP. Niciuna dintre metode nu oferă protecție completă împotriva atacurilor; ambele metode doar fac mai dificilă efectuarea unui atac. Ambele metode necesită resurse suplimentare de la server. În cazul transferului serverului DNS la TCP, timpul de schimb între servere crește și el, deoarece protocolul UDP este mai rapid decât protocolul TCP. Pe acest moment, modelele de contracarare propuse sunt cele mai eficiente si este indicat sa le folosesti in combinatie pentru a atinge securitatea maxima posibila.

Tactica de a uzurpa identitatea cuiva pentru a avea acces la date confidențiale sau la conturi bancare este folosită cu succes nu numai de criminalii din lumea reală, ci și de colegii lor din spațiul virtual. Această practică se numește spoofing - o categorie colectivă care include conceptele de falsificare a adresei IP (trimiterea de mesaje către computere folosind adresa IP a unei surse de încredere), falsificarea e-mailului (falsificarea antetului de e-mail pentru a deghiza expeditorul adevărat) și falsificarea DNS (schimbarea setările serverului DNS pentru redirecționarea numelui de domeniu către adresa IP a atacatorilor).

Cum funcționează spoofing-ul?

Spoofing-ul este o tehnică folosită pentru a uzurpa identitatea unei alte persoane pentru a păcăli o rețea sau un anumit utilizator să aibă încredere în sursa de informații. De exemplu, hackerii de falsificare a e-mailurilor pot induce în eroare utilizatorul cu privire la identitatea expeditorului și pot obține acces la date sensibile. Sau, ei pot încerca să folosească tehnici de falsificare IP și DNS pentru a păcăli rețeaua utilizatorului să-i redirecționeze către site-uri necinstite care se maschează drept cele reale, provocând astfel infectarea computerului utilizatorului.

Cum să recunoști falsificarea?

Cel mai simplu mod de a recunoaște falsificarea e-mailului este că ținta directă este utilizatorul însuși. Orice mesaj de e-mail Un e-mail care necesită informații personale de la utilizator poate fi o încercare de falsificare, mai ales dacă i se solicită acreditări. Rețineți că nicio agenție privată sau guvernamentală de încredere nu solicită informații personale în acest fel. Acordați atenție adresei expeditorului pentru a vă asigura că este legitimă. Cu toate acestea, utilizatorul nu va ști aproape niciodată că este o victimă a spoofing-ului IP sau DNS, deși obiceiul de a acorda o atenție deosebită detaliilor și modificărilor în comportamentul obișnuit al site-ului poate fi extrem de benefic. Dacă site-ul sau comportamentul său este în cea mai mică îndoială, cel mai bine este să abandonați operațiunea planificată pentru a vă păstra datele și fondurile în siguranță.

Cum elimin falsificarea?

Spoofing înseamnă mascarea adevăratei surse și, prin urmare, nu este ușor de „eliminat”. Te poți proteja doar urmând bunul simț și observând reguli de baza munca în siguranță în rețea, de exemplu, în niciun caz, fără a furniza datele dumneavoastră personale prin e-mail. mail, chiar dacă reputația expeditorului nu este pusă la îndoială.

Cum să preveniți falsificarea
  • Nu răspunde la mesajele care îți cer să-ți trimiți datele personale sau acreditările
  • Verificați cu atenție adresa expeditorului
  • Acordați atenție comportamentului ciudat sau diferențelor în detaliile site-urilor cu care sunteți obișnuit.
Protejați-vă de falsificare

Pe de o parte, protecția împotriva falsificării se poate baza pe respectarea principiilor de bază ale navigării în siguranță pe Internet. Cu toate acestea, puteți face mult mai multe pentru propria dumneavoastră siguranță. În primul rând, puteți încredința protecția PC-ului și a datelor stocate pe acesta unei soluții antivirus puternice, de exemplu, una dintre cele dezvoltate de Avast, care protejează în mod fiabil împotriva site-urilor frauduloase și blochează virușii care încearcă să penetreze rețeaua dumneavoastră.

Spoofing-ul este o metodă de atac interesantă pe care mulți profesioniști în securitate o neglijează. Și degeaba, foarte degeaba. Din acest articol veți înțelege cât de înșelătoare poate fi această lume diversă. Nu-ți crede ochilor!

AVERTIZARE

Toate informațiile sunt furnizate doar în scop informativ. Nici redacția, nici autorul nu sunt răspunzători pentru eventualele prejudicii cauzate de materialele acestui articol.

Introducere

Aud adesea de la colegii din magazin că falsificarea ca vector de atac nici nu ar trebui luată în considerare. Cu toate acestea, vă pot asigura că, dacă metodele de falsificare sunt gândite cu atenție, atunci pot fi folosite pentru mult, foarte mult. Mai mult, amploarea și rezultatele unor astfel de atacuri sunt uneori catastrofale. La urma urmei, după ce v-am înșelat ochii odată, voi continua să vă înșel. Cel mai important argument în favoarea faptului că atacurile de falsificare reprezintă un pericol real este că nicio persoană nu este imună la acestea, inclusiv profesioniștii. Trebuie remarcat aici că falsificarea în sine nu face nimic: pentru a efectua un atac cu adevărat hacker, trebuie să utilizați post-exploatare. În cele mai multe cazuri, obiectivele post-exploatării sunt preluarea standard, escaladarea privilegiilor, distribuția în masă malwareși, ca urmare, furtul datelor cu caracter personal și a cheilor digitale electronice ale sistemelor bancare cu continuarea spălării banilor. În acest articol, în primul rând, vreau să vorbesc despre ce fel de metode de falsificare sunt în general și, în al doilea rând, să vă povestesc în detaliu despre unele abordări moderne. Desigur, toate informațiile vă sunt furnizate doar pentru a vă ajuta să vă apărați împotriva acestui tip de atacuri.

Falsificarea trecutului și prezentului

Inițial, termenul „spoofing” a fost folosit ca termen de securitate a rețelei, implicând falsificarea cu succes a anumitor date pentru a obține acces neautorizat la o anumită resursă de rețea. De-a lungul timpului, acest termen a început să fie folosit și în alte domenii ale securității informațiilor, deși cei mai mulți dintre așa-numiții specialiști ai școlii vechi continuă astăzi să folosească cuvântul „spoofing” doar pentru a clarifica tipul de atacuri la rețea.

Primele clone IDN

Atacul cu omograf IDN a fost descris pentru prima dată în 2001 de Evgeny Gabrilovich și Alex Gontmakher de la Institutul de Tehnologie Technion Israel. Primul atac cunoscut cu succes folosind aceasta metoda, a fost făcută publică în 2005 la conferința hackerilor ShmooCon. Hackerii au reușit să înregistreze un domeniu fals pаypal.com (xn--pypal-4ve.com în Punycode), unde prima literă a este chirilică. O postare pe Slashdot.org a atras atenția publicului asupra problemei, urmată atât de browsere, cât și de mulți administratori de domeniu nivel superior a dezvoltat și implementat contramăsuri.

Așadar, când Web-ul era la început, majoritatea eforturilor programatorilor și dezvoltatorilor au fost îndreptate în principal spre optimizarea algoritmilor pentru funcționarea protocoalelor de rețea. Securitatea nu a fost la fel de critică precum este astăzi și, așa cum este adesea cazul, a primit foarte puțină atenție. Drept urmare, primim greșeli banale și fundamentale protocoale de rețea, care continuă să existe și astăzi, în ciuda diferitelor tipuri de patch-uri (deoarece nici un patch nu poate fi folosit pentru a corecta o eroare de protocol logic). Aici, sunt necesare schimbări totale, cărora rețeaua pur și simplu nu va supraviețui din perspectiva existentă. De exemplu, în articolul „Atacuri DNS: ieri, azi, mâine” (] [ #5 2012), am vorbit despre vulnerabilitățile fundamentale dezastruoase din sistemele DNS - utilizarea UDP (care, spre deosebire de TCP/IP, este nesigur, deoarece îi lipsește un mecanism încorporat pentru a preveni spoofing-ul) și cache-ul local.

Vectori

În funcție de scopuri și obiective, vectorii de falsificare pot fi împărțiți în direcții locale (locale) și de rețea (net). Acestea sunt pe care le vom lua în considerare în acest articol. Ca obiect al atacurilor într-un vector local, sistemul de operare însuși, instalat pe computerul victimei, este cel mai adesea considerat direct, precum și anumite tipuri de aplicații care necesită adesea analize suplimentare în funcție de situație. Pe de altă parte, obiectele atacurilor cu un vector de rețea sunt mai abstracte. Principalele sunt componentele sisteme de informare reprezentate atât de rețele locale, cât și de cele globale. Să aruncăm o privire la principalele tipuri de falsificare.

  1. Spoofing TCP / IP și UDP - Atacurile la nivel de transport. Datorită erorilor fundamentale în implementarea transportului protocoalelor TCP și UDP, sunt posibile următoarele tipuri de atacuri:
    • IP spoofing - ideea este de a falsifica adresa IP prin modificarea valorii câmpului sursă din corpul pachetului IP. Este folosit în scopul de a falsifica adresa atacatorului, de exemplu, pentru a apela un pachet de răspuns la adresa dorită;
    • ARP spoofing este o tehnică de atac asupra rețelelor Ethernet care vă permite să interceptați traficul dintre gazde. Bazat pe utilizarea protocolului ARP;
    • Cache DNS Poisoning - otrăvirea cache-ului DNS al serverului;
    • NetBIOS / NBNS spoofing - bazat pe specificul rezolvării numelor de mașini locale în rețelele Microsoft.
  2. Referrer spoofing - falsificare referitor.
  3. Otrăvirea rețelelor de partajare a fișierelor - phishing în rețelele de partajare a fișierelor.
  4. Falsificarea ID apelant - falsificarea unui număr de telefon care sună în rețelele VoIP
  5. Falsificarea adresei de e-mail - falsificarea adresei de e-mail a expeditorului.
  6. GPS Spoofing - falsificarea pachetelor de la satelit pentru a deruta dispozitivul GPS.
  7. Falsificarea mesageriei vocale - înlocuirea numerelor mesageria vocalăîn scopul phishing-ului parolelor victimei.
  8. Falsificarea SMS este o metodă de falsificare bazată pe falsificarea numerelor expeditorului unui mesaj SMS.

Ultimul spoofing

Cele mai comune tehnici sunt deja destul de vechi și bine uzate. Retea globala literalmente plină de informații despre posibilele variații ale funcționării lor și protecția împotriva lor. Astăzi ne vom uita la câteva dintre cele mai recente tehnici de falsificare care câștigă amploare, de la vectori locali la vectori de rețea. Deci, totul este în ordine.

Falsificarea scandaloasă a certificatelor de la Flamer și Microsoft

Aviz de securitate Microsoft (2718704) - Certificatele digitale neautorizate ar putea permite falsificarea. Un lucru destul de interesant a fost găsit în copiile notoriului robot spion Flamer: conform rezultatelor ingineriei inverse a componentelor acestui malware, a fost găsită o bucată de cod responsabilă pentru desfășurarea atacurilor de falsificare, cum ar fi phishingul. Simulând furnizarea de certificate originale ale companiilor mari, botul a efectuat un atac MITM, al cărui scop a fost interceptarea datelor personale ale utilizatorilor rețeaua corporativă cu trimiterea ulterioară către serverul dezvoltatorului. Acest incident de falsificare a primit avizul de securitate # 2718704 cu un rating de severitate ridicat.

Falsificarea sistemului de operare

1. Falsificarea extensiilor - falsificarea extensiilor de fișiere

O tehnică care a văzut lumina zilei datorită realizărilor unui cercetător chinez în domeniul securitatea informatiei Zhitao Zhou. Esența acestei tehnici este utilizarea caracterului de control 0x202E (RLO) în numele fișierului, ceea ce vă permite să schimbați ordinea caracterelor atunci când afișați numele fișierului în Windows Explorer(explorer.exe). Iată un exemplu de utilizare a acestei tehnici simple:

Super muzică încărcată până la ora 15.SCR

Fișierul 3 pm.SCR nu este altceva decât un fișier executabil care implementează anumite funcții (program troian. - Nota editorului). Dacă la începutul numelui fișierului „3 pm.SRC” introduceți caracterul de control 0x202E (vezi Fig. 1), atunci ordinea caracterelor este inversată și numele fișierului este afișat în explorator Windows deja in caz contrar:

Super muzică încărcată de RCS.mp3

Pentru a schimba pictograma fișierului, utilizați orice editor de resurse (Restaurator, Hacker de resurse). Această tehnică este concepută pentru un utilizator neavizat care poate confunda acest fișier cu o melodie și îl poate deschide cu un dublu clic, lansând astfel un program rău intenționat. Din păcate, această tehnică nu va funcționa în programele analogice Explorer care acceptă Unicode. Mai jos este codul C # care schimbă numele fișierului adăugând înainte caracterul de control 0x202E:

Public Sub U_202E (fișier ca șir, extensie ca șir) Dim d As Integer = fișier.Lungime - 4 Dim u As Char = ChrW (823) Dim t As Char () = extensie.ToCharArray () Array.Reverse (t) Dim dest As String = file.Substring (0, d) & u & New String (t) & file.Substring (d) System.IO.File.Move (fișier, dest) End Sub

2. File Name Spoofing - clonarea numelui fișierului

Această tehnică a fost prezentată de cercetătorul japonez Yosuke Hasegawa la conferința Security-Momiji. Se bazează pe utilizarea caracterelor de lungime zero (Caractere ZERO WIDTH), care nu afectează în niciun fel afișarea numelui fișierului (vezi Fig. 2). Mai jos sunt toate simbolurile din această categorie:

U + 200B (SPAȚIU LĂȚIME ZERO) - U + 200C (SPAȚIU LĂȚime ZERO) - U + 200D (SPAȚIU LĂȚime ZERO) - U + FEFF (SPAȚIU LĂȚIM ZERO) - U + 202A (DE LA STÂNGA LA DREAPTA) INCORPARE)

În plus, este posibil să utilizați codificarea UTF pentru a falsifica numele fișierelor existente. Această tehnică este adesea folosită de programele malware moderne. Am dat peste mostre de malware care au efectuat aceste tipuri de atacuri. De exemplu, programul malware TrojanDropper: Win32 / Vundo.L (folosit pentru site-urile de phishing vk.com, vkontakte.ru, * odnoklassniki.ru) folosește exact această tehnică.


Fișierul% SystemRoot% \ system32 \ drivers \ etc \ hosts a fost copiat în fișierul de clonare hosts cu caracterul UTF „o” (0x043E), după care originalul fișierul hosts atribuite fișier ascunsși conținutul său a fost suprascris cu adăugarea următoarelor intrări:

92.38.66.111 odnoklassniki.ru 92.38.66.111 vk.com 92.38.66.111 vkontakte.ru


Falsificarea browserelor web

1. Bara de stare / Falsificarea linkului

Principiul acestui atac este schimbarea dinamică a adresei unui link hipertext ( ). De exemplu, victima plasează cursorul mouse-ului peste un link, după care adresa la care duce acest link este afișată în bara de stare a browserului. După ce faceți clic pe link, codul JavaScript complicat înlocuiește dinamic adresa de recomandare. Un prieten de-al meu cercetător, cunoscut sub porecla iamjuza, a fost angajat în studiul și dezvoltarea PoC pentru utilizarea acestei tehnici în practică, dar dezvoltările sale nu au fost universale și au funcționat doar pe browsere specifice. Într-un studiu similar, am obținut rezultate mai bune, fiind capabil să fac această tehnică de spoofer exploatabilă universal în toate motoarele de browser. Dovada de concept este publicată la 1337day.com. Implementarea tehnică arată astfel:

Metoda this.href = ":
Metoda location.replace (""):

Methon location.assign (""):

Metoda window.location.assign (""):

Metoda window.location.replace (""):

Metoda window.location.href = "":

Codul HTML dat înlocuiește dinamic adresa specificată ( www.google.com) la adresa site-ului] [() folosind diverse metode bazate pe evenimentul JavaScript onclick = "".

2. URL Bar Spoofing - înlocuirea unui link în bara de adrese a browserului

La prima vedere, acest lucru pare imposibil, dar credeți-mă - aceasta este doar o sarcină de a dezvolta ingeniozitatea. Luați în considerare vulnerabilitatea CVE-2011-1452, care va falsifica bara de adrese din invincibilul Google Chrome până la versiunea 11.0.696.57:

Click pe mine

  • se deschide o nouă fereastră (spoofing.php) cu atribuirea variabilei „a”;
  • după 4500 microsecunde (4,5 secunde) (funcția window.setTimeout), istoricul tranziției este returnat înapoi, pentru care este responsabilă funcția a.history.back () atribuită variabilei „a”;
  • după 5000 de microsecunde variabila „a” este setată într-o nouă locație pentru spoofing.php, aflată în același director.

Astfel, bara de adrese este rescrisă la noua adresă URL în contextul primei pagini a „părinte”.

Următoarea vulnerabilitate CVE-2010-4045 (Opera<= 10.62):

Proof of Concept - OPERA High Location Bar Spoofing




Când faceți clic pe butonul, care este reprezentat de o imagine (), pagina este reîncărcată automat (location.reload ()), în timp ce este posibil să rescrieți bara de adrese în contextul filei curente.

Un site de plată/bancă inclus aici.
  1. începe poc faceți clic pe butonul pentru a rula poc.


"); myWindow.focus(); return false; }




Când faceți clic pe butonul Demo, atât variabilei, cât și obiectului myWindow li se atribuie valoarea unei funcții care deschide apple.com cu dimensiuni de 200x100, care corespunde zonei de extensie a browserului Safari pentru mobil. Apoi, myWindow injectează cod HTML suplimentar (JavaScript / VB / etc) folosind funcția document.write (). Pasul final este să aduci focalizarea browserului Safari pe obiectul myWindow.

Nu este nimic complicat în falsificarea adresei în bara de adrese a browserului, singurul lucru este că trebuie să-ți folosești corect ingeniozitatea acolo unde este necesar ;-).

3. Falsificarea codului sursă - falsificarea conținutului paginii și a codului sursă

Exploatarea este realizată datorită caracterului de control UTF-8 deja cunoscut 0x202E (RLO). Metoda a fost descoperită de studentul Virginia Tech John Kurlak. Pentru a demonstra tehnica, a folosit funcția JavaScript History.replaceState (), care vă permite să schimbați în mod dinamic adresa paginii din bara de adrese. Dovada de concept (source.html):

Sursă

Puteți vizualiza sursa mea din Chrome?



Conținutul fișierului source.html [% 20% 2E] Puteți, dar nu atât de ușor...

Esența acestei metode este înlocuirea conținutului codului sursă a paginii folosind trucul cu caracterul de control RLO de la sfârșitul fișierului (vezi Figura 4). Când încercăm să vedem codul sursă al paginii source.html, obținem conținutul celui de-al doilea fișier source.html% 20% 2E. O metodă de falsificare destul de interesantă și exotică, cu un profit foarte ciudat, așa cum ați putea crede la prima vedere. Cel mai interesant este că acest script vă permite să „ascundeți” codul sursă al paginii, mascandu-l nu numai în contextul adresei, ci și în contextul numelui de gazdă.


4. IDN Clones - o tehnică bazată pe similitudinea externă a afișării numelor de domenii

Nu este nimic inovator aici, tehnica a fost practicată încă de la începuturile sistemului DNS, dar a fost utilizarea IDN-urilor (Internationalized Domain Names) care a făcut posibilă crearea de „clone” aproape indistinguibile de nume de domenii. Implementarea tehnică a atacului de phishing este următoarea:

  1. Este înregistrat un nume de domeniu care este cât mai asemănător ca ortografie cu domeniul atacat. De obicei, se folosește asemănarea literelor cu numerele din unele fonturi (litera l și numărul 1, litera O și cifra 0), asemănarea combinațiilor de litere (rn și m, cl și d).
  2. Este creat un fals al site-ului original, care este plasat pe „clona” creată.
  3. Link-urile către un domeniu de phishing sunt răspândite (spam mail, spam în rețelele sociale, prin servicii populare precum Twitter, utilizarea iframe-urilor, uși).
  4. Se dovedește a fi un profit :).

Principala diferență între acest atac, bazat pe asemănarea numelor de domenii, în comparație cu alte tipuri de phishing care utilizează pagini web false, este că nu necesită interferență cu protocoalele de rețea: din punct de vedere tehnic, un domeniu fals este legitim.

Metodele de protecție împotriva atacurilor IDN au început să fie implementate la mijlocul anului 2005, când au fost adoptate acorduri de către registratorii de nume de domenii pentru a restricționa capacitatea de a înregistra orice domeniu IDN. De exemplu, domeniul internațional .org limitează numărul de caractere permise la unul sau altul subset al alfabetului latin extins. Dar datorită unor registratori fără scrupule și a ingeniozității, chiar și astăzi există toate oportunitățile de a înregistra un domeniu de phishing.

Cea mai radicală apărare împotriva amenințării omografice ar fi eliminarea completă a decodării IDN de pe afișaj. Apoi, numele fals începe întotdeauna cu „xn” și se termina cu o secvență de caractere imposibil de citit, care l-ar distinge clar de original. Din păcate, această opțiune anulează aproape toate beneficiile IDN-urilor.

Protecția principală împotriva falsificării IDN din partea clientului este bara de stare a browserului. Când treceți cu mouse-ul peste linkul din bara de stare, este afișat echivalentul punycode al domeniului IDN, ceea ce sugerează imediat un posibil phishing. Dar acesta nu este un panaceu, poti gresi daca iti folosesti ingeniozitatea ;-). Vedeți exploitul meu universal pentru toate motoarele de browser.

Concluzie

Spoofing-ul a fost întotdeauna și va fi întotdeauna la cerere, deoarece este baza și garanția atacurilor de succes în mai multe direcții. Sper că ai tras concluziile corecte. Fii atent în vastitatea Web-ului.





Ți-a plăcut articolul? Împărtășește-l