چیک پوائنٹ نے سیف لنکنگ پروٹیکشن تکنیک کی تجویز پیش کی، جس سے کمزوریوں کا فائدہ اٹھانا مزید مشکل ہو گیا۔

چیک پوائنٹ کمپنی پیش کیا سیف لنکنگ پروٹیکشن میکانزم، جو ایسے کارناموں کو تخلیق کرنا مشکل بناتا ہے جو malloc کال پر عمل کرتے وقت مختص کردہ بفرز کے پوائنٹرز کی تعریف یا ترمیم میں ہیرا پھیری کرتے ہیں۔ سیف لنکنگ خطرات سے فائدہ اٹھانے کے امکان کو مکمل طور پر روک نہیں دیتی ہے، لیکن کم سے کم اوور ہیڈ کے ساتھ یہ استحصال کی کچھ اقسام کی تخلیق کو نمایاں طور پر پیچیدہ بناتا ہے، کیونکہ استحصالی بفر اوور فلو کے علاوہ، ایک اور کمزوری کو تلاش کرنا ضروری ہے جو معلومات کے رساو کا سبب بنتا ہے۔ میموری میں ڈھیر کی جگہ کا تعین.

Glibc (ptmalloc)، uClibc-NG (dlmalloc)، gperftools (tcmalloc) اور Google TCMalloc کے لیے Safe-Linking کو نافذ کرنے والے پیچ تیار کیے گئے ہیں، اور Chromium میں تحفظ کو اپ گریڈ کرنے کے لیے بھی تجویز کیا گیا ہے۔
2012 کے بعد سے، Chromium نے پہلے سے ہی ماسک پی ٹی آر پروٹیکشن تکنیک بنائی ہے جس کا مقصد اسی مسئلے کو حل کرنا ہے، لیکن چیک پوائنٹ کا حل اعلی کارکردگی کو ظاہر کرتا ہے)۔
تجویز کردہ پیچ اگست کی ریلیز میں ڈیلیوری کے لیے پہلے ہی منظور ہو چکے ہیں۔ گلیبک ایکس این ایم ایکس اور Safe-linking بطور ڈیفالٹ فعال ہو جائے گا۔ uClibc-NG سیف لنکنگ کو سپورٹ کرتا ہے۔ داخل ریلیز 1.0.33 میں شامل ہے اور بطور ڈیفالٹ فعال ہے۔ gperftools میں تبدیلیاں (پرانے tcmalloc) قبول کر لیا، لیکن مستقبل کی ریلیز میں ایک آپشن کے طور پر پیش کیا جائے گا۔

ڈیولپرز TCMalloc (new tcmalloc) نے قبول کرنے سے انکار کر دیا۔ تبدیلی، کارکردگی میں شدید تنزلی کا حوالہ دیتے ہوئے اور باقاعدگی سے جانچنے کے لیے وسیع ٹیسٹ شامل کرنے کی ضرورت ہے کہ سب کچھ توقع کے مطابق کام کر رہا ہے۔ چیک پوائنٹ انجینئرز کی جانچ سے معلوم ہوا کہ محفوظ لنک کرنے کا طریقہ میموری کی اضافی کھپت کا باعث نہیں بنتا، اور ہیپ آپریشنز کرتے وقت کارکردگی اوسطاً صرف 0.02 فیصد کم ہوتی ہے، اور بدترین صورت حال میں 1.5 فیصد (مقابلے کے لیے، اوور ہیڈ لاگت) کرومیم میں استعمال ہونے والے طریقہ میں اندازہ لگایا گیا ہے کہ "2% سے کم")۔ شمولیت
سیف لنکنگ کے نتیجے میں جب بھی فری() بلایا جاتا ہے تو 2-3 اضافی اسمبلی ہدایات پر عمل درآمد ہوتا ہے، اور جب بھی malloc() بلایا جاتا ہے تو 3-4 ہدایات ہوتی ہیں۔ ابتدائی اور بے ترتیب قدر پیدا کرنے کے مراحل کو چلانے کی ضرورت نہیں ہے۔

چیک پوائنٹ نے سیف لنکنگ پروٹیکشن تکنیک کی تجویز پیش کی، جس سے کمزوریوں کا فائدہ اٹھانا مزید مشکل ہو گیا۔

سیف لنکنگ کا استعمال نہ صرف مختلف ہیپ کے نفاذ کی سیکیورٹی کو بہتر بنانے کے لیے کیا جا سکتا ہے، بلکہ کسی بھی ڈیٹا ڈھانچے میں انٹیگریٹی کنٹرولز کو شامل کرنے کے لیے بھی استعمال کیا جا سکتا ہے جو بفرز کے آگے رکھے ہوئے پوائنٹرز کی اکیلے منسلک فہرستوں کا استعمال کرتے ہیں۔ طریقہ کار کو لاگو کرنے کے لئے بہت آسان ہے اور صرف ایک میکرو کو شامل کرنے اور اسے کوڈ میں اگلے بلاک پر پوائنٹرز پر لاگو کرنے کی ضرورت ہے (مثال کے طور پر، Glibc کے لئے تبدیلیاں کوڈ کی صرف چند لائنیں)۔ طریقہ درج ذیل تبدیلیوں پر ابلتا ہے:

+# کی وضاحت کریں PROTECT_PTR(pos, ptr) \
+ ((__ٹائپ آف (پی ٹی آر)) ((((سائز_ٹی)پوز) >> 12) ^ ((سائز_ٹی) پی ٹی آر)))

+#REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr) کی وضاحت کریں

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

طریقہ کار کا خلاصہ یہ ہے کہ ASLR ایڈریس رینڈمائزیشن میکانزم (mmap_base) سے بے ترتیب ڈیٹا کو استعمال کیا جائے تاکہ اکیلے منسلک فہرستوں جیسے کہ Fast-Bins اور TCache کی حفاظت کی جاسکے۔ قیمت کے لیے فہرست میں اگلے عنصر پر پوائنٹر لگانے سے پہلے، یہ ایک ماسک کنورژن کرتا ہے اور صفحہ کی سیدھ کی جانچ کرتا ہے۔ پوائنٹر کو آپریشن "(L >> PAGE_SHIFT) XOR (P)" کے نتیجے میں تبدیل کیا جاتا ہے، جہاں P پوائنٹر کی قدر ہے اور L میموری کی جگہ ہے جہاں پوائنٹر کو ذخیرہ کیا جاتا ہے۔

چیک پوائنٹ نے سیف لنکنگ پروٹیکشن تکنیک کی تجویز پیش کی، جس سے کمزوریوں کا فائدہ اٹھانا مزید مشکل ہو گیا۔

جب سسٹم میں استعمال ہوتا ہے۔ ASLR (ایڈریس اسپیس لے آؤٹ رینڈمائزیشن) ہیپ بیس ایڈریس کے ساتھ L بٹس کا حصہ بے ترتیب اقدار پر مشتمل ہوتا ہے جو P کو انکوڈ کرنے کے لیے کلید کے طور پر استعمال ہوتا ہے (12-بائٹ صفحات کے لیے 4096 بٹ شفٹ آپریشن کے ذریعے نکالا جاتا ہے)۔ یہ ہیرا پھیری کسی استحصال میں پوائنٹر کے ہائی جیکنگ کے خطرے کو کم کرتی ہے، کیونکہ پوائنٹر اپنی اصل شکل میں محفوظ نہیں ہوتا ہے اور اسے تبدیل کرنے کے لیے ہیپ ایلوکیشن کا علم درکار ہوتا ہے۔ اس کے علاوہ، پیچ کوڈ میں بلاک الائنمنٹ کے لیے ایک اضافی چیک بھی ہوتا ہے، جو حملہ آور کو غیر منسلک قدر کے ساتھ پوائنٹر کو تبدیل کرنے کی اجازت نہیں دیتا ہے اور اس کے لیے منسلک بٹس کی تعداد کا علم درکار ہوتا ہے، جو کہ 64 بٹ سسٹمز پر اضافی طور پر بلاکنگ کی اجازت دیتا ہے۔ 15 میں سے 16 حملے کی کوششیں جو کہ صف بندی کو خاطر میں نہیں لاتی ہیں۔

یہ طریقہ ان حملوں سے بچانے کے لیے موثر ہے جو جزوی پوائنٹر ری رائٹنگ (کم بائٹس کو تبدیل کرنا)، مکمل پوائنٹر ری رائٹنگ (حملہ آور کے کوڈ کی طرف ری ڈائریکٹ) اور غیر منسلک ایڈریس پر فہرست کی پوزیشن کو تبدیل کرتے ہیں۔ مثال کے طور پر، یہ دکھایا گیا ہے کہ malloc میں Safe-linking کا استعمال حال ہی میں استحصال کو روکنے کی اجازت دے گا۔ شناخت اسی خطرے کے محققین کی طرف سے CVE-2020-6007 فلپس ہیو برج سمارٹ لائٹ میں، بفر اوور فلو کی وجہ سے اور آپ کو ڈیوائس پر کنٹرول حاصل کرنے کی اجازت دیتا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں