ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Asim Manizada ΡΠ°ΡΠΊΡΡΠ» ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ CIFSwitch β Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π² ΡΠ²ΡΠ·ΠΊΠ΅ ΡΠ΄ΡΠ° Linux ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° cifs-utils. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΠΏΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ CIFS/SMB Kerberos/SPNEGO upcall, ΡΠΎ Π΅ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ CIFS-ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ΄ΡΠ° Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ helperβΠ° Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Kerberos-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ SMB-ΡΠ΅ΡΡΡΡΠΎΠ². ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΌΠ±Π°ΡΠ³ΠΎ linux-distros; ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ CVE Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π΅ΡΡ Π½Π΅ Π±ΡΠ» Π½Π°Π·Π½Π°ΡΠ΅Π½.
Π‘ΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ Π²ΡΠ·Π²Π°ΡΡ request_key("cifs.spnego", β¦) ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°. Π Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ°ΠΊΡΡ ΡΡΡΠΎΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌ CIFS-ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ΄ΡΠ°: Π² Π½Π΅ΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ΅, UID, credential UID, PID, ΡΠ΅Π»ΠΈ upcall ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ . ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΄ΡΠΎ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΎ, ΡΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈΡΠ»ΠΎ ΠΈΠ· CIFS-ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ, Π° cifs.upcall, Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΠΉ ΠΎΡ root ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ request-key, Π΄ΠΎΠ²Π΅ΡΡΠ» ΡΡΠΈΠΌ ΠΏΠΎΠ»ΡΠΌ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠΌ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΡΠ΄ΡΠΎΠΌ.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ Β«Π΄ΡΡΠΎΠΉ Π² Π»ΡΠ±ΠΎΠΌ Linux ΠΈΠ· ΠΊΠΎΡΠΎΠ±ΠΊΠΈΒ». ΠΠ»Ρ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ: Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΠ³ΠΎ ΡΠ΄ΡΠ°, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ cifs-utils Ρ ΠΏΡΠ°Π²ΠΈΠ»ΠΎΠΌ cifs.spnego, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ user/mount namespaces, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ SELinux, AppArmor ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ LSM. Π ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ Π½Π° oss-security ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ Π½Π° ΡΡΠ·Π²ΠΈΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΡΠΎ Π΄Π°ΡΡ ΠΏΡΡΡ ΠΎΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΎΡ root.
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΠΏΠΎΡΠΊΠ° ΡΡΡΠΎΠΈΡΡΡ Π²ΠΎΠΊΡΡΠ³ ΡΠΎΠ³ΠΎ, ΡΡΠΎ cifs.upcall ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΡΠ½, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ, ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ NSS-Π·Π°ΠΏΡΠΎΡ Π΄ΠΎ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ±ΡΠΎΡΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ attacker-controlled ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ NSS-ΠΌΠΎΠ΄ΡΠ»Ρ root-ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ. Π ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡ ΠΏΠΎΠ΄ΡΡΡΠΊΠΈΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π½Π° Π³ΡΠ°Π½ΠΈΡΠ΅ ΡΠ΄ΡΠ° ΠΈ user space, Π° Π½Π΅ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ memory corruption-ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ.
ΠΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠ΄ΡΠ΅ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΏΠΎ ΠΎΠ±ΡΡΠΌΡ: Π΄Π»Ρ ΡΠΈΠΏΠ° ΠΊΠ»ΡΡΠ΅ΠΉ cifs.spnego Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΠΎΡΠΊΠ»ΠΎΠ½ΡΡΡΠ°Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ ΡΠ°ΠΌΠΈΠΌ CIFS-ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ Ρ Π΅Π³ΠΎ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌΠΈ spnego_cred. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ ΠΊΠ»Π°ΡΡ Π°ΡΠ°ΠΊ Π±Π΅Π· ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² cifs-utils, Ρ ΠΎΡΡ Π°Π²ΡΠΎΡ ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠΈΠ»Π΅Π½ΠΈΠ΅ user space Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ.
AlmaLinux ΡΠΎΠΎΠ±ΡΠΈΠ»Π°, ΡΡΠΎ Π±Π°Π·ΠΎΠ²Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π²ΠΎ Π²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π²ΡΠΏΡΡΠΊΠ°Ρ AlmaLinux, Π° AlmaLinux 8, 9, 10 ΠΈ Kitten 10 ΡΡΠΈΡΠ°ΡΡΡΡ Π·Π°ΡΡΠΎΠ½ΡΡΡΠΌΠΈ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ cifs-utils. ΠΡΠΎΠΏΠ°ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ΄ΡΠ° Π±ΡΠ»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Π² testing-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ : Π΄Π»Ρ AlmaLinux 9 ΡΠΊΠ°Π·Π°Π½ ΠΏΠ°ΠΊΠ΅Ρ kernel-5.14.0-687.5.4.el9_8 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅, Π΄Π»Ρ AlmaLinux 10 β kernel-6.12.0-211.7.4.el10_2 ΠΈΠ»ΠΈ Π½ΠΎΠ²Π΅Π΅.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅Ρ Π΄ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ cifs-utils, Π΅ΡΠ»ΠΈ SMB/CIFS-ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΌΠΎΠ΄ΡΠ»Ρ cifs, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ cifs.spnego Π² request-key ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ user namespaces. ΠΡΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π½ΡΠ΅ ΠΌΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ Π»ΠΎΠΌΠ°ΡΡ Kerberos-Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΄Π»Ρ CIFS-ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , Π³Π΄Π΅ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Kerberos-authenticated SMB-ΡΠ°ΡΡ, ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ.
CIFSwitch ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° Π΅ΡΡ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ: Π°Π²ΡΠΎΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π΅Ρ ΠΊΠ°ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π³ΠΎΠ²ΡΡ ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ LLM ΠΈ Π³ΡΠ°ΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΡΠ²ΠΎΠ΄ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡΠΈΠ·Π΅ΠΌΠ»ΡΠ½Π½ΡΠΉ: ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ cifs-utils, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ user namespaces ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΄ΡΠ°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π³Π΄Π΅ Π΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ namespace-Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
