Todelliset huijausmenetelmät nykyään. DNS Spoofing Attack DNS-huijaus on DNS-huijaussuojaus

IDN-huijaus on valittua nimiä "samankaltaisten" verkkotunnusten luomista, jota käytetään yleensä pakottamaan käyttäjä seuraamaan linkkiä hyökkääjän resurssiin. Harkitse seuraavaksi tarkempaa versiota hyökkäyksestä.

Kuvitellaan, että hyökkäyksen kohteena oleva yritys omistaa organisation.org-verkkotunnuksen ja sisäistä resurssia portal.organization.org käytetään tämän yrityksen sisällä. Hyökkääjän tavoitteena on saada käyttäjän tunnistetiedot ja tätä varten hän lähettää linkin sähköpostitse tai yrityksen käyttämän messengerin kautta.

Kun olet saanut tällaisen viestin, et todennäköisesti huomaa linkin johtavan jonnekin väärään paikkaan. Linkin napsautuksen jälkeen pyydetään kirjautumistunnusta\salasanaa, ja uhri, uskoen olevansa sisäisessä resurssissa, syöttää tilitietonsa. Hyökkääjän todennäköisyys on erityisen suuri, jos hän on jo tunkeutunut alueen ulkopuolelle, vaarantamalla kenen tahansa työntekijän järjestelmän ja taistelee nyt järjestelmänvalvojan oikeuksista.

Täällä ei voi keksiä ehdotonta "idioottivarmaa", mutta voit yrittää siepata tämän hyökkäyksen nimenselvitysvaiheessa dns-pyynnön kautta.

Suojauksen vuoksi meidän on muistettava jatkuvasti nimet, jotka kohtaamme siepatuissa dns-pyynnöissä. Yritys käyttää sisäisiä resurssejaan, joten saamme sen nopeasti selville osoitteeseen portal.organization.org. Heti kun olemme kohdanneet aiemmin havaittua "samankaltaisen" nimen, voimme korvata dns-vastauksen palauttamalla virheilmoituksen hyökkääjän IP-osoitteen sijaan.
Mitkä ovat "samankaltaisuuden" määrittämiseen käytettävät algoritmit?

  • UTS39 Confusable Detection (http://www.unicode.org/reports/tr39/#Confusable_Detection) Unicode ei ole vain arvokas mech-merkkitaulukko, vaan myös joukko standardeja ja ohjeita. UTS39 määrittelee unicode-merkkijonojen normalisointialgoritmin, jossa homoglyfien (esim. venäjän "a" ja latina "a") eroavat merkkijonot muunnetaan samaan muotoon.
  • Sanat, jotka eroavat sisäisten kirjainten permutaatioista. Organisaatio.org ja orgainzation.org on melko helppo sekoittaa
  • Korvataan ensimmäisen tason verkkotunnus. Nimen ensimmäisellä tasolla ei yleensä ole mitään järkeä ja yrityksen työntekijä, joka näkee "organisaation", voi jättää huomioimatta eron .org- tai .net-muodossa, vaikka poikkeuksiakin saattaa olla
Todennäköisesti yrityspalvelin ei ole sidottu, mikä on web-isännöitsijöiden tai -palveluntarjoajien standardi, vaan Microsoft dns -palvelin aktiivisen hakemiston laajan käytön vuoksi. Ja ensimmäinen ongelma, jonka kohtasin kirjoittaessani suodatinta microsoft dns -palvelimelle - en löytänyt API-sovellusta dns-pyyntöjen suodattamiseen. Tämä ongelma voidaan ratkaista monella tapaa, valitsin dll-injektion ja IAT-koukun apiin pistorasiaan.

Metodologian ymmärtämiseksi tarvitset tietoa PE-muodosta, voit lukea lisää esimerkiksi. Suoritettava tiedosto koostuu otsikoista, osiotaulukosta ja itse osioista. Itse osiot ovat tietolohko, joka lataajan on kartoitettava muistiin suhteellisessa osoitteessa (Relative Virtual Address - RVA), ja kaikki resurssit, koodi ja muut tiedot sisältyvät osioihin. Myös otsikon sisällä on linkkejä (RVA) useisiin taulukoihin, jotka ovat välttämättömiä sovelluksen toimimiseksi, tämän artikkelin puitteissa kaksi on tärkeää - tuontitaulukko ja vientitaulukko. Tuontitaulukko sisältää luettelon toiminnoista, joita sovellus tarvitsee toimiakseen, mutta jotka sijaitsevat muissa tiedostoissa. Vientitaulukko on "käänteinen" taulukko, joka sisältää luettelon tästä tiedostosta vietyistä funktioista, tai viennin edelleenlähetyksen tapauksessa tiedostonimen ja funktion nimen riippuvuuden ratkaisemiseksi.

Teemme dll-injektion ilman ärsyttävää CreateRemoteThreadia. Päätin käyttää PE-viennin edelleenlähetystä - tämä on hyvin tunnettu tekniikka, kun haluttuun prosessiin lataamista varten luodaan dll-tiedosto hakemistoon exe-tiedoston kanssa, jonka nimi on sama kuin minkä tahansa exe-tiedoston dll:n nimi. tiedostojen tuontitaulukko (pääasia ei ole käyttää HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Control\Session Manager\KnownDLLs). Luodussa dll:ssä vientitaulukko kopioidaan kohde-dll:stä, mutta viedyn funktion koodiin osoittavan osoittimen sijasta sinun on kirjoitettava eteenpäin suuntautuvaan merkkijonoon RVA, kuten "endpoint! sendto". Itse microsoft dns -palvelin on toteutettu palveluna HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\DNS, joka sijaitsee %systemroot%\system32\dns.exe

Lopullinen lisäysalgoritmi dns-palvelimessa on seuraava:

  • Luo hakemisto %systemroot%\system32\dnsflt (voit käyttää mitä tahansa muuta hakemistoa, hakemistoa ei tarvitse etsiä system32:sta).
  • Kopioimme sinne %systemroot%\system32\dnsapi.dll - tämä on dll, josta dns.exe tuo jotain, voit valita minkä tahansa muun "ei tunnettu dll".
  • Nimeä kopioitu dll uudelleen muotoon endpoint.dll - käytämme tätä nimeä eteenpäin rivillä.
  • Otamme injektoidun dll:n ja lisäämme siihen oikean vientitaulukon, kopioimme dll-tiedostomme kansioon %systemroot%\system32\dnsflt
  • Muuta HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\DNS-avaimen rekisterissä ImagePath uudeksi binääriosoitteeksi %systemroot%\system32\dnsflt\dns.exe.
  • Luo symbolilinkki tiedostosta %systemroot%\system32\dnsflt\dns.exe tiedostoon %systemroot%\system32\dns.exe
Miksi viimeinen askel? Tosiasia on, että Windowsissa on sisäänrakennettu palomuuri, ja oletusarvoisesti Windows Serverissä vain %systemroot%\system32\dns.exe-sovelluksella on oikeus kuunnella porttia 53. Jos yrität suorittaa sen toisesta hakemistosta, sinulla ei ole pääsyä verkkoon. Miksi edes kopioin sen? Jotta vaikutukset koko järjestelmään voidaan minimoida ja alkuperäistä dnsapi.dll-tiedostoa ei kosketa. Osoittautuu, että jos voit luoda symlinkin sovellukseen, voit saada sen verkkooikeudet. Oletuksena vain ylläpitäjillä on oikeus luoda symlink, mutta on yllättävää huomata, että antamalla käyttäjälle oikeuden luoda symlink, annat hänelle mahdollisuuden ohittaa sisäänrakennettu palomuuri.

Kun se on ladattu prosessiin DllMainista, on mahdollista luoda säiettä ja asentaa sieppaus. Yksinkertaisimmassa tapauksessa dns-palvelumme kertoo asiakkaalle nimen IP-osoitteen lähettämällä UDP-paketin portista 53 sendto-toiminnon kautta tiedostosta ws2_32.dll. Standardi ehdottaa, että TCP-porttia 53 voidaan käyttää, jos vastaus on liian suuri, ja on selvää, että sendto sieppaus on tässä tapauksessa hyödytön. Kuitenkin tapauksen käsittely tcp:llä, vaikka se vie enemmän aikaa, voidaan tehdä samalla tavalla. Toistaiseksi kerron sinulle yksinkertaisimman tapauksen UDP:n kanssa. Tiedämme siis, että dns.exe-koodi tuo sendto-funktion ws2_32.dll-tiedostosta ja käyttää sitä vastaamaan dns-pyyntöön. Funktioiden sieppaamiseen on myös melko paljon erilaisia ​​tapoja, klassinen on silmukointi, kun ensimmäiset sendto-käskyt korvataan funktiossaan jmp:llä ja sen valmistuttua siirrytään aiemmin tallennettuihin sendto-käskyihin ja sitten sisään. sendto-toiminto suoritetaan. Liittäminen toimii, vaikka GetProcAddressia käytetään kutsumaan sendto-komentoa tuontitaulukon sijaan, mutta jos käytetään tuontitaulukkoa, on helpompi käyttää IAT-koukkua liitoksen sijaan. Tätä varten sinun on löydettävä tuontitaulukko ladatusta dns.exe-tiedostosta. Itse taulukon rakenne on hieman hämmentävä, ja sinun on siirryttävä PE-muodon kuvaukseen saadaksesi lisätietoja.

Pääasia on, että kuvaa lataava järjestelmä kirjoittaa tuontitaulukkoon osoittimen sendto-funktion alkuun. Tämä tarkoittaa, että siepataksesi sendto-kutsun sinun tarvitsee vain korvata tuontitaulukon alkuperäisen sendto-osoite funktiosi osoitteella.

Joten asensimme sieppauksen ja aloimme vastaanottaa tietoja. Sendto-funktion prototyyppi näyttää tältä:

Int sendto(_In_ SOCKET s, _In_ const char *buf, _In_ int len, _In_ int liput, _In_ const struct sockaddr *to, _In_ int tolen);
Jos s on socket portissa 53, niin buf-osoitin sisältää len dns -vasteen. Itse formaatti on kuvattu RFC1035:ssä, kuvailen lyhyesti mitä pitää tehdä saadakseen kiinnostavan datan.

Sanoman rakenne standardissa on kuvattu seuraavasti:

Otsikossa vaadituista tiedoista: viestin tyyppi, virhekoodi ja elementtien lukumäärä osioissa. Itse otsikko näyttää tältä:

Rakenne DNS_HEADER ( uint16_t id; // tunnistenumero uint8_t rd: 1; // haluttu rekursio uint8_t tc: 1; // katkaistu viesti uint8_t aa: 1; // pätevä vastaus uint8_t opcode: 4; //// t-viestin tarkoitus 1; // kyselyn/vastauksen lippu uint8_t rcode: 4; // vastauskoodi uint8_t cd: 1; // poistetun uint8_t-mainoksen tarkistus: 1; // todennettu data uint8_t z: 1; // sen z! varattu uint8_t ra: 1 // käytettävissä oleva rekursio uint16_t q_count // kysymysmerkintöjen määrä uint16_t ans_count // vastausten määrä uint16_t auth_count // auktoriteettimerkintöjen määrä uint16_t add_count // resurssimerkintöjen määrä );
Kysymys-osio on jäsennettävä, jotta pääset vastaukseen. Itse osio koostuu otsikossa määritetystä lohkojen määrästä (q_count). Jokainen lohko koostuu nimestä, tyypistä ja pyyntöluokasta. Nimi on koodattu merkkijonojonona, joista jokainen alkaa tavulla, joka kertoo merkkijonon pituuden. Lopussa on nollapituinen merkkijono. Esimerkiksi nimi homedomain2008.ru näyttäisi tältä:

Answers-osio näyttää samalta: lohko koostuu nimestä, tyypistä, luokasta, ttl:stä ja lisätiedoista. IP-osoite sisältyy lisäykseen. tiedot. Nimen jäsentämisessä on toinenkin vaikeus. Ilmeisesti viestin koon pienentämiseksi voit etsiä tarran pituuden sijaan linkin toiselle tietoalueelle. Se on koodattu seuraavasti: jos pituuden 2 tärkeintä bittiä ovat yhtä kuin 11, niin seuraava tavu, samoin kuin pituuden vähiten merkitsevät bitit, tulee tulkita poikkeamaksi tavuina suhteessa tavun alkuun. viesti. Nimen lisäjäsennys on suoritettava siirtymällä tähän siirtymään.

Joten sieppasimme vaaditun API:n, jäsensimme dns-vastauksen, nyt meidän on tehtävä päätös: ohita tämä vastaus tai palauta virhe. Jokaisen nimen kohdalla, jota ei vielä ole tietokannassa, sinun on tarkistettava vastauksesta, onko se "epäilyttävä" vai ei.
Pidämme "epäilyttävinä" sellaisia ​​nimiä, joille Unicode Technical Standard tr39:n luurankofunktion tulos vastaa minkä tahansa perustan nimen tulosta, tai ne nimet, jotka eroavat kantassa olevista nimistä permutaatiolla sisäiset kirjaimet. Tarkastuksia varten tallennamme 2 pöytää. Ensimmäinen koostuu luurankon tuloksista kaikille nimille pohjasta, toiseen taulukkoon kirjoitamme merkkijonot, jotka on saatu kannan merkkijonoista poistamalla ensimmäinen ja viimeinen merkki jokaisesta etiketistä paitsi ensimmäistä tasoa, ja lajittele sitten kunkin tarran jäljellä olevat merkit. Nyt, jos uusi nimi sisältyy johonkin kahdesta taulukosta, pidämme sitä epäilyttävänä.

Runkofunktion tarkoitus on määrittää kahden merkkijonon samankaltaisuus; tätä varten merkit normalisoidaan jokaiselle merkkijonolle. Esimerkiksi Xlœ muunnetaan Xloeksi ja siten funktion tulosta vertaamalla voidaan määrittää unicode-merkkijonojen samankaltaisuus.

Esimerkki toteutuksesta yllä olevasta löytyy githubista.
Ilmeisesti yllä oleva ratkaisu ei voi tarjota normaalia suojaa käytännössä, koska sieppaukseen liittyvien pienten teknisten ongelmien lisäksi vielä suurempi ongelma on "samankaltaisten" nimien havaitsemisessa. Olisi kiva käsitellä:

  • Permutaatioiden ja homoglyfien yhdistelmät.
  • Lisätään\korvaa merkkejä, joita luuranko ei ota huomioon.
  • UTS tr39 ei rajoitu luurankoon, voit silti rajoittaa merkistöjen sekoittamista yhdessä tarrassa.
  • Japanilaiset täysleveät piste- ja muut tarraerottimet.
  • Ja ihania asioita mm

DNS-infektio tai DNS-huijaus on eräänlainen kyberhyökkäys, joka käyttää DNS-palvelimen järjestelmän haavoittuvuuksia ohjaamaan liikennettä laillisilta palvelimilta väärennetyille palvelimille.

Kuinka DNS-infektio tai DNS-huijaus toimii

Koodi DNS-välimuistin tartuttamiseksi löytyy usein roskaposti-URL-osoitteista. Näissä viesteissä hyökkääjät yrittävät pelotella käyttäjiä ja siten pakottaa heidät seuraamaan liitettyä linkkiä, mikä puolestaan ​​saastuttaa heidän tietokoneensa. Bannerit ja kuvat sekä sähköpostissa että kyseenalaisissa sivustoissa voivat myös ohjata käyttäjät tähän koodiin. Kun tietokoneet ovat saaneet tartunnan, ne ohjaavat käyttäjät väärennetyille sivustoille, jotka jäljittelevät alkuperäisiä verkkosivuja ja altistavat heidät siten riskeille, kuten vakoiluohjelmille, näppäinloggereille tai matoille.

Riskit

DNS-tartunta aiheuttaa erilaisia ​​riskejä, alkaen tietovarkauksista. Pankkien ja suosittujen verkkokauppojen nettisivuja on helppo huijata, mikä tarkoittaa, että mikä tahansa salasana, luottokortti tai henkilötiedot voivat vaarantua. Ja jos IT-tietoturvapalveluntarjoajien sivustoja huijataan, käyttäjän tietokone voi altistua lisäriskeille, kuten viruksille tai troijalaisille, koska turvajärjestelmät eivät saa laillisia päivityksiä. Lopuksi DNS-välimuistitartunnan korjaaminen on erittäin vaikeaa, koska tartunnan saaneen palvelimen puhdistaminen ei korjaa ongelmaa, ja vaarantuneeseen palvelimeen kytkeytyvien tietokoneiden puhdistaminen johtaa niiden uudelleentartumiseen. Tarvittaessa käyttäjät voivat ratkaista ongelman tyhjentämällä DNS-välimuistinsa.

DNS-tartunnan estämiseksi käyttäjien tulee välttää vierailemista tuntemattomissa linkeissä ja tarkistaa tietokoneensa säännöllisesti haittaohjelmien varalta. Tee tämä aina tietokoneellesi asennettua ohjelmaa käyttäen, älä online-versiota, joka voidaan myös huijata.

Alkuperäinen: Cyber ​​​​Attacks Explained: DNS Invasions
Kirjailija: Prashant Phatak
Julkaisupäivä: 22.2.2012
Käännös: A.Panin
Siirtopäivä: 8.12.2012

Näemme usein sivustoja, jotka on turmeltu ja joiden kotisivut ovat korvanneet hyökkääjät. Kuinka hakkerit onnistuvat toteuttamaan tällaisia ​​hyökkäyksiä ja kuinka voimme suojata verkkoinfrastruktuurimme niiltä? Tässä artikkelissa kerrotaan, kuinka hyökkääjät onnistuvat häiritsemään DNS:ää (Domain Name System). DNS-hyökkäykset ovat teknisesti monimutkaisia ​​ja vaarallisia verkko- ja verkkoinfrastruktuurille. Verkon ylläpitäjien tulee tietää mahdollisimman paljon tämäntyyppisistä hyökkäyksistä ja ryhtyä kaikkiin mahdollisiin toimiin palvelemansa infrastruktuurin turvaamiseksi.

Kuten tiedämme, syy DNS:n olemassaoloon on se, että henkilö ei voi muistaa monia IP-osoitteita päästäkseen sivustoille, kun taas hän muistaa helposti kirjaimista ja numeroista koostuvat sivustojen nimet. DNS-järjestelmä suunniteltiin aikana, jolloin ystävälliset ihmiset käyttivät Internetiä, mikä johti joihinkin järjestelmän ominaisuuksiin nykyaikana.

Kuvassa 1 on esitetty verkon nimenselvityspalvelun perusperiaatteet. Kun sovellus (kuten selain) haluaa muodostaa yhteyden etäpalveluun, se kysyy DNS-palvelimelta IP-osoitetta. Tämä pyyntö lähetetään paketin muodossa UDP-porttiin numero 53, jonka jälkeen palvelin palauttaa vastauksen paketin muodossa. (Huomaa, että UDP-datagrammin 512-tavun tietokokorajoituksen vuoksi protokollapino käyttää automaattisesti TCP:tä pyyntöjen tekemiseen ja vastausten vastaanottamiseen.) Kun asiakas vastaanottaa vastauksen, se lisää tiedot paikalliseen välimuistiinsa, joka nopeuttaa myöhempiä puheluita samaan verkkotunnukseen. Paikallisen välimuistin kohteet tuhotaan automaattisesti, kun niiden käyttöikä on umpeutunut (TTL (Time to Live) -parametri).

Kuva 1: Verkkotunnuksen resoluutio

DNS-järjestelmä käyttää tietuetyyppejä, kuten A, CNAME, SOA, MX ja muita. Vaikka tämän tyyppisten merkintöjen kuvaaminen ei kuulu tämän artikkelin piiriin, on tärkeää, että järjestelmänvalvojat tietävät, milloin ja miten niitä tulee käyttää, ja ennen niiden käyttöä tulee tehdä tutkimusta järjestelmän tulevasta turvallisuudesta. Ennen kuin tarkastelemme DNS-järjestelmään kohdistuvia hyökkäyksiä, meidän on harkittava kahdentyyppisiä kyselyjä - iteratiivisia ja rekursiivisia.

  • Iteratiiviset DNS-kyselyt Huomautus: Vaikka asiakas lähettää DNS-palvelimelle kyselyn, joka etsii tietoja toimialueesta, DNS-palvelimella voi olla tai ei ole tietoja kyseisestä toimialueesta. Jos DNS-palvelin ei saa vastausta, pyynnön suorittamisen sijaan se lähettää asiakkaalle korkeamman DNS-palvelimen nimen, jolla voi olla vaaditut tiedot. Tätä prosessia kutsutaan yleisesti DNS-viittaukseksi. Asiakas lähettää pyynnön seuraavalle (määritetylle) palvelimelle; jos se ei saa vastausta, se lähettää ylimmän palvelimen nimen asiakkaalle. Tämä prosessi jatkuu, kunnes asiakas saa joko IP-osoitteen tai virheilmoituksen, että pyyntöä ei voida suorittaa loppuun.
  • Rekursiiviset DNS-kyselyt: Tässä tapauksessa prosessi alkaa siitä, että asiakas tekee verkkotunnuksen selvityspyynnön suoraan DNS-palvelimelle. Jos DNS-palvelimella ei ole vastausta, sen oletetaan kommunikoivan korkeampien palvelimien kanssa sen sijaan, että toimittaisivat vain heidän nimensä asiakkaalle. Jälleen, jos ylimmällä palvelimella ei ole tietoja vastatakseen pyyntöön, se välittää pyynnön edelleen ylimmälle palvelimelle. Tämä prosessi jatkuu, kunnes pyyntö saavuttaa juuri DNS-palvelimen, jolla pitäisi olla tarvittavat tiedot ja vastaus palautetaan asiakkaalle, ja jos pyydettyä nimeä ei ole olemassa, asiakkaalle palautetaan virheilmoitus palvelinketjua pitkin. Toisin kuin iteratiivinen menetelmä, rekursiivisen kyselyn katsotaan olevan aggressiivisempi tuloksen saamisessa.

Iteratiiviset kyselyt tekevät yleensä DNS-palvelimet, kun taas rekursiiviset kyselyt tekevät asiakkaat, koska tämäntyyppisillä kyselyillä vältetään DNS-uudelleenohjausten käsittelyprosessi. Järjestelmän turvallisuuden näkökulmasta järjestelmänvalvojien on tiedettävä DNS-järjestelmien toiminnan perusteet, sillä organisaatiossa voi toimia useita DNS-palvelimia synkronoimalla vyöhyketietueita tietojen johdonmukaisuuden ylläpitämiseksi.

DNS-tiedot synkronoidaan ajoittain ilman tarvetta käynnistää järjestelmäpalveluita uudelleen, ja kun juuripalvelimeen tehdään muutoksia, se lähettää muutostiedot automaattisesti alavirran palvelimille. Datan synkronointiin kuluva aika asetetaan kunkin tietueen aika-parametrin mukaan. Maantieteellisesti hajautettujen DNS-palvelimien tapauksessa tietojen synkronointijakso voi kestää päivän, koska kukin ketjun palvelimista käyttää omaa välimuistiaan nopeuttaakseen kyselyjen käsittelyä.

Hyökkäykset DNS-järjestelmiin

On havaittu, että järjestelmänvalvojat viettävät paljon aikaa sovellusten, palvelimien ja muiden infrastruktuurikomponenttien turvajärjestelmien kehittämiseen, mutta valitettavasti he yleensä unohtavat DNS-palvelimien turvajärjestelmät. Tarkastellaan kuvaa 2, joka näyttää DNS-palvelimien mahdolliset heikkoudet, jotka tekevät niistä alttiita hyökkäyksille. DNS on suunniteltu käsittelemään suurinta osaa viestinnästään UDP:n kautta, siinä ei ole sisäänrakennettua suojausta eikä sisäänrakennettua todennustukea, jotka kaikki tekevät siitä alttiimman hyökkäyksille kuin muut verkkopalvelut. Katsotaanpa muutamia yleisimpiä DNS-hyökkäystyyppejä.


Kuva 2: DNS-palvelimien mahdolliset heikkoudet

DNS-välimuistin muuttaminen (DNS-välimuistin myrkytys)

Tämän hyökkäyksen avulla voit vaikuttaa nimenselvitysprosessiin kahdella tavalla. Ensimmäisessä menetelmässä hyökkääjä asentaa haittaohjelmia (rootkit tai virus), jonka on tarkoitus hallita paikallista DNS-välimuistia asiakkaan koneella. Paikallisen DNS-välimuistin merkinnät muutetaan sitten osoittamaan muihin IP-osoitteisiin.

Jos selain esimerkiksi yrittää päästä sivustolle, jonka osoite on http://www.cnn.com/, CNN:n IP-osoitteen sijaan se vastaanottaa hyökkääjän ohjelmiston asettaman osoitteen, joka yleensä johtaa sivustolle, joka sijaitsee osoitteessa hyökkääjän omistama palvelin, joka sisältää haittaohjelmia tai käyttäjää loukkaavan viestin.

Toinen, vaarallisempi tapa on hyökkääjän hyökätä DNS-palvelimeen ja muokata sen paikallista välimuistia niin, että kaikki palvelimet, jotka käyttävät tätä palvelinta nimenselvityksessä, saavat vääriä IP-osoitteita, mikä johtaa lopulta heidän työnsä rikkomiseen ja voi johtaa tietojen katoaminen tai varastaminen.

Hyvin harvoissa tapauksissa hyökkääjät voivat päästä DNS-juuripalvelimeen, joka tallentaa perusjuuritason verkkotunnuksen tietueet, kuten .com, .net tai yksittäisen maan verkkotunnuksen nimijärjestelmän tietueet. Crackerit voivat muokata tämän palvelimen tietueita, kun taas muut palvelimet vastaanottavat muuttuneet tiedot automaattisesti, mikä voi johtaa kaupallisten verkkopalvelujen ja sivustojen maailmanlaajuisiin katkoksiin. Vaikka tällaiset tilanteet ovat hyvin harvinaisia, niitä tapahtuu - ei niin kauan sitten, tällainen hyökkäys häiritsi laajaa sosiaalista verkostoa.

DNS-palvelimen huijaus (DNS-kaappaus)

Tätä hyökkäystä käytetään usein myös muuttamaan DNS-järjestelmien toimintaa. Tällöin asiakkaan DNS-välimuistiin ei tehdä muutoksia, mutta asetuksiin tehdään muutoksia, minkä jälkeen kaikki nimenselvityspyynnöt osoitetaan hyökkääjän henkilökohtaiselle DNS-palvelimelle. Tyypillisesti tämän hyökkäyksen tarkoituksena ei ole tietojen varastaminen, vaan tilastotietojen kerääminen asiakkaan tietokoneelta. Kaikki hyökkääjän palvelimelle lähetetyt nimenselvityspyynnöt suoritetaan oikein, mutta hyökkääjä saa tietoa asiakkaan vierailemista sivustoista.

Näitä tietoja voidaan käyttää myöhemmin asiakkaalle kontekstuaalisen mainonnan näyttämiseen. Jotkut hakkerit käyttävät uudelleenohjauksia verkkosivustoilleen tai hakukoneisiin saadakseen mainosrahaa tai yksinkertaisesti varastaakseen tietoja ja käyttääkseen manipulointitekniikoita. Tapauksissa, joissa tätä DNS:n ominaisuutta ei voida käyttää henkilökohtaiseen hyötyyn, monet tunnetut sivustot ja Internet-palveluntarjoajat käyttävät sitä kerätäkseen tilastotietoja käyttäjän vierailemista resursseista.

DNS-huijaus (DNS-huijaus)

Tämä hyökkäys on ihmisen salakuunteluhyökkäys, jossa hyökkääjä ottaa DNS-palvelinta käyttävän verkon hallintaansa ja muuttaa ARP-välimuistia käyttämällä pakettihuijausta. Kun MAC-osoitetason verkko on saatu hallintaansa, hyökkääjä laskee DNS-palvelimen IP-osoitteen ja alkaa valvoa ja muokata tälle palvelimelle tarkoitettuja kyselyjä.

Kaikki verkosta tulevat pyynnöt kulkevat hyökkääjän tietokoneen läpi ja saavuttavat todellisen DNS-palvelimen. Tällä hyökkäyksellä voi olla vakavia seurauksia, koska kaikki verkon tietokoneet eivät millään tavalla tallenna hyökkäyksen tosiasiaa ja lähettävät kaikki DNS-kyselyt hyökkääjän tietokoneosoitteeseen.

Tälle hyökkäykselle on vaihtoehtoinen tapa nimeltä DNS-tunnuksen huijaus. Jokaisella DNS-pyynnöllä ja vastauksella on yksilöllinen tunniste, joka on suunniteltu erottamaan DNS-palvelimelle samanaikaisesti lähetetyt pyynnöt. Nämä yksilölliset tunnisteet muodostetaan usein MAC-osoitteesta, pyynnön päivämäärästä ja kellonajasta, ja protokollapino luo ne automaattisesti.

Hyökkääjä käyttää haistajaa siepatakseen yhden tai useamman pyynnön ja vastauksen vastaavilla tunnisteilla ja luo sitten pyynnön vastaavalla tunnisteella ja väärennetyllä IP-osoitteella. Näiden toimien seurauksena väärennetty IP-osoite tallennetaan hyökkäyksen kohteena olevan järjestelmän paikalliseen välimuistiin. Tämän jälkeen hyökätty järjestelmä voidaan vahingoittaa asettamalla haittaohjelmia palvelimelle pyynnössä määritetyllä osoitteella.

DNS uudelleensidonta

Tätä hyökkäystä kutsutaan myös nimellä "DNS pinning" ("DNS pinnig"), ja se on erityisen hienostunut hyökkäys. Siinä hyökkääjä rekisteröi ensin oman verkkotunnuksensa ja asettaa sitten tietueen elinkaaren vähimmäisarvon, joka estää kyseisen verkkotunnuksen tietoja pääsemästä välimuistiin.

DNS-palvelunestohyökkäykset

Kuten tämän sarjan ensimmäisessä artikkelissa opimme, UDP- tai TCP-pyyntöpakettien tulvapommitukset portissa 53 voivat johtaa palvelimen palvelunestoon. Toinen tapa suorittaa tämä hyökkäys on tulvii ping-paketteja tai TCP SYN:iä. Näiden toimien pääajatuksena on maksimoida palvelinresurssien (CPU ja RAM) käyttö, jotta palvelin lakkaa vastaamasta. Vaikka DNS-palvelimet on suojattu palomuureilla, jos DNS UDP -portteja ei ole estetty pääsystä epäluotettavista verkoista, verkkotunnusten määritysjärjestelmä tulee saataville tämäntyyppisiä hyökkäyksiä varten.

Suuri kuormitus viittaa DNS-palvelimen lataamiseen tehtävillä, joita palvelin ei pysty suorittamaan. On olemassa useita tapoja käynnistää palvelin ja tehdä siitä lopulta käyttökelvoton. Toisen menetelmän toteuttamiseksi käytetään haittaohjelmistoa (troijalainen), joka muokkaa monien isäntien paikallista DNS-välimuistia. Näiden toimien jälkeen kaikki solmut, joilla on muokattu välimuisti, alkavat lähettää pyyntöjä tietylle nimipalvelimelle, jonka crackers on valinnut etukäteen.

Kukin palvelin voi vastata vain rajoitettuun määrään pyyntöjä rajoitetun ajan (riippuen suorittimen suorituskyvystä ja kokoonpanosta) ja alkaa lopulta lisätä pyyntöjä jonoon. Mitä useammalle asiakkaille tehdään muutoksia paikalliseen DNS-välimuistiin, sitä enemmän pyyntöjä lähetetään jonoon ja lopulta palvelin halvaantuu.

Tämän hyökkäyksen toisessa tyypissä hyökkääjä muokkaa DNS-palvelimen välimuistia; A- tai CNAME-tietueita vastaavien IP-osoitteiden korvaamisen sijaan toimialueen nimiä muutetaan. Asioiden mutkistamiseksi jokainen verkkotunnus voi olla satoja tai tuhansia merkkejä pitkä. Tietojen synkronointiprosessi, joka alkaa muutosten tekemisen jälkeen, koostuu useiden kilotavujen datan lähettämisestä päänimipalvelimelta alavirran palvelimille ja lopulta asiakkaille.

Tietueen käyttöiän umpeuduttua tietojen synkronointiprosessi alkaa uudelleen ja voi johtaa yhden tai useamman ketjun DNS-palvelimen epäonnistumiseen. Nämä välimuistiin kohdistuvat vaikutukset simuloivat hajautettua palvelunestohyökkäystä, joka on vaarallinen ja vaikeasti hallittavissa.

Järjestelmän suojaus perustuu ilmaisiin ohjelmistoihin

Ilmaisten järjestelmien maailmassa on toteutettu verkkotunnusten selvityspalvelu, joka tunnetaan kaikkialla maailmassa nopeimman toimintanopeuden ansiosta analogeihin verrattuna. Eniten käytetty ja tunnetuin ratkaisu on Bind-palvelu. Koska useimmat DNS-palveluihin kohdistuvat hyökkäykset käyttävät kuitenkin protokollavirheitä, ilmaisten järjestelmien turvaaminen verkkotunnuksen nimenselvityspalveluilla vaikeutuu.

Aivan ensimmäinen askel turvajärjestelmän suunnittelussa tulisi olla verkkotason lukitseminen. Palvelimen ylläpitoporttien lisäksi vain DNS-kyselyjen portit tulee jäädä auki, ja kaikki muut portit tulee estää sekä palomuurissa että suoraan palvelimella käyttöjärjestelmän avulla.

Seuraava tärkeä askel on varmistaa, ettei palvelimelle ole asennettu muita ohjelmistoja kuin Domain Name Resolution. Tätä varotoimia tulee noudattaa erityisesti silloin, kun työskentelet yrityksen juurinimien selvityspalvelimen kanssa, joka tukee kaikkia sisäisiä toimialueen nimien selvityksiä ja käsittelee kaikki nimenselvityspyynnöt ulkoisille palvelimille lähiverkossa.

Usein käy niin, että kolmannen osapuolen ohjelman haavoittuvuus mahdollistaa tunkeutumisen nimenselvityspalvelimeen. Vaikka verkkoinfrastruktuurin kriittisimmät osat on suojattu palomuureilla, Unified Threat Managementilla ja tehokkailla virustorjuntaohjelmilla, on usein tarpeen vahvistaa suojausta tunkeutumisen havainnointijärjestelmällä. Sen avulla voit torjua OSI-kerroksen 2 ja 3 hyökkäykset, kuten ARP-huijaukset, IP-huijaukset, haistajahyökkäykset ja muun tyyppiset hyökkäykset.

Edellä kuvattujen olennaisten varotoimenpiteiden lisäksi on myös useita monimutkaisia ​​menetelmiä, joita tulisi soveltaa. Kuten aiemmin opimme, jokaisella pyynnöllä on oma yksilöllinen tunniste ja se lähetetään UDP-paketissa. Valitettavasti DNS-pinon RFC-rakenteen vuoksi nämä tunnisteet ovat helposti ennustettavissa, joten satunnaislukujen käyttäminen tunnisteiden luomiseen on hyvä idea auttaa estämään huijaushyökkäyksiä. Samoin UDP-portin numero, johon nimenratkaisupalvelin vastaanottaa pyyntöjä ja vastaa, on myös helposti ennustettavissa ja se voidaan muuttaa satunnaiseksi.

Tähän tarkoitukseen on olemassa avoimen lähdekoodin ohjelmia, mutta niitä käytettäessä tulee huomioida, että ne aiheuttavat pienen viiveen pyynnön käsittelyssä. Suhteellisen uusi ja suosittu tietoturvatekniikka on DNSSEC (DNS Security Extensions). Se suojaa asiakkaita ja palvelimia hyökkäyksiltä, ​​jotka muokkaavat DNS-välimuistia allekirjoittamalla tietueet käyttämällä julkisen avaimen salausta. Toimiessaan samalla tavalla kuin SSL:ssä, pyynnön esittäjä ja vastaaja muodostavat luotettavan yhteyden toisiinsa, ja kun yhteys on muodostettu, nimenselvitysprosessi alkaa.

Kun nimenselvitysprosessi on valmis, istunto nollataan ja siten molempien osapuolten turvallisuus säilyy. DNSSEC-tekniikka on toteutettu useimmilla ISP-palvelimilla maailmassa.

DNS-häiriöt ovat yleinen hyökkäystyyppi. Se alkaa hyödyntämällä protokollan puutteita ja johtaa siihen, että hyökkääjä pääsee IT-infrastruktuuriin tai käyttää tietokoneita muun tyyppisten hyökkäysten, kuten tietojenkalastelun, suorittamiseen. Ilmaiset ohjelmistojärjestelmät ovat myös herkkiä näille hyökkäyksille, joten järjestelmänvalvojien on ymmärrettävä ja käytettävä tekniikoita infrastruktuurinsa suojaamiseksi tietojen katoamiselta tai varkauksilta.

Tämä artikkeli on osa saman kirjoittajan (Prashant Phatak) kirjoittamaa kyberhyökkäyksiä käsittelevää sarjaa. Muita tämän sarjan artikkeleita.

Huijaus on varsin mielenkiintoinen hyökkäysmenetelmä, jonka monet tietoturva-ammattilaiset laiminlyövät. Ja turhaan, jopa turhaan. Tästä artikkelista ymmärrät, kuinka petollinen tämä monimuotoinen maailma voi olla. Älä usko silmiäsi!

VAROITUS

Kaikki tiedot on tarkoitettu vain tiedoksi. Toimittajat tai kirjoittaja eivät ole vastuussa tämän artikkelin materiaalien mahdollisesti aiheuttamista haitoista.

intro

Usein kuulen työpajan kollegoilta, että huijausta hyökkäysvektorina ei kannata edes harkita. Voin kuitenkin vakuuttaa, että jos huijausmenetelmät on harkittu huolellisesti, niitä voidaan käyttää paljon, paljon. Lisäksi tällaisten hyökkäysten laajuus ja tulokset ovat joskus katastrofaalisia. Loppujen lopuksi, kun olen kerran pettänyt silmäsi, petän sinua edelleen. Tärkein argumentti sen tosiasian puolesta, että huijaushyökkäykset ovat todellinen vaara, on se, että yksikään henkilö, mukaan lukien ammattilaiset, ei ole suojassa niiltä. Tässä on syytä huomata, että huijaus itsessään ei tee mitään: todellisen hakkerihyökkäyksen suorittamiseksi sinun on käytettävä jälkikäyttöä (post-exploitation). Useimmissa tapauksissa jälkihyödyntämisen tavoitteita ovat standardien haltuunotto, etuoikeuksien eskaloituminen, haittaohjelmien massiivinen levittäminen ja sen seurauksena pankkijärjestelmien henkilötietojen ja sähköisten digitaalisten avainten varkaus ja rahanpesu lisää. Tässä artikkelissa haluan ensinnäkin puhua siitä, mitä huijausmenetelmät ovat yleensä, ja toiseksi kertoa sinulle yksityiskohtaisesti joistakin nykyaikaisista lähestymistavoista. Luonnollisesti kaikki tiedot toimitetaan sinulle vain, jotta voit suojautua tällaisilta hyökkäyksiltä.

Huijauksen menneisyys ja nykyisyys

Aluksi termiä "huijaus" käytettiin verkon turvallisuusterminä, mikä merkitsi onnistunutta tiettyjen tietojen väärentämistä luvattoman pääsyn saamiseksi tiettyyn verkkoresurssiin. Ajan myötä tätä termiä alettiin käyttää muilla tietoturva-alueilla, vaikka useimmat niin sanotut vanhan koulun asiantuntijat käyttävät edelleen sanaa "huijaus" vain selventääkseen verkkohyökkäysten tyyppiä.

Ensimmäiset IDN-kloonit

IDN-homografeja käyttäneen hyökkäyksen kuvasivat ensimmäisen kerran vuonna 2001 Jevgeny Gabrilovich ja Alex Gontmakher Israelin Technion Institute of Technologysta. Ensimmäinen tunnettu tapaus onnistuneesta hyökkäyksestä tällä menetelmällä julkistettiin vuonna 2005 ShmooCon-hakkerikonferenssissa. Hakkerit onnistuivat rekisteröimään väärennetyn verkkotunnuksen paypal.com (xn--pypal-4ve.com Punycodessa), jossa ensimmäinen kirjain a on kyrillinen. Slashdot.org-sivustolla julkaistu julkaisu toi ongelman julkisuuteen, minkä jälkeen sekä selaimet että monien huipputason verkkotunnusten ylläpitäjät kehittivät ja toteuttivat vastatoimia.

Joten, kun verkko oli lapsenkengissään, suurin osa ohjelmoijien ja kehittäjien ponnisteluista kohdistui pääasiassa verkkoprotokollien algoritmien optimointiin. Turvallisuus ei ollut niin kriittinen kuin nykyään, ja, kuten usein tapahtuu, se sai hyvin vähän huomiota. Seurauksena on, että saamme banaalisia ja perustavanlaatuisia virheitä verkkoprotokolliin, jotka ovat edelleen olemassa useista korjauksista huolimatta (koska mikään korjaustiedosto ei voi korjata loogista protokollavirhettä). Tässä tarvitaan kokonaismuutoksia, joita nykyisen edustuksen verkosto ei yksinkertaisesti selviä. Esimerkiksi artikkelissa "DNS Attacks: Yesterday, Today, Tomorrow" (][ #5 2012), puhuin DNS-järjestelmien tuhoisista perustavanlaatuisista haavoittuvuuksista - UDP-protokollan käytöstä (joka toisin kuin TCP / IP:ssä on epävarmaa, koska siitä puuttuu sisäänrakennettu mekanismi huijauksen estämiseksi) ja paikallisesta välimuistista.

Vektorit

Päämääristä ja tavoitteista riippuen huijausvektorit voidaan jakaa paikallisiin (paikallisiin) ja verkkovektoreihin (verkko) vektoreihin. Juuri niitä tarkastelemme tässä artikkelissa. Paikallisen vektorin tapauksessa itse uhrin tietokoneelle asennettu käyttöjärjestelmä sekä tietyntyyppiset sovellukset, jotka vaativat usein tilanteesta riippuen lisäanalyysiä, katsotaan useimmiten hyökkäysten kohteeksi paikallisessa vektorissa. Verkkovektorin hyökkäyskohteet ovat päinvastoin abstraktimpia. Tärkeimmät ovat tietojärjestelmien komponentit, joita edustavat sekä paikalliset että globaalit verkot. Harkitse huijauksen päätyyppejä.

  1. Huijaus TCP/IP & UDP - kuljetuskerroksen hyökkäykset. TCP- ja UDP-protokollien siirtototeutuksen perustavanlaatuisten virheiden vuoksi seuraavan tyyppiset hyökkäykset ovat mahdollisia:
    • IP-huijaus – ideana on huijata IP-osoite muuttamalla IP-paketin rungossa olevan lähdekentän arvoa. Sitä käytetään muuttamaan hyökkääjän osoitetta esimerkiksi saadakseen vastauspaketin haluttuun osoitteeseen;
    • ARP-huijaus on Ethernet-verkkojen hyökkäystekniikka, jonka avulla voit siepata isäntien välistä liikennettä. Perustuu ARP-protokollan käyttöön;
    • DNS-välimuistin myrkytys - palvelimen DNS-välimuistin myrkytys;
    • NetBIOS/NBNS-huijaus - perustuu Microsoft-verkkojen paikallisten koneiden nimien selvittämiseen.
  2. Viittaajan huijaus – viittaajan korvaaminen.
  3. Tiedostojenjakoverkkojen myrkytys – tietojenkalastelu tiedostonjakoverkoissa.
  4. Soittajan tunnuksen huijaus – soittajan puhelinnumeron huijaus VoIP-verkoissa
  5. Sähköpostiosoitteen huijaus – lähettäjän sähköpostiosoitteen huijaus.
  6. GPS-huijaus - pakettihuijaus satelliitista GPS-laitteen hämmentämiseksi.
  7. Puhepostin huijaus - vastaajaviestien numeroiden korvaaminen uhrin salasanojen kalastelulla.
  8. SMS-huijaus on huijausmenetelmä, joka perustuu tekstiviestien lähettäjien numeroiden korvaamiseen.

Viimeisin kehitys huijausten alalla

Yleisimmät tekniikat ovat jo melko vanhoja ja pahoinpideltyjä. Maailmanlaajuinen verkosto on kirjaimellisesti täynnä tietoa mahdollisista vaihteluista niiden toiminnassa ja suojaa niitä vastaan. Tänään tarkastelemme joitakin uusimpia huijaustekniikoita, jotka ovat juuri saamassa vauhtia paikallisista vektoreista verkkovektoreihin. Eli kaikki on kunnossa.

Lievää ja skandaalia Microsoftin sertifikaattien huijausta

Microsoft Security Advisory (2718704) - Luvattomat digitaaliset sertifikaatit voivat sallia huijauksen. Varsin mielenkiintoinen asia löydettiin pahamaineisesta Flamer-vakoojarobotista: tämän haittaohjelman komponenttien käänteisen suunnittelun tulosten perusteella löydettiin koodiosio, joka vastaa huijaushyökkäyksistä, kuten tietojenkalastelusta. Simuloimalla suurten yritysten alkuperäisten varmenteiden toimittamista robotti suoritti MITM-hyökkäyksen, jonka tarkoituksena oli siepata yritysverkon käyttäjien henkilötiedot ja lähettää ne sitten kehittäjien palvelimelle. Tämä huijaustapahtuma sai tietoturvatiedotteen #2718704 vakavuusluokituksena korkea.

käyttöjärjestelmän huijaus

1. Extension Spoofing - tiedostopääte huijaus

Tekniikka, joka näki päivänvalon kiinalaisen tietoturva-alan tutkijan Zhitao Zhoun kehityksen ansiosta. Tämän tekniikan ydin on käyttää tiedoston nimessä ohjausmerkkiä 0x202E (RLO), jonka avulla voit muuttaa merkkien järjestystä, kun näytät tiedostonimen Windowsin Resurssienhallinnassa (explorer.exe). Tässä on esimerkki tämän yksinkertaisen tekniikan käytöstä:

Supermusiikkia ladannut klo 15.SCR

3pm.SCR-tiedosto ei ole muuta kuin suoritettava tiedosto, joka toteuttaa tiettyjä toimintoja (Troijalainen. - Toimittajan huomautus). Jos ohjausmerkki 0x202E lisätään tiedostonimen "3pm.SRC" alkuun (katso kuva 1), merkkien järjestys on käänteinen ja tiedostonimi näkyy eri tavalla Windowsin Resurssienhallinnassa:

Supermusiikkia ladannut RCS.mp3

Voit muuttaa tiedostokuvaketta käyttämällä mitä tahansa resurssien muokkausohjelmaa (Restorator, Resource Hacker). Tämä tekniikka on suunniteltu varomattomalle käyttäjälle, joka saattaa luulla tämän tiedoston kappaleeksi ja avata sen kaksoisnapsautuksella ja käynnistää siten haittaohjelman. Valitettavasti tämä tekniikka ei toimi Unicode-tyyppisissä Explorer-ohjelmissa. Seuraava on C#-koodi, joka suorittaa tiedostonimen muutoksen lisäämällä 0x202E-ohjausmerkin:

Julkinen Sub U_202E(tiedosto Merkkijonona, pääte merkkijonona) Dim d Kokonaisluku = tiedosto.Pituus - 4 Dim u Merkkinä = ChrW(823) Dim t Merkkinä() = pääte.ToCharArray() Array.Reverse(t) Dim dest As String = tiedosto.Alimerkkijono(0, d) & u & Uusi merkkijono(t) & tiedosto.Alimerkkijono(d) System.IO.File.Move(tiedosto, kohde) End Sub

2. Tiedostonimen huijaus - tiedostonimen kloonaus

Tämän tekniikan esitteli japanilainen tutkija Yosuke Hasegawa Security-Momiji-konferenssissa. Se perustuu nollapituisten merkkien (ZERO WIDTH Characters) käyttöön, jotka eivät vaikuta tiedostonimen näyttöön millään tavalla (katso kuva 2). Alla on kaikki tämän luokan symbolit:

U+200B (NOLLALEVEYSVÄLI) - U+200C (NOLLALEVEYS EI LIITTYMÄ) - U+200D (ZERO WIDTH JOINER) - U+FEFF (NOLLALEVEYS VÄLITILÄ) - U+202A (VOEMALTA OIKEALLE) upottaminen)

Lisäksi on mahdollista käyttää UTF-koodausta olemassa olevien tiedostojen nimien väärentämiseen. Nykyaikaiset haittaohjelmat käyttävät usein tätä tekniikkaa. Näkökentässäni törmäsin näytteitä haittaohjelmista, jotka suorittivat tällaisia ​​hyökkäyksiä. Esimerkiksi TrojanDropper:Win32/Vundo.L-haittaohjelma (käytetään vk.com-, vkontakte.ru-, *odnoklassniki.ru-sivustojen tietojenkalasteluun) käyttää juuri tätä tekniikkaa.


%SystemRoot%\system32\drivers\etc\hosts-tiedosto kopioitiin "clone"-hosts-tiedostoon UTF-merkillä "o" (0x043E), minkä jälkeen alkuperäiselle hosts-tiedostolle annettiin piilotiedostomäärite ja sen sisältö kirjoitettiin päälle. seuraavilla merkinnöillä:

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


Verkkoselaimen huijaus

1. Tilapalkki / linkkihuijaus

Tämän hyökkäyksen periaate on muuttaa dynaamisesti hypertekstin linkin osoitetta ( ). Esimerkiksi uhri siirtää hiiren osoittimen linkin päälle, minkä jälkeen selaimen tilarivillä näkyy osoite, johon linkki johtaa. Linkin napsautuksen jälkeen ovela JavaScript-koodi korvaa siirtymäosoitteen dynamiikassa. Eräs tutkijaystäväni, joka tunnetaan lempinimellä iamjuza, oli mukana PoC:n tutkimuksessa ja kehittämisessä hyödyntääkseen tätä tekniikkaa käytännössä, mutta hänen kehitystyönsä eivät olleet yleismaailmallisia ja toimivat vain tietyillä selaimilla. Tein samanlaisen tutkimuksen, sain parempia tuloksia, koska pystyin saavuttamaan tämän huijaustekniikan yleisen hyödyntämisen kaikille selainkoneille. Proof-of-Concept julkaistu osoitteessa 1337day.com. Tekninen toteutus näyttää tältä:

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

Methon location.assign("") :

Menetelmä window.location.assign("") :

Menetelmä window.location.replace("") :

Menetelmä window.location.href="" :

Yllä oleva HTML-koodi korvaa dynaamisesti määritetyn osoitteen ( www.google.com) sivuston osoitteeseen ][ () eri tavoilla, jotka perustuvat onclick="" JavaScript-tapahtumaan.

2. URL Bar Huijaus - linkkien korvaaminen selaimen osoiterivillä

Ensi silmäyksellä tämä näyttää mahdottomalta, mutta uskokaa minua - tämä on vain tehtävä kekseliäisyyden kehittämiseksi. Harkitse CVE-2011-1452-haavoittuvuutta, joka huijaa osoiterivin voittamattomassa Google Chromessa versioon 11.0.696.57 asti:

klikkaa minua

  • avautuu uusi ikkuna (spoofing.php), jossa on muuttuja "a";
  • 4500 mikrosekunnin (4,5 sekunnin) jälkeen (window.setTimeout-funktio) navigointihistoria palautetaan takaisin, josta muuttujalle "a" määritetty a.history.back()-funktio on vastuussa;
  • 5000 mikrosekunnin jälkeen muuttuja "a" asetetaan uuteen paikkaan spoofing.php, joka sijaitsee samassa hakemistossa.

Siten osoitepalkki kirjoitetaan uudelleen uudeksi URL-osoitteeksi "vanhemman" ensimmäisen sivun yhteydessä.

Seuraava haavoittuvuus on CVE-2010-4045 (Opera<= 10.62):

Proof of Concept - OPERA High Location Bar huijaus




Kun napsautat painiketta, jota edustaa kuva (), sivu latautuu automaattisesti uudelleen (location.reload ()), kun taas on mahdollista korvata osoitepalkki nykyisen välilehden yhteydessä.

Jotkut maksu-/pankkisivustot sisältyvät tähän.
  1. aloita poc Napsauta painiketta käynnistääksesi poc.


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




Kun Demo-painiketta napsautetaan, sekä muuttuja että myWindow-objekti asetetaan funktion arvoon, joka avaa apple.com-sivuston kokoon 200 × 100, joka on mobiililaitteiden Safari-selainlaajennuksen laajuus. Seuraavaksi myWindow lisää HTML-koodia (JavaScript/VB/etc) document.write()-funktiolla. Viimeinen vaihe on asettaa Safari-selaimen kohdistus myWindow-objektiin.

Osoitehuijauksessa selaimen osoitepalkissa ei ole mitään monimutkaista, ainoa asia on, että sinun on käytettävä kekseliäisyyttäsi oikein siellä, missä sitä tarvitaan ;-).

3. Lähdekoodin huijaus - sivun sisällön ja lähdekoodin korvaaminen

Toiminta on toteutettu meille jo tutun UTF-8-ohjausmerkin 0x202E (RLO) ansiosta. Menetelmän keksi Virginia Techin opiskelija John Kurlak. Hän käytti tekniikan esittelyyn History.replaceState() JavaScript-funktiota, jonka avulla voit muuttaa dynaamisesti sivun osoitetta osoitepalkissa. Proof-of-Concept (source.html):

Lähde

Voitko tarkastella lähdettäni Chromesta?



Tiedoston source.html[%20%2E] sisältö Voit, mutta ei niin helposti...

Tämän menetelmän ydin on korvata sivun lähdekoodin sisältö temppulla tiedoston lopussa olevalla RLO-ohjausmerkillä (katso kuva 4). Kun yritämme tarkastella lähde.html-sivun lähdekoodia, saamme toisen tiedoston source.html%20%2E sisällön. Melko mielenkiintoinen ja eksoottinen huijausmenetelmä, jolla on hyvin outoa voittoa, kuten se saattaa tuntua ensi silmäyksellä. Mielenkiintoisinta - tämän skriptin avulla voit "piilottaa" sivun lähdekoodin peittämällä sen paitsi osoitteen, myös isäntänimen yhteydessä.


4. IDN-kloonit - tekniikka, joka perustuu verkkotunnusten näyttämisen ulkoiseen samankaltaisuuteen

Tässä ei ole mitään innovatiivista, tekniikkaa on harjoiteltu DNS-järjestelmän alusta asti, mutta juuri IDN:n (Internationalized Domain Names - kansainvälistyneet verkkotunnukset) käyttö mahdollisti lähes erottamattomien verkkotunnusten "kloonien" luomisen. . Tietojenkalasteluhyökkäyksen tekninen toteutus on seuraava:

  1. Rekisteröidään verkkotunnus, joka on oikeinkirjoitettuna mahdollisimman lähellä hyökkäyksen kohteena olevaa verkkotunnusta. Yleensä käytetään kirjainten samankaltaisuutta numeroiden kanssa joissakin fonteissa (kirjain l ja numero 1, kirjain O ja numero 0), kirjainyhdistelmien samankaltaisuutta (rn ja m, cl ja d).
  2. Alkuperäisestä sivustosta luodaan väärennös, joka asetetaan luodun "kloonin" päälle.
  3. Tjohtavia linkkejä jaetaan (postiroskaposti, roskaposti sosiaalisissa verkostoissa, suosittujen palveluiden, kuten Twitterin, kautta, iframe-kehysten käyttö, oviaukot).
  4. Siitä tulee voittoa :).

