Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Linux

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ всички. Активно сС Π·Π°Ρ…Π²Π°Ρ‰Π°ΠΌΠ΅ с Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ Π²Π΅Ρ‡Π΅ подготвямС ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡ‰Π½ΠΈ стартовС ΠΏΡ€Π΅Π· януари. НарСд с Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ Π΅ обявСно записванС Π·Π° Π½ΠΎΠ² ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ любимия Π½Π° всички курс. β€žLinux Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€β€œ. Π’ ΠΎΡ‡Π°ΠΊΠ²Π°Π½Π΅ Π½Π° старта Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ сподСлямС ΠΏΡ€Π΅Π²ΠΎΠ΄ΠΈ Π½Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈ.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Linux

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ бСзопасна Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Π½Π° SUID ΠΈΠ·ΠΏΡŠΠ»Π½ΠΈΠΌΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π½ΠΎ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ ΠΌΠ°Π»ΠΊΠΎ ΠΎΠ±ΡŠΡ€ΠΊΠ²Π°Ρ‰ΠΈ.


Всички Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ SUID са лошо Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° сигурността. Π—Π° щастиС, Π°ΠΊΠΎ Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ изисква някои ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΈΠΌΠ° ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ Π½Π°Ρ‡ΠΈΠ½, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Π©Π΅ Π²ΠΈ спСстя ΠΌΠ°Π»ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π°ΠΊΠΎ искатС Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡ‚ΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° статията ΠΏΠΎ-Π³ΠΎΡ€Π΅: По ΡΡŠΡ‰Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ позволяват процСси, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ root ΠΈ слСдоватСлно ΠΈΠΌΠ°Ρ‚ ΠΏΡ€Π°Π²ΠΎ Π΄Π° правят Π½Π΅Ρ‰ΠΎ, Π·Π° Π΄Π° запазят ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ Ρ‚ΠΎΠ·ΠΈ ΡΠΏΠΈΡΡŠΠΊΠΊΠΎΠ³Π°Ρ‚ΠΎ изпуснат ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΈ сС управляват ΠΎΡ‚ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π». Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π°ΠΊΠΎ Π°Ρ‚Π°ΠΊΡƒΠ²Π°Ρ‰ успСС Π΄Π° ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€Π° процСс, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Сксплойт, Ρ‚ΠΎΠΉ няма Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС възползва ΠΎΡ‚ Π½ΠΈΡ‰ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ освСн ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ дСйствитСлно сС Π½ΡƒΠΆΠ΄Π°Π΅.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° са чудСсни Π·Π° услуги, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ root, Π½ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π·Π° ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π·Π° командния Ρ€Π΅Π΄? Π—Π° щастиС, Ρ‚ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°, ΠΏΡ€ΠΈ условиС Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚Π΅ инсталирани ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ubuntu, Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚Π΅ Π½ΡƒΠΆΠ΄Π° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° libcap2-bin. Π©Π΅ трябва ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° стартиратС Π½Π΅Π°Ρ€Ρ…Π°ΠΈΡ‡Π½ΠΎ ядро ​​(ΠΎΡ‚ вСрсия 2.6.24).

Π’Π΅Π·ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ позволяват Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° настройката Π½Π° SUID Π±ΠΈΡ‚Π°, Π½ΠΎ само Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. полСзност setcap ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС Π·Π° добавянС ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚ Ρ„Π°ΠΉΠ».

ΠŸΡŠΡ€Π²Π°Ρ‚Π° ΡΡ‚ΡŠΠΏΠΊΠ° Π΅ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π°, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅. Π—Π° Ρ†Π΅Π»ΠΈΡ‚Π΅ Π½Π° Ρ‚Π°Π·ΠΈ статия ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΠΌ, Ρ‡Π΅ ΠΈΠΌΠ° инструмСнт Π·Π° ΠΌΡ€Π΅ΠΆΠΎΠ²Π° диагностика, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ tracewalk, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Π³Π½Π΅Π·Π΄Π°. Π’ΠΎΠ²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ изисква ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° сС стартира ΠΊΠ°Ρ‚ΠΎ root, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄ списъка ΠΎΠΊΠ°Π·Π²Π° сС, Ρ‡Π΅ сС изисква само Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ CAP_NET_RAW.

