out-of-tree v1.0.0 یک جعبه ابزار برای توسعه و آزمایش اکسپلویت ها و ماژول های هسته لینوکس است.


out-of-tree v1.0.0 یک جعبه ابزار برای توسعه و آزمایش اکسپلویت ها و ماژول های هسته لینوکس است.

اولین نسخه (v1.0.0) out-of-tree، ابزاری برای توسعه و آزمایش اکسپلویت ها و ماژول های هسته لینوکس، منتشر شد.

خارج از درخت به شما این امکان را می دهد که برخی از اقدامات معمول را برای ایجاد محیط هایی برای اشکال زدایی ماژول ها و اکسپلویت های هسته، تولید آمار قابلیت اطمینان اکسپلویت خودکار کنید و همچنین توانایی ادغام آسان در CI (ادغام مداوم) را فراهم می کند.

هر ماژول یا اکسپلویت هسته با یک فایل .out-of-tree.toml توصیف می شود که اطلاعاتی را در مورد محیط مورد نیاز و (اگر یک سوء استفاده باشد) محدودیت های عملکرد در حضور برخی کاهش های امنیتی را مشخص می کند.

این جعبه ابزار همچنین به شما امکان می‌دهد نسخه‌های هسته خاصی را که تحت تأثیر یک آسیب‌پذیری قرار گرفته‌اند شناسایی کنید (با استفاده از دستور --guess)، و همچنین می‌تواند برای ساده‌سازی جستجوهای باینری برای یک commit خاص استفاده شود.

در زیر لیستی از تغییرات از نسخه v0.2 آمده است.

اضافه شده

  • توانایی محدود کردن تعداد هسته‌های تولید شده (بر اساس توضیحات در .out-of-tree.toml) و اجرای بررسی (pew خارج از درخت) با استفاده از —max= پارامتر X

  • دستور genall جدید، که به شما امکان می دهد تمام هسته ها را برای یک توزیع و نسخه خاص تولید کنید.

  • همه لاگ ها اکنون در پایگاه داده sqlite3 ذخیره می شوند. دستورات پیاده سازی شده برای پرس و جوهای ساده اغلب مورد نیاز، و همچنین صادرات داده به json و markdown.

  • محاسبه احتمال موفقیت موفقیت آمیز (بر اساس پرتاب های قبلی).

  • امکان ذخیره نتایج ساخت (پارامتر --dist جدید برای دستور pew خارج از درخت)

  • پشتیبانی از تولید ابرداده برای هسته های نصب شده در سیستم میزبان و همچنین ساخت مستقیم روی هاست.

  • پشتیبانی از هسته های شخص ثالث

  • محیط اشکال زدایی خارج از درخت اکنون به طور خودکار نمادهای اشکال زدایی را در سیستم میزبان جستجو می کند.

  • قابلیت مدیریت کاهش‌های امنیتی با فعال/غیرفعال کردن پرچم‌های KASLR، SMEP، SMAP و KPTI در حین اشکال‌زدایی اضافه شده است.

  • پارامتر --threads=N را به دستور تست pew خارج از درخت اضافه کرد، که می تواند برای تعیین تعداد رشته هایی که در آن ها برای ساخت/اجرا و آزمایش اکسپلویت ها و ماژول های هسته استفاده می شود، استفاده شود.

  • امکان تنظیم برچسبی که در لاگ ثبت می شود و سپس می توان از آن برای محاسبه آمار استفاده کرد.

  • قابلیت تعیین نسخه هسته بدون استفاده از عبارات منظم اضافه شده است.

  • دستور بسته جدید، برای آزمایش انبوه ماژول های اکسپلویت و هسته در زیر شاخه ها استفاده می شود.

  • در پیکربندی (.out-of-tree.toml) برای ماژول اکسپلویت و کرنل، قابلیت غیرفعال کردن KASLR، SMEP، SMAP و KPTI و همچنین تعیین تعداد هسته و حافظه مورد نیاز اضافه شده است.

  • در حال حاضر تصاویر (rootfs) به طور خودکار در حالی که اتوژن هسته در حال اجرا است بارگذاری می شوند. بوت استرپ دیگر مورد نیاز نیست.

  • پشتیبانی از هسته های CentOS

تغییرات

  • حال اگر تصویری (rootfs) برای نسخه مورد نیاز توزیع وجود نداشته باشد، خارج از درخت سعی می کند از تصویر نزدیکترین نسخه استفاده کند. به عنوان مثال، تصویر اوبونتو 18.04 برای اوبونتو 18.10.

  • اکنون تست‌های مربوط به ماژول‌های کرنل در صورتی که از دست رفته باشند، شکست تلقی نمی‌شوند (بدون آزمایش - بدون خطا!).

  • اگر حداقل یک مرحله (ساخت، راه‌اندازی یا آزمایش) روی هر یک از هسته‌ها شکست خورده باشد، خارج از درخت، کد خطای منفی را برمی‌گرداند.

  • پروژه به استفاده از ماژول‌های Go تغییر یافته است، ساخت با GO111MODULE=on اکنون ترجیح داده می‌شود.

  • تست های پیش فرض اضافه شد.

  • اگر اسمبلی موجود در ${TARGET}_test در Makefile پیاده سازی نشود، اکنون Test.sh به طور پیش فرض استفاده می شود.

  • گزارش هسته دیگر قبل از اجرای یک ماژول هسته یا اکسپلویت پاک نمی شود. برخی از اکسپلویت ها از نشت پایه هسته در dmesg برای دور زدن KASLR استفاده می کنند، بنابراین پاکسازی ممکن است منطق پیاده سازی شده اکسپلویت را خراب کند.

  • qemu/kvm اکنون از تمام قابلیت های پردازنده میزبان استفاده می کند.

حذف

  • کارخانه کرنل به دلیل اجرای تولید هسته بر اساس Dockerfiles به روز رسانی تدریجی به طور کامل حذف شد.

  • بوت استرپ کار دیگری انجام نمی دهد. این دستور در نسخه بعدی حذف خواهد شد.

درستی

  • در macOS، دیگر نیازی به GNU coreutils برای اجرا نیست.

  • فایل های موقت به دلیل خطاهای نصب در داخل داکر در برخی از سیستم ها به ~/.out-of-tree/tmp/ منتقل شده اند.

منبع: linux.org.ru

اضافه کردن نظر