د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

لکه څنګه چې تاسو پوهیږئ، په انکلیو کې اجرا شوي کوډ په جدي توګه په خپل فعالیت کې محدود دی. دا نشي کولی سیسټم تلیفونونه وکړي. دا نشي کولی د I/O عملیات ترسره کړي. دا د کوربه غوښتنلیک د کوډ برخې اساس پته نه پوهیږي. دا نشي کولی jmp یا د کوربه غوښتنلیک کوډ ته زنګ ووهي. دا د پتې ځای جوړښت په اړه هیڅ نظر نلري چې د کوربه غوښتنلیک اداره کوي (د بیلګې په توګه، کوم پاڼې نقشه شوي یا کوم ډول ډاټا په دې پاڼو کې موقعیت لري). دا نشي کولی د عملیاتي سیسټم څخه وغواړي چې د کوربه غوښتنلیک حافظې یوه برخه نقشه کړي (د مثال په توګه د /proc/pid/maps له لارې). د کوربه غوښتنلیک د خپل سري حافظې سیمې په ړانده توګه د لوستلو هڅې ، د لیکلو هڅو یادونه نه کول ، ژر یا وروسته (ډیری احتمال پخوانی) به د انکلیو برنامې جبري ختمیدو لامل شي. دا پیښیږي کله چې د انکلیو لخوا غوښتنه شوې د مجازی پتې ځای سیمه د کوربه غوښتنلیک ته د لاسرسي وړ نه وي.

د دې ډول سختو واقعیتونو په پام کې نیولو سره، ایا د ویروس لیکوال به وکولی شي د خپلو ناوړه اهدافو د ترلاسه کولو لپاره د SGX کلاګانې وکاروي؟

- د پلټنې پتې لپاره هیک کړئ ترڅو وګورئ چې ایا دوی لوستل کیدی شي
- د لیکلو وړتیا لپاره د پلټنې پتې هیک کړئ
- د کنټرول جریان ریډائریټ کولو لپاره هیک
- پورته لست شوي درې هیکونه ولین ته څه ورکوي؟
- څنګه ولین دا هیکونه د رینزمواري رامینځته کولو لپاره کاروي

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

د پورته ټولو پراساس، دا عموما منل کیږي چې یو انکلیو یوازې د کوربه غوښتنلیک خدمت کولو توان لري، او دا چې انکلیو نشي کولی خپل نوښت تمرین کړي، په شمول د ناوړه خلکو په شمول. د دې معنی دا ده چې کلاګانې د ویروس لیکونکو لپاره هیڅ عملي ارزښت نلري. دا ګړندي انګیرنه یو له هغه دلیلونو څخه دی چې ولې د SGX محافظت غیر متناسب دی: د کوربه غوښتنلیک کوډ نشي کولی د انکلیو حافظې ته لاسرسی ومومي ، پداسې حال کې چې د انکلیو کوډ کولی شي د کوربه غوښتنلیک حافظې پتې ته لوستل او ولیکئ.

له همدې امله، که ناوړه انکلیو کوډ وکولی شي د کوربه غوښتنلیک په استازیتوب خپل سري سیسټم تلیفونونه وکړي ، د هغې په استازیتوب خپل سري کوډ اجرا کړي ، د کوربه غوښتنلیک حافظه سکین کړي او په هغې کې د ناوړه ګټه اخیستنې ROP زنځیرونه ومومي ، دا کولی شي د کوربه غوښتنلیک بشپړ کنټرول ترلاسه کړي. پټ حالت. دا نه یوازې د کارونکي فایلونه غلا او کوډ کولی شي ، بلکه د کارونکي په استازیتوب عمل هم کولی شي. د مثال په توګه، د هغه په ​​استازیتوب فشینګ بریښنالیکونه واستوئ یا د DoS بریدونه ترسره کړئ. د حتی خورا عصري محافظتي میکانیزمونو څخه ویره پرته، لکه د سټیک کانریري او پتې پاکول.

موږ به تاسو ته یو څو هیکونه وښیو چې برید کونکي د خپلو ناوړه موخو لپاره د SGX څخه ګټه پورته کولو لپاره پورته بیان شوي محدودیتونو باندې بریالي کولو لپاره کاروي: ROP بریدونه. یا د خپل سري کوډ اجرا کول چې د کوربه غوښتنلیک پروسې په څیر پوښل شوي (د پروسس هولوینګ ته ورته وي ، کوم چې ډیری وختونه د مالویر لخوا کارول کیږي) ، یا د چمتو شوي مالویر پټولو لپاره (د خپل مالویر د انټي ویروسونو او نورو دفاعي میکانیزمونو لخوا د تعقیب څخه خوندي کولو لپاره).

د پلټنې پتې لپاره هیک کړئ ترڅو وګورئ چې دوی لوستل کیدی شي

څرنګه چې انکلیو نه پوهیږي چې د مجازی پتې ځای کوم سلسلې کوربه غوښتنلیک ته د لاسرسي وړ دي ، او له دې امله چې انکلیو د نه لاسرسي پته لوستلو هڅه کولو پرمهال پای ته رسیدو ته اړ ایستل کیږي ، برید کونکی د غلطۍ لپاره د لارې موندلو دندې سره مخ کیږي - په زغم سره د پته ځای سکین کړئ. د شته مجازی ادرسونو نقشه کولو لپاره لاره ومومئ. ولن دا ستونزه د Intel د TSX ټیکنالوژۍ په کارولو سره حل کوي. د TSX یو له اړخیزو تاثیراتو څخه کار اخلي: که چیرې د حافظې لاسرسي فعالیت په TSX لیږد کې ځای په ځای شي ، نو بیا د غلط پته لاسرسي څخه رامینځته شوي استثناوې عملیاتي سیسټم ته رسیدو پرته د TSX لخوا فشار ورکول کیږي. که چیرې د غلط حافظې پتې ته د لاسرسي هڅه وشي، یوازې اوسنی لیږد لغوه کیږي، نه د بشپړ انکلیو پروګرام. هغه. TSX یو انکلیو ته اجازه ورکوي چې په خوندي ډول د لیږد له لارې هر ډول پتې ته لاسرسی ومومي - پرته د سقوط له خطر څخه.

که ټاکل شوی ادرس موجود دی د کوربه غوښتنلیک، د TSX لیږد اکثرا بریالی وي. په نادره مواردو کې، دا کیدای شي د خارجي اغیزو له امله ناکام شي لکه مداخلې (لکه د مهالویش مداخلې)، د کیچ ایستل، یا د ډیری پروسو لخوا د حافظې ځای په یو وخت کې بدلون. په دې نادرو قضیو کې، TSX د غلطۍ کوډ بیرته راګرځوي چې دا په ګوته کوي چې ناکامي لنډمهاله ده. په دې قضیو کې، تاسو یوازې د لیږد بیا پیلولو ته اړتیا لرئ.

که ټاکل شوی پته شتون نلري د کوربه غوښتنلیک، TSX هغه استثنا فشاروي چې پیښ شوي (OS خبر شوی نه دی) او معامله لغوه کوي. د خطا کوډ د انکلیو کوډ ته بیرته راستون شوی ترڅو دا حقیقت ته عکس العمل ښکاره کړي چې معامله لغوه شوې. دا خطا کوډونه په ګوته کوي چې د پوښتنې پته د کوربه غوښتنلیک لپاره شتون نلري.

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

د انکلیو له دننه څخه د TSX دا لاسوهنه د ولن لپاره ښه ځانګړتیا لري: ځکه چې د هارډویر ډیری فعالیت کاونټرونه د انکلیو کوډ اجرا کولو په وخت کې نوي شوي ندي ، نو دا ناشونې ده چې د انکلیو دننه ترسره شوي TSX معاملې تعقیب کړئ. په دې توګه، د TSX ناوړه لاسوهنه په عملیاتي سیسټم کې په بشپړه توګه پټه پاتې ده.

برسیره پردې، څرنګه چې پورتني هیک په هیڅ سیسټم تلیفونونو باندې تکیه نه کوي، دا د سیسټم تلیفونونو په بندولو سره نه کشف کیدی شي او نه یې مخنیوی کیدی شي؛ کوم چې معمولا د هګیو د ښکار پروړاندې مبارزه کې مثبته پایله ورکوي.

ولین د ROP سلسلې جوړولو لپاره مناسب ګیجټونو لپاره د کوربه غوښتنلیک کوډ لټون کولو لپاره پورته بیان شوي هیک کاروي. په ورته وخت کې، هغه اړتیا نلري چې هر پته وڅیړي. دا کافي ده چې د مجازی پتې ځای له هرې پاڼې څخه یو پته وپلټئ. د ټولې 16 ګیګابایټ حافظې پلټنه شاوخوا 45 دقیقې وخت نیسي (په Intel i7-6700K کې). د پایلې په توګه، ویلین د اجرا وړ پاڼو لیست ترلاسه کوي چې د ROP سلسلې جوړولو لپاره مناسب دي.

د لیکلو وړتیا لپاره د پتې پلټلو لپاره هیک

د ROP برید د انکلیو نسخه ترسره کولو لپاره ، برید کونکی اړتیا لري د کوربه غوښتنلیک د لیکلو وړ نه کارول شوي حافظې ساحو لټون وکړي. برید کونکی دا حافظه ځایونه د جعلي سټیک فریم انجیکشن کولو او د پیلوډ (شیل کوډ) انجیکشن لپاره کاروي. اصلي کرښه دا ده چې یو ناوړه انکلیو د دې توان نلري چې کوربه غوښتنلیک ته اړتیا ولري ترڅو د ځان لپاره حافظه تخصیص کړي ، مګر پرځای یې کولی شي د کوربه غوښتنلیک لخوا دمخه تخصیص شوي حافظې څخه ناوړه ګټه پورته کړي. که، البته، هغه اداره کوي پرته له دې چې د کلا له ړنګیدو پرته داسې سیمې ومومي.

ولن دا لټون د TSX بل اړخ اغیزې په کارولو سره ترسره کوي. لومړی، لکه څنګه چې د تیرې قضیې په څیر، دا د خپل شتون لپاره پته پلټنه کوي، او بیا ګوري چې ایا د دې پتې سره ورته پاڼه د لیکلو وړ ده. د دې کولو لپاره، کلیوال لاندې هیک کاروي: هغه د TSX لیږد کې د لیکلو فعالیت ځای په ځای کوي، او وروسته له دې چې بشپړ شي، مګر مخکې له دې چې بشپړ شي، هغه په ​​زور سره معامله لغوه کوي (واضح سقط).

د TSX لیږد څخه د راستنیدو کوډ ته په کتلو سره، برید کوونکی پوهیږي چې ایا دا د لیکلو وړ دی. که دا یو "ښکاره سقط" وي، کلیوال پوهیږي چې ثبت کول به بریالي شوي وي که هغه یې تعقیب کړي. که پاڼه یوازې د لوستلو وړ وي، نو معامله د "واضح بند" پرته د یوې غلطۍ سره پای ته رسیږي.

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

د TSX دا لاسوهنه یو بل خصوصیت لري چې د ویلن لپاره ښه دی (د هارډویر فعالیت کاونټرونو له لارې د تعقیب ناممکنیت سربیره): ځکه چې د حافظې لیکلو ټول حکمونه یوازې هغه وخت ژمن دي چې معامله بریالۍ وي ، د لیږد بشپړولو ته اړ ایستل ډاډ ترلاسه کوي چې د حافظې حجرې تفتیش شوي. پر خپل ځای پاتې دی.

د کنټرول جریان ریډیریټ کولو لپاره هیک

کله چې د یوې انکلیو څخه د ROP برید ترسره کول - د دودیز ROP بریدونو برعکس - برید کونکی کولی شي د RIP راجسټر کنټرول ترلاسه کړي پرته لدې چې په برید شوي برنامه کې کوم بګونه وکاروي (د بفر اوور فلو یا ورته ورته). یو برید کونکی کولی شي په مستقیم ډول د RIP راجستر ارزښت په سټیک کې زیرمه کړي. په ځانګړې توګه، دا کولی شي د دې راجستر ارزښت د خپل ROP سلسله سره بدل کړي.

که څه هم، که د ROP سلسله اوږده وي، نو بیا د کوربه غوښتنلیک سټیک لویه برخه لیکل کولی شي د معلوماتو فساد او غیر متوقع پروګرام چلند المل شي. بدمعاش چې غواړي خپل برید په پټه ترسره کړي، له دې حالت څخه راضي نه دی. له همدې امله ، دا د ځان لپاره جعلي لنډمهاله سټیک چوکاټ رامینځته کوي او خپل ROP سلسله پدې کې ساتي. د جعلي سټیک چوکاټ د تصادفي لیکلو وړ حافظې موقعیت کې ځای په ځای شوی ، اصلي سټیک پاتې کیږي.

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

پورته لست شوي درې هیکونه ولین ته څه ورکوي؟

(1) لومړی، د ناوړه ګټې اخیستنې له لارې د پلټنې پتې لپاره هیک کړئ ترڅو وګورئ چې دوی لوستل کیدی شي، - د ناوړه ګټه اخیستنې ROP ګیجټونو لپاره کوربه غوښتنلیک لټوي.

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

(۲) بیا له خوا د لیکلو وړتیا لپاره د پتې پلټلو لپاره هیک، - یو ناوړه انکلیو د کوربه غوښتنلیک په حافظه کې هغه سیمې پیژني چې د تادیه کولو انجیکشن لپاره مناسب دي.

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

(3) بیا ، انکلیو په مرحله (1) کې موندل شوي ګیجټونو څخه د ROP سلسله رامینځته کوي او دا زنځیر د کوربه غوښتنلیک سټیک ته داخلوي.

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

(4) په نهایت کې ، کله چې کوربه غوښتنلیک په تیر مرحله کې رامینځته شوي ROP سلسله سره مخ کیږي ، ناوړه تادیه اجرا کول پیل کوي - د کوربه غوښتنلیک د امتیازاتو او د سیسټم تلیفونونو کولو وړتیا سره.

څنګه یو کلیوال دا هیکونه د رنزووري جوړولو لپاره کاروي

وروسته له دې چې کوربه غوښتنلیک د ECALLs څخه د یوې له لارې کنټرول انکلیو ته لیږدوي (پرته له دې چې شک وکړي چې دا انکلیو ناوړه دی) ، ناوړه انکلیو د کوډ کوډ لپاره د کوربه غوښتنلیک په حافظه کې وړیا ځای لټوي (د خالي ځایونو په توګه اخیستل د حجرو هغه ترتیبونه. چې له صفرونو ډک دی). بیا له لارې د پلټنې پتې لپاره هیک کړئ ترڅو وګورئ چې دوی لوستل کیدی شي، - انکلیو په کوربه غوښتنلیک کې د اجرا وړ پا pagesو لټون کوي ​​او د ROP سلسله رامینځته کوي چې په اوسني لارښود کې د "RANSOM" په نوم نوې فایل رامینځته کوي (په ریښتیني برید کې ، انکلیو موجود کارونکي فایلونه کوډ کوي) او د تاوان پیغام ښیې. په ورته وخت کې، کوربه غوښتنلیک په ساده ډول باور لري چې انکلیو په ساده ډول دوه شمیرې اضافه کوي. دا په کوډ کې څه ښکاري؟

د اسانتیا لپاره، راځئ چې د تعریفونو له لارې ځینې یادونه معرفي کړو:

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

موږ د RSP او RBP راجسترونو اصلي ارزښتونه خوندي کوو ترڅو د تادیې اجرا کولو وروسته د کوربه غوښتنلیک نورمال عملیات بحال کړو:

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

موږ د مناسب سټیک چوکاټ په لټه کې یو (د برخې څخه کوډ وګورئ "د کنټرول جریان ریډائریټ کولو لپاره هیک").

د مناسب ROP وسایلو موندل:

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

د پیلوډ انجیکشن لپاره د ځای موندل:

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

موږ د ROP سلسله جوړه کوو:

د SGX مالویر: څنګه ولیان د نوي انټیل ټیکنالوژۍ څخه د نورو اهدافو لپاره ګټه پورته کوي پرته له دې چې هدف یې درلود

دا څنګه د Intel SGX ټیکنالوژي چې د ناوړه برنامو سره د مبارزې لپاره ډیزاین شوې ، د مخالف اهدافو ترلاسه کولو لپاره د ولن لخوا کارول کیږي.

سرچینه: www.habr.com

Add a comment