LVI - бул CPUдагы алып-сатарлык аткаруу механизмине чабуулдардын жаңы классы

Жарыяланган чабуулдардын жаңы классы жөнүндө маалымат LVI (Жүктөө наркын киргизүү, CVE-2020-0551) Intel SGX анклавтарынан жана башка процесстерден ачкычтарды жана жашыруун маалыматтарды сыртка чыгаруу үчүн колдонулушу мүмкүн болгон Intel CPUs спекулятивдүү аткаруу механизми боюнча.

Чабуулдардын жаңы классы чабуулдарда колдонулган ошол эле микроархитектуралык структураларды манипуляциялоого негизделген MDS (Микроархитектуралык маалыматтарды тандоо), Spectre жана Meltdown. Ошол эле учурда, жаңы чабуулдар Meltdown, Spectre, MDS жана башка ушул сыяктуу чабуулдардан коргонуунун учурдагы ыкмалары менен бөгөттөлбөйт. Натыйжалуу LVI коргоо процессордун аппараттык өзгөрүүлөрүн талап кылат. Коргоону программалык түрдө уюштурууда, эстутумдан ар бир жүктөө операциясынан кийин компилятор тарабынан LFENCE инструкциясын кошуу жана RET инструкциясын POP, LFENCE жана JMP менен алмаштыруу аркылуу өтө көп ашыкча чыгымдар жазылат - изилдөөчүлөрдүн айтымында, программалык камсыздоону толук коргоонун төмөндөшүнө алып келет. аткаруу 2—19 эсеге.

Көйгөйгө бөгөт коюудагы кыйынчылыктын бир бөлүгү кол салуу практикалык жактан караганда теориялык жактан көбүрөөк экендиги менен жабылат (чабуул теориялык жактан мүмкүн, бирок ишке ашыруу өтө кыйын жана синтетикалык тесттерде гана кайталанат).
Intel ыйгарылды көйгөй коркунучтун орточо деңгээлине ээ (5.6дон 10) жана бошотулду SGX чөйрөсү үчүн микропрограмманы жана SDK жаңыртуу, анда ал убактылуу чечүү аркылуу чабуулду бөгөт коюуга аракет кылган. Сунушталган чабуул ыкмалары учурда Intel процессорлоруна гана тиешелүү, бирок Meltdown классындагы чабуулдар колдонула турган башка процессорлор үчүн LVI ыңгайлаштыруу мүмкүнчүлүгүн жокко чыгарууга болбойт.

Көйгөй өткөн жылдын апрель айында Левен университетинин изилдөөчүсү Джо Ван Булк тарабынан аныкталган, андан кийин башка университеттерден келген 9 изилдөөчүнүн катышуусунда чабуулдун беш негизги ыкмасы иштелип чыккан, алардын ар бири дагы конкреттүү ыкмалардын болушуна мүмкүндүк берет. параметрлери. Көз карандысыз, ушул жылдын февраль айында Bitdefender изилдөөчүлөрү да табылган LVI чабуул варианттарынын бири жана аны Intelге билдирди. Чабуул варианттары мурда колдонулган сактоо буфери (SB, Дүкөн буфери), толтуруу буфери (LFB, Line Fill Buffer), FPU контексттик которуштуруу буфери жана биринчи деңгээлдеги кэш (L1D) сыяктуу түрдүү микроархитектуралык структураларды колдонуу менен айырмаланат. сыяктуу чабуулдарда ZombieLoad, RIDL, Түшүп калуу, LazyFP, алдын ала и Meltdown.

LVI - бул CPUдагы алып-сатарлык аткаруу механизмине чабуулдардын жаңы классы

Негизги ардактуу наамдар MDS чабуулдарына каршы LVI бул MDS спекуляциялык өзгөчөлүктөр менен иштөө (күнөө) же жүктөө жана сактоо операцияларынан кийин кэште калган микроархитектуралык структуралардын мазмунунун аныктамасын манипуляциялайт.
LVI чабуулдары жабырлануучунун кодунун кийинки спекуляциялык аткарылышына таасир этиш үчүн микроархитектуралык структураларга чабуулчунун маалыматтарын киргизүүгө мүмкүндүк берет. Бул манипуляцияларды колдонуп, чабуулчу максаттуу CPU өзөгүндө белгилүү бир кодду аткарууда башка процесстердеги жеке маалымат структураларынын мазмунун чыгарып алат.

LVI - бул CPUдагы алып-сатарлык аткаруу механизмине чабуулдардын жаңы классы

