چيڪ پوائنٽ تجويز ڪيل محفوظ-لنڪنگ تحفظ واري ٽيڪنڪ، ان کي وڌيڪ ڏکيو بنائڻ لاءِ ڪمزورين جو استحصال ڪرڻ

چيڪ پوائنٽ ڪمپني پيش ڪيو محفوظ-لنڪنگ تحفظ جو ميکانيزم، جيڪو اهو استحصال پيدا ڪرڻ ڏکيو بڻائي ٿو جيڪو ميلوڪ ڪال تي عمل ڪرڻ وقت مختص ڪيل بفرز ڏانهن اشارو جي تعريف يا ترميم کي ترتيب ڏئي ٿو. محفوظ-لنڪنگ ڪمزورين جي استحصال جي امڪان کي مڪمل طور تي بلاڪ نٿو ڪري، پر گهٽ ۾ گهٽ اوور هيڊ سان اهو خاص طور تي استحصال جي ڪجهه قسمن جي پيدائش کي پيچيده ڪري ٿو، ڇو ته استحصالي بفر اوور فلو کان علاوه، اهو ضروري آهي ته هڪ ٻيو نقصان ڳولڻ ضروري آهي جيڪو معلومات جي ليڪ ٿيڻ جو سبب بڻائيندو آهي. ياداشت ۾ ڍير جي جاءِ.

محفوظ-لنڪنگ لاڳو ڪندڙ پيچس Glibc (ptmalloc)، uClibc-NG (dlmalloc)، gperftools (tcmalloc) ۽ Google TCMalloc لاءِ تيار ڪيا ويا آهن، ۽ Chromium ۾ تحفظ کي اپ گريڊ ڪرڻ لاءِ پڻ تجويز ڪيل آهن.
2012 کان وٺي، Chromium اڳ ۾ ئي MaskPtr حفاظتي ٽيڪنڪ ۾ ٺاهي چڪو آهي جنهن جو مقصد ساڳيو مسئلو حل ڪرڻ آهي، پر چيڪ پوائنٽ کان حل اعلي ڪارڪردگي ڏيکاري ٿو).
تجويز ڪيل پيچ اڳ ۾ ئي آگسٽ رليز ۾ ترسيل لاءِ منظور ڪيا ويا آهن Glibc 3.32 ۽ Safe-linking کي ڊفالٽ طور فعال ڪيو ويندو. uClibc-NG محفوظ-لنڪنگ کي سپورٽ ڪري ٿو داخل ٿيو رليز 1.0.33 ۾ شامل آهي ۽ ڊفالٽ طور تي فعال آهي. gperftools ۾ تبديليون (پراڻي tcmalloc) قبول ڪيو، پر مستقبل جي رليز ۾ هڪ اختيار جي طور تي پيش ڪيو ويندو.

ٺاهيندڙ TCMalloc (نئين tcmalloc) قبول ڪرڻ کان انڪار ڪيو تبديل ڪريو، ڪارڪردگي جي سخت خرابي جو حوالو ڏيندي ۽ باقاعدي جانچڻ لاءِ وسيع ٽيسٽ شامل ڪرڻ جي ضرورت آهي ته هر شي توقع جي مطابق ڪم ڪري رهي آهي. چيڪ پوائنٽ انجنيئرز پاران جاچ پڌرو ڪيو ويو ته محفوظ-لنڪنگ جو طريقو ميموري جي اضافي استعمال جو سبب نه ٿو بڻجي، ۽ هيپ آپريشن ڪرڻ دوران ڪارڪردگي صرف 0.02 سيڪڙو گهٽجي ٿي، ۽ بدترين حالتن ۾ 1.5 سيڪڙو (مقابلي لاءِ، اوور هيڊ) Chromium ۾ استعمال ٿيل طريقو اندازو لڳايو ويو آهي "2٪ کان گهٽ"). شموليت
محفوظ-لنڪنگ جي نتيجي ۾ 2-3 اضافي اسيمبليءَ جي هدايتن تي عمل ڪيو وڃي ٿو هر ڀيري مفت () سڏيو وڃي ٿو، ۽ 3-4 هدايتون هر ڀيري malloc() سڏيو وڃي ٿو. شروعاتي ۽ بي ترتيب قيمت جي پيداوار جي مرحلن کي هلائڻ جي ضرورت ناهي.

چيڪ پوائنٽ تجويز ڪيل محفوظ-لنڪنگ تحفظ واري ٽيڪنڪ، ان کي وڌيڪ ڏکيو بنائڻ لاءِ ڪمزورين جو استحصال ڪرڻ

