ΠΠΈΠΉΡ ΠΡΠΊ (Kees Cook), Π±ΠΈΠ²Ρ Π³Π»Π°Π²Π΅Π½ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ Π½Π° kernel.org ΠΈ Π»ΠΈΠ΄Π΅Ρ Π½Π° Π΅ΠΊΠΈΠΏΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° Ubuntu, Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π±ΠΎΡΠΈ Π² Google, Π·Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° Android ΠΈ ChromeOS, Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ Ρ ΠΏΠ°ΡΠΎΠ²Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° x86_64 Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° Clang ΠΈ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° Π·Π°ΡΠΈΡΠ° CFI (Control Flow Integrity). CFI ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΎΡΠΊΡΠΈΡΠΈΠ΅ Π½Π° Π½ΡΠΊΠΎΠΈ ΡΠΎΡΠΌΠΈ Π½Π° Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π°Ρ Π΄ΠΎ Π½Π°ΡΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΡΠΌΠ°Π»Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΏΠΎΡΠΎΠΊΠ° (control flow) ΠΏΠΎΡΠ°Π΄ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠΈΡΠΈ.
ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅, ΡΠ΅ Π² Π±ΡΡ Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Clang Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° x86_64. ΠΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ Android ΠΈ ChromeOS Π²Π΅ΡΠ΅ Clang Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΈ Google ΡΠ΅ΡΡΠ²Π° Clang ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΄ΡΠ° Π·Π° ΡΠ²ΠΎΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈ Linux ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠ°ΡΠΈΠ°Π½ΡΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Clang, ΡΡΡΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈ .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