Suurin ero tämän verkkotunnusten samankaltaisuuteen perustuvan hyökkäyksen ja muun tyyppisten väärennettyjä web-sivuja käyttävien tietojenkalastelun välillä on se, että se ei vaadi verkkoprotokollien häiriöitä: teknisestä näkökulmasta väärennetty verkkotunnus on laillinen.

IDN-hyökkäyksiä vastaan ​​suojautumiskeinoja alettiin ottaa käyttöön vuoden 2005 puolivälissä, kun verkkotunnusten rekisteröijät hyväksyivät sopimuksia, jotka rajoittivat mahdollisuutta rekisteröidä mitä tahansa IDN-verkkotunnusta. Niinpä kansainvälinen domain.org rajoittaa sallittujen merkkien määrän yhteen tai toiseen laajennetun latinalaisen kielen alajoukkoon. Mutta joidenkin häikäilemättömien rekisterinpitäjien ja kekseliäisyyden ansiosta on vielä nykyäänkin kaikki mahdollisuudet rekisteröidä phishing-verkkotunnus.

Radikaalisin puolustus homografista uhkaa vastaan ​​olisi kieltäytyä täysin näytöllä olevien IDN-koodien purkamisesta. Tällöin valenimi alkaisi aina kirjaimella "xn" ja päättyisi lukemattomaan merkkijonoon, mikä erottaisi sen jyrkästi alkuperäisestä. Valitettavasti tämä vaihtoehto kumoaa lähes kaikki IDN:n edut.

Pääasiallinen suojaus asiakaspuolen IDN-huijausta vastaan ​​on selaimen tilapalkki. Kun siirrät osoittimen tilapalkissa olevan linkin päälle, IDN-verkkotunnuksen punycode-vastine tulee näkyviin, mikä viittaa välittömästi mahdolliseen tietojenkalasteluun. Mutta tämäkään ei ole ihmelääke, voit huijata kaiken, jos käytät kekseliäisyyttäsi ;-). Katso yleishyödyke kaikille selainkoneille.

Johtopäätös

Huijauksilla on aina ollut ja tulee aina olemaan kysyntää, koska se on perusta ja tae onnistuneille hyökkäyksille moneen suuntaan. Toivottavasti teit oikeat johtopäätökset. Ole varovainen Internetissä.



DNS-huijaus (DNS-huijaus)

DNS-järjestelmä ( Domain Name System) muuntaa verkkotunnuksen (esim. www.test.com) sen IP-osoitteeksi (esim. 192.168.0.1) ja päinvastoin. Tämä hyökkäys käyttää tekniikkaa, joka lähettää vääriä vastauksia uhrin DNS-kyselyihin. Hyökkäys perustuu kahteen päämenetelmään.

DNS-tunnuksen huijaus (DNS-tunnuksen huijaus)