Ако ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ΠΌ, Ρ‡Π΅ стС Π² дирСкторията, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π° двоичният Ρ„Π°ΠΉΠ» tracewalk, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

sudo setcap cap_net_raw=eip tracewalk

Π˜Π³Π½ΠΎΡ€ΠΈΡ€Π°ΠΉΡ‚Π΅ суфикса засСга =eip Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‰Π΅ говоря Π·Π° Ρ‚ΠΎΠ²Π° слСд няколко сСкунди. Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ с ΠΌΠ°Π»ΠΊΠΈ Π±ΡƒΠΊΠ²ΠΈ. Π’Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π°Π»ΠΈ стС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° с:

setcap -v cap_new_raw=eip tracewalk

Или ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π±Ρ€ΠΎΠΈΡ‚Π΅ всички Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° Π΄Π°Π΄Π΅Π½ изпълним Ρ„Π°ΠΉΠ»:

getcap tracewalk

Π—Π° справка ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π΄Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅Ρ‚Π΅ всички Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚ изпълнимия Ρ„Π°ΠΉΠ» с:

setcap -r tracewalk

Π’ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ трябва Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° стартиратС изпълнимия Ρ„Π°ΠΉΠ» ΠΊΠ°Ρ‚ΠΎ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΈ Ρ‚ΠΎΠΉ трябва Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ с Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ сокСти, Π½ΠΎ Π΄Π° няма Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ root потрСбитСлят ΠΈΠΌΠ°.

И Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π° Ρ‚ΠΎΠ·ΠΈ странСн суфикс? =eip? Π’ΠΎΠ²Π° изисква извСстно Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° СстСството Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π°. ВсСки процСс ΠΈΠΌΠ° Ρ‚Ρ€ΠΈ Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ βˆ’ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ, наслСдими ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ:

  • Π•Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° са Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ опрСдСлят ΠΊΠ°ΠΊΠ²ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€Π°Π²ΠΈ Π΄Π°Π΄Π΅Π½ процСс. НапримСр, Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС справи с Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ сокСти, Π°ΠΊΠΎ CAP_NET_RAW Π½Π΅ Π΅ Π² СфСктивния ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚.
  • На Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° са Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ°, Π°ΠΊΠΎ Π³ΠΈ поиска Ρ‡Ρ€Π΅Π· ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅. Π’Π΅ Π½Π΅ позволяват Π½Π° Π΄Π°Π΄Π΅Π½ процСс дСйствитСлно Π΄Π° ΠΏΡ€Π°Π²ΠΈ ΠΊΠ°ΠΊΠ²ΠΎΡ‚ΠΎ ΠΈ Π΄Π° Π±ΠΈΠ»ΠΎ, освСн Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ написано Π΄Π° поиска спомСнатото Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° позволява процСситС Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ написани Π·Π° добавянС Π½Π° ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ към СфСктивния Π½Π°Π±ΠΎΡ€ само Π·Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚Π΅ дСйствитСлно са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ.
  • НаслСдствСни Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° са Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ наслСдСни Π² Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈΡ Π½Π°Π±ΠΎΡ€ Π½Π° породСния Π΄ΡŠΡ‰Π΅Ρ€Π΅Π½ процСс. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° опСрация fork() ΠΈΠ»ΠΈ clone() Π΄ΡŠΡ‰Π΅Ρ€Π½ΠΈΡΡ‚ процСс Π²ΠΈΠ½Π°Π³ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΊΠΎΠΏΠΈΠ΅ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π½Π° родитСлския процСс, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠΉ всС ΠΎΡ‰Π΅ изпълнява ΡΡŠΡ‰ΠΈΡ изпълним Ρ„Π°ΠΉΠ» Π² Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚. НаслСдяСм Π½Π°Π±ΠΎΡ€ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ exec() (ΠΈΠ»ΠΈ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚) сС ΠΈΠ·Π²ΠΈΠΊΠ²Π°, Π·Π° Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ изпълнимия Ρ„Π°ΠΉΠ» с Π΄Ρ€ΡƒΠ³. Π’ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ наличният Π½Π°Π±ΠΎΡ€ Π½Π° процСса сС маскира ΠΎΡ‚ наслСдяСмия Π½Π°Π±ΠΎΡ€, Π·Π° Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈΡΡ‚ Π½Π°Π±ΠΎΡ€, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° новия процСс.

Π’Π°ΠΊΠ° Ρ‡Π΅ полСзността setcap Π½ΠΈ позволява Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π½Π° Ρ‚Π΅Π·ΠΈ Ρ‚Ρ€ΠΈ Π½Π°Π±ΠΎΡ€Π° нСзависимо Π·Π° Π΄Π°Π΄Π΅Π½ изпълним Ρ„Π°ΠΉΠ». Π˜ΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π³Ρ€ΡƒΠΏΠΈΡ‚Π΅ сС Ρ‚ΡŠΠ»ΠΊΡƒΠ²Π° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ Π·Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅:

  • На Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ са Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ са Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Π·Π° изпълним Ρ„Π°ΠΉΠ», Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ родитСлският процСс, ΠΊΠΎΠΉΡ‚ΠΎ Π³ΠΎ Π΅ ΠΈΠ·Π²ΠΈΠΊΠ°Π», Π½Π΅ Π³ΠΈ Π΅ ΠΈΠΌΠ°Π». ΠŸΡ€Π΅Π΄ΠΈ сС Π½Π°Ρ€ΠΈΡ‡Π°Ρ…Π° β€žΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΈβ€œ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»Π½ΠΈ.
  • НаслСдСни Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‚ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° маска, която ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Π·Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚ Π½Π°Π±ΠΎΡ€Π° Π½Π° извикващия процСс. Π’Π΅ сС ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚ Π² допълнСниС към наслСдСния Π½Π°Π±ΠΎΡ€ Π½Π° извикващия процСс, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС наслСдява само Π°ΠΊΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π² Π΄Π²Π°Ρ‚Π° Π½Π°Π±ΠΎΡ€Π°.
  • Π•Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ са само Π΅Π΄ΠΈΠ½ Π±ΠΈΡ‚, Π° Π½Π΅ Π½Π°Π±ΠΎΡ€, ΠΈ Π°ΠΊΠΎ са Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ, Ρ‚ΠΎΠ²Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ цСлият Π½Π°Π»ΠΈΡ‡Π΅Π½ Π½Π°Π±ΠΎΡ€ ΡΡŠΡ‰ΠΎ сС ΠΊΠΎΠΏΠΈΡ€Π° Π² СфСктивния Π½Π°Π±ΠΎΡ€ Π½Π° новия процСс. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° добавянС Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ към процСси, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са спСциално написани, Π·Π° Π΄Π° Π³ΠΈ изискват. Въй ΠΊΠ°Ρ‚ΠΎ Π΅ Π΅Π΄ΠΈΠ½ Π±ΠΈΡ‚, Π°ΠΊΠΎ Π³ΠΎ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ Π·Π° ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈ Π΄Π° Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ трябва Π΄Π° бъдС Π·Π°Π΄Π°Π΄Π΅Π½ΠΎ Π·Π° всички Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° мислитС Π·Π° Π½Π΅Π³ΠΎ ΠΊΠ°Ρ‚ΠΎ Π·Π° наслСдСн Π±ΠΈΡ‚, Π·Π°Ρ‰ΠΎΡ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π·Π° Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΎΡ‚ прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ Π³ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚.

ΠšΠΎΠ³Π°Ρ‚ΠΎ посочватС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‡Ρ€Π΅Π· setcap Ρ‚Ρ€ΠΈ Π±ΡƒΠΊΠ²ΠΈ e, i ΠΈ p сС отнасят Π·Π° Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½, наслСдим ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ. И Ρ‚Π°ΠΊΠ°, ΠΏΠΎ-Ρ€Π°Π½Π½Π°Ρ‚Π° спСцификация:

sudo setcap cap_net_raw=eip tracewalk

...ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΡΡ‚Π° CAP_NET_RAW трябва Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ към Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΈ наслСдими Π½Π°Π±ΠΎΡ€ΠΈ ΠΈ Ρ‡Π΅ СфСктивният Π±ΠΈΡ‚ ΡΡŠΡ‰ΠΎ трябва Π΄Π° бъдС Π·Π°Π΄Π°Π΄Π΅Π½. Π’ΠΎΠ²Π° Ρ‰Π΅ Π·Π°ΠΌΠ΅Π½ΠΈ всички ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° Ρ„Π°ΠΉΠ»Π°. Π—Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ няколко Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ навСднъТ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ списък, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ със Π·Π°ΠΏΠ΅Ρ‚Π°ΠΈ:

sudo setcap cap_net_admin,cap_net_raw=eip tracewalk

Π ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π·Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ обсъТда всичко Ρ‚ΠΎΠ²Π° ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ, Π½ΠΎ сС надявамС, Ρ‡Π΅ Ρ‚Π°Π·ΠΈ публикация Π΅ дСмистифицирала ΠΌΠ°Π»ΠΊΠΎ случващото сС. ΠžΡΡ‚Π°Π²Π°Ρ‚ Π΄Π° сС спомСнат само няколко прСдупрСТдСния ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²Π΅.

ΠŸΡŠΡ€Π²ΠΎ, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Ρ„Π°ΠΉΠ»Π° Π½Π΅ работят със символни Π²Ρ€ΡŠΠ·ΠΊΠΈ - трябва Π΄Π° Π³ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ към самия Π΄Π²ΠΎΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ» (Ρ‚.Π΅. Ρ†Π΅Π»Ρ‚Π° Π½Π° символната Π²Ρ€ΡŠΠ·ΠΊΠ°).

Π’Ρ‚ΠΎΡ€ΠΎ, Ρ‚Π΅ Π½Π΅ работят с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€Π°Π½ΠΈ скриптовС. НапримСр, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ скрипт Π½Π° Python, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ искатС Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, трябва Π΄Π° Π³ΠΎ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ Π½Π° самия ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π° Python. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Ρ‚ΠΎΠ²Π° Π΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π΅Π½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ със сигурността, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ³Π°Π²Π° всички скриптовС, изпълнявани с Ρ‚ΠΎΠ·ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, Ρ‰Π΅ ΠΈΠΌΠ°Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎΡ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΠΎΠ²Π° всС ΠΎΡ‰Π΅ Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΎ ΠΎΡ‚ Ρ‚ΠΎΠ²Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ SUID. Най-чСсто срСщаното Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π΅ Π΄Π° сС напишС ΠΎΡ‚Π΄Π΅Π»Π΅Π½ изпълним Ρ„Π°ΠΉΠ» Π½Π° C ΠΈΠ»ΠΈ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π΅Π½, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° изпълнява Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΎΡ‚ скрипт. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΎΡ‚ Wireshark, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄Π²ΠΎΠΈΡ‡Π΅Π½ Ρ„Π°ΠΉΠ» /usr/bin/dumpcap Π·Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

$ getcap /usr/bin/dumpcap 
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

Π’Ρ€Π΅Ρ‚ΠΎ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π° Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ са Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° срСдата LD_LIBRARY_PATH ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΈ ΡΡŠΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Π·Π° сигурност(1). Π‘ΡŠΡ‰ΠΎΡ‚ΠΎ Π²Π°ΠΆΠΈ ΠΈ Π·Π° LD_PRELOAD, Π΄ΠΎΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π·Π½Π°ΠΌ.

1. Въй ΠΊΠ°Ρ‚ΠΎ нападатСлят ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ Π΅Π΄Π½Π° ΠΎΡ‚ стандартнитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° LD_LIBRARY_PATHΠ΄Π° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΄Π° бъдС ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° с ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ систСмната ΠΈ слСдоватСлно Π΄Π° ΠΈΠΌΠ° собствСн ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ ΠΊΠΎΠ΄, изпълняван със ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’ΠΎΠ²Π° Π΅ всичко. ΠŸΠΎΠ²Π΅Ρ‡Π΅ подробности Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π½Π° курса ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° ΡƒΠ΅Π±ΠΈΠ½Π°Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ Π½Π° 24 януари.

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

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