ΠΠ»Π°Π²Π° 22
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
ΠΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅Π΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Linux, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΊ Internet, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π»ΡΠ΄Π΅ΠΉ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈ Π΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠ΅ ΡΠ³ΡΠΎΠ·Ρ, ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ΅Π²ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ½ΠΈΠΊΠ½ΡΡΡ Π½Π° Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ Π΄ΠΎΡΡΡΠΏΠ°, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ ΡΠ΅Ρ Π²Π°ΠΆΠ½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘. ΠΡ Π²ΡΡΡΠ½ΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΠΎΡΠΎΠ±ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΈ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠΊΠΈ. ΠΡ ΠΎΠ±ΡΠ°ΡΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΌΡΠ΅ ΠΎΠ±ΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π²ΠΎΠΏΡΠΎΡΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ»ΡΠΆΠΈΡΡ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΠΊΠ½ΠΈΠ³Π΅ ΠΠ°Π²ΠΈΠ΄Π° ΠΠΈΠ»Π΅ΡΠ° (David A. Wheeler) Secure Programming for Linux and UNIX HOW TO. Π Π½Π΅Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ Π±ΠΈΠΎΠ³ΡΠ°ΡΠΈΡ Π°Π²ΡΠΎΡΠ°, Π° Π½Π°ΠΉΡΠΈ ΡΡΡ ΠΊΠ½ΠΈΠ³Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://www.dwheeler.com/secure-programs.
22.1. ΠΠΎΠ³Π΄Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅?
ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ β ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π²Π΅ΡΠΈ. ΠΠ°ΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° "Hello World" ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π° ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠΉ. ΠΠ³Π½ΠΎΡΠΈΡΡΡ Π²ΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ΄ΡΠ΅, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π‘ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡΡΠΊΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°. ΠΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π³ΠΎΡΠΎΠ²ΠΈΠ»Π°ΡΡ Π΄Π°Π½Π½Π°Ρ Π³Π»Π°Π²Π°, ΠΏΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΡΠΎΡΠ»Π° ΠΈΠ· 25 ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ². Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ ΠΎΠΊΠ°Π·Π°Π»ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ write(), ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠ»ΠΎΠ² "Hello World".
Π‘ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²Ρ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠ°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°) ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΡΠ±Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠΏΡΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΠΏΡΠΈΠ·Ρ Π±Π΅Π· ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΉ. ΠΡΠ»ΠΈ Π² ΡΡΡ "Π°Π΄ΡΠΊΡΡ ΡΠΌΠ΅ΡΡ" Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΠΎ Π»ΡΠ±ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ (Π½Π΅ Π³ΠΎΠ²ΠΎΡΡ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²) Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅Π±Π΅ ΡΠ΅Π°ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΎΡΠ΅Π½Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΡΠΈΡΡΡΡΡΡ, Π΄Π»Ρ Π³Π°ΡΠ°Π½ΡΠΈΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Ρ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌΠΈ Π²Ρ ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ[156]. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΄ΡΠ° ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠΊΠ° Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ·-Π·Π° Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠ΅ΠΉ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ , Π²ΡΠ΅ ΠΆΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΠΏΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π·ΠΈΡΡΡΡ Π½Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠΈ ΡΠΈΠΏΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
β’ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΠΈΠ· Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ², ΠΎΡΠ΅Π½Ρ ΡΡΠ·Π²ΠΈΠΌΡ. Π’Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΊΡΡΡΡΠ΅ Π°ΡΠ°ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ΅ΡΠ΅Π΄ΠΊΠΎ ΡΠ΅Π»ΡΡ ΡΠ°ΠΊΠΈΡ Π°ΡΠ°ΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ Π΄Π»Ρ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠ±Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΈΠΌΠ΅ΡΡΠ°Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΡ (ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ, ΡΠ°ΠΊ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ) ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΌΠΈΡΠ΅Π½ΡΡ Π΄Π»Ρ Π°ΡΠ°ΠΊ. ΠΠΎ Π΄Π°ΠΆΠ΅ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΡΠ°ΠΆΠ΅Π½Ρ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π°Π½Π½ΡΡ [157].
β’ ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ (ΡΠ΅ΡΠ΅Π· Π±ΠΈΡΡ setuid ΠΈ setgid Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌ ΡΠ°ΠΉΠ»Π΅), Π½Π΅ΡΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΡΠ°Π² ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΡΡΠ³ΠΎΠΌΡ (Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ) ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
β’ ΠΡΠ±Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ°Ρ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π΄Π΅ΠΌΠΎΠ½, ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ (Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΡΡΡΡΠΏΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ root), ΠΏΠΎΡΡΠΎΠΌΡ Π»ΡΠ±ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
22.1.1. ΠΠΎΠ³Π΄Π° Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΡΡΡΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ?
ΠΠ΅ΡΠ΅ΠΊΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ΅ΡΡΡΠ΅Ρ ΠΎΠ±ΡΠΈΡΠ½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ Π°ΡΠ°ΠΊ: ΡΠ΄Π°Π»Π΅Π½Π½Π°Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ, Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ, ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π°ΡΠ°ΠΊΠΈ ΠΎΡΠΊΠ°Π·Π° Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π°ΡΠ°ΠΊΠΈ ΠΎΡΠΊΠ°Π·Π° Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ. Π£Π΄Π°Π»Π΅Π½Π½ΡΠ΅ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΠΈΠΌΠ΅ΡΡΠΈΠΌ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΠ»ΡΠΆΠ±Π°ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°, Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π° ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»Π΅Π½Π½Π°Ρ Π°ΡΠ°ΠΊΠ° ΠΌΠΎΠ³Π»Π° ΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΡΠΎ, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠ΅ΠΉΡΡ ΠΊ ΡΠ΅ΡΠΈ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΡ. ΠΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ Π²Π·Π»ΠΎΠΌΡΠΈΠΊΡ Π²Π²Π΅ΡΡΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Π² ΡΠΈΡΡΠ΅ΠΌΡ. Π‘ Π½Π΅Π΄Π°Π²Π½ΠΈΡ ΠΏΠΎΡ Π½Π°ΡΠ°Π»ΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΠ΅ΡΠ΅Π²ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Web-Π±ΡΠ°ΡΠ·Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠ·ΡΡΠ½ Π² ΡΠΏΠΎΡΠΎΠ±Π΅ Π°Π½Π°Π»ΠΈΠ·Π° HTML-Π΄Π°Π½Π½ΡΡ , ΡΠΎ Web-ΡΡΡΠ°Π½ΠΈΡΠ°, Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΠ°Ρ ΡΡΠΈΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ±ΡΠ΄ΠΈΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄ΠΎΠ².
ΠΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ Π΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ (Π½Π° Π½ΠΈΡ ΡΠ°ΡΡΠΎ ΡΡΡΠ»Π°ΡΡΡΡ ΠΊΠ°ΠΊ Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅Π»Π΅Π³Π°Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ½ΠΈΠΊΠ°ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ Π²ΠΈΠ΄ΠΎΠΌ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π’Π°ΠΊΠΎΠΉ ΡΠΈΠΏ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π΄Π΅ΠΌΠΎΠ½ΠΎΠ² (ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ cron ΠΈΠ»ΠΈ sendmail) ΠΈ setuid-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (Π²ΡΠΎΠ΄Π΅ mount ΠΈΠ»ΠΈ passwd).
ΠΡΠ°ΠΊΠΈ ΠΎΡΠΊΠ°Π·Π° Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π·Π»ΠΎΠΌΡΠΈΠΊΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π·Π°ΠΊΠΎΠ½Π½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ ΠΈΡΡΡΠ΅ ΠΏΠΎΠΌΠ΅Ρ ΠΈ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΡΡΠ΄Π½ΠΎ Π»ΠΈΠΊΠ²ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΡΡ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΈΡ Π°ΡΠ°ΠΊ. Π₯Π°ΠΊΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΡΠ½ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ΄Π°Π»ΠΈΡ Π΅Π³ΠΎ. ΠΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΡ Π°ΡΠ°ΠΊ ΠΎΡΠΊΠ°Π·Π° Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈΡ Π΄ΠΎΠΌΠ°ΡΠ½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² Π½Π΅Π½ΡΠΆΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅[158]. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π°ΡΠ°ΠΊ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΠ»ΡΡΠ°Π΅Π², ΡΠ΅ΠΌ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π°ΡΠ°ΠΊ. ΠΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ Π·Π΄Π΅ΡΡ ΠΈΠ·ΡΡΠ°ΡΡ Π°ΡΠ°ΠΊΠΈ ΠΎΡΠΊΠ°Π·Π° Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΡΠ°ΡΡΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π° Π½Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅ΠΊΡΠ°.
22.2. ΠΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π°ΡΠ°ΠΊ
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ»ΡΡΡΠΈΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΠΏΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠΏΡΡΠΊΠ°ΠΌΠΈ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π°ΡΠ°ΠΊΠΎΠ²Π°ΡΡ. ΠΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΡΠ΄Π½ΠΎ Π²ΠΎΠΏΠ»ΠΎΡΠΈΡΡ Π² ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π΄Π΅ΠΌΠΎΠ½Π°Ρ , ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Ρ ΠΎΡΠΎΠ±ΡΠΌΠΈ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ° (ΡΠ΅ΡΠ΅Π· Π±ΠΈΡΡ setuid ΠΈ setgid Π»ΠΈΠ±ΠΎ ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ), ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π΄Π»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ.
22.2.1. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΈ ΠΏΡΠ°Π²Π° ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½Ρ ΠΌΠΎΠ³ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΌΡ ΠΏΠΎΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ listen(), Π½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΎΡΠΎΠ±ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΡ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Web-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎΡ ΠΏΡΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΡΠΈΠ»Π΅Π½ΠΈΡ Π·Π°ΡΠΈΡΡ ΠΎΡ Π°ΡΠ°ΠΊ ΠΏΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ nobody ΠΈΠ»ΠΈ apache) ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ TCP/IP-ΠΏΠΎΡΡΠ° 80. Π ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΠ°ΠΊΠ°Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π·Π»ΠΎΠΌΡΠΈΠΊΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ, Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°ΠΊ root. Π‘Π΅ΡΠ΅Π²ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, Π½ΡΠΆΠ΄Π°ΡΡΠΈΠ΅ΡΡ Π² ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΏΠΎΡΡΠ°Ρ (ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ rsh), ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΡ. ΠΠ½ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΠΊΠ°ΠΊ setuid Π½Π° root, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠΌ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΡ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡ ΠΎΡΠΊΡΡΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΡ root ΠΎΡΠΏΠ°Π΄Π°Π΅Ρ, ΠΈ ΠΎΡΠΎΠ±ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ.
ΠΠ»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²: setuid(), setgid(), setgroups(). ΠΡΠΎΡ ΠΏΡΠΈΠ΅ΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π°ΡΡΠΎΡΡΠ°Ρ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠ°Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°Ρ uid (ΠΈΠ»ΠΈ gid) ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ setuid (ΠΈΠ»ΠΈ setgid), ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ ΠΏΡΠΈΡΠ²ΠΎΠΈΡΡ Π΄Π°Π½Π½ΡΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌ uid ΠΈΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ uid. Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½Ρ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ root, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈ Π³ΡΡΠΏΠΏΠΎΠ²ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π³Π»Π°Π²Π΅ 10.