OpenBSD ΠΏΡ€ΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π·Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° процСса

Theo de Raadt Π΄ΠΎΠ±Π°Π²ΠΈ сСрия ΠΎΡ‚ ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ към ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π° Π½Π° OpenBSD, Π·Π° Π΄Π° Π·Π°Ρ‰ΠΈΡ‚ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π½Π° процСса Π² потрСбитСлското пространство. На Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ сС ΠΏΡ€Π΅Π΄Π»Π°Π³Π° Π½ΠΎΠ²ΠΎ систСмно ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΈ ΡΠ²ΡŠΡ€Π·Π°Π½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Π° функция със ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅, mimmutable, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€Π°Π²Π°Ρ‚Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΏΡ€ΠΈ отразяванС Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° (ΠΊΠ°Ρ€Ρ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°). Π‘Π»Π΅Π΄ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅, ΠΏΡ€Π°Π²Π°Ρ‚Π°, Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° област ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π±Ρ€Π°Π½Π° Π·Π° писанС ΠΈ изпълнСниС, Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ впослСдствиС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈ Ρ‡Ρ€Π΅Π· послСдващи извиквания Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ mmap(), mprotect() ΠΈ munmap(), ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π³Ρ€Π΅ΡˆΠΊΠ° EPERM ΠΏΡ€ΠΈ ΠΎΠΏΠΈΡ‚ Π·Π° Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ.

Π—Π° Π΄Π° сС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° промяна Π½Π° ΠΏΡ€Π°Π²Π°Ρ‚Π° Π½Π° ΠΎΡ‚Ρ€Π°Π·Π΅Π½Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚ Π·Π° ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½ΠΎΠ²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° BSS сСкция (.openbsd.mutable, ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ² Π½Π°Ρ‡Π°Π»Π΅Π½ символ Π½Π° Π±Π»ΠΎΠΊ) ΠΈ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π½ΠΎΠ²ΠΈ Ρ„Π»Π°Π³ΠΎΠ²Π΅ PF_MUTABLE ΠΈ UVM_ET_IMMUTABLE. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° към Π»ΠΈΠ½ΠΊΠ΅Ρ€Π° Π·Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° сСкции "openbsd.mutable" ΠΈ поставянСто ΠΈΠΌ Π² ΠΎΡ‚Π΄Π΅Π»Π½Π° област Π² BSS, ΠΏΠΎΠ΄Ρ€Π°Π²Π½Π΅Π½Π° към Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ‚Π° Π½Π° страница с ΠΏΠ°ΠΌΠ΅Ρ‚. Π§Ρ€Π΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° функцията mimmutable Π΅ възмоТно Π΄Π° сС ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Ρ‚ всички ΠΎΠ³Π»Π΅Π΄Π°Π»Π½ΠΈ области ΠΊΠ°Ρ‚ΠΎ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΈ, с ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° сСкциитС, ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ с "openbsd.mutable". Новата функция Ρ‰Π΅ бъдС въвСдСна Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π² ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ OpenBSD 7.3.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

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