Π’ 806 модСлях матСринских ΠΏΠ»Π°Ρ‚ выявлСн тСстовый ΠΊΠ»ΡŽΡ‡, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ UEFI Secure Boot

Π˜ΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ бСзопасности ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Binarly выявили Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ UEFI Secure Boot Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 800 ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… компаниями Acer, Dell, Fujitsu, Gigabyte, HP, Intel, Lenovo ΠΈ Supermicro. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ имя PKfail ΠΈ связана с использованиСм Π² ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°Ρ… Π½Π΅ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ довСрия ΠΊΠ»ΡŽΡ‡Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (PK, Platform Key), сгСнСрированного ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ AMI (American Megatrends International) ΠΈ поставляСмого Π² качСствС тСстового ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. НаиболСС старыС ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… использовался тСстовый ΠΊΠ»ΡŽΡ‡, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π² 2012 Π³ΠΎΠ΄Ρƒ, Π° самыС Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ июнСм 2024 Π³ΠΎΠ΄Π°. По Π΄Π°Π½Π½Ρ‹ΠΌ исслСдоватСлСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ Π±ΠΎΠ»Π΅Π΅ 10% всСх ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ.

Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΊΠ»ΡŽΡ‡Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ заслуТиваСт довСрия ΠΈ Π΅Π³ΠΎ Π½Π΅ слСдуСт ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² своих ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…. ΠŸΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ тСстовый ΠΊΠ»ΡŽΡ‡ слСдуСт Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° собствСнный, Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ использовали Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°Ρ… Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΠ»ΡŽΡ‡, отправляСмый всСм ΠΏΠ°Ρ€Ρ‚Π½Ρ‘Ρ€Π°ΠΌ ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ AMI.

Закрытая Ρ‡Π°ΡΡ‚ΡŒ тСстового ΠΊΠ»ΡŽΡ‡Π° AMI, нСобходимая для создания Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… подписСй, оказалась доступна ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ послС ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ оборудования, сотрудник ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎ ошибкС размСстил Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° GitHub ΠΊΠΎΠ΄, содСрТащий Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡. Π—Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π±Ρ‹Π» Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½ Π² Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, ΠΏΡ€ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ использовался простой 4-ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π°.

ΠšΠ»ΡŽΡ‡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС корня довСрия для завСрСния Π‘Π” с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ для Secure Boot. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ части ΠΊΠ»ΡŽΡ‡Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ всСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ довСрия, задСйствованной ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ валидности ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠΉ систСмы — зная ΠΊΠ»ΡŽΡ‡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρƒ Secure Boot ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ подстановку ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ собствСнных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΡŽ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ KEK (Key Exchange Key) ΠΈ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… «db» (Signature Database) ΠΈ «dbx» (Forbidden Signature Database). KEK ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° созданиС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ довСрия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой, «db» содСрТит сСртификаты ΠΈ подписи для Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° ΠΈ сторонних ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² UEFI, Π° «dbx» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ΠΎΠ·Π²Π°Π½Π½Ρ‹Π΅ подписи извСстных врСдоносных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Для ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊΠΈ достаточно ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ сСртификаты для KEK ΠΈ db, послС Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ попавший Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ доступ тСстовый ΠΊΠ»ΡŽΡ‡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² UEFI-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ созданного KEK-сСртификата. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΠ² Π² ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ KEK-сСртификат ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ связанный с Π½ΠΈΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Π‘Π” db Π½ΠΎΠ²ΠΎΠ³ΠΎ сСртификата. ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сСртификата db, связанный с Π½ΠΈΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для завСрСния Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… EFI-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². openssl req -newkey rsa:4096 -nodes -keyout KEK.key -new -x509 -sha256 -days 3650 -subj «/CN=BRLY KEK/» -out KEK.crt openssl req -newkey rsa:4096 -nodes -keyout db.key -new -x509 -sha256 -days 3650 -subj «/CN=BRLY db/» -out db.crt efi-updatevar -a -c KEK.crt -k PK.key KEK efi-updatevar -a -c db.crt -k KEK.key db sbsign —key db.key —cert db.crt —output rogue.efi.signed rogue.efi

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ коррСктности ΠΊΠ»ΡŽΡ‡Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ достаточно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ «efi-readvar -v PK» ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° efitools ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π΅ являСтся тСстовым: efi-readvar -v PK Variable PK, length 862 PK: List 0, type X509 Signature 0, size 834, owner 26dc4851-195f-4ae1-9a19-fbf883bbb35e Subject: CN=DO NOT TRUST — AMI Test PK Issuer: CN=DO NOT TRUST — AMI Test PK



Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru