ЕкспСримСнтална ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΎΠ±Π½ΠΎΠ²Π° Π½Π° Linux ΠΊΠ΅Ρ€Π½Π΅Π»ΠΎΡ‚ Π²ΠΎ Clang со Π·Π°ΡˆΡ‚ΠΈΡ‚Π½ΠΈΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ CFI

Кис ΠšΡƒΠΊ, ΠΏΠΎΡ€Π°Π½Π΅ΡˆΠ΅Π½ Π³Π»Π°Π²Π΅Π½ администратор Π½Π° kernel.org ΠΈ Π»ΠΈΠ΄Π΅Ρ€ Π½Π° бСзбСдносниот Ρ‚ΠΈΠΌ Π½Π° Ubuntu, сСга Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΠΎ Google Π·Π° Π΄Π° Π³ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Android ΠΈ ChromeOS, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΈ СкспСримСнталСн ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ со Π·Π°ΠΊΡ€ΠΏΠΈ ΠΊΠΎΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π°Π°Ρ‚ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ ΠΊΠ΅Ρ€Π½Π΅Π» Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° x86_64 ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Clang ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ˜ΡœΠΈ Π³ΠΎ Π·Π°ΡˆΡ‚ΠΈΡ‚Π½ΠΈΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ CFI (Control Flow Integrity). CFI ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΡšΠ΅ Π½Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠΈ Π½Π° Π½Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΎ ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ ΡˆΡ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π°Ρ€ΡƒΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΈΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ Ρ‚Π΅ΠΊ ΠΊΠ°ΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°Ρ‚ΠΈΡ€Π°ΡšΠ°.

ΠŸΠΎΡ‚ΡΠ΅Ρ‚ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° Π²ΠΎ LLVM 9 Π’ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΈ Π·Π° Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ ΠΊΠ΅Ρ€Π½Π΅Π»ΠΎΡ‚ Π½Π° Линукс ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Clang Π½Π° систСмитС x86_64. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ Π·Π° Android ΠΈ ChromeOS сС вСќС ΠΏΡ€ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π°Ρ‚ Clang Π·Π° Π³Ρ€Π°Π΄Π΅ΡšΠ΅ ΠΊΠ΅Ρ€Π½Π΅Π» ΠΈ Google Π³ΠΎ тСстираат Clang ΠΊΠ°ΠΊΠΎ Π³Π»Π°Π²Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° Π³Ρ€Π°Π΄Π΅ΡšΠ΅ ΠΊΠ΅Ρ€Π½Π΅Π»ΠΈ Π·Π° своитС производствСни Linux систСми. Π’Π°Ρ€ΠΈΡ˜Π°Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΊΠ΅Ρ€Π½Π΅Π»ΠΎΡ‚ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ со ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Clang исто Ρ‚Π°ΠΊΠ° Ρ€Π°Π·Π²ΠΈΠ²Π°Π°Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π›ΠΈΠ½Π°Ρ€ΠΎ ΠΈ Cros.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€