DNS-protokollapaketin otsikko sisältää tunnistekentän, joka vastaa pyyntöjä ja vastauksia. DNS-tunnuksen huijauksen tarkoituksena on lähettää vastauksensa DNS-kyselyyn ennen kuin todellinen DNS-palvelin vastaa. Tätä varten sinun on ennakoitava pyynnön tunnus. Paikallisesti tämä tehdään yksinkertaisesti kuuntelemalla verkkoliikennettä. Tämän tehtävän suorittaminen etänä on kuitenkin paljon vaikeampaa. On olemassa erilaisia ​​menetelmiä:

    tarkistaa kaikki tunnistekentän käytettävissä olevat arvot. Ei kovin käytännöllistä, koska mahdollisten arvojen kokonaismäärä on 65535 (kentän koko 16 bittiä);

    lähettää useita satoja DNS-pyyntöjä oikeassa järjestyksessä. Ilmeisesti tämä menetelmä ei ole kovin luotettava;

    ennustettavia tunnisteita luovan palvelimen löytäminen (esimerkiksi 1:llä). Tämäntyyppinen haavoittuvuus sisältyy joihinkin Bind- ja Windows 9x -järjestelmien versioihin.

Joka tapauksessa on tarpeen vastata todelliselle DNS-palvelimelle. Tämä voidaan saavuttaa esimerkiksi suorittamalla palvelunestohyökkäys palvelinta vastaan.

