DNS кэш рүү хуурамч өгөгдөл оруулах шинэ SAD DNS халдлага

Калифорнийн их сургуулийн судлаачдын баг Риверсайд өнгөрсөн жил CVE-2021-20322-ийн эмзэг байдлыг хаахын тулд хамгаалалт нэмсэн ч ажилладаг SAD DNS халдлагын (CVE-2020-25705) шинэ хувилбарыг нийтэлжээ. Шинэ арга нь ерөнхийдөө өнгөрсөн жилийн эмзэг байдалтай төстэй бөгөөд идэвхтэй UDP портуудыг шалгахын тулд өөр төрлийн ICMP пакетуудыг ашиглахдаа л ялгаатай. Санал болгож буй халдлага нь DNS серверийн кэш рүү зохиомол өгөгдлийг орлуулах боломжийг олгодог бөгөөд энэ нь кэш дэх дурын домэйны IP хаягийг сольж, домэйн руу хүсэлтийг халдагчийн сервер рүү дахин чиглүүлэхэд ашиглаж болно.

Санал болгож буй арга нь Линукс дахь ICMP пакет боловсруулах механизмын онцлогтой холбогдсон тул зөвхөн Линукс сүлжээний стек дээр ажилладаг бөгөөд энэ нь өгөгдөл алдагдах эх үүсвэр болдог бөгөөд энэ нь серверээс илгээхэд ашигладаг UDP портын дугаарыг тодорхойлоход хялбар болгодог. гадаад хүсэлт. Мэдээллийн алдагдлыг блоклосон өөрчлөлтүүдийг 5.15-р сарын сүүлээр Линуксийн цөмд оруулсан (засварыг цөмийн XNUMX болон XNUMX-р сарын шинэчлэлтүүдэд цөмийн LTS салбаруудад оруулсан болно). Засвар нь Jenkins Hash-ийн оронд сүлжээний кэш дэх SipHash хэшлэх алгоритмыг ашиглахад шилжинэ. Түгээлтийн эмзэг байдлыг засах статусыг Debian, RHEL, Fedora, SUSE, Ubuntu гэсэн хуудаснаас үнэлж болно.

Асуудлыг тодорхойлсон судлаачдын үзэж байгаагаар сүлжээн дэх нээлттэй шийдэгчдийн 38 орчим хувь нь OpenDNS болон Quad9 (9.9.9.9) зэрэг алдартай DNS үйлчилгээнүүд зэрэг эмзэг байдаг. Серверийн програм хангамжийн хувьд Linux сервер дээр BIND, Unbound, dnsmasq зэрэг багцуудыг ашиглан халдлага хийж болно. Windows болон BSD систем дээр ажиллаж байгаа DNS серверүүд дээр асуудал харагдахгүй байна. Халдлагыг амжилттай хэрэгжүүлэхийн тулд IP хууран мэхлэх аргыг ашиглах шаардлагатай. Халдагчийн ISP нь хуурамч эх сурвалжийн IP хаягтай пакетуудыг блоклохгүй байх шаардлагатай.

Сануулахад, SAD DNS халдлага нь 2008 онд Дан Каминскийн санал болгосон DNS кэшийг хордуулах сонгодог аргыг хаахын тулд DNS серверт нэмсэн хамгаалалтыг давж гардаг. Каминскийн арга нь DNS query ID талбарын өчүүхэн хэмжээтэй буюу ердөө 16 битийн хэмжээг өөрчилдөг. Хост нэрийг хуурамчаар үйлдэхэд шаардлагатай зөв DNS гүйлгээний танигчийг сонгохын тулд ойролцоогоор 7000 хүсэлт илгээж, 140 мянга орчим зохиомол хариултыг дуурайхад хангалттай. Энэхүү халдлага нь зохиомол IP холболттой, өөр DNS гүйлгээний танигчтай олон тооны пакетуудыг DNS шийдүүлэгч рүү илгээхэд хүргэдэг. Эхний хариултыг кэшлэхээс сэргийлэхийн тулд хуурамч хариулт бүр бага зэрэг өөрчлөгдсөн домэйн нэрийг (1.example.com, 2.example.com, 3.example.com гэх мэт) агуулна.

Энэ төрлийн халдлагаас хамгаалахын тулд DNS сервер үйлдвэрлэгчид шийдвэрлэх хүсэлтийг илгээсэн эх сурвалжийн сүлжээний портуудын тоог санамсаргүй хуваарилалтыг хэрэгжүүлсэн бөгөөд энэ нь танигчийн хэмжээ хангалтгүй байгааг нөхсөн. Зохиомол хариу илгээх хамгаалалтыг хэрэгжүүлсний дараа 16 битийн танигчийг сонгохоос гадна 64 мянган портын аль нэгийг сонгох шаардлагатай болсон нь сонгох сонголтуудын тоог 2^32 болгон нэмэгдүүлсэн.

SAD DNS арга нь сүлжээний портын дугаарыг тодорхойлох ажлыг эрс хялбарчилж, халдлагыг сонгодог Каминскийн арга болгон бууруулах боломжийг олгодог. Халдагчид ICMP хариултын пакетуудыг боловсруулахдаа сүлжээний портуудын үйл ажиллагааны талаарх алдагдсан мэдээллийг ашиглан ашиглагдаагүй, идэвхтэй UDP портууд руу хандах хандалтыг илрүүлж чадна. Энэ арга нь хайлтын сонголтуудын тоог 4^2 биш 16^2+16^2 (32_131_072_4-ийн оронд 294_967) гэсэн 296 дарааллаар багасгах боломжийг олгодог. Идэвхтэй UDP портуудыг хурдан тодорхойлох боломжийг олгодог мэдээлэл алдагдсан нь хуваагдмал хүсэлт (ICMP Fragmentation Needed flag) эсвэл дахин чиглүүлэх (ICMP Redirect flag) бүхий ICMP пакетуудыг боловсруулах кодын алдаанаас үүдэлтэй. Ийм пакетуудыг илгээх нь сүлжээний стек дэх кэшийн төлөвийг өөрчилдөг бөгөөд энэ нь серверийн хариу үйлдэл дээр үндэслэн аль UDP порт идэвхтэй, аль нь идэвхгүй байгааг тодорхойлох боломжтой болгодог.

Довтолгооны хувилбар: DNS шийдүүлэгч нь домэйн нэрийг шийдэх гэж оролдох үед домэйнд үйлчлэх DNS сервер рүү UDP асуулга илгээдэг. Шийдвэрлэгч хариу хүлээж байх хооронд халдагчид хүсэлтийг илгээхэд ашигласан эх портын дугаарыг хурдан тодорхойлж, түүнд хуурамч хариу илгээж, IP хаягийг хууран мэхлэх аргыг ашиглан домэйнд үйлчилдэг DNS серверийг дуурайж болно. DNS шийдүүлэгч нь хуурамч хариултаар илгээсэн өгөгдлийг кэш хийх бөгөөд хэсэг хугацаанд домэйн нэрийн бусад бүх DNS хүсэлтийн хувьд халдагчийн орлуулсан IP хаягийг буцаана.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх