DNS spoofing

DNS spoofing, i referuar edhe si helmimi i memories DNS, është një formë e hakimit të sigurisë kompjuterike në të cilën të dhënat e korruptuara të sistemit të emrave të domenit futen në cache-in e zgjidhësit DNS, duke bërë që serveri i emrave të kthejë një rekord rezultati të pasaktë, p.sh. një adresë IP. Kjo rezulton në devijimin e trafikut në kompjuterin e sulmuesit (ose ndonjë kompjuter tjetër).

## Pasqyrë e sistemit të emrave të domenit 
Një server i Sistemit të Emrave të Domainit përkthen një emër domaini të lexueshëm nga njeriu (si shembulli.com) në një adresë IP numerike që përdoret për të drejtuar komunikimet ndërmjet nyjeve. Normalisht nëse serveri nuk njeh një përkthim të kërkuar, ai do të kërkojë një server tjetër dhe procesi vazhdon në mënyrë rekursive. Për të rritur performancën, një server zakonisht do t'i kujtojë (cache) këto përkthime për një kohë të caktuar. Kjo do të thotë se nëse merr një kërkesë tjetër për të njëjtin përkthim, mund të përgjigjet pa pasur nevojë të pyesë ndonjë server tjetër, derisa ai cache të skadojë.

Kur një server DNS ka marrë një përkthim të rremë dhe e ruan atë për optimizimin e performancës, ai konsiderohet i helmuar dhe u jep të dhëna të rreme klientëve. Nëse një server DNS helmohet, ai mund të kthejë një adresë IP të pasaktë, duke devijuar trafikun në një kompjuter tjetër (shpesh të një sulmuesi).

## Cache poisoning attacks 
Normalisht, një kompjuter në rrjet përdor një server DNS të ofruar nga një ofrues i shërbimit të internetit (ISP) ose nga organizata e përdoruesit të kompjuterit. Serverët DNS përdoren në rrjetin e një organizate për të përmirësuar performancën e përgjigjes së rezolucionit duke ruajtur rezultatet e pyetjeve të marra më parë. Sulmet e helmimit në një server të vetëm DNS mund të prekin përdoruesit e shërbyer drejtpërdrejt nga serveri i komprometuar ose ata që shërbehen në mënyrë indirekte nga serveri(ët) e tij në rrjedhën e poshtme nëse është e aplikueshme. 

Për të kryer një sulm helmues me cache, sulmuesi shfrytëzon të metat në softuerin DNS. Një server duhet të vërtetojë saktë përgjigjet DNS për të siguruar që ato janë nga një burim autoritar (për shembull duke përdorur DNSSEC ); përndryshe serveri mund të përfundojë duke i ruajtur në memorien e hyrjeve të pasakta në nivel lokal dhe t'u shërbejë atyre përdoruesve të tjerë që bëjnë të njëjtën kërkesë.

Ky sulm mund të përdoret për të ridrejtuar përdoruesit nga një faqe interneti në një faqe tjetër të zgjedhur nga sulmuesi. Për shembull, një sulmues falsifikon hyrjet DNS të adresës IP për një faqe interneti të synuar në një server të caktuar DNS dhe i zëvendëson ato me adresën IP të një serveri nën kontrollin e tyre. Sulmuesi më pas krijon skedarë në serverin nën kontrollin e tij me emra që përputhen me ato në serverin e synuar. Këto skedarë zakonisht përmbajnë përmbajtje me qëllim të keq, të tilla si krimbat e kompjuterit ose viruset . Një përdorues, kompjuteri i të cilit i është referuar serverit DNS të helmuar, mashtrohet të pranojë përmbajtje që vjen nga një server jo autentik dhe shkarkon pa e ditur përmbajtjen me qëllim të keq. Kjo teknikë mund të përdoret gjithashtu për sulme phishing, ku krijohet një version i rremë i një faqe interneti origjinale për të mbledhur të dhëna personale, si të dhënat e bankës dhe të kartës së kreditit/debitit.

Në variantet e mëposhtme, hyrjet për serverin  do të helmohej dhe do të ridrejtohej te serveri i emrave të sulmuesit në adresën IP  . Këto sulme supozojnë se serveri i emrit për  eshte  . 

Për të kryer sulmet, sulmuesi duhet të detyrojë serverin e synuar DNS të bëjë një kërkesë për një domen të kontrolluar nga një prej serverëve të emrave të sulmuesit. 

### Ridrejtoni serverin e emrave të domenit të synuar 
Varianti i parë i helmimit me cache DNS përfshin ridrejtimin e serverit të emrave të domenit të sulmuesit në serverin e emrave të domenit të synuar, më pas caktimin e atij serveri të emrave një adresë IP të specifikuar nga sulmuesi.

Kërkesa e serverit DNS: për çfarë shërbejnë regjistrimet e adresave  ?
 subdomain.attacker.example. IN A
Attacker's response:
 Answer:
 (no response)
 
 Authority section:
 attacker.example. 3600 IN NS ns.target.example.
 
 Additional section:
 ns.target.example. IN A w.x.y.z
Një server i pambrojtur do të ruajë në memorie rekordin shtesë A (adresa IP). , duke i lejuar sulmuesit të zgjidhë pyetjet në të gjithë domeni  .

## Parandalimi dhe zbutja 
Many cache poisoning attacks against DNS servers can be prevented by being less trusting of the information passed to them by other DNS servers, and ignoring any DNS records passed back which are not directly relevant to the query. For example, versions of BIND 9.5.0-P1 and above perform these checks. Source port randomization for DNS requests, combined with the use of cryptographically secure random numbers for selecting both the source port and the 16-bit cryptographic nonce, can greatly reduce the probability of successful DNS race attacks.

Megjithatë, kur ruterët, muret e zjarrit, proxies dhe pajisjet e tjera të portës kryejnë përkthimin e adresës së rrjetit (NAT), ose më konkretisht, përkthimin e adresës së portit (PAT), ata mund të rishkruajnë portet e burimit për të gjurmuar gjendjen e lidhjes. Kur modifikoni portat e burimit, pajisjet PAT mund të heqin rastësinë e portës së burimit të zbatuar nga serverët e emrave dhe zgjidhësit e cungëve.  

Secure DNS ( DNSSEC ) përdor nënshkrime dixhitale kriptografike të nënshkruara me një certifikatë të besuar të çelësit publik për të përcaktuar vërtetësinë e të dhënave. DNSSEC mund të kundërshtojë sulmet e helmimit me cache. Në vitin 2010 DNSSEC u implementua në serverët e zonës rrënjësore të internetit.,  por duhet të vendoset edhe në të gjithë serverët e domenit të nivelit të lartë . Gatishmëria DNSSEC e këtyre tregohet në listën e domeneve të nivelit të lartë të internetit . Që nga viti 2020, të gjitha TLD-të origjinale mbështesin DNSSEC, si dhe TLD-të e kodit të shtetit të shumicës së vendeve të mëdha, por shumë TLD të kodit të shtetit ende nuk e bëjnë.

Ky lloj sulmi mund të zbutet në shtresën e transportit ose në shtresën e aplikimit duke kryer verifikimin nga fundi në fund pasi të vendoset një lidhje. Një shembull i zakonshëm i kësaj është përdorimi i Sigurisë së Shtresës së Transportit dhe nënshkrimeve dixhitale . Për shembull, duke përdorur HTTPS (versioni i sigurt i HTTP ), përdoruesit mund të kontrollojnë nëse certifikata dixhitale e serverit është e vlefshme dhe i përket pronarit të pritur të një faqe interneti. Në mënyrë të ngjashme, programi i sigurt i hyrjes në distancë nga guaska kontrollon certifikatat dixhitale në pikat përfundimtare (nëse dihen) përpara se të vazhdojë me seancën. Për aplikacionet që shkarkojnë përditësimet automatikisht, aplikacioni mund të ngulit një kopje të certifikatës së nënshkrimit në nivel lokal dhe të vërtetojë nënshkrimin e ruajtur në përditësimin e softuerit kundrejt certifikatës së integruar. 

## Shiko gjithashtu 
* DNS hijacking
* DNS rebinding
* Mausezahn
* Pharming
* Root name server
* Dan Kaminsky