Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ†ΠΈ ΠΏΠΎ-късно. Как сС ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ 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 ΡΡŠΡ‰ΠΎ са Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ основни схСми Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π°, Π° Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° ΠΎΡ‚ stack clash сС ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΎΡ‰Π΅ ΠΏΠΎ-ΡˆΠΈΡ€ΠΎΠΊΠΎ с ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π³ΡŠΡΡ‚ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.

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

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

Π’ΡƒΠΊ Π²Π»ΠΈΠ·Π°Ρ‚ Π² дСйствиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΈΠ»ΠΈ усилванС Π½Π° софтуСра (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 ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΎΡ‚ стандартнитС ΠΎΠ³Π»Π΅Π΄Π°Π»Π°). ОсвСн Ρ‚ΠΎΠ²Π°, няма Π΄Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ потрСбитСлски ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ Π½Π° ядрото ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с повишСна сигурност.

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

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

Милиони Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ†ΠΈ ΠΏΠΎ-късно. Как сС ΡƒΠΊΡ€Π΅ΠΏΠ²Π°ΡˆΠ΅ 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:
 ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ нСзависимо изпълнимо: Π΄Π°
 Π—Π°Ρ‰ΠΈΡ‚Π΅Π½ стСк: Π΄Π°
 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Fortify Source: Π½Π΅, Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ са само нСбСзопасни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ!
 Записи само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅: Π΄Π°
 НСпосрСдствСно ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅: Π΄Π°

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

  • ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ нСзависимо изпълнимо (PIE): ΡƒΠΊΠ°Π·Π²Π° Π΄Π°Π»ΠΈ тСкстовият Ρ€Π°Π·Π΄Π΅Π» Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС прСмСстСн Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π·Π° Π΄Π° сС постигнС рандомизация, Π°ΠΊΠΎ Π² ядрото Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ASLR.
  • Π—Π°Ρ‰ΠΈΡ‚Π΅Π½ стСк: Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ Π»ΠΈ са стСкови ΠΊΠ°Π½Π°Ρ€Π΅ΠΉΠΊΠΈ Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π°Ρ‚Π°ΠΊΠΈ срСщу сблъсък Π½Π° стСка.
  • Fortify Source: замСнят Π»ΠΈ сС нСбСзопаснитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, strcpy) с Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΏΠΎ-бСзопасни Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΈ, Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ с Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ нСпровСрявани Π°Π½Π°Π»ΠΎΠ·ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, memcpy вмСсто __memcpy_chk).
  • Записи само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ (RELRO): ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°Ρ‚ Π»ΠΈ записитС Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° Π·Π° прСмСстванС, Ρ‡Π΅ са ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ 'само Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅', Π°ΠΊΠΎ са Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€Π΅Π΄ΠΈ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  • НСпосрСдствСно ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅: позволява Π»ΠΈ срСдата Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π΄Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠΈ всички прСмСстивания ΠΏΡ€Π΅Π΄ΠΈ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° (Ρ‚ΠΎΠ²Π° Π΅ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎ Π½Π° пълно 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