үчүн эксплуатация маселеси жабырлануучу процессинин кодексинде жолугушу керек чабуулчу тарабынан башкарылган маани жүктөлгөн коддун (гаджеттердин) атайын ырааттуулугу жана бул маанини жүктөө өзгөчө учурларды (күнөө, токтотуу же жардам) ыргытып, натыйжаны жокко чыгарып, нускаманы кайра аткарат. Өзгөчө кырдаал иштетилгенде, гаджетте иштетилген маалыматтар агып кеткен спекуляциялык терезе пайда болот. Атап айтканда, процессор спекулятивдик режимде коддун (гаджеттин) бөлүгүн аткара баштайт, андан кийин божомолдун негиздүү эместигин аныктайт жана операцияларды баштапкы абалына кайтарат, бирок спекулятивдүү аткаруу учурунда иштетилген маалыматтар L1D кэшинде сакталат. жана микроархитектуралык буферлерди камтыйт жана алардан үчүнчү тараптын каналдары аркылуу калдык маалыматтарды аныктоонун белгилүү ыкмаларын колдонуу менен алуу үчүн жеткиликтүү.

"Жардам берүү" өзгөчөлүгү, "күнөө" өзгөчөлүгүнөн айырмаланып, программалык камсыздоону иштетүүчүлөрдү чакырбастан процессор тарабынан ички иштетилет. Assist, мисалы, эстутум баракчасынын таблицасындагы A (Кетилген) же D (Кирги) бит жаңыртуу керек болгондо пайда болушу мүмкүн. Башка процесстерге кол салуудагы негизги кыйынчылык жабырлануучу процессин манипуляциялоо аркылуу жардамдын пайда болушун кантип баштоо керек. Учурда муну жасоонун ишенимдүү жолдору жок, бирок келечекте алар табылышы мүмкүн. Кол салуу мүмкүнчүлүгү азырынча Intel SGX анклавдары үчүн гана тастыкталган, башка сценарийлер теориялык же синтетикалык шарттарда кайра жаралуу (кодго белгилүү гаджеттерди кошууну талап кылат)

LVI - бул CPUдагы алып-сатарлык аткаруу механизмине чабуулдардын жаңы классы

LVI - бул CPUдагы алып-сатарлык аткаруу механизмине чабуулдардын жаңы классы

Мүмкүн болгон чабуул векторлору:

  • Колдонуучу деңгээлиндеги процесске ядро ​​структураларынан берилиштердин агып кетиши. Linux ядросунун Spectre 1 чабуулдарынан коргоосу, ошондой эле SMAP (Supervisor Mode Access Prevention) коргоо механизми LVI чабуулунун ыктымалдыгын олуттуу түрдө азайтат. Келечекте LVI чабуулунун жөнөкөй ыкмалары аныкталса, ядрого кошумча коргоону кошуу зарыл болушу мүмкүн.
  • Ар кандай процесстердин ортосунда маалыматтардын агып кетиши. Кол салуу колдонмодо коддун айрым бөлүктөрүнүн болушун жана максаттуу процессте өзгөчөлүктү таштоо ыкмасын аныктоону талап кылат.
  • Хост чөйрөсүнөн конок системасына маалымат агып кетиши. Чабуул өтө татаал деп классификацияланат, ал системада ар кандай ишке ашыруу кыйын кадамдарды жана активдүүлүктү болжолдоону талап кылат.
  • Ар кандай конок системаларындагы процесстердин ортосунда маалымат агып кетиши. Чабуул вектору ар кандай процесстер арасында маалыматтардын агып кетишин уюштурууга жакын, бирок конок системаларынын ортосундагы изоляцияны айланып өтүү үчүн кошумча татаал манипуляцияларды талап кылат.

изилдөөчүлөр тарабынан жарыяланган бир топ прототиптер чабуул жасоонун принциптерин демонстрациялоо менен, бирок алар чыныгы чабуулдарды жасоого али ылайыктуу эмес. Биринчи мисал, кайтарууга багытталган программалоого окшош, жабырлануучу процессинде спекулятивдүү коддун аткарылышын кайра багыттоого мүмкүндүк берет (ROP, Кайтарууга багытталган программалоо). Бул мисалда жабырлануучу зарыл гаджеттерди камтыган атайын даярдалган процесс (чыныгы үчүнчү тараптын процесстерине чабуул коюу кыйын). Экинчи мисал бизге Intel SGX анклавынын ичиндеги AES шифрлөө учурундагы эсептөөлөргө киришүүгө жана шифрлөө үчүн колдонулган ачкычтын маанисин калыбына келтирүү үчүн нускамаларды алып-сатарлык аткаруу учурунда маалыматтардын агып кетишин уюштурууга мүмкүндүк берет.


Source: opennet.ru

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