Onnistuneen hyökkäyksen suorittamiseksi hyökkääjän on ohjattava DNS-palvelinta (ns.attaquant.com), joka on valtuutettu attaquant.com-vyöhykkeelle. Kohde-DNS-palvelin (ns.cible.com) oletettavasti luo ennakoivia tunnistenumeroita (joka pyyntö kasvaa yhdellä).

Hyökkäys vaatii neljä vaihetta:

Tämän seurauksena kohteen DNS-palvelimen välimuisti sisältää hyökkääjän tarvitseman vastaavuuden, ja seuraavat www.spoofed.com-osoitetta pyytävät asiakkaat saavat hyökkääjän koneen osoitteen. Se voi sisältää kopion oikeasta sivustosta, jonka avulla hyökkääjä voi varastaa luottamuksellisia tietoja.

DNS-välimuistin myrkytyksen muuttaminen

DNS-palvelimet käyttävät välimuistia aikaisempien kyselyjen tulosten tallentamiseen ajan mittaan. Tämä tehdään, jotta vältetään jatkuvat pyynnöt vastaavien verkkotunnusten valtuutetuille palvelimille. DNS-huijaushyökkäyksen toinen muunnelma on muuttaa DNS-palvelimen välimuistia. Tässä on esimerkki:

Käytämme samoja tietoja kuin edellisessä esimerkissä. Tässä ovat tämän hyökkäysvaihtoehdon avainkohdat:

    lähetä DNS-pyyntö nimen www.attaquant.com ratkaisemiseksi cible.com-verkkotunnuksen DNS-palvelimelle;

    kohde-DNS-palvelin lähettää pyynnön www.attaquant.com-nimen selvittämiseksi hyökkääjän DNS-palvelimelle;