Часбҳо барои тасодуфӣ кардани суроғаҳои стекҳои Linux барои зангҳои система ҷорӣ карда шудаанд

Кис Кук, мудири собиқи системаи kernel.org ва раҳбари дастаи амнияти Ubuntu, ки ҳоло дар Google оид ба таъмини Android ва ChromeOS кор мекунад, як қатор часбҳоро барои тасодуфӣ кардани офсетҳо дар стек ядро ​​ҳангоми коркарди зангҳои система нашр кард. Часбҳо амнияти ядроро тавассути тағир додани ҷойгиркунии стек беҳтар мекунанд ва ҳамлаҳоро ба стек хеле душвортар ва камтар муваффақ мегардонанд. Татбиқи ибтидоӣ коркардкунандагони ARM64 ва x86/x86_64 -ро дастгирӣ мекунад.

Идеяи аслии часпак ба лоиҳаи PaX RANDKSTACK тааллуқ дорад. Дар соли 2019 Елена Решетова, муҳандиси Intel, кӯшиш кард, ки татбиқи ин идеяро барои ворид шудан ба ядрои асосии Linux мувофиқ созад. Баъдтар, ташаббусро Кис Кук ба даст овард, ки татбиқи мувофиқро барои версияи асосии ядро ​​пешниҳод кард. Ба нақша гирифта шудааст, ки часпакҳо ҳамчун як қисми версияи 5.13 дохил карда шаванд. Режим бо нобаёнӣ хомӯш карда мешавад. Барои фаъол кардани он, параметри сатри фармони ядро ​​"randomize_kstack_offset=on/off" ва танзими CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT пешниҳод карда мешаванд. Хароҷоти изофа барои фаъол кардани режим тақрибан 1% талафоти корбарӣ ҳисоб карда мешавад.

Моњияти њифзи пешнињодшуда аз интихоби офсети тасодуфии стек барои њар як занги система иборат аст, ки ин муайян кардани љойгиршавии стекро дар хотира њатто пас аз гирифтани маълумоти суроѓањо мушкил месозад, зеро занги навбатии система суроѓаи асосии стекро таѓйир медињад. Баръакси татбиқи PaX RANDKSTACK, дар часбҳое, ки барои дохил шудан ба ядро ​​пешниҳод шудаанд, рандомизатсия на дар марҳилаи ибтидоӣ (cpu_current_top_of_stack), балки пас аз гузоштани сохтори pt_regs анҷом дода мешавад, ки истифодаи усулҳои ба ptrace асосёфтаро барои муайян кардани ҷуброни тасодуфӣ ғайриимкон месозад. дар давоми занги системаи дарозмуддат.

Манбаъ: opennet.ru

Илова Эзоҳ