Залежнасць часу выканання інструкцый ад дадзеных на CPU ARM і Intel

Эрык Биггерс (Eric Biggers), адзін з распрацоўнікаў шыфра Adiantum і мэйнтэйнер падсістэмы ядра Linux fscrypt, прапанаваў набор патчаў для блакавання праблем з бяспекай, якія ўзнікаюць з-за асаблівасці працэсараў Intel, не якая гарантуе сталы час выканання інструкцый для розных апрацоўваных дадзеных. У працэсарах Intel праблема выяўляецца пачынальна з сямейства Ice Lake. Аналагічная праблема назіраецца і ў працэсарах ARM.

Наяўнасць залежнасці часу выканання інструкцый ад апрацоўваных у гэтых інструкцыях дадзеных расцэньваецца аўтарам патчаў як уразлівасць у працэсарах, бо такія паводзіны не можа гарантаваць бяспеку вырабляных у сістэме крыптаграфічных аперацый. Многія рэалізацыі крыптаграфічных алгарытмаў разлічаны на тое, што дадзеныя не ўплываюць на час выкананне інструкцый і парушэнне гэтых паводзін можа прывесці да стварэння нападаў па іншых каналах, якія аднаўляюць дадзеныя на аснове аналізу часу іх апрацоўкі.

Патэнцыйна залежнасць часу выканання ад дадзеных таксама можа выкарыстоўвацца для арганізацыі нападаў па вызначэнні дадзеных ядра з прасторы карыстача. Па заяве Эрыка Биггерса, сталы час выканання па змаўчанні не забяспечваецца нават для інструкцый, якія выконваюць аперацыі складання і XOR, а таксама для спецыялізаваных інструкцый AES-NI (інфармацыя не пацверджана тэстамі, па іншых дадзеных пры множанні вектараў і падліку бітаў узнікае затрымка на адзін цыкл ).

Для адключэння разгляданых паводзінаў кампаніі Intel і ARM прапанавалі новыя сцягі: PSTATE-біт DIT (Data Independent Timing) для CPU ARM і MSR-біт DOITM (Data Operand Independent Timing Mode) для CPU Intel, якія вяртаюць старыя паводзіны з пастаянным часам выканання. Кампаніі Intel і ARM рэкамендуюць уключаць абарону па меры неабходнасці для асоба важнага кода, але на справе важныя вылічэнні могуць сустракацца ў любых частках ядра і прасторы карыстача, таму разглядаецца магчымасць сталай актывацыі рэжымаў DOITM і DIT для ўсяго ядра.

Для працэсараў ARM у галінку ядра Linux 6.2 ужо прыняты патчы, якія змяняюць паводзіны для ядра, але дадзеныя патчы разглядаюцца як недастатковыя, бо яны ахапляюць толькі код ядра і не змяняюць паводзіны для прасторы карыстача. Для працэсараў Intel уключэнне абароны пакуль знаходзіцца толькі на стадыі рэцэнзавання. Вымярэнне ўплыву патча на прадукцыйнасць пакуль не праводзілася, але па дадзеных з дакументацыі Intel уключэнне рэжыму DOITM зніжае прадукцыйнасць (напрыклад, з-за адключэння некаторых аптымізацый, такіх як спецыфічная для вызначаных дадзеных папераджальная загрузка) і ў будучых мадэлях працэсараў зніжэнне прадукцыйнасці можа ўзмацніцца.

Крыніца: opennet.ru

Дадаць каментар