محفوظ-لنڪنگ استعمال ڪري سگهجي ٿو نه رڳو مختلف هيپ لاڳو ڪرڻ جي سيڪيورٽي کي بهتر ڪرڻ لاءِ، پر ڪنهن به ڊيٽا جي جوڙجڪ ۾ سالميت ڪنٽرول شامل ڪرڻ لاءِ جيڪي پاڻ بفرن جي اڳيان رکيل پوائنٽرن جي اڪيلو ڳنڍيل فهرستن کي استعمال ڪن ٿيون. عمل ڪرڻ جو طريقو بلڪل سادو آهي ۽ صرف هڪ ميڪرو کي شامل ڪرڻ جي ضرورت آهي ۽ ان کي ڪوڊ ۾ ايندڙ بلاڪ ڏانهن اشارو ڪرڻ جي ضرورت آهي (مثال طور، Glibc لاءِ تبديل ٿيو آهي ڪوڊ جون صرف چند لائينون). اهو طريقو هيٺ ڏنل تبديلين ڏانهن وڌي ٿو:

+# بيان ڪريو PROTECT_PTR (pos, ptr) \
+ ((__ ٽائيپ آف (پي ٽي آر)) ((((سائز_ٽ) پوسٽ) >> 12) ^ ((سائز_ٽ) پي ٽي آر)))

+# بيان ڪريو REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr)

- nextp = p->fd؛
+ nextp = REVEAL_PTR (p->fd)؛
...

طريقي جو خلاصو اهو آهي ته ASLR ايڊريس randomization ميڪانيزم (mmap_base) مان بي ترتيب واري ڊيٽا کي استعمال ڪرڻ لاءِ اڪيلو ڳنڍيل فهرستن کي بچائڻ لاءِ جيئن فاسٽ بِنس ۽ TCache. فهرست ۾ ايندڙ عنصر ڏانهن پوائنٽر تي قيمت لاڳو ٿيڻ کان اڳ، اهو هڪ ماسڪ ڪنورشن انجام ڏئي ٿو ۽ صفحي جي ترتيب جي جانچ ڪري ٿو. پوائنٽر کي آپريشن جي نتيجي ۾ تبديل ڪيو ويندو آهي "(L >> PAGE_SHIFT) XOR (P)"، جتي P پوائنٽر جي قيمت آهي ۽ L ميموري جڳهه آهي جتي پوائنٽر ذخيرو ٿيل آهي.

چيڪ پوائنٽ تجويز ڪيل محفوظ-لنڪنگ تحفظ واري ٽيڪنڪ، ان کي وڌيڪ ڏکيو بنائڻ لاءِ ڪمزورين جو استحصال ڪرڻ

جڏهن سسٽم ۾ استعمال ڪيو وڃي ASLR (Adress Space Layout Randomization) هيپ بيس ايڊريس سان L بٽس جو حصو بي ترتيب قدرن تي مشتمل آهي جيڪي P کي انڪوڊ ڪرڻ لاءِ ڪيچي طور استعمال ڪيا ويندا آهن (12-بائيٽ صفحن لاءِ 4096-bit شفٽ آپريشن ذريعي ڪڍيا ويا). هي هٿرادو استحصال ۾ پوائنٽر جي هائيجيڪنگ جي خطري کي گھٽائي ٿو، ڇاڪاڻ ته پوائنٽر ان جي اصلي شڪل ۾ محفوظ نه آهي ۽ ان کي تبديل ڪرڻ لاء هيپ مختص جي ڄاڻ جي ضرورت آهي. ان کان علاوه، پيچ ڪوڊ ۾ بلاڪ جي ترتيب لاء هڪ اضافي چيڪ پڻ شامل آهي، جيڪو هڪ حملي ڪندڙ کي اجازت نه ڏيندو آهي ته هڪ پوائنٽر کي هڪ غير ترتيب ڏنل قدر سان تبديل ڪري ۽ انهي جي ڄاڻ جي ضرورت آهي بٽس جي تعداد جي ڄاڻ جي ضرورت آهي جيڪي ترتيب ڏنل آهن، جيڪو 64-bit سسٽم تي اضافي طور تي بلاڪنگ جي اجازت ڏئي ٿو. 15 مان 16 حملي جون ڪوششون جيڪي ترتيب ۾ نه ٿيون وٺن.

اهو طريقو انهن حملن کان بچاءَ لاءِ اثرائتو آهي جيڪي جزوي پوائنٽر ري رائيٽنگ استعمال ڪن ٿا (گهٽ بائيٽ تبديل ڪرڻ)، مڪمل پوائنٽر ري رائيٽنگ (حملو ڪندڙ جي ڪوڊ ڏانهن ريڊائريڪيشن) ۽ فهرست جي پوزيشن کي غير ترتيب ڏنل پتي تي تبديل ڪرڻ. مثال طور، اهو ڏيکاريو ويو آهي ته malloc ۾ محفوظ-لنڪنگ جو استعمال تازو استحصال کي بلاڪ ڪرڻ جي اجازت ڏيندو. سڃاڻپ ساڳئي نقصان جي تحقيق ڪندڙن طرفان CVE-2020-6007 فلپس هيو برج سمارٽ لائيٽ ۾، بفر اوور فلو جي ڪري ۽ توهان کي ڊوائيس تي ڪنٽرول حاصل ڪرڻ جي اجازت ڏئي ٿي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو