Kasper, скСнСр Π·Π° спСкулативни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π² ядрото Π½Π° Linux, Π²Π΅Ρ‡Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½

Π•ΠΊΠΈΠΏ ΠΎΡ‚ изслСдоватСли ΠΎΡ‚ Бвободния унивСрситСт Π² АмстСрдам ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти Π½Π° Kasper, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ Π² ядрото Π½Π° Linux, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° уязвимости ΠΎΡ‚ клас Spectre, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ΠΈ ΠΎΡ‚ спСкулативно изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π½Π° процСсора. Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡΡ‚ ΠΊΠΎΠ΄ Π·Π° инструмСнтариума сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· Apache 2.0.

НСка ΠΏΡ€ΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Π΅ Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° Π°Ρ‚Π°ΠΊΠΈ ΠΊΠ°Ρ‚ΠΎ Spectre v1, ΠΊΠΎΠΈΡ‚ΠΎ позволяват Π΄Π° сС ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π² привилСгирования ΠΊΠΎΠ΄ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° послСдоватСлност ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ (Π΄ΠΆΠ°Π΄ΠΆΠΈ), ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ спСкулативно изпълнСниС Π½Π° инструкции . Π—Π° Ρ†Π΅Π»ΠΈΡ‚Π΅ Π½Π° оптимизацията ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚ Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° изпълнява Ρ‚Π°ΠΊΠΈΠ²Π° Π΄ΠΆΠ°Π΄ΠΆΠΈ Π² спСкулативСн Ρ€Π΅ΠΆΠΈΠΌ, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ опрСдСля, Ρ‡Π΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π°Ρ‚Π° Π·Π° разклоняванС Π½Π΅ Π΅ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π° ΠΈ Π²Ρ€ΡŠΡ‰Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π΄ΠΎ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎΡ‚ΠΎ ΠΈΠΌ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, Π½ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° спСкулативното изпълнСниС, Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π² кСша ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈΡ‚Π΅ Π±ΡƒΡ„Π΅Ρ€ΠΈ ΠΈ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ ΠΎΡ‚ тях Ρ‡Ρ€Π΅Π· Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° опрСдСлянС Π½Π° ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ Π΄Π°Π½Π½ΠΈ Ρ‡Ρ€Π΅Π· ΠΊΠ°Π½Π°Π»ΠΈ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни.

НаличнитС ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° инструмСнти Π·Π° сканиранС Π½Π° Π΄ΠΆΠ°Π΄ΠΆΠΈ Π·Π° уязвимостта Π½Π° Spectre, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Ρ…Π° ΠΌΠ½ΠΎΠ³ΠΎ високо Π½ΠΈΠ²ΠΎ Π½Π° Ρ„Π°Π»ΡˆΠΈΠ²ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ, ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ липсваха ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π°Π»Π½ΠΈ Π΄ΠΆΠ°Π΄ΠΆΠΈ (СкспСримСнтитС ΠΏΠΎΠΊΠ°Π·Π°Ρ…Π°, Ρ‡Π΅ 99% ΠΎΡ‚ Π΄ΠΆΠ°Π΄ΠΆΠΈΡ‚Π΅, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠ²Π° инструмСнти, Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° Π°Ρ‚Π°ΠΊΠΈ , Π° 33% ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈΡ‚Π΅ Π΄ΠΆΠ°Π΄ΠΆΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π±ΠΈΡ…Π° ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π°Ρ‚ Π΄ΠΎ Π°Ρ‚Π°ΠΊΠ°, Π½Π΅ са забСлязани).

Π—Π° Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈ качСството Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΈ Π΄ΠΆΠ°Π΄ΠΆΠΈ, Kasper ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π° уязвимости, ΠΊΠΎΠΈΡ‚ΠΎ атакуващият ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° всяка ΡΡ‚ΡŠΠΏΠΊΠ° ΠΎΡ‚ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π°Ρ‚Π°ΠΊΠΈ ΠΎΡ‚ клас Spectre - ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Ρ‚ сС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ замСстванС Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° атакуващия Π² ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ структури, Π·Π° Π΄Π° сС повлияС Π½Π° послСдващо спСкулативно изпълнСниС с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Атаки ΠΎΡ‚ клас LVI), ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»Π½Π° информация (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Ρ‚ извън Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΏΠ°ΠΌΠ΅Ρ‚, слСд ΠΊΠ°Ρ‚ΠΎ Π΅ освободСна) ΠΈ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Ρ‚ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»Π½Π° информация (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‡Ρ€Π΅Π· Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° кСша Π½Π° процСсора ΠΈΠ»ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° MDS).

Kasper, скСнСр Π·Π° спСкулативни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π² ядрото Π½Π° Linux, Π²Π΅Ρ‡Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½

ΠŸΡ€ΠΈ тСстванС ядрото Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π·Π° изпълнСниС Π½Π° Kasper ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π½Π° Π½ΠΈΠ²ΠΎ LLVM. ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΅ΠΌΡƒΠ»ΠΈΡ€Π° спСкулативно изпълнСниС Π½Π° ΠΊΠΎΠ΄, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ изпълнява Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½ ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠ»ΠΎΠ½ ΠΈ слСд Ρ‚ΠΎΠ²Π° сС Π²Ρ€ΡŠΡ‰Π° към ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΈ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π°. Kasper ΡΡŠΡ‰ΠΎ сС ΠΎΠΏΠΈΡ‚Π²Π° Π΄Π° симулира Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ софтуСрни ΠΈ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ уязвимости, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° Π²ΡŠΠ·Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° fuzz тСстванС Π½Π° възмоТни дСйствия Π½Π° Π°Ρ‚Π°ΠΊΡƒΠ²Π°Ρ‰. Π—Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΏΠΎΡ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° изпълнСниС сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΡ€Ρ‚ΡŠΡ‚ DataFlowSanitizer Π·Π° ядрото Π½Π° Linux, Π° Π·Π° тСстванС Π½Π° fuzzing сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π° вСрсия Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° syzkaller.

Kasper, скСнСр Π·Π° спСкулативни ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π² ядрото Π½Π° Linux, Π²Π΅Ρ‡Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½

Π‘ΠΊΠ°Π½ΠΈΡ€Π°Π½Π΅ Π½Π° ядрото Π½Π° Linux с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Kasper ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° 1379 нСизвСстни ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° приспособлСния, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ водят Π΄ΠΎ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° спСкулативно изпълнСниС Π½Π° инструкции. ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π±ΠΈ само някои ΠΎΡ‚ тях ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Ρ€Π΅Π°Π»Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π½ΠΎ Π·Π° Π΄Π° сС дСмонстрира, Ρ‡Π΅ ΠΈΠΌΠ° Ρ€Π΅Π°Π»Π½Π° опасност, Π° Π½Π΅ само Ρ‚Π΅ΠΎΡ€Π΅Ρ‚ΠΈΡ‡Π½Π°, Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π° Сксплойт Π·Π° Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ, Π²ΠΎΠ΄Π΅Ρ‰ Π΄ΠΎ информация ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° ядрото.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€