AEPIC рд▓реАрдХ - рдПрдХ рд╣рд▓реНрд▓рд╛ рдЬреЛ рдЗрдВрдЯреЗрд▓ SGX рдПрдиреНрдХреНрд▓реЗрд╡реНрд╣рдордзреВрди рдХреА рд▓реАрдХ рдХрд░рддреЛ

рдЗрдВрдЯреЗрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░рд╡рд░реАрд▓ рдирд╡реАрди рд╣рд▓реНрд▓реНрдпрд╛рдЪреА рдорд╛рд╣рд┐рддреА - AEPIC рд▓реАрдХ (CVE-2022-21233), рдЬреНрдпрд╛рдореБрд│реЗ рдЗрдВрдЯреЗрд▓ SGX (рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЧрд╛рд░реНрдб рдПрдХреНрд╕реНрдЯреЗрдВрд╢рдиреНрд╕) рдЪреНрдпрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдПрдиреНрдХреНрд▓реЗрд╡реНрд╣рдордзреВрди рдЧреЛрдкрдиреАрдп рдбреЗрдЯрд╛ рд▓реАрдХ рдЭрд╛рд▓рд╛ рдЖрд╣реЗ. рд╕рдорд╕реНрдпрд╛ 10рд╡реНрдпрд╛, 11рд╡реНрдпрд╛ рдЖрдгрд┐ 12рд╡реНрдпрд╛ рдкрд┐рдвреАрдЪреНрдпрд╛ Intel CPUs (рдирд╡реАрди Ice Lake рдЖрдгрд┐ Alder Lake рдорд╛рд▓рд┐рдХреЗрд╕рд╣) рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдорд╛рдЧреАрд▓ рдСрдкрд░реЗрд╢рдиреНрд╕рдирдВрддрд░ APIC (Advanced Programmable Interrupt Controller) рдиреЛрдВрджрдгреАрдордзреНрдпреЗ рд╕реЛрдбрд▓реНрдпрд╛ рдЧреЗрд▓реЗрд▓реНрдпрд╛ рдЕрдирд╛рд░рдВрднрд┐рдд рдбреЗрдЯрд╛рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрдгрд╛рд░реНтАНрдпрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рджреЛрд╖рд╛рдореБрд│реЗ рдЙрджреНрднрд╡рддреЗ.

рд╕реНрдкреЗрдХреНрдЯрд░ рдХреНрд▓рд╛рд╕рдЪреНрдпрд╛ рд╣рд▓реНрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рдПрдИрдкреАрдЖрдпрд╕реА рд▓реАрдХрдордзреНрдпреЗ рдЧрд│рддреА рддреГрддреАрдп-рдкрдХреНрд╖ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдкрджреНрдзрддреАрдВрдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓реНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╣реЛрддреЗ - рдЧреЛрдкрдиреАрдп рдбреЗрдЯрд╛рдмрджреНрджрд▓рдЪреА рдорд╛рд╣рд┐рддреА рдПрдордПрдордЖрдпрдУ (рдореЗрдорд░реА-рдореЕрдкреНрдб I/O) рдореЗрдорд░реАрдордзреНрдпреЗ рдкрд░рд╛рд╡рд░реНрддрд┐рдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рд░рдЬрд┐рд╕реНрдЯрд░рдордзреАрд▓ рд╕рд╛рдордЧреНрд░реА рдорд┐рд│рд╡реВрди рдереЗрдЯ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ. рдкреГрд╖реНрда рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдЕрдЯреЕрдХ рддреБрдореНрд╣рд╛рд▓рд╛ рджреБрд╕рд░реНтАНрдпрд╛ рдЖрдгрд┐ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рд╕реНрддрд░рд╛рдВрдЪреНрдпрд╛ рдХреЕрд╢реЗрдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗрд▓рд╛ рдбреЗрдЯрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдиреЛрдВрджрдгреАрдЪреА рд╕рд╛рдордЧреНрд░реА рдЖрдгрд┐ рдореЗрдорд░реАрдордзреВрди рд╡рд╛рдЪрд▓реЗрд▓реНрдпрд╛ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреЗ рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рд╡рд░ рдкреВрд░реНрд╡реА рд╕рдорд╛рди CPU рдХреЛрд░рд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЧреЗрд▓реА рд╣реЛрддреА.

рд╣рд▓реНрд▓реНрдпрд╛рд╕рд╛рдареА APIC MMIO рдЪреНрдпрд╛ рднреМрддрд┐рдХ рдкреГрд╖реНрдард╛рдВрд╡рд░ рдкреНрд░рд╡реЗрд╢ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЙрджрд╛. рдкреНрд░рд╢рд╛рд╕рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд, рдкрджреНрдзрдд SGX рдПрдиреНрдХреНрд▓реЗрд╡реНрд╣рд╡рд░ рд╣рд▓реНрд▓рд╛ рдХрд░рдгреНрдпрд╛рдкреБрд░рддреА рдорд░реНрдпрд╛рджрд┐рдд рдЖрд╣реЗ рдЬреНрдпрд╛рдд рдкреНрд░рд╢рд╛рд╕рдХрд╛рд▓рд╛ рдереЗрдЯ рдкреНрд░рд╡реЗрд╢ рдирд╛рд╣реА. рд╕рдВрд╢реЛрдзрдХрд╛рдВрдиреА рдПрдХ рдЯреВрд▓рдХрд┐рдЯ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реА рдЖрд╣реЗ рдЬреА рдХрд╛рд╣реА рд╕реЗрдХрдВрджрд╛рдд, SGX рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд AES-NI рдЖрдгрд┐ RSA рдХреА рддрд╕реЗрдЪ рдЗрдВрдЯреЗрд▓ SGX рдЕрдЯреЗрд╕реНрдЯреЗрд╢рди рдХреА рдЖрдгрд┐ рд╕реНрдпреВрдбреЛ-рд░рдБрдбрдо рдирдВрдмрд░ рдЬрдирд░реЗрдЯрд░ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рд╣рд▓реНрд▓реНрдпрд╛рдЪрд╛ рдХреЛрдб GitHub рд╡рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ.

рдЗрдВрдЯреЗрд▓рдиреЗ рдЬрд╛рд╣реАрд░ рдХреЗрд▓реЗ рдХреА рддреЗ рдорд╛рдпрдХреНрд░реЛрдХреЛрдб рдЕрдкрдбреЗрдЯрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдПрдХ рдирд┐рд░рд╛рдХрд░рдг рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ рдЬреЗ рдмрдлрд░ рдлреНрд▓рд╢рд┐рдВрдЧрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрддреЗ рдЖрдгрд┐ рдПрдиреНрдХреНрд▓реЗрд╡реНрд╣ рдбреЗрдЯрд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрд╛рдп рдЬреЛрдбрддреЗ. рдЗрдВрдЯреЗрд▓ SGX рд╕рд╛рдареА SDK рдЪреЗ рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рди рджреЗрдЦреАрд▓ рдбреЗрдЯрд╛ рд▓реАрдХ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдмрджрд▓рд╛рдВрд╕рд╣ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдгрд┐ рд╣рд╛рдпрдкрд░рд╡рд╛рдЗрдЭрд░реНрд╕рдЪреНрдпрд╛ рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕рдирд╛ рд▓реЗрдЧрд╕реА xAPIC рдореЛрдбрдРрд╡рдЬреА x2APIC рдореЛрдб рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ APIC рд░рдЬрд┐рд╕реНрдЯрд░реНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА MMIO рдРрд╡рдЬреА MSR рд░рдЬрд┐рд╕реНрдЯрд░реНрд╕ рд╡рд╛рдкрд░рддрд╛рдд.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