JavaScript olmadan veb brauzerdə həyata keçirilən CPU keşinin çıxarılması hücumu

Bir sıra Amerika, İsrail və Avstraliya universitetlərindən olan tədqiqatçılar qrupu prosessor keşinin məzmunu haqqında məlumat çıxarmaq üçün veb-brauzerlərdə işləyən üç hücum hazırlayıb. Bir üsul JavaScript olmayan brauzerlərdə işləyir, digər ikisi isə Tor brauzerində və DeterFox-da istifadə edilənlər də daxil olmaqla yan kanal hücumlarına qarşı mövcud qorunma üsullarından yan keçir. Hücumların nümayişi üçün kod, həmçinin hücumlar üçün lazım olan server komponentləri GitHub-da dərc olunub.

Keşin məzmununu təhlil etmək üçün bütün hücumlar keşin standart dəyərlər dəsti ilə doldurulmasını və onları doldurarkən onlara giriş vaxtını ölçməklə dəyişiklikləri aşkar etməyi əhatə edən Prime+Probe metodundan istifadə edir. Dəqiq vaxtın ölçülməsinə mane olan brauzerlərdə mövcud olan təhlükəsizlik mexanizmlərindən yan keçmək üçün iki variantda hücumçu tərəfindən idarə olunan DNS və ya WebSocket serverinə müraciət edilir və bu server qəbul edilən sorğuların vaxtını qeyd edir. Bir təcəssümdə sabit DNS cavab müddəti vaxt istinadı kimi istifadə olunur.

Xarici DNS və ya WebSocket serverlərindən istifadə edərək, maşın öyrənməsinə əsaslanan təsnifat sistemindən istifadə edərək aparılan ölçmələr ən optimal ssenaridə (orta hesabla 98-80%) 90%-ə qədər dəqiqliklə dəyərləri proqnozlaşdırmaq üçün kifayət idi. Hücum üsulları müxtəlif aparat platformalarında (Intel, AMD Ryzen, Apple M1, Samsung Exynos) sınaqdan keçirilmiş və universal olduğu sübut edilmişdir.

JavaScript olmadan veb brauzerdə həyata keçirilən CPU keşinin çıxarılması hücumu

DNS Racing hücumunun ilk variantı JavaScript massivlərindən istifadə edərək Prime+Probe metodunun klassik tətbiqindən istifadə edir. Fərqlər xarici DNS əsaslı taymer və qeyri-mövcud domendən bir şəkil yükləməyə cəhd edildikdə tetiklenen səhv idarəedicisinin istifadəsinə qədər qaynayır. Xarici taymer JavaScript taymerlərinə girişi məhdudlaşdıran və ya tamamilə söndürən brauzerlərə Prime+Probe hücumuna imkan verir.

Eyni Ethernet şəbəkəsində yerləşən DNS serveri üçün taymerin dəqiqliyi təqribən 2 ms olduğu təxmin edilir ki, bu da yan kanal hücumunu həyata keçirmək üçün kifayətdir (müqayisə üçün Tor Brauzerində standart JavaScript taymerinin dəqiqliyi aşağıdakı kimidir: 100 ms-ə qədər azaldılır). Hücum üçün DNS serverinə nəzarət tələb olunmur, çünki əməliyyatın icra müddəti DNS-dən cavab müddəti yoxlamanın daha əvvəl tamamlanmasının əlaməti kimi seçildiyi üçün (xəta idarəedicisinin işə salınmasından asılı olaraq) əvvəl və ya daha sonra, keş ilə yoxlama əməliyyatının sürəti haqqında bir nəticə çıxarılır).

İkinci hücum metodu olan "String and Sock" JavaScript-də massivlərin aşağı səviyyədə istifadəsini məhdudlaşdıran təhlükəsizlik texnikalarından yan keçmək məqsədi daşıyır. Massivlər əvəzinə String və Sock çox böyük sətirlər üzərində əməliyyatlardan istifadə edir, ölçüsü elə seçilmişdir ki, dəyişən bütün MMC keşini (Son səviyyəli keş) əhatə edir. Sonra, indexOf() funksiyasından istifadə edərək, sətirdə ilkin olaraq mənbə sətirində olmayan kiçik alt sətir axtarılır, yəni. axtarış əməliyyatı bütün sətir üzərində təkrarlanması ilə nəticələnir. Xəttin ölçüsü MMC-nin önbelleğinin ölçüsünə uyğun olduğundan, skanlama massivləri manipulyasiya etmədən keş yoxlama əməliyyatını yerinə yetirməyə imkan verir. Gecikmələri ölçmək üçün DNS əvəzinə təcavüzkar tərəfindən idarə olunan WebSocket serverinə zəng edilir - axtarış əməliyyatı başa çatmazdan əvvəl və sonra xəttə sorğular göndərilir, bunun əsasında server keşi təhlil etmək üçün istifadə olunan gecikməni hesablayır. məzmunu.

“CSS PP0” hücumunun üçüncü variantı HTML və CSS vasitəsilə həyata keçirilir və JavaScript deaktiv edilmiş brauzerlərdə işləyə bilər. Metod "String and Sock" metoduna bənzəyir, lakin JavaScript ilə əlaqəli deyil. Hücum zamanı maska ​​ilə axtarış üçün bir sıra CSS seçiciləri yaradılır. Keşi dolduran ilkin böyük sətir çox böyük sinif adı ilə div teqi yaratmaqla təyin edilir. İçəridə öz identifikatorları olan digər divlər dəsti var. Bu yuvalanmış divlərin hər birinin alt sətri axtaran seçici ilə öz üslubu var. Səhifəni göstərərkən brauzer əvvəlcə daxili divləri emal etməyə çalışır ki, bu da böyük cərgədə axtarış əməliyyatı ilə nəticələnir. Axtarış bilərəkdən itkin maskadan istifadə etməklə həyata keçirilir və bütün xətt üzrə təkrarlamaya səbəb olur, bundan sonra “deyil” şərti işə salınır və təsadüfi domenlərə istinad edən fon şəklini yükləməyə cəhd edilir: #pp:not([class*=’xjtoxg’]) #s0 {background-image: url(«https://qdlvibmr.helldomain.oy.ne.ro»);} #pp:not([class*=’gzstxf’]) #s1 {background-image: url(«https://licfsdju.helldomain.oy.ne.ro»);} … X X ...

Subdomenlərə təcavüzkarın DNS serveri xidmət göstərir ki, bu da sorğuların qəbulunda gecikmələri ölçə bilir. DNS serveri bütün sorğular üçün NXDOMAIN verir və sorğuların dəqiq vaxtını qeyd edir. Bir sıra div-lərin işlənməsi nəticəsində təcavüzkarın DNS serveri bir sıra sorğular alır, aralarındakı gecikmələr keş məzmununun yoxlanılmasının nəticəsi ilə əlaqələndirilir.

JavaScript olmadan veb brauzerdə həyata keçirilən CPU keşinin çıxarılması hücumu


Mənbə: opennet.ru

Добавить комментарий