Сервер дээрх санах ойн хэсгүүдийг алсаас тодорхойлох халдлагын аргыг санал болгов

Өмнө нь MDS, NetSpectre, Throwhammer болон ZombieLoad халдлагуудыг хөгжүүлдгээрээ алдартай Грацын Техникийн Их Сургуулийн (Австри) хэсэг судлаачид Санах ойг устгах механизмын эсрэг хажуугийн сувгийн халдлагын шинэ аргыг (CVE-2021-3714) нийтлэв. , энэ нь санах ойд тодорхой өгөгдөл байгаа эсэхийг тодорхойлох, санах ойн агуулгыг байтаар алдах ажлыг зохион байгуулах, хаяг дээр суурилсан санамсаргүй хуваарилалт (ASLR) хамгаалалтыг тойрч гарах санах ойн зохион байгуулалтыг тодорхойлох боломжийг олгодог. Энэхүү шинэ арга нь HTTP/1 болон HTTP/2 протоколоор халдагчид илгээсэн хүсэлтэд хариу өгөх хугацааг өөрчлөх шалгуур болгон гадны хостоос халдлага үйлдэж, давхардсан тоогоор устгах механизмд халдлага хийх урьд өмнө үзүүлсэн хувилбаруудаас ялгаатай юм. Линукс болон Windows дээр суурилсан серверүүдэд халдлага хийх чадварыг харуулсан.

Санах ойн үлдэгдлийг арилгах механизмын халдлага нь өгөгдөлд өөрчлөлт оруулснаар хуулбарласан санах ойн хуудсыг хуулбарлах (COW) механизмыг ашиглан мэдээлэл задруулах суваг болгон бичих үйл ажиллагааны боловсруулалтын хугацааны зөрүүг ашигладаг. . Ашиглалтын явцад цөм нь өөр өөр процессуудаас ижил санах ойн хуудсыг илрүүлж, тэдгээрийг нэгтгэж, ижил санах ойн хуудсуудыг зөвхөн нэг хуулбарыг хадгалахын тулд физик санах ойн нэг талбарт буулгадаг. Процессуудын аль нэг нь давхардсан хуудсуудтай холбоотой өгөгдлийг өөрчлөхийг оролдох үед үл хамаарах зүйл (хуудасны алдаа) гарч ирэх бөгөөд Copy-On-Write механизмыг ашиглан санах ойн хуудасны тусдаа хуулбарыг автоматаар үүсгэж, процесст хуваарилдаг. Хуулбарыг дуусгахад нэмэлт цаг зарцуулдаг бөгөөд энэ нь өөр процесст саад учруулж буй өгөгдлийн өөрчлөлтийн шинж тэмдэг байж магадгүй юм.

Судлаачид COW механизмаас үүсэх сааталыг зөвхөн орон нутгийн хэмжээнд төдийгүй сүлжээгээр дамжуулан хариу хүргэх хугацааны өөрчлөлтөд дүн шинжилгээ хийх замаар илрүүлж болохыг харуулсан. HTTP/1 ба HTTP/2 протоколууд дээрх хүсэлтийн гүйцэтгэлийн хугацааг шинжлэх замаар алсын хостоос санах ойн агуулгыг тодорхойлох хэд хэдэн аргыг санал болгосон. Сонгосон загваруудыг хадгалахын тулд хүсэлтэд хүлээн авсан мэдээллийг санах ойд хадгалдаг стандарт вэб програмуудыг ашигладаг.

Довтолгооны ерөнхий зарчим нь сервер дээрх санах ойн хуудсыг сервер дээр байгаа санах ойн хуудасны агуулгыг давтаж болзошгүй мэдээллээр дүүргэх явдал юм. Халдагчид дараа нь цөм нь санах ойн хуудсыг хуулбарлаж, нэгтгэхэд шаардагдах хугацааг хүлээж, дараа нь хяналттай давхардсан өгөгдлийг өөрчилж, цохилт амжилттай болсон эсэхийг тодорхойлохын тулд хариу өгөх хугацааг үнэлдэг.

Сервер дээрх санах ойн хэсгүүдийг алсаас тодорхойлох халдлагын аргыг санал болгов

Туршилтын явцад мэдээллийн алдагдалтын хамгийн дээд хурд нь дэлхийн сүлжээгээр дайрах үед цагт 34.41 байт, дотоод сүлжээгээр дайрах үед цагт 302.16 байт байсан нь гуравдагч этгээдийн сувгаар өгөгдөл задлах бусад аргуудаас илүү хурдан юм (жишээлбэл, NetSpectre халдлагад өгөгдөл дамжуулах хурд нэг цагт 7.5 байт байна).

Довтолгооны гурван хувилбарыг санал болгосон. Эхний сонголт нь Memcached ашигладаг вэб серверийн санах ойн өгөгдлийг тодорхойлох боломжийг танд олгоно. Энэ халдлага нь тодорхой багц өгөгдлийг Memcached хадгалах сан руу ачаалж, давхардсан блокыг цэвэрлэж, ижил элементийг дахин бичиж, блокийн агуулгыг өөрчилснөөр COW хуулбарлах нөхцөлийг бий болгодог. Memcached-тэй хийсэн туршилтын явцад виртуал машин дээр ажиллаж байгаа систем дээр суулгасан libc хувилбарыг 166.51 секундын дотор тодорхойлох боломжтой болсон.

Хоёрдахь сонголт нь InnoDB санах ойг ашиглах үед байтаар агуулгыг дахин үүсгэх замаар MariaDB DBMS дахь бичлэгийн агуулгыг олж мэдэх боломжийг олгосон. Халдлагыг тусгайлан өөрчилсөн хүсэлт илгээх замаар гүйцэтгэдэг бөгөөд үүний үр дүнд санах ойн хуудсуудад нэг байт таарахгүй байх ба байтны агуулгын талаарх таамаг зөв эсэхийг тодорхойлохын тулд хариу өгөх хугацааг шинжилдэг. Ийм алдагдлын хурд бага бөгөөд дотоод сүлжээнээс халдлага хийх үед цагт 1.5 байт байна. Аргын давуу тал нь санах ойн үл мэдэгдэх агуулгыг сэргээхэд ашиглах боломжтой юм.

Гурав дахь сонголт нь 4 минутын дотор KASLR хамгаалалтын механизмыг бүрэн тойрч гарах, офсет хаяг нь санах ойн хуудсанд бусад өгөгдөл өөрчлөгддөггүй нөхцөлд виртуал машины цөмийн зургийн санах ойн офсетийн талаарх мэдээллийг авах боломжтой болсон. Халдлагад өртсөн системээс 14 хоп зайд байрлах хостоос халдлага үйлджээ. Үзүүлсэн халдлагуудыг хэрэгжүүлэх код жишээг GitHub дээр нийтлэх болно гэж амласан.

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

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