
USENIX. data-only հարձակումները շատ ավելի հեշտ են, քան կարծում էին
VUSec-ի հետազոտողները ստեղծել են Einstein գործիքը, որն ինքնաշխատ առաջացնում է data-only հարձակումներ. ծրագիրը չի փոխում կառավարման հոսքը, սակայն աշխատում է չարամիտ արգումենտներով և շրջանցում ժամանակակից պաշտպանությունները։
Vrije Universiteit Amsterdam-ի VUSec խմբի ստեղծած գործիքը ինքնաշխատ կերպով առաջացնում է data-only հարձակումներ՝ էքսպլոյթներ, որոնք երբեք չեն շեղում ծրագրի կառավարման հոսքը, շատ ավելի հեշտ, քան անվտանգության ոլորտը երկար ժամանակ ենթադրում էր։ Արդյունքները նկարագրված են USENIX ;login: ամսագրի «Data-Only Attacks Are Easier than You Think» հոդվածում (2024 թ. հուլիսի 1)։
Ինչ է data-only հարձակումը
Դասական էքսպլոյթը գրավում է կառավարման հոսքը՝ վերագրելով կոդի ցուցիչը. այդ ուղին DEP-ը, CFI-ն և CPI-ն դարձրել են շատ դժվար։ data-only հարձակումը թույլ է տալիս ծրագրին կատարել բոլոր նախատեսված ֆունկցիաներն ու համակարգային կանչերը, բայց չարամիտ տվյալներով՝ փոխվում են միայն արգումենտները։
Սերվերի CGI-BIN ուղու վերագրումը
Օրինակում վեբ սերվերի cgi_bin_path կարգավորումը ցույց է տալիս «/usr/local/server/cgi-bin» ուղին։ memory safety-ի սխալը՝ ըստ Microsoft-ի, Google-ի և Mozilla-ի՝ նրանց անվտանգության սխալների մոտ 70%-ը, թույլ է տալիս չարամիտ հաճախորդին լցնել բուֆերը և վերագրել ուղին «/bin»-ով։ Հարձակվողի «POST /sh»-ը՝ «touch /tmp/attacker-was-here» բովանդակությամբ, ստիպում է սերվերին այդ երկուսը միացնել «/bin/sh»-ի. execve-ն գործարկում է shell-ը և ֆայլը ստեղծվում է։ Զոհը չի կատարում հարձակվողի կոդը. տարբերվում են միայն կանչի արգումենտները։
Einstein-ը և թվերը
Գործիքի անունը Einstein է՝ Albert Einstein-ին վերագրվող մեջբերման պատվին։ Այն թիրախավորում է համակարգային կանչերը՝ միջուկի հետ հաղորդակցվելու ունիվերսալ ինտերֆեյսը, և դինամիկ taint-վերլուծությամբ հետևում, թե որ արժեքներն են հասնում execve-ի կամ write-ի նման զգայուն կանչերի արգումենտներին. թեկնածուները վերցվում են identity data flow-ից՝ դեպքերից, երբ արգումենտը հարձակվողի վերահսկողության տակ գտնվող տվյալի բառացի պատճենն է։ Արդյունքները՝ 1,834 այդպիսի կանչ httpd-ում, 1,623՝ nginx-ում, 2,105՝ postgres-ում, 218՝ redis-ում և 92՝ lighttpd-ում. բացի postgres-ից՝ դրանց 82–98%-ն ուներ identity data flow։ Բավական էին 27–49% ծածկույթով թեստային հավաքածուները, և միայն nginx-ի համար Einstein-ը հաստատեց 944 էքսպլոյթ, որոնցից երկուսը շրջանցում են ժամանակակից պաշտպանությունները։
Ինչու դա կարևոր է պաշտպանների համար
data-only հարձակումները կոտրում են այն ենթադրությունը, որի վրա հենվում են այսօրվա պաշտպանությունները։ Կառավարման հոսքի գրավումն ուներ հստակ թիրախ՝ կոդի ցուցիչ, որը սնուցում է անուղղակի ճյուղավորումը, դրա համար էլ DEP-ը, CFI-ն և CPI-ն կարող էին լինել և՛ համապարփակ, և՛ գործնական։ Քանի որ data-only հարձակումը կարող է վնասել ցանկացած տվյալ, հեղինակների կարծիքով՝ պաշտպանությունը սովորաբար կարող է լինել միայն այդ երկուսից մեկը. լիարժեք memory safety-ն կամ data-flow integrity-ն արժեն արտադրողականություն, իսկ գործնական միջոցները համապարփակ չեն։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։