Сервердегі жад фрагменттерін қашықтан анықтау үшін шабуыл әдісі ұсынылды

Бұрын MDS, NetSpectre, Throwhammer және ZombieLoad шабуылдарын жасаумен танымал Грац техникалық университетінің (Австрия) зерттеушілер тобы жадты жою механизміне қарсы жаңа бүйірлік арналық шабуыл әдісін (CVE-2021-3714) жариялады. , ол жадта белгілі бір деректердің бар-жоғын анықтауға, жад мазмұнының байт-байт ағып кетуін ұйымдастыруға немесе мекенжайға негізделген рандомизациядан (ASLR) қорғауды айналып өту үшін жад орналасуын анықтауға мүмкіндік береді. Жаңа әдіс дедупликация механизміне шабуылдардың бұрын көрсетілген нұсқаларынан ерекшеленеді, критерий ретінде HTTP/1 және HTTP/2 протоколдары арқылы шабуылдаушыға жіберілген сұрауларға жауап беру уақытының өзгеруін пайдалана отырып, сыртқы хосттан шабуылды жүзеге асырады. Шабуыл жасау мүмкіндігі Linux және Windows негізіндегі серверлер үшін көрсетілді.

Жадтың қайталану механизміне жасалған шабуылдар жазу операциясының өңдеу уақытындағы айырмашылықты деректердің өзгеруі Copy-On-Write (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 ДҚБЖ жазбалардың мазмұнын білуге ​​мүмкіндік берді. Шабуыл арнайы өзгертілген сұрауларды жіберу арқылы жүзеге асырылады, нәтижесінде жад беттерінде бір байт сәйкессіздіктері пайда болады және байт мазмұны туралы болжамның дұрыс екенін анықтау үшін жауап беру уақытын талдайды. Мұндай ағып кету жылдамдығы төмен және жергілікті желіден шабуылдау кезінде сағатына 1.5 байтты құрайды. Әдістің артықшылығы - оны белгісіз жад мазмұнын қалпына келтіру үшін пайдалануға болады.

Үшінші нұсқа 4 минут ішінде KASLR қорғау механизмін толығымен айналып өтуге және офсеттік мекенжай басқа деректер өзгермейтін жад бетінде болған жағдайда виртуалды машина ядросының кескінінің жад ығысуы туралы ақпаратты алуға мүмкіндік берді. Шабуыл шабуылға ұшыраған жүйеден 14 сек қашықтықта орналасқан хосттан жасалды. Ұсынылған шабуылдарды жүзеге асыруға арналған код мысалдары GitHub сайтында жарияланады деп уәде етілген.

Ақпарат көзі: opennet.ru

пікір қалдыру