د OpenBSD د W^X امنیتي میکانیزم د پیاوړتیا لپاره پالنونه

Theo De Raadt شریک شوی پلان لري چې د W^X (Write XOR Execute) د حافظې محافظت میکانیزم پیاوړی کړي. د میکانیزم جوهر دا دی چې د پروسې حافظې پاڼې په ورته وخت کې د لیکلو او اجرا کولو لپاره لاسرسی نشي کولی. پدې توګه ، کوډ یوازې د لیکلو غیر فعال کیدو وروسته اجرا کیدی شي ، او د حافظې پا pageې ته لیکل یوازې د اجرا کولو غیر فعال کیدو وروسته امکان لري. د W^X میکانیزم د عام بفر اوور فلو بریدونو څخه د کارونکي ځای غوښتنلیکونو ساتنه کې مرسته کوي ، پشمول د سټیک اوور فلوز ، او په OpenBSD کې فعال دی په تلواله.

په W^X کې د کار له پیل څخه، دا روښانه وه چې دا یو اوږد سړک و، ځکه چې د JIT په کارولو سره د پام وړ شمیر غوښتنلیکونه شتون درلود. د JIT تطبیقونه په دریو کټګوریو ویشل کیدی شي:

  • د W او X حالتونو ترمنځ د حافظې بدلول، د سیسټم کال "لګښت" منل mpprotect.
  • د ورته حافظې د W او X نقشه جوړونې ترمینځ عرفونه رامینځته کول.
  • ترټولو "خندا" اختیار د W|X حافظې ماډل ته اړتیا لري چې په ورته وخت کې ثبت او اجرا کولو ته اجازه ورکوي.

اوس مهال، د پام وړ لږ پروګرامونه شتون لري چې دریم انتخاب کاروي او ډیر نور د لومړي او دویم په کارولو سره. په هرصورت، ځکه چې دا اړینه وه چې د W|X JIT (په عمده ډول کرومیم او ایریډم) سره پروګرامونه پرمخ بوځي، د "wxallowed" فایل سیسټم ماونټ اختیار اضافه شو، کوم چې د لیکلو او اجرا کولو لپاره په یو وخت کې حافظې ته اجازه ورکړه، په هغه صورت کې چې د اجرا وړ ELF. فایل د "wxneeded" مارکر سره نښه شوی، او غوښتنلیکونه پخپله د میکانیزمونو په کارولو سره خوندي شوي ژمنې и ښکاره کړئ په ترتیب سره د کارول شوي سیسټم تلیفونونو لیست او د فایل سیسټم برخې چې غوښتنلیک ته شتون لري محدود کړي.

په داسې غوښتنلیکونو کې د زیان منونکو استخراج د لا پیچلې کولو لپاره، د میکانیزم اضافه کولو وړاندیز شوی MAP_STACK، کوم چې ګوري چې ایا د سیسټم کال د لیکلو وړ حافظې پاڼې څخه اجرا کیږي. که چیرې پاڼه د لیکلو وړ وي، نو پروسه باید پای ته ورسیږي. پدې توګه ، برید کونکی به ونشي کولی د سیسټم تلیفونونو څخه ګټه پورته کړي او مجبور شي چې د JIT پلي کولو کې د اړین ګیجټونو موندلو هڅه وکړي یا حتی په مستقیم ډول دننه د سیسټم کال سټبونو موندلو خورا ستونزمن کار وکړي. په ناڅاپي توګه تړل شوی libc.

د کروم / ایریډیم پروسې دمخه د ژمنې او افشا کولو په کارولو سره خورا معتبر خوندي شوي ، مګر د کارولو وړتیا لرې کول ، د مثال په توګه ، د لیکلو (2) سیسټم کال په څرګند ډول یو څه ګټه لري ، ځکه چې دا د برید کونکي لپاره اضافي ستونزې رامینځته کوي. په هرصورت، ستونزې هم رامینځته کیدی شي که چیرې د JIT پلي کول د W|X حافظې څخه اصلي سیسټم کالونه کاروي. په هرصورت، د امید کولو دلیل شتون لري چې دا به قضیه ونلري، ځکه چې ABI څو ځله بدل شوی، مګر هیچا هم د ستونزې راپور نه دی ورکړی.

بدلونونه لا دمخه د OpenBSD-اوسني څانګې منظم سنیپ شاټونو کې شتون لري، هرڅوک لیوالتیا لري چې ازموینې ته بلنه ورکړي.

په کروم / ایریډیم کې د حالت څرګندیدو په اړه اړوند خبرونه د تیو څخه جلا نظر مستحق دي JITless. د هغه له نظره، دا د ځینې کارونې موډلونو لپاره د منلو وړ دی، مګر شاید د ټولو لپاره نه وي، ځکه چې دا حالت به په ښکاره ډول د پروسیسر بار زیات کړي. اوس مهال، کروم به اکثرا کار وکړي که تاسو د /usr/local لپاره "wxallowed" غیر فعال کړئ، که څه هم ممکن د ځینو توسیعونو سره ستونزې شتون ولري (Ghostery یو مثال دی). په یوه لاره یا بل ډول، تیو هیله لري چې د JITless حالت کې بشپړ کار به په نږدې راتلونکي کې بشپړ عملیاتي حالت ته راوړل شي.

سرچینه: opennet.ru

Add a comment