Кирисакура прилагођено језгро за ОнеПлус 8 Про омогућава интегритет тока контроле (ЦФИ) за бољу сигурност

click fraud protection

Технички детаљи о интегритету тока контроле

„Доступност огромног броја показивача функција у језгру помаже популарности овог обрасца напада. Чак и ако нападачи не могу да унесу сопствени извршни код, произвољни делови постојећег кода кернела могу да се изврше да би се завршило њихово коришћење.

ЛЛВМ'с ЦФИ покушава да ублажи ове нападе ограничавањем валидних циљева позива и изазивањем панике кернела када открије кршење ЦФИ-а. Провера се додаје пре сваке индиректне гране да би се потврдило да циљна адреса указује на исправну функцију са исправним потписом. Ово спречава индиректну грану да скочи на локацију произвољног кода и чак ограничава функције које се могу позвати. Нападач ће и даље моћи да промени показивач функције ако грешка дозвољава приступ. Али ЛЛВМ-ов ЦФИ ограничава 55% индиректних позива на највише 5 могућих циљева и 80% на највише 20 циљева. Да би одредио све важеће циљеве позива за сваку индиректну грану, компајлер треба да види сав код језгра одједном.

Употреба ЛТО (Оптимизација времена везе

) ово омогућава. ЛЛВМ-ов ЦФИ захтева употребу ЛТО-а, где компајлер производи ЛЛВМ-специфичан бит код за све Ц компилацијске јединице, а ЛТО-свестан линкер користи ЛЛВМ позадину да комбинује бит код и компајлира га у изворни код.

Као додатак дозвољавању коришћења ЦФИ, ЛТО постиже боље перформансе током рада кроз анализу целог програма и оптимизацију између модула.

ТхинЛТО је скоро достигао побољшање перформанси ЛТО-а. У режиму ТхинЛТО, као и код обичног ЛТО, Цланг емитује ЛЛВМ битни код након фазе компајлирања. ТхинЛТО битни код је допуњен компактним резимеом модула. Током корака повезивања, само се резимеи читају и спајају у комбиновани индекс сажетка, који укључује индекс локација функција за каснији увоз функција у више модула. Након тога се врши брза и ефикасна анализа целог програма на комбинованом сумарном индексу. ТхинЛТО омогућава процес повезивања са више нити, што резултира смањеним временом компилације.

Због тога што ЦФИ прекида извршавање програма када погађа одређене класе грешака, он се такође класификује као алат за проналажење грешака, као што је раније поменуто, када се користи у дозвољеном режиму. Дозвољени ЦФИ ће приказати кршења ЦФИ у евиденцији кернела, без изазивања панике кернела. Језгра 4.9 (уређаји генерације Пикел 3) и 4.14 (уређаји генерације Пикел 4) имала су неколико типова функција неусклађености које су резултирале кршењем ЦФИ-а, а које је Гоогле адресирао у сетовима закрпа доступних на кернелу/цоммон репос.

Међутим, због природе Андроид екосистема, ове неслагања ће се вероватно наћи и у коду произвођача СоЦ (у овом случају, Куалцомм) или код ОЕМ (ОнеПлус). Неколико кршења ЦФИ-а у Куалцомм коду који се разликује од кернела 4.19 је исправљено на језгру Кирисакура за ОнеПлус 8 Про (пример: 1, 2, 3).

Покретање кернела у дозвољеном ЦФИ-у открило је кршење ЦФИ-а у коду који се односи и на ОнеПлус драјвере (могу се пронаћи релевантна урезивања овде и овде). Кирисакура кернел за ОнеПлус 8 Про ради са примењеним ЦФИ, штитећи своје кориснике од ове врсте напада поновне употребе кода."

Опширније

ДИИ ентузијаста (тј. спасилац старих ПЦ делова). Страствени корисник Андроид-а још од времена Ецлаир-а, Сканда такође воли да прати недавне трендове развоја у свету рачунарства са једном плочом.