AMD процессорлорунда кэш каналдарын болжолдоо механизмине эки чабуул

Мурда кол салуу ыкмаларын иштеп чыгуу менен белгилүү болгон Грац технологиялык университетинин (Австрия) изилдөөчүлөр тобу MDS, NetSpectre, Throwhammer и ZombieLoad, AMD процессорлоруна мүнөздүү аппараттык оптималдаштыруу боюнча изилдөө жүргүзгөн жана өнүккөн AMD процессорлорунун L1 кэш каналын болжолдоо механизминин иштеши учурунда маалыматтардын агып кетишин башкарган каптал каналдык чабуулдардын эки жаңы ыкмасы. Бул ыкмалар ASLR коргоосунун натыйжалуулугун төмөндөтүү, аялуу AES ишке ашырууларындагы ачкычтарды калыбына келтирүү жана Spectre чабуулунун натыйжалуулугун жогорулатуу үчүн колдонулушу мүмкүн.

Кайсы кэш каналында белгилүү бир эстутум дареги бар экенин болжолдоо үчүн колдонулган CPUнун биринчи деңгээлдеги маалымат кэшинде (L1D) каналды болжолдоо механизмин (жолду болжолдоочу) ишке ашырууда көйгөйлөр аныкталды. AMD процессорлорунда колдонулган оптималдаштыруу μ-тегдерди (μTag) текшерүүгө негизделген. μTag виртуалдык дарекке белгилүү бир хэш-функцияны колдонуу менен эсептелет. Иш учурунда каналды болжолдоо кыймылдаткычы таблицадан кэш каналын аныктоо үчүн μTag колдонот. Ошентип, μTag процессорго бардык варианттарды издебестен, белгилүү бир каналга гана кирүү менен чектелүүгө мүмкүндүк берет, бул CPU энергиясын керектөөнү олуттуу кыскартат.

AMD процессорлорунда кэш каналдарын болжолдоо механизмине эки чабуул

2011-жылдан 2019-жылга чейин чыгарылган AMD процессорлорунун ар кандай муундарында каналды болжолдоо тутумун ишке ашыруунун тескери инженериясынын жүрүшүндө каптал каналдын чабуулунун эки жаңы ыкмалары аныкталган:

  • Collide+Probe - чабуулчуга бир эле логикалык CPU өзөгүндө иштеген процесстер үчүн эстутумга кирүү мүмкүнчүлүгүн көзөмөлдөөгө мүмкүндүк берет. Методдун маңызы - эстутумга кирүүгө көз салуу үчүн μTag эсептөө үчүн колдонулган хэш-функцияда кагылышууларды пайда кылган виртуалдык даректерди колдонуу. Intel процессорлорунда колдонулган Flush+Reload жана Prime+Probe чабуулдарынан айырмаланып, Collide+Probe жалпы эстутумду колдонбойт жана физикалык даректерди билбестен иштейт.
  • Load+Reload - бир эле физикалык CPU өзөгүндө эстутумга кирүү издерин так аныктоого мүмкүндүк берет. Метод физикалык эстутум клеткасы L1D кэшинде бир гана жолу болушу мүмкүн экенине негизделген. Ошол. башка виртуалдык даректе бир эле эс тутум уячасына жетүү клетканын L1D кэшинен чыгарылышына алып келет, бул эстутумга кирүү мүмкүнчүлүгүн көзөмөлдөөгө мүмкүндүк берет. Чабуул жалпы эстутумга таянса да, кэш линияларын тазалабайт, бул акыркы деңгээлдеги кэштен маалыматтарды чыгарбаган жашыруун чабуулдарга жол ачат.

Collide+Probe жана Load+Reload ыкмаларынын негизинде изилдөөчүлөр бир нече каптал чабуул сценарийлерин көрсөтүштү:

  • Секундасына 588 кБ ылдамдыкта маалыматтарды берүүгө мүмкүндүк берүүчү эки процесстин ортосунда жашыруун кыйыр байланыш каналын уюштуруу ыкмаларын колдонуу мүмкүнчүлүгү көрсөтүлгөн.
  • μTagдеги кагылышууларды колдонуу менен ASLRдин (Address Space Layout Randomization) ар кандай варианттары үчүн энтропияны азайтууга жана толугу менен жаңыланган Linux тутумунда ядродогу ASLR коргоосун айланып өтүүгө мүмкүн болду. Колдонуучу тиркемелеринен да, кумкоргон чөйрөсүндө аткарылган JavaScript кодун жана башка конок чөйрөсүндө иштеген кодду колдонуу менен ASLR энтропиясын азайтуу үчүн чабуул жасоо мүмкүнчүлүгү көрсөтүлгөн.

    AMD процессорлорунда кэш каналдарын болжолдоо механизмине эки чабуул

  • Collide+Probe методунун негизинде шифрлөө ачкычын аялуу ишке ашыруудан калыбына келтирүү үчүн чабуул ишке ашырылган (негизинде T-таблица) AES шифрлөө.
  • Collide+Probe ыкмасын маалымат алуу каналы катары колдонуу менен, Spectre чабуулу жалпы эстутумду колдонбостон, ядродон жеке маалыматтарды чыгара алды.

Абал микроархитектурага негизделген AMD процессорлорунда пайда болот
Бульдозер, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ жана Zen2.
AMD бул маселе тууралуу 23-жылдын 2019-августунда кабарланган, бирок азырынча отчетун чыгарган жок алсыздыгын бөгөттөө жөнүндө маалымат менен. Окумуштуулардын айтымында, көйгөйдү микрокодду жаңыртуу деңгээлинде MSR биттерин берүү аркылуу бөгөт коюуга болот, мисалы, Intel тармактык болжолдоо механизмдерин өчүрүүнү көзөмөлдөө үчүн кылгандай.

AMD процессорлорунда кэш каналдарын болжолдоо механизмине эки чабуул

Source: opennet.ru

Комментарий кошуу