Slijede razlike između dviju inačica stranice.
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
racfor_wiki:mrezna_forenzika:analiza_kaminsky_dns_napada [2022/01/06 21:39] inavratil [O priručnoj memoriji] |
racfor_wiki:mrezna_forenzika:analiza_kaminsky_dns_napada [2023/06/19 18:17] (trenutno) |
||
---|---|---|---|
Redak 10: | Redak 10: | ||
Ključne riječi: Kaminsky, DNS, DNS napad, DNS ranjivost | Ključne riječi: Kaminsky, DNS, DNS napad, DNS ranjivost | ||
- | ===== Osnove DNS-a ===== | ||
- | |||
- | |||
- | Ništa ne sprječava bilo koji poslužitelj imena da poslužuje bilo koju zonu, uključujući i onu koju ne bi trebao posluživati. Napadač može postaviti poslužitelj imena i konfigurirati ga da određenu autoritativnu zonu, ali to neće imati bilo kakvog utjecaja budući da niti jedan poslužitelj imena na višoj razini mu neće delegirati zahtjev. | ||
- | |||
- | |||
- | |||
- | |||
==== Primjer DNS upita ==== | ==== Primjer DNS upita ==== | ||
Redak 100: | Redak 92: | ||
Kada se DNS odgovor pohranjuje, on se ne može spremiti zauvijek jer bi to dovelo do netočnog usmjeravanja budući da se IP adrese web stranica mijenjaju. Administrator zone određuje koliko dugo se u priručnu memoriju pohranjuje svaki zapis. To vrijeme se zove Time To Live (TTL) te je izraženo u sekundama. TTL može biti od nekoliko sekundi do nekoliko tjedana - sve ovisi o administratoru te zone. | Kada se DNS odgovor pohranjuje, on se ne može spremiti zauvijek jer bi to dovelo do netočnog usmjeravanja budući da se IP adrese web stranica mijenjaju. Administrator zone određuje koliko dugo se u priručnu memoriju pohranjuje svaki zapis. To vrijeme se zove Time To Live (TTL) te je izraženo u sekundama. TTL može biti od nekoliko sekundi do nekoliko tjedana - sve ovisi o administratoru te zone. | ||
- | U priručnu memoriju se ne pohranjuju samo zapisi tipa A već i zapisi tipa NS koji imaju svoj vlastiti TTL. Zapisi tipa A označavaju IP adresu za danu domenu dok zapisi tipa NS označavaju koji DNS poslužitelj je autoritativan za tu domenu. | + | U priručnu memoriju se ne pohranjuju samo zapisi tipa A već i zapisi tipa NS koji imaju svoj vlastiti TTL. Zapisi tipa A označavaju IP adresu za danu domenu dok zapisi tipa NS označavaju koji DNS poslužitelj je autoritativan za tu domenu. |
Redak 126: | Redak 118: | ||
- Napadač šalje zahtjev poslužitelju imena za stranicu čijim poslužiteljem imena on upravlja (npr. test.badguy.com) | - Napadač šalje zahtjev poslužitelju imena za stranicu čijim poslužiteljem imena on upravlja (npr. test.badguy.com) | ||
- Žrtvin poslužitelj imena prima zahtjev i izvršava standardni postupak razrješavanja imena. | - Žrtvin poslužitelj imena prima zahtjev i izvršava standardni postupak razrješavanja imena. | ||
- | - Žrtvin poslužitelj imena će biti usmjeren na napadačev poslužitelj imena budući da je on autoritativan za domenu koju je nadač poslao u zahtjevu | + | - Žrtvin poslužitelj imena će biti usmjeren na napadačev poslužitelj imena budući da je on autoritativan za domenu koju je napadač poslao u zahtjevu |
- Napadač iz odgovora žrtvinog poslužitelja imena može pročitati Query ID | - Napadač iz odgovora žrtvinog poslužitelja imena može pročitati Query ID | ||
Redak 142: | Redak 134: | ||
Prije napada, napadač mora konfigurirati poslužitelj imena koji je autoritativan za zonu čiju domenu želi oteti (npr. zonu bankofsteve.com). Općenito, moguće je postaviti poslužitelj imena koji je autoritativan za neku domenu, ali ako nijedan korijenski poslužitelj ne pokazuje na njega on neće dobiti niti jedan upit tj. on ima (potencijalno lažne) odgovore, ali nitko ne postavlja pitanje. | Prije napada, napadač mora konfigurirati poslužitelj imena koji je autoritativan za zonu čiju domenu želi oteti (npr. zonu bankofsteve.com). Općenito, moguće je postaviti poslužitelj imena koji je autoritativan za neku domenu, ali ako nijedan korijenski poslužitelj ne pokazuje na njega on neće dobiti niti jedan upit tj. on ima (potencijalno lažne) odgovore, ali nitko ne postavlja pitanje. | ||
- | Cilj idućeg postupka je zamijeniti legitimnu IP adresu stranice www.bankofsteve.com | + | Cilj idućeg postupka je zamijeniti legitimnu IP adresu stranice www.bankofsteve.com |
Postupak: | Postupak: | ||
- | 1. Napadač odabire nasumično ime unutar | + | 1. Napadač odabire nasumično ime unutar |
- | 2a. Napadač zna da će žrtva tražiti ns1.bankofsteve.com za IP adresu stranice budući da će joj taj poslužitelj imena vratiti korijenski poslužitelj. Tada napadač šalje veliki broj paketa prema žrtvite | + | 2a. Napadač zna da će žrtva tražiti ns1.bankofsteve.com za IP adresu stranice budući da će joj taj poslužitelj imena vratiti korijenski poslužitelj. Tada napadač šalje veliki broj paketa prema žrtvi te delegira odgovor na drugi poslužitelj imena putem polja " |
2b. & 3. Žrtvin zahtjev za IP adresu i odgovor korijenskog/ | 2b. & 3. Žrtvin zahtjev za IP adresu i odgovor korijenskog/ | ||
Redak 155: | Redak 147: | ||
4. Žrtva šalje upit poslužitelju imena ns1.bankofsteve.com za IP adresu ww.bankofsteve.com te koristi Query ID = 1001. | 4. Žrtva šalje upit poslužitelju imena ns1.bankofsteve.com za IP adresu ww.bankofsteve.com te koristi Query ID = 1001. | ||
- | 5. Poslužitelj imena odgovara na zahtjev | + | 5. Poslužitelj imena odgovara na zahtjev |
- | 6. U priručnoj memoriji poslužitelja imena se sada nalazi | + | 6. U priručnoj memoriji poslužitelja imena se sada nalazi |
7. Svi daljnji upiti za kompromitirani poslužitelj imena dobiti će IP adresu poslužitelja imena napadača. | 7. Svi daljnji upiti za kompromitirani poslužitelj imena dobiti će IP adresu poslužitelja imena napadača. | ||
Redak 189: | Redak 181: | ||
Napadač će tipično postaviti vrlo veliku TTL vrijednost u trovajućem odgovoru tako da žrtva ima netočne podatke što duže u svojoj priručnoj memoriji. | Napadač će tipično postaviti vrlo veliku TTL vrijednost u trovajućem odgovoru tako da žrtva ima netočne podatke što duže u svojoj priručnoj memoriji. | ||
- | Nužni uvjet uspjeha ovog napada je da napadačev odgovor mora doći do DNS poslužitelja prije nego stvarni odgovor, | + | Nužni uvjet uspjeha ovog napada je da napadačev odgovor mora doći do DNS poslužitelja prije nego stvarni odgovor, |
Redak 197: | Redak 189: | ||
U primjeru je prikazano otimanje za jedan upit, ali nije vjerojatno da će ono biti uspješno. Zbog nasumičnog odabira Query ID vrijednosti polja, nije vjerojatno da će napadač uspjeti pogoditi vrijednost. | U primjeru je prikazano otimanje za jedan upit, ali nije vjerojatno da će ono biti uspješno. Zbog nasumičnog odabira Query ID vrijednosti polja, nije vjerojatno da će napadač uspjeti pogoditi vrijednost. | ||
- | Napadač tada ponavlja upite, ali svaki put sa drukčijim imenom poddomene kako ne bi dobio odgovor iz priručne memorije. Svaki put napadač šalje određeni broj odgovor u nadi da će pogoditi Query ID. | + | Napadač tada ponavlja upite, ali svaki put s drukčijim imenom poddomene kako ne bi dobio odgovor iz priručne memorije. Svaki put napadač šalje određeni broj odgovor u nadi da će pogoditi Query ID. |
- | ==== Posljedice Kaminsky DNS napada ==== | + | ===== Posljedice Kaminsky DNS napada |
Posljedice ovakvog napada su katastrofalne. Budući da napadač postaje vlasnik cijele domene, on kontrolira sve što se tiče poslužitelja imena. On može preusmjeravati posjetitelje na njegove poslužitelje te može preusmjeravati emailove na svoje poslužitelje | Posljedice ovakvog napada su katastrofalne. Budući da napadač postaje vlasnik cijele domene, on kontrolira sve što se tiče poslužitelja imena. On može preusmjeravati posjetitelje na njegove poslužitelje te može preusmjeravati emailove na svoje poslužitelje | ||
Redak 209: | Redak 201: | ||
===== Rješenje Kaminsky DNS problema ===== | ===== Rješenje Kaminsky DNS problema ===== | ||
- | Akcije koje su poduzete nakon otkrivanja Kaminsky DNS problema nisu u potpunosti | + | Akcije koje su poduzete nakon otkrivanja Kaminsky DNS problema nisu u potpunosti |
Potrebno je dodati dodatan izvor nasumičnosti što se ostvarilo odabirom nasumičnog izvornog porta prilikom slanja poruke. Umjesto jednog porta, korišten je puno veći raspon portova alociran od strane poslužitelja imena. | Potrebno je dodati dodatan izvor nasumičnosti što se ostvarilo odabirom nasumičnog izvornog porta prilikom slanja poruke. Umjesto jednog porta, korišten je puno veći raspon portova alociran od strane poslužitelja imena. | ||
- | Mircosoftovi | + | Microsoftovi |