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

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

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

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


Всички Π·Π½Π°Π΅ΠΌ, Ρ‡Π΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ SUID Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ‚Π΅ β€žprimary/secondaryβ€œ. са лошо Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° сигурността.Π—Π° щастиС, Π°ΠΊΠΎ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π²ΠΈ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ, ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ..

Π©Π΅ спСстя Π²Ρ€Π΅ΠΌΠ΅, Π°ΠΊΠΎ искатС Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Π³ΠΎΡ€Π½Π°Ρ‚Π° статия: ΡΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π΅, Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ позволяват Π½Π° процСситС, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° потрСбитСля 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? Π—Π΄Π΅ΡΡŒ потрСбуСтся Ρ‚ΠΎΠ»ΠΈΠΊΠ° понимания ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ процСсс ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ Π½Π°Π±ΠΎΡ€Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ β€” Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ, наслСдяСми ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ (effective, inheritable ΠΈ permitted):

  • Π•Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ (Effective) Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ β€” Ρ‚ΠΎΠ²Π° са Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ опрСдСлят ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ наистина Π΄Π° ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚. НапримСр, Ρ‚ΠΎΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС справя с Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ сокСти, Π°ΠΊΠΎ CAP_NET_RAW Π½Π΅ Π΅ Π² СфСктивния Π½Π°Π±ΠΎΡ€.
  • Π”ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ (Permitted) Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ β€” Ρ‚ΠΎΠ²Π° са Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π½Π° процСса Π΄Π° ΠΈΠΌΠ°, Π°ΠΊΠΎ Π³ΠΈ поиска с подходящия ΠΏΠΎΠ²ΠΈΠΊ. Π’Π΅ Π½Π΅ позволяват Π½Π° процСса наистина Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½Π΅Ρ‰ΠΎ, освСн Π°ΠΊΠΎ Π½Π΅ Π΅ спСциално написан, Π·Π° Π΄Π° поиска ΡƒΠΊΠ°Π·Π°Π½ΠΎΡ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° позволява Π΄Π° сС ΠΏΠΈΡˆΠ°Ρ‚ процСси Π·Π° добавянС Π½Π° особСно Π²Π°ΠΆΠ½ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² СфСктивния Π½Π°Π±ΠΎΡ€ само Π·Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ наистина са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ.
  • НаслСдяСми (Inheritable) Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ β€” Ρ‚ΠΎΠ²Π° са Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ наслСдСни Π² Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈΡ Π½Π°Π±ΠΎΡ€ Π½Π° породСния потомствСн процСс. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° опСрацията 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

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

ΠŸΡŠΡ€Π²ΠΎ, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ способности Π½Π΅ работят с симлинковС β€” трябва Π΄Π° Π³ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ към самия Π±ΠΈΠ½Π°Ρ€Π΅Π½ Ρ„Π°ΠΉΠ» (Ρ‚.Π΅. към Ρ†Π΅Π»Ρ‚Π° Π½Π° симлинка).

На Π²Ρ‚ΠΎΡ€ΠΎ място, Ρ‚Π΅ Π½Π΅ работят с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΈ скриптовС. НапримСр, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ 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 януари.

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

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