لینکس کرنل میں کمزوریوں کے استحصال سے بچانے کے لیے LKRG 0.8 ماڈیول کا اجرا

اوپن وال پروجیکٹ опубликовал کرنل ماڈیول کی رہائی LKRG 0.8 (Linux Kernel Runtime Guard)، حملوں اور کرنل ڈھانچے کی سالمیت کی خلاف ورزیوں کا پتہ لگانے اور روکنے کے لیے ڈیزائن کیا گیا ہے۔ مثال کے طور پر، ماڈیول چلنے والے دانا میں غیر مجاز تبدیلیوں اور صارف کے عمل کی اجازتوں کو تبدیل کرنے کی کوششوں (استعمال کے استعمال کا پتہ لگانا) سے حفاظت کر سکتا ہے۔ ماڈیول لینکس کرنل کے لیے پہلے سے معلوم کارناموں کے خلاف تحفظ کو منظم کرنے کے لیے موزوں ہے (مثال کے طور پر، ایسے حالات میں جہاں سسٹم میں کرنل کو اپ ڈیٹ کرنا مشکل ہو)، اور ابھی تک نامعلوم کمزوریوں کے استحصال کا مقابلہ کرنے کے لیے۔ پروجیکٹ کوڈ نے بانٹا GPLv2 کے تحت لائسنس یافتہ۔

نئے ورژن میں تبدیلیوں کے درمیان:

  • LKRG پروجیکٹ کی پوزیشننگ کو تبدیل کر دیا گیا ہے، جسے اب سالمیت کی جانچ کرنے اور استحصال کے استعمال کا تعین کرنے کے لیے الگ الگ ذیلی نظاموں میں تقسیم نہیں کیا گیا ہے، بلکہ اسے حملوں اور سالمیت کی مختلف خلاف ورزیوں کی شناخت کے لیے ایک مکمل پروڈکٹ کے طور پر پیش کیا گیا ہے۔
  • لینکس کرنل کے ساتھ 5.3 سے 5.7 تک مطابقت فراہم کی جاتی ہے، ساتھ ہی ساتھ CONFIG_USB اور CONFIG_STACKTRACE آپشنز کے بغیر، یا CONFIG_UNWINDER_ORC آپشن کے ساتھ، نیز ان کرنل کے ساتھ جو کہ اگر وہ LOKRGOK نہیں کر سکتے ہیں، جارحانہ GCC آپٹیمائزیشن کے ساتھ مرتب کیے گئے ہیں۔ کے ساتھ تقسیم کیا جائے
  • تعمیر کرتے وقت، کچھ لازمی CONFIG_* کرنل سیٹنگز کو غیر واضح کریش کے بجائے بامعنی ایرر میسیجز بنانے کے لیے چیک کیا جاتا ہے۔
  • اسٹینڈ بائی (ACPI S3، سسپنڈ ٹو RAM) اور سلیپ (S4، ڈسک پر معطل) موڈز کے لیے سپورٹ شامل کیا گیا ہے۔
  • میک فائل میں ڈی کے ایم ایس سپورٹ شامل کیا گیا۔
  • 32-bit ARM پلیٹ فارمز کے لیے تجرباتی تعاون کو لاگو کیا گیا ہے (Raspberry Pi 3 Model B پر تجربہ کیا گیا ہے)۔ Raspberry Pi 64 بورڈ کے ساتھ مطابقت فراہم کرنے کے لیے پہلے سے دستیاب AArch64 (ARM4) سپورٹ کو بڑھا دیا گیا ہے۔
  • نئے ہکس شامل کیے گئے ہیں، جس میں ایک قابل() کال ہینڈلر بھی شامل ہے تاکہ ان کارناموں کو بہتر طریقے سے شناخت کیا جا سکے جو "ہیرا پھیری کرتے ہیں۔صلاحیتوں"، IDs پر کارروائی نہیں (اسناد);
  • نام کی جگہ کی پابندیوں سے بچنے کی کوششوں کا پتہ لگانے کے لیے نئی منطق تجویز کی گئی ہے (مثال کے طور پر، ڈوکر کنٹینرز سے)؛
  • x86-64 سسٹمز پر، SMAP (Supervisor Mode Access Prevention) بٹ کو چیک کیا جاتا ہے اور لاگو کیا جاتا ہے، جو کرنل کی سطح پر چلنے والے مراعات یافتہ کوڈ سے صارف کی جگہ کے ڈیٹا تک رسائی کو روکنے کے لیے ڈیزائن کیا گیا ہے۔ SMEP (Supervisor Mode Execution Prevention) تحفظ پہلے نافذ کیا گیا تھا۔
  • آپریشن کے دوران، LKRG سیٹنگز کو میموری پیج میں رکھا جاتا ہے جو عام طور پر صرف پڑھنے کے لیے ہوتا ہے۔
  • لاگنگ کی معلومات جو حملوں کے لیے سب سے زیادہ کارآمد ہو سکتی ہے (مثال کے طور پر، کرنل میں پتوں کے بارے میں معلومات) ڈیبگنگ موڈ تک محدود ہے (log_level=4 اور اس سے زیادہ)، جو بطور ڈیفالٹ غیر فعال ہے۔
  • پروسیس ٹریکنگ ڈیٹا بیس کی اسکیل ایبلٹی میں اضافہ کیا گیا ہے - ایک اسپن لاک کے ذریعے محفوظ کردہ ایک آر بی ٹری کے بجائے، 512 ریڈ رائٹ لاک کے ذریعے محفوظ 512 آر بی درختوں کی ایک ہیش ٹیبل استعمال کی گئی ہے۔
  • ایک موڈ کو بطور ڈیفالٹ نافذ اور فعال کیا گیا ہے، جس میں عمل کے شناخت کنندگان کی سالمیت کو اکثر صرف موجودہ کام کے لیے، اور اختیاری طور پر چالو (جاگنے) کے کاموں کے لیے بھی چیک کیا جاتا ہے۔ دوسرے کاموں کے لیے جو نیند کی حالت میں ہیں یا LKRG کے زیر کنٹرول کرنل API تک رسائی کے بغیر کام کر رہے ہیں، چیک کم کثرت سے کیا جاتا ہے۔
  • فائن ٹیوننگ LKRG کے لیے نئے sysctl اور ماڈیول پیرامیٹرز کے ساتھ ساتھ ڈویلپرز کی طرف سے تیار کردہ فائن ٹیوننگ سیٹنگز (پروفائلز) کے سیٹوں سے منتخب کر کے آسان کنفیگریشن کے لیے دو sysctl شامل کیے گئے ہیں۔
  • پہلے سے طے شدہ ترتیبات کو تبدیل کر دیا گیا ہے تاکہ ایک طرف خلاف ورزیوں کا پتہ لگانے کی رفتار اور ردعمل کی تاثیر کے درمیان زیادہ متوازن توازن حاصل کیا جا سکے، اور دوسری طرف کارکردگی پر اثرات اور غلط مثبت کے خطرے کے درمیان۔
  • سسٹمڈ یونٹ فائل کو ایل کے آر جی ماڈیول کو بوٹ کے شروع میں لوڈ کرنے کے لیے دوبارہ ڈیزائن کیا گیا ہے (ماڈیول کو غیر فعال کرنے کے لیے کرنل کمانڈ لائن آپشن استعمال کیا جا سکتا ہے)؛

نئی ریلیز میں تجویز کردہ اصلاح کو مدنظر رکھتے ہوئے، LKRG 0.8 استعمال کرتے وقت کارکردگی میں کمی کا تخمینہ 2.5% ڈیفالٹ موڈ ("ہیوی") اور 2% لائٹ موڈ ("لائٹ") میں لگایا گیا ہے۔

حال ہی میں منعقد ہونے والے ایک اجلاس میں تحقیق روٹ کٹس LKRG کا پتہ لگانے کے لئے پیکجوں کی تاثیر دکھایا بہترین نتائج، غلط مثبت کے بغیر کرنل کی سطح پر کام کرنے والے 8 میں سے 9 ٹیسٹ شدہ روٹ کٹس کی شناخت (rootkits Diamorphine, Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit اور Sutekh کی شناخت کی گئی تھی، لیکن Keysniffer، جو ایک ہے ماڈیول، ایک keylogger کے ساتھ چھوٹ گیا تھا، لفظی معنی میں روٹ کٹ نہیں)۔ مقابلے کے لیے، AIDE، OSSEC اور Rootkit ہنٹر پیکجز نے 2 میں سے 9 روٹ کٹس کا پتہ لگایا، جبکہ Chkrootkit نے کسی کا پتہ نہیں لگایا۔ ایک ہی وقت میں، LKRG صارف کی جگہ میں موجود روٹ کٹس کی کھوج کی حمایت نہیں کرتا ہے، لہذا سب سے زیادہ کارکردگی AIDE اور LKRG کے امتزاج کا استعمال کرتے وقت حاصل کی جاتی ہے، جس نے تمام اقسام کی 14 میں سے 15 روٹ کٹس کی شناخت ممکن بنائی۔

مزید برآں، یہ نوٹ کیا جا سکتا ہے کہ ڈسٹری بیوشن ڈویلپر Whonix شروع کر دیا تشکیل دینا Debian، Whonix، Qubes اور Kickecure کے لیے DKMS کے ساتھ ریڈی میڈ پیکجز، اور ایک پیکج آرک لینکس پہلے ہی ورژن 0.8 میں اپ ڈیٹ کیا گیا ہے۔ LKRG کے ساتھ پیکیجز روسی زبان میں بھی دستیاب ہیں۔ ALT لینکس и آسٹرا لینکس.

LKRG میں انٹیگریٹی چیکنگ کرنل اور ماڈیولز کے اصل کوڈ اور ڈیٹا، کچھ اہم ڈیٹا سٹرکچرز اور CPU سیٹنگز کا ذخیرہ شدہ ہیشز یا متعلقہ میموری ایریاز، ڈیٹا سٹرکچر یا رجسٹر کی کاپیوں کے ساتھ موازنہ کر کے کی جاتی ہے۔ چیکس کو وقتاً فوقتاً ٹائمر کے ذریعے اور مختلف واقعات کے پیش آنے پر چالو کیا جاتا ہے۔

استحصال کے ممکنہ استعمال اور حملوں کو روکنے کا تعین اس مرحلے پر کیا جاتا ہے اس سے پہلے کہ کرنل وسائل تک رسائی فراہم کرے (مثال کے طور پر، فائل کھولنے سے پہلے)، لیکن اس عمل کو غیر مجاز اجازتیں ملنے کے بعد (مثال کے طور پر، UID کو تبدیل کرنا)۔ جب غیر مجاز رویے کا پتہ چل جاتا ہے، تو عمل کو بطور ڈیفالٹ ختم کرنے پر مجبور کیا جاتا ہے، جو بہت سے کارناموں کو روکنے کے لیے کافی ہے۔

ماخذ: opennet.ru

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