Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ LinuxTL;DR. Π’ Ρ‚Π°Π·ΠΈ статия Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ схСми Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° (hardening schemes), ΠΊΠΎΠΈΡ‚ΠΎ Π²Π»ΠΈΠ·Π°Ρ‚ Π² Π³ΠΎΡ‚ΠΎΠ² Π²ΠΈΠ΄ Π² ΠΏΠ΅Ρ‚ популярни дистрибуции Π½Π° Linux. Π—Π° всяка ΠΎΡ‚ тях Π²Π·Π΅Ρ…ΠΌΠ΅ конфигурацията Π½Π° ядрото ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, Π·Π°Ρ€Π΅Π΄ΠΈΡ…ΠΌΠ΅ всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ схСмитС Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π² Π²Π»ΠΎΠΆΠ΅Π½ΠΈΡ‚Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. ΠžΠ±ΡΡŠΠΆΠ΄Π°Ρ‚ сС дистрибуции OpenSUSE 12.4, Debian 9, CentOS, RHEL 6.10 ΠΈ 7, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ubuntu 14.04, 12.04 ΠΈ 18.04 LTS.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄ΠΈΡ…Π°, Ρ‡Π΅ Π΄ΠΎΡ€ΠΈ основнитС схСми, ΠΊΠ°Ρ‚ΠΎ стСкови ΠΊΠ°Π½Π°Ρ€Π΅ΠΉΠΊΠΈ ΠΈ нСзависим ΠΎΡ‚ позицията ΠΊΠΎΠ΄, всС ΠΎΡ‰Π΅ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ‚ всички. Битуацията Π΅ ΠΎΡ‰Π΅ ΠΏΠΎ-лоша ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅, Ρ‰ΠΎ сС отнася Π΄ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° ΠΎΡ‚ уязвимости, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сблъсъка Π½Π° стСка (stack clash), ΠΊΠΎΠΈΡ‚ΠΎ станаха Ρ†Π΅Π½Ρ‚Ρ€Π°Π»Π½Π° Ρ‚Π΅ΠΌΠ° ΠΏΡ€Π΅Π· януари слСд ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° информация Π·Π° уязвимоститС Π² systemd. Но Π½Π΅ всичко Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π±Π΅Π·Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ. Π’ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° част ΠΎΡ‚ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ†ΠΈΡ‚Π΅ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ основни ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π°, Π° тСхният Π±Ρ€ΠΎΠΉ нараства с всяка вСрсия.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ Π½Π°ΠΉ-ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π² Ubuntu 18.04 Π½Π° Π½ΠΈΠ²ΠΎ ОБ ΠΈ прилоТСния, слСдвани ΠΎΡ‚ Debian 9. ΠžΡ‚ Π΄Ρ€ΡƒΠ³Π° страна, Π² OpenSUSE 12.4, CentOS 7 ΠΈ RHEL 7 ΡΡŠΡ‰ΠΎ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ основни схСми Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π°, Π° Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° ΠΎΡ‚ сблъсък Π½Π° стСка сС ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΎΡ‰Π΅ ΠΏΠΎ-ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-ΠΏΠ»ΡŠΡ‚Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.

Π’ΡŠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’Ρ€ΡƒΠ΄Π½ΠΎ Π΅ Π΄Π° сС осигури високо качСство Π½Π° софтуСра. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΡ‚ΠΎ количСство Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Π»ΠΈ инструмСнти Π·Π° статичСн Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅Π½ Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΈ изпълнСниС, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ значитСлния Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡ†ΠΈ, ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡΡ‚ софтуСр всС ΠΎΡ‰Π΅ страда ΠΎΡ‚ уязвимости, ΠΊΠΎΠΈΡ‚ΠΎ постоянно сС Сксплоатират ΠΎΡ‚ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ Π»ΠΈΡ†Π°. Битуацията Π΅ ΠΎΡ‰Π΅ ΠΏΠΎ-лоша Π² СкосистСми, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ остарял ΠΊΠΎΠ΄. Π’ Ρ‚Π°ΠΊΠΈΠ²Π° случаи Π½Π΅ само Ρ‡Π΅ сС сблъсквамС с вСчния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° възмоТни Сксплоатирани Π³Ρ€Π΅ΡˆΠΊΠΈ, Π½ΠΎ ΠΈ смС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ ΠΎΡ‚ строги Ρ€Π°ΠΌΠΊΠΈ Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚, ΠΊΠΎΠΈΡ‚ΠΎ чСсто изискват Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½, Π° ΠΎΡ‰Π΅ ΠΏΠΎ-лошо β€” уязвим ΠΈΠ»ΠΈ с бъговС ΠΊΠΎΠ΄.

Π’ΡƒΠΊ Π²Π»ΠΈΠ·Π°Ρ‚ Π² ΠΈΠ³Ρ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΈΠ»ΠΈ усилванС Π½Π° софтуСра (hardening). Някои Π²ΠΈΠ΄ΠΎΠ²Π΅ Π³Ρ€Π΅ΡˆΠΊΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΠΌ, Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΆΠΈΠ²ΠΎΡ‚Π° Π½Π° Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ‚Π΅ Π»ΠΈΡ†Π° ΠΏΠΎ-Ρ‚Ρ€ΡƒΠ΄Π΅Π½ ΠΈ частично Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, прСдотвратявайки ΠΈΠ»ΠΈ затруднявайки Сксплоатация Ρ‚Π΅Π·ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ. Π’Π°Π·ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° във всички ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ ОБ, Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°Ρ‚ ΠΏΠΎ слоТност, СфСктивност ΠΈ производитСлност: ΠΎΡ‚ стСкирани ΠΊΠ°Π½Π°Ρ€Ρ‡Π΅Ρ‚Π° (stack canaries) ΠΈ ASLR Π΄ΠΎ ΠΏΡŠΠ»Π½ΠΎΡ†Π΅Π½Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° CFI ΠΈ ROP. Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ Π² Π½Π°ΠΉ-популярнитС дистрибуции Π½Π° Linux Π² конфигурацията ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Ρ‰Π΅ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΠΌ свойствата Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, разпространявани Ρ‡Ρ€Π΅Π· систСмитС Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π½Π° всСки дистрибутив.

CVE ΠΈ сигурност

Всички Π½ΠΈΠ΅ смС Π²ΠΈΠΆΠ΄Π°Π»ΠΈ статии с заглавия ΠΊΠ°Ρ‚ΠΎ β€žΠΠ°ΠΉ-уязвимитС прилоТСния Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°Ρ‚Π°β€œ ΠΈΠ»ΠΈ β€žΠΠ°ΠΉ-уязвимитС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠΈβ€œ. ОбикновСно Ρ‚Π°ΠΌ сС Π΄Π°Π²Π°Ρ‚ статистики Π·Π° общия Π±Ρ€ΠΎΠΉ записи Π·Π° уязвимости ΠΎΡ‚ Ρ‚ΠΈΠΏ CVE (Common Vulnerability and Exposures), ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ ΠΎΡ‚ Националната Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° уязвимости (NVD) ΠΎΡ‚ NIST ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ. ВпослСдствиС Ρ‚Π΅Π·ΠΈ прилоТСния ΠΈΠ»ΠΈ ОБ сС класират ΠΏΠΎ Π±Ρ€ΠΎΠΉ CVE. Π—Π° съТалСниС, ΠΌΠ°ΠΊΠ°Ρ€ Ρ‡Π΅ CVE са ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π·Π° прослСдяванС Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° доставчици ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, Ρ‚Π΅ Π½Π΅ Π΄Π°Π²Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ информация Π·Π° Ρ€Π΅Π°Π»Π½Π°Ρ‚Π° сигурност Π½Π° софтуСра.

Π—Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ΠΊΠ° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ общия Π±Ρ€ΠΎΠΉ CVE Π·Π° послСднитС Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π·Π° ядрото Π½Π° Linux ΠΈ ΠΏΠ΅Ρ‚Ρ‚Π΅ Π½Π°ΠΉ-популярни ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ дистрибуции, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Ubuntu, Debian, Red Hat Enterprise Linux ΠΈ OpenSUSE.

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux
Π€ΠΈΠ³. 1

Какво Π½ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° Ρ‚Π°Π·ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°? ΠžΠ·Π½Π°Ρ‡Π°Π²Π° Π»ΠΈ ΠΏΠΎ-голямото количСство CVE, Ρ‡Π΅ Π΅Π΄ΠΈΠ½ дистрибутив Π΅ ΠΏΠΎ-уязвим ΠΎΡ‚ Π΄Ρ€ΡƒΠ³? ΠžΡ‚Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ Π΅ Π½Π΅. НапримСр, Π² Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Π΅ Π² Debian са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ-строги ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π² сравнСниС, Π΄Π° Ρ€Π΅Ρ‡Π΅ΠΌ, с OpenSUSE ΠΈΠ»ΠΈ RedHat Linux, ΠΈ всС ΠΏΠ°ΠΊ Debian ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅Ρ‡Π΅ CVE. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° Ρ‚Π΅ Π½Π΅ Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ сочат Π·Π° отслабСна сигурност: Π΄ΠΎΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° CVE Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ уязвимостта ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Сксплоатирана. ΠžΡ†Π΅Π½ΠΊΠΈΡ‚Π΅ Π·Π° сСриозност Π΄Π°Π²Π°Ρ‚ прСдстава Π·Π° вСроятността Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° уязвимостта, Π½ΠΎ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка СксплоатируСмостта Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° стСпСн зависи ΠΎΡ‚ Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π°, ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Ρ‰Π° Π² засСгнатитС систСми, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΎΡ‚ рСсурситС ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΡ†ΠΈΡ‚Π΅. ОсвСн Ρ‚ΠΎΠ²Π°, ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ CVE Π½Π΅ ΠΊΠ°Π·Π²Π° Π½ΠΈΡ‰ΠΎ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ нСзадълТСни ΠΈΠ»ΠΈ нСизвСстни нСзарСгистрированных ΠΈΠ»ΠΈ нСизвСстных уязвимоститС. Π Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π² CVE ΠΌΠΎΠΆΠ΅ Π΄Π° сС обясни Π½Π΅ с качСството Π½Π° софтуСра, Π° с Π΄Ρ€ΡƒΠ³ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ рСсурси, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈ Π·Π° тСстванС ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° потрСбитСлската Π±Π°Π·Π°. Π’ нашия ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ-голямото количСство CVE Π·Π° Debian ΠΌΠΎΠΆΠ΅ просто Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Debian прСдоставя ΠΏΠΎΠ²Π΅Ρ‡Π΅ софтуСрни ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.

Π Π°Π·Π±ΠΈΡ€Π° сС, систСмата CVE прСдоставя ΠΏΠΎΠ»Π΅Π·Π½Π° информация, която позволява ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΈ. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΎΠ²Π°Π»ΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-лСсно ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΈΡ‚Π΅ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π·Π° Сксплоатация ΠΈ Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ. Π·Π° открития ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€Π°Π½Π΅. На рис. 2 са ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈΡ‚Π΅ уязвимости Π·Π° всички дистрибуции Π·Π° послСднитС Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ (ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ). ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Π΅, Ρ‡Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ CVE ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ Π² слСднитС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: ΠΎΡ‚ΠΊΠ°Π· Π½Π° обслуТванС (DoS), изпълнСниС Π½Π° ΠΊΠΎΠ΄, ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅, ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ (Скзфилтрация) Π½Π° информация ΠΈ Сскалация Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎ CVE са ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅Π½ΠΈ няколко ΠΏΡŠΡ‚ΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΊΠ°Ρ‚ΠΎ цяло ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ остават годишно. Π’ слСдващата част Π½Π° статията Ρ‰Π΅ ΠΎΡ†Π΅Π½ΠΈΠΌ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ схСми Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π·Π° прСдотвратяванС Π½Π° Сксплоатацията Π½Π° посочСнитС уязвимости.

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux
Рис. 2

Π—Π°Π΄Π°Ρ‡ΠΈ

Π’ Ρ‚Π°Π·ΠΈ статия ΠΈΠΌΠ°ΠΌΠ΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π° слСднитС Π²ΡŠΠΏΡ€ΠΎΡΠΈ:

  • Каква Π΅ сигурността Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ дистрибуции Π½Π° Linux? Какви Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ Π² ядрото ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° потрСбитСлското пространство?
  • Как сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ ΠΏΡ€ΠΈΠ΅ΠΌΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ дистрибуции ΠΏΡ€Π΅Π· Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ?
  • Какви са срСднитС зависимости Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° всяка дистрибуция?
  • Какви Π·Π°Ρ‰ΠΈΡ‚ΠΈ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π·Π° всСки Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„Π°ΠΉΠ»?

Π˜Π·Π±ΠΎΡ€ Π½Π° дистрибуции

Оказва сС, Ρ‡Π΅ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ Ρ‚ΠΎΡ‡Π½Π° статистика Π·Π° инсталации Π½Π° дистрибуции, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи броят Π½Π° тСглСнията Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π° броя Π½Π° Ρ€Π΅Π°Π»Π½ΠΈΡ‚Π΅ инсталации. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Unix Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈΡ‚Π΅ ΡΡŠΡΡ‚Π°Π²Π»ΡΠ²Π°Ρ‚ мнозинството ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈΡ‚Π΅ систСми (Π½Π° ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€ΠΈ 69.2%, спорСд Π½Π° статистиката W3techs ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ), ΠΈ тяхната дял постоянно нараства. Π’Π°ΠΊΠ° Ρ‡Π΅, Π·Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ изслСдванС, Π½ΠΈΠ΅ сС фокусирахмС Π½Π° дистрибуции, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ ΠΎΡ‚ кутията Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Google Cloud. Π’ частност, ΠΈΠ·Π±Ρ€Π°Ρ…ΠΌΠ΅ слСднитС ОБ:

Дистрибуция/вСрсия
Π―Π΄Ρ€ΠΎ
Π‘Π±ΠΎΡ€ΠΊΠ°

OpenSUSE 12.4
4.12.14-95.3-default
#1 SMP Wed Dec 5 06:00:48 UTC 2018 (63a8d29)

Debian 9 (stretch)
4.9.0-8-amd64
#1 SMP Debian 4.9.130-2 (2018-10-27)

CentOS 6.10
2.6.32-754.10.1.el6.x86_64
#1 SMP Tue Jan 15 17:07:28 UTC 2019

CentOS 7
3.10.0-957.5.1.el7.x86_64
#1 SMP Fri Feb 1 14:54:57 UTC 2019

Red Hat Enterprise Linux Server 6.10 (Santiago)
2.6.32-754.9.1.el6.x86_64
#1 SMP Wed Nov 21 15:08:21 EST 2018

Red Hat Enterprise Linux Server 7.6 (Maipo)
3.10.0-957.1.3.el7.x86_64
#1 SMP Thu Nov 15 17:36:42 UTC 2018

Ubuntu 14.04 (Trusty Tahr)
4.4.0–140-generic

#166~14.04.1-Ubuntu SMP Sat Nov 17 01:52:43 UTC 20…

Ubuntu 16.04 (Xenial Xerus)
4.15.0–1026-gcp
#27~16.04.1-Ubuntu SMP Fri Dec 7 09:59:47 UTC 2018

Ubuntu 18.04 (Bionic Beaver)
4.15.0–1026-gcp
#27-Ubuntu SMP Thu Dec 6 18:27:01 UTC 2018

Π’Π°Π±Π»ΠΈΡ†Π° 1

Анализ

НиС Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ конфигурацията Π½Π° ядрото ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ свойствата Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Ρ‡Ρ€Π΅Π· пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Π½Π° всяко дистрибуция ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ. Π’Π°ΠΊΠ° Ρ‰Π΅ сС фокусирамС само Π²ΡŠΡ€Ρ…Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‰ΠΈΡ‚Π΅ сС ΠΎΠ³Π»Π΅Π΄Π°Π»Π° Π½Π° всяка дистрибуция, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°ΠΉΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ нСстабилни Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ³Π»Π΅Π΄Π°Π»Π°Ρ‚Π° β€˜testing’ Π² Debian) ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ‚ΠΈ страни (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ NVIDIA ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ стандартни ΠΎΠ³Π»Π΅Π΄Π°Π»Π°). ОсвСн Ρ‚ΠΎΠ²Π°, няма Π΄Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ потрСбитСлски ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ Π½Π° ядра ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с повишСна Π·Π°Ρ‰ΠΈΡ‚Π°.

Анализ Π½Π° конфигурацията Π½Π° ядрото

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ скрипт Π·Π° Π°Π½Π°Π»ΠΈΠ·, Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° свободния Ρ‡Π΅ΠΊΠ΅Ρ€ kconfig. Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·Π±Ρ€Π°Π½ΠΈΡ‚Π΅ дистрибуции ΠΈ Π³ΠΈ сравнявамС с списъка ΠΎΡ‚ ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π° самозащита Π½Π° ядрото (KSPP). Π—Π° всСки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ Π½Π° конфигурацията, Ρ‚Π°Π±Π»ΠΈΡ†Π° 2 описва ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° настройка: ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ‚Π° Π΅ поставСна Π·Π° дистрибуции, ΠΊΠΎΠΈΡ‚ΠΎ отговарят Π½Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈΡ‚Π΅ Π½Π° KSSP (обяснСниС Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈ Ρ‰Π΅ бъдС прСдоставСно Ρ‚ΡƒΠΊ; Π² Π±ΡŠΠ΄Π΅Ρ‰ΠΈ статии Ρ‰Π΅ Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° са сС появили ΠΈ ΠΊΠ°ΠΊ Π΄Π° сС Ρ…Π°ΠΊΠ½Π΅ систСмата Π² тяхно ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅).

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux

ΠžΠ±Ρ‰ΠΎΡ‚ΠΎ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ Π΅, Ρ‡Π΅ Π² Π½ΠΎΠ²ΠΈΡ‚Π΅ ядра настройкитС ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ са ΠΏΠΎ-строги. НапримСр, CentOS 6.10 ΠΈ RHEL 6.10 с ядро 2.6.32 нямат ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ Π² Π½ΠΎΠ²ΠΈΡ‚Π΅ ядра, ΠΊΠ°Ρ‚ΠΎ SMAP, строги Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ RWX, адрСсна рандомизация ΠΈΠ»ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π° copy2usr. Π‘Π»Π΅Π΄Π²Π° Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° конфигурацията Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π½Π΅ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π² ΠΏΠΎ-старитС вСрсии Π½Π° ядрото ΠΈ Π½Π΅ са ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΠΈ Π² дСйствитСлност β€” Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Ρ‚ΠΎΠ²Π° всС ΠΏΠ°ΠΊ Π΅ отбСлязано ΠΊΠ°Ρ‚ΠΎ липса Π½Π° Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°. По Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½, Π°ΠΊΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ Π½Π° конфигурацията Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π² Ρ‚Π°Π·ΠΈ вСрсия, Π° Π·Π° сигурността Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°, Ρ‚ΠΎΠ²Π° сС счита Π·Π° Ρ€Π°Π·ΡƒΠΌΠ½Π° конфигурация.

Π”Ρ€ΡƒΠ³ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΈ интСрпрСтацията Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅: някои ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° ядрото, ΠΊΠΎΠΈΡ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚ ΠΏΠΎΠ²ΡŠΡ€Ρ…Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π°Ρ‚Π°ΠΊΠ°Ρ‚Π°, ΠΌΠΎΠ³Π°Ρ‚ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° сигурност. Π’Π°ΠΊΠΈΠ²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ uprobes ΠΈ kprobes, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° ядрото ΠΈ BPF/eBPF. ΠΠ°ΡˆΠ°Ρ‚Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠ° Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ посочСнитС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° осигуряванС Π½Π° Ρ€Π΅Π°Π»Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚Π΅ Π½Π΅ са Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, Π° тяхната Сксплоатация ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°, Ρ‡Π΅ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ субСкти Π²Π΅Ρ‡Π΅ са сС ΡƒΠΊΡ€ΠΈΠ»ΠΈ Π² систСмата. Но Π°ΠΊΠΎ Ρ‚Π΅Π·ΠΈ ΠΎΠΏΡ†ΠΈΠΈ са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ, систСмният администратор трябва Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π΄Π° наблюдава Π·Π° Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈ.

ИзслСдвайки ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ запискитС ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π° 2, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ ядра прСдоставят няколко ΠΎΠΏΡ†ΠΈΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Сксплоатация Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° уязвимости, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° информация ΠΈ ΠΏΡ€Π΅Π»ΠΈΠ²Π°Π½Π΅ Π½Π° стСк/ΠΊΡƒΡ‡Π°. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, забСлязвамС, Ρ‡Π΅ Π΄ΠΎΡ€ΠΈ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡ‚Π΅ популярни дистрибуции всС ΠΎΡ‰Π΅ Π½Π΅ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π»ΠΈ ΠΏΠΎ-слоТна Π·Π°Ρ‰ΠΈΡ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΏΠ°Ρ‡ΠΎΠ²Π΅ grsecurity) ΠΈΠ»ΠΈ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊΠΈ с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, комбинация ΠΎΡ‚ рандомизация с R^X схСми Π·Π° ΠΊΠΎΠ΄). ΠžΡ‰Π΅ ΠΏΠΎ-лошо, Π΄ΠΎΡ€ΠΈ Ρ‚Π΅Π·ΠΈ ΠΏΠΎ-Π½Π°ΠΏΡ€Π΅Π΄Π½Π°Π»ΠΈ срСдства Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π΅ Π·Π°Ρ‰ΠΈΡ‚Π°Π²Π°Ρ‚ ΠΎΡ‚ пълния ΡΠΏΠ΅ΠΊΡ‚ΡŠΡ€ ΠΎΡ‚ Π°Ρ‚Π°ΠΊΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ, Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π·Π° систСмнитС администратори Π΄Π° Π΄ΠΎΠΏΡŠΠ»Π²Π°Ρ‚ Ρ€Π°Π·ΡƒΠΌΠ½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‰ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈΠ΅ ΠΈ прСдотвратяванС Π½Π° Сксплойти Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅.

Анализ Π½Π° прилоТСния

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

Дистрибуции

ΠžΠ±Ρ‰ΠΎ смС ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΠ»ΠΈ 361Β 556 ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π·Π° всички дистрибуции, ΠΈΠ·Π²Π»ΠΈΡ‡Π°ΠΉΠΊΠΈ само ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ основнитС ΠΎΠ³Π»Π΅Π΄Π°Π»Π°. Π˜Π³Π½ΠΎΡ€ΠΈΡ€Π°Ρ…ΠΌΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π±Π΅Π· изпълними ELF Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠ°Ρ‚ΠΎ сорс ΠΊΠΎΠ΄ΠΎΠ²Π΅, ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²Π΅ ΠΈ Ρ‚.Π½. Π‘Π»Π΅Π΄ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ останаха 129Β 569 ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ ΠΎΠ±Ρ‰ΠΎ 584Β 457 Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»Π°. Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ ΠΏΠΎ дистрибуции Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 3.

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux
Рис. 3

МоТСм Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌ, Ρ‡Π΅ ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ Π΅ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΠ²ΡŠΡ‚, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ Ubuntu ΠΈ Debian Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (ΠΊΠ°ΠΊΡ‚ΠΎ изпълними, Ρ‚Π°ΠΊΠ° ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ) Π² сравнСниС с CentOS, SUSE ΠΈ RHEL, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ влияС Π½Π° ΠΏΠΎΠ²ΡŠΡ€Ρ…Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° Π°Ρ‚Π°ΠΊΠ° Π½Π° Ubuntu ΠΈ Debian (трябва Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ Ρ†ΠΈΡ„Ρ€ΠΈΡ‚Π΅ отразяват всички Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ†ΠΈ Π½Π° всички вСрсии Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚.Π΅. някои Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ сС Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ няколко ΠΏΡŠΡ‚ΠΈ). Π’ΠΎΠ²Π° Π΅ особСно Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°Ρ‚ΠΎ сС Π²Π·Π΅ΠΌΠ°Ρ‚ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ зависимоститС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅. По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½, уязвимост Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊ Π½Π° Π΅Π΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° повлияС Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ части ΠΎΡ‚ СкосистСмата, ΠΊΠ°ΠΊΡ‚ΠΎ уязвима Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° повлияС Π½Π° всички Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ я ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Ρ‚. ΠšΠ°Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°, Π½Π΅ΠΊΠ° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° броя зависимости ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ОБ:

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux
Рис. 4

ΠŸΠΎΡ‡Ρ‚ΠΈ във всички дистрибуции 60% ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΠΎ 10 зависимости. ОсвСн Ρ‚ΠΎΠ²Π°, ΠΏΡ€ΠΈ някои ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ броят Π½Π° зависимоститС Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-висок (Π½Π°Π΄ 100). Π‘ΡŠΡ‰ΠΎΡ‚ΠΎ Π²Π°ΠΆΠΈ ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈΡ‚Π΅ зависимости Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅: ΠΊΠ°ΠΊΠ²ΠΎΡ‚ΠΎ ΠΈ Π΄Π° сС ΠΎΡ‡Π°ΠΊΠ²Π°, няколко ΠΏΠ°ΠΊΠ΅Ρ‚Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π² дистрибуцията, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ уязвимоститС Π² Ρ‚Π΅Π·ΠΈ ΠΌΠ°Π»ΠΊΠΎ Π½Π° Π±Ρ€ΠΎΠΉ ΠΈΠΌΠ°Ρ‚ висок риск. ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² слСдващата Ρ‚Π°Π±Π»ΠΈΡ†Π° са ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈ 20 ΠΏΠ°ΠΊΠ΅Ρ‚Π° с максимално количСство ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈ зависимости Π² SLES, Centos 7, Debian 9 ΠΈ Ubuntu 18.04 (Π² всяка ΠΊΠ»Π΅Ρ‚ΠΊΠ° Π΅ посочСн ΠΏΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ ΠΈ броят Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈΡ‚Π΅ зависимости).

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux
Π’Π°Π±Π»ΠΈΡ†Π° 3

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ΅Π½ Ρ„Π°ΠΊΡ‚. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ всички Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ОБ са ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° x86_64, Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°Ρ‚ΠΎ x86_64 ΠΈ x86, ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ чСсто ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рис. 5.

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux
Рис. 5

Π’ слСдващата сСкция Ρ‰Π΅ Π·Π°Π΄ΡŠΠ»Π±ΠΎΡ‡ΠΈΠΌ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° характСристикитС Π½Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°Π½ΠΈΡ‚Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ†ΠΈ.

Бтатистика Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

ΠšΠ°Ρ‚ΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π΅Π½ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, трябва Π΄Π° сС ΠΈΠ·ΡƒΡ‡ΠΈ основният Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Няколко дистрибуции Π½Π° Linux сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ с скриптовС, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. НапримСр, Π² Debian/Ubuntu ΠΈΠΌΠ° Ρ‚Π°ΠΊΡŠΠ² скрипт. Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°:

$ hardening-check $(which docker)
/usr/bin/docker:
 Position Independent Executable: yes
 Stack protected: yes
 Fortify Source functions: no, only unprotected functions found!
 Read-only relocations: yes
 Immediate binding: yes

Π‘ΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚ провСрява ΠΏΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π°:

  • Position Independent Executable (PIE): ΡƒΠΊΠ°Π·Π²Π° Π΄Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС прСмСсти тСкстовият Ρ€Π°Π·Π΄Π΅Π» Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π·Π° Π΄Π° сС постигнС рандомизация, Π°ΠΊΠΎ ASLR Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ядрото.
  • Stack Protected: Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π»ΠΈ са стСкови ΠΊΠ°Π½Π°Ρ€Π΅ΠΉΠΊΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊΠΈ Π½Π° сблъсък Π½Π° стСка.
  • Fortify Source: замСнят Π»ΠΈ сС нСбСзопаснитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, strcpy) с Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΏΠΎ-бСзопасни Π°Π½Π°Π»ΠΎΠ·ΠΈ, Π° провСряванитС ΠΏΡ€ΠΈ изпълнСниС извиквания - с Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ нСбСзопасни Π°Π½Π°Π»ΠΎΠ·ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, memcpy вмСсто __memcpy_chk).
  • Read-only relocations (RELRO): ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ Π»ΠΈ са записитС Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π° прСмСстванС ΠΊΠ°Ρ‚ΠΎ β€žΡΠ°ΠΌΠΎ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅β€œ, Π°ΠΊΠΎ Ρ‚Π΅ заработят ΠΏΡ€Π΅Π΄ΠΈ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  • Immediate binding (Π½Π΅Π·Π°Π±Π°Π²Π½Π° ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚): Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π° Π»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° срСдата Π·Π° изпълнСниС всички прСмСствания ΠΏΡ€Π΅Π΄ΠΈ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° (Ρ‚ΠΎΠ²Π° Π΅ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎ Π½Π° пълно RELRO).

Π”ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ Π»ΠΈ са горСпосочСнитС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ? Π—Π° съТалСниС, Π½Π΅. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΈ са Π½Π°Ρ‡ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° заобикалянС Π½Π° всички горСпосочСни Π·Π°Ρ‰ΠΈΡ‚ΠΈ, Π½ΠΎ ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎ-строга Π΅ Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π°, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-висока Π΅ Π»Π΅Ρ‚Π²Π°Ρ‚Π° Π·Π° атакуващия. НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° заобикалянС Π½Π° RELRO са ΠΏΠΎ-Ρ‚Ρ€ΡƒΠ΄Π½ΠΈ Π·Π° ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅, Π°ΠΊΠΎ дСйстват PIE ΠΈ Π½Π΅Π·Π°Π±Π°Π²Π½Π° ΠΏΡ€ΠΈΠ²ΡŠΡ€Π·Π°Π½ΠΎΡΡ‚. Подобно, ΠΏΡŠΠ»Π½ΠΈΡΡ‚ ASLR изисква Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π·Π° създаванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ Сксплойт. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΈΠ·Ρ‚ΡŠΠ½Ρ‡Π΅Π½ΠΈΡ‚Π΅ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ Π»ΠΈΡ†Π° Π²Π΅Ρ‡Π΅ са Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π° сС срСщнат с Ρ‚Π°ΠΊΠΈΠ²Π° Π·Π°Ρ‰ΠΈΡ‚ΠΈ: тяхното ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅ ΠΏΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ ускорява Ρ…Π°ΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ. Π—Π°Ρ‚ΠΎΠ²Π° Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Ρ‚Π΅Π·ΠΈ ΠΌΠ΅Ρ€ΠΊΠΈ Π΄Π° сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ. ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ.

Π˜ΡΠΊΠ°Ρ…ΠΌΠ΅ Π΄Π° ΠΏΡ€ΠΎΡƒΡ‡ΠΈΠΌ ΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½ΠΈΡ‚Π΅ дистрибуции са Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈ с Ρ‚Π΅Π·ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ с ΠΎΡ‰Π΅ Ρ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

  • ΠΠ΅ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ΅ΠΌΠΈΡΡ‚ Π±ΠΈΡ‚ (NX) прСдотвратява ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² всяка област, която Π½Π΅ трябва Π΄Π° бъдС изпълняСма, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² стСка ΠΈ Ρ‚.Π½.
  • RPATH/RUNPATH опрСдСля ΠΏΡŠΡ‚Ρ Π·Π° изпълнСниС, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΎΡ‚ динамичния Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Π·Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° подходящи Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½ Π·Π° всяка ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Π° систСма: ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ ΠΌΡƒ позволява Π½Π° Π½Π°ΠΏΠ°Π΄Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ Π΄Π° записват ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ‚ΠΎΠ²Π°Ρ€ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ Π΅. Π—Π° Π²Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΡŠΡ‚Ρ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ спомагат Π·Π° Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Ρ€Π΅Π΄ΠΈΡ†Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Сскалация Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡ‚Π΅, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ).
  • Π—Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° ΠΎΡ‚ стСковС Π½Π° ΡΠ±Π»ΡŠΡΡŠΡ†ΠΈ осигурява Π·Π°Ρ‰ΠΈΡ‚Π° срСщу Π°Ρ‚Π°ΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Π°Π²Π°Ρ‚ стСка Π΄Π° сС Π½Π°Π»ΠΎΠΆΠΈ Π²ΡŠΡ€Ρ…Ρƒ Π΄Ρ€ΡƒΠ³ΠΈ области Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΡŠΡ€Ρ…Ρƒ ΠΊΡƒΠΏΡ‡ΠΈΠ½Π°). Π‘ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΡΠΊΠΎΡ€ΠΎΡˆΠ½ΠΈΡ‚Π΅ Сксплойти, ΠΊΠΎΠΈΡ‚ΠΎ злоупотрСбяват с уязвимоститС Π½Π° ΠΊΡƒΠΏΡ‡ΠΈΠ½Π°Ρ‚Π° Π² systemd, Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅, Ρ‡Π΅ Π΅ умСстно Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π² нашия Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ.

Π’Π°ΠΊΠ° Ρ‡Π΅, Π±Π΅Π· ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ†Π΅Ρ€Π΅ΠΌΠΎΠ½ΠΈΠΈ, Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ към Ρ†ΠΈΡ„Ρ€ΠΈΡ‚Π΅. Π’Π°Π±Π»ΠΈΡ†ΠΈ 4 ΠΈ 5 ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΈΠ·Π²Π°Π΄ΠΊΠ° ΠΎΡ‚ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ дистрибуции, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ.

  • ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ, Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° NX Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° навсякъдС, с Ρ€Π΅Π΄ΠΊΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. По-спСциално, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ ΠΏΠΎ-ниското ΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² дистрибуции Π½Π° Ubuntu ΠΈ Debian Π² сравнСниС с CentOS, RHEL ΠΈ OpenSUSE.
  • Π‘Ρ‚Π΅ΠΊΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠ°Π½Π°Ρ€Π΅ΠΉΠΊΠΈ ΠΎΡ‚ΡΡŠΡΡ‚Π²Π°Ρ‚ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ мСста, особСно Π² дистрибуции с остарСли ядра. Някакъв Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊ сС наблюдава Π² послСднитС дистрибуции Π½Π° CentOS, RHEL, Debian ΠΈ Ubuntu.
  • Π‘ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Debian ΠΈ Ubuntu 18.04, Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ дистрибуции ΠΈΠΌΠ° лоша ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° PIE.
  • Π—Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° ΠΎΡ‚ ΡΠ±Π»ΡŠΡΡŠΡ†ΠΈ Π½Π° стСка Π΅ слабо Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π² OpenSUSE, CentOS 7 ΠΈ RHEL 7 ΠΈ практичСски ΠΎΡ‚ΡΡŠΡΡ‚Π²Π° Π² останалитС.
  • Всички дистрибуции с ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ ядра ΠΈΠΌΠ°Ρ‚ извСстна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° RELRO, ΠΊΠ°Ρ‚ΠΎ Π²ΠΎΠ΄Π΅Ρ‰ Π΅ Ubuntu 18.04, Π° Π½Π° Π²Ρ‚ΠΎΡ€ΠΎ място Π΅ Debian.

ΠšΠ°ΠΊΡ‚ΠΎ Π²Π΅Ρ‡Π΅ Π±Π΅ спомСнато, ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ Π² Ρ‚Π°Π·ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° са срСдни Π·Π° всички вСрсии Π½Π° бинарния Ρ„Π°ΠΉΠ». Ако сС ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ само послСднитС вСрсии Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, Ρ†ΠΈΡ„Ρ€ΠΈΡ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΈΠΆΡ‚Π΅ Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊΠ° Π½Π° Debian с внСдряванСто Π½Π° PIE). ОсвСн Ρ‚ΠΎΠ²Π°, ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ дистрибуции ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ провСряват Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° само Π½Π° няколко Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² бинарния ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ изчисляванС Π½Π° статистиката, Π° Π² нашия Π°Π½Π°Π»ΠΈΠ· Π΅ посочСн истинският ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π½Π° ΡƒΠΊΡ€Π΅ΠΏΠ΅Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ Π² бинарния Ρ„Π°ΠΉΠ» са Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈ 5 ΠΎΡ‚ 50 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‰Π΅ ΠΌΡƒ ΡƒΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΡ†Π΅Π½ΠΊΠ° 0,1, ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° 10% ΡƒΠΊΡ€Π΅ΠΏΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux
Π’Π°Π±Π»ΠΈΡ†Π° 4. Π₯арактСристики Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° Π·Π° изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ Π½Π° рис. 3 (рСализация Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈ ΠΎΡ‚ общия Π±Ρ€ΠΎΠΉ изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅)

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux
Π’Π°Π±Π»ΠΈΡ†Π° 5. Π₯арактСристики Π·Π°Ρ‰ΠΈΡ‚Π° Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ Π½Π° рис. 3 (рСализация Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈ ΠΎΡ‚ общия Π±Ρ€ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ)

Има Π»ΠΈ Π½Π°ΠΏΡ€Π΅Π΄ΡŠΠΊ? ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ: Ρ‚ΠΎΠ²Π° Π»ΠΈΡ‡ΠΈ Π² статистиката Π·Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ дистрибуции (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Debian), Π° ΡΡŠΡ‰ΠΎ ΠΈ ΠΎΡ‚ прСдставСнитС ΠΏΠΎ-Π³ΠΎΡ€Π΅ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ. ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° рис. 6 Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ внСдряванСто Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π² Ρ‚Ρ€ΠΈ послСдоватСлни дистрибуции Π½Π° Ubuntu LTS 5 (пропуснахмС статистиката Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ сблъсъка Π½Π° стСка). ЗабСлязвамС, Ρ‡Π΅ ΠΎΡ‚ вСрсия Π½Π° вСрсия всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ стСкови ΠΊΠ°Π½Π°Ρ€Ρ‡Π΅Ρ‚Π°, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° всС ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ сС прСдоставят с пълна Π·Π°Ρ‰ΠΈΡ‚Π° RELRO.

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-късно. Как ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ Linux
Рис. 6

Π—Π° съТалСниС, сСрия ΠΎΡ‚ изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ дистрибуции всС ΠΎΡ‰Π΅ Π½Π΅ ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π°Ρ‚ Π½ΠΈΡ‚ΠΎ Π΅Π΄Π½Π° ΠΎΡ‚ посочСнитС ΠΏΠΎ-Π³ΠΎΡ€Π΅ Π·Π°Ρ‰ΠΈΡ‚ΠΈ. НапримСр, ΠΏΡ€ΠΈ Ubuntu 18.04 ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ бинарният Ρ„Π°ΠΉΠ» ngetty (замСститСл Π½Π° getty), ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈΡ‚Π΅ mksh ΠΈ lksh, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΡŠΡ‚ picolisp, ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ nvidia-cuda-toolkit (популярСн ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° прилоТСния с GPU-ускорСниС, Ρ‚Π°ΠΊΠΈΠ²Π° ΠΊΠ°Ρ‚ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€Ρ†ΠΈ Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅) ΠΈ klibc-utils. По аналогия, бинарният Ρ„Π°ΠΉΠ» mandos-client (административСн инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ позволява Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ рСстартиранС Π½Π° машини с ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми), Π° ΡΡŠΡ‰ΠΎ ΠΈ rsh-redone-client (ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Π° рСализация Π½Π° rsh ΠΈ rlogin) сС доставят Π±Π΅Π· Π·Π°Ρ‰ΠΈΡ‚Π° NX, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚ ΠΏΡ€Π°Π²Π° SUID :(. ОсвСн Ρ‚ΠΎΠ²Π°, Π² няколко SUID-Π±ΠΈΠ½Π°Ρ€Π½ΠΈΠΊΠ° липсва основна Π·Π°Ρ‰ΠΈΡ‚Π°, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ стСкови ΠΊΠ°Π½Π°Ρ€ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, бинарния Ρ„Π°ΠΉΠ» Xorg.wrap ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Xorg).

РСзюмС ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΈ Π±Π΅Π»Π΅ΠΆΠΊΠΈ

Π’ Ρ‚Π°Π·ΠΈ статия ΠΈΠ·Ρ‚ΡŠΠΊΠ²Π°ΠΌΠ΅ няколко свойства Π½Π° сигурността Π½Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡ‚Π΅ дистрибуции Π½Π° Linux. ΠΠ½Π°Π»ΠΈΠ·ΡŠΡ‚ ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π² послСдната дистрибуция Π½Π° Ubuntu LTS (18.04) сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° срСдно Π½Π°ΠΉ-силната Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° Π½ΠΈΠ²ΠΎ ОБ ΠΈ прилоТСния срСд дистрибуциитС с относитСлно Π½ΠΎΠ²ΠΈ ядра, ΠΊΠ°Ρ‚ΠΎ Ubuntu 14.04, 12.04 ΠΈ Debian 9. ΠžΠ±Π°Ρ‡Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π½ΠΈΡ‚Π΅ дистрибуции CentOS, RHEL ΠΈ OpenSUSE Π² нашия Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ ΠΏΠΎ-ΠΏΠ»ΡŠΡ‚Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Π° Π² послСднитС вСрсии (CentOS ΠΈ RHEL) ΠΈΠΌΠ°Ρ‚ ΠΏΠΎ-висок ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ Π½Π° рСализация Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу сблъсък Π½Π° стСка Π² сравнСниС с ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Debian (Debian ΠΈ Ubuntu). Бравнявайки вСрсиитС CentOS ΠΈ RedHat, наблюдавамС Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ подобрСния Π² внСдряванСто Π½Π° стСкови ΠΊΠ°Π½Π°Ρ€ΠΊΠΈ ΠΈ RELRO ΠΎΡ‚ вСрсии 6 Π΄ΠΎ 7, Π½ΠΎ срСдно Π² CentOS Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π² RHEL. ΠšΠ°Ρ‚ΠΎ цяло, всички дистрибуции трябва Π΄Π° ΠΎΠ±ΡŠΡ€Π½Π°Ρ‚ особСно Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° PIE, която, с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Debian 9 ΠΈ Ubuntu 18.04, Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π² ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ 10% ΠΎΡ‚ Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² нашия Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ.

Накрая, трябва Π΄Π° ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈΠΌ: ΠΌΠ°ΠΊΠ°Ρ€ Ρ‡Π΅ ΠΏΡ€ΠΎΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ изслСдванСто Ρ€ΡŠΡ‡Π½ΠΎ, ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‚ мноТСство инструмСнти Π·Π° сигурност (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Lynis, Tiger, Hubble), ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚ Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ нСбСзопасни ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π—Π° съТалСниС, Π΄ΠΎΡ€ΠΈ силната Π·Π°Ρ‰ΠΈΡ‚Π° Π² Ρ€Π°Π·ΡƒΠΌΠ½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° ΠΎΡ‚ΡΡŠΡΡ‚Π²ΠΈΠ΅ Π½Π° Сксплойти. Π•Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ смС ΡƒΠ±Π΅Π΄Π΅Π½ΠΈ, Ρ‡Π΅ Π΅ ΠΎΡ‚ ΠΆΠΈΠ·Π½Π΅Π½ΠΎΠ²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π° сС осигури Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ прСдотвратяванС Π½Π° Π°Ρ‚Π°ΠΊΠΈ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅, ΡΡŠΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡Π°Π²Π°ΠΉΠΊΠΈ сС Π²ΡŠΡ€Ρ…Ρƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Сксплоатация ΠΈ прСдотвратявайки Π³ΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster