قسمت 9: توسط آدریان تیلور در Mountain View (دسامبر، 2019)
قسمت های قبلی
ممکن است متوجه شوید که از شما خواسته شده است که اشکالات امنیتی با اولویت بالا کشف شده توسط ClusterFuzz را برطرف کنید. چیست؟ آیا باید آن اشکالات را جدی بگیرید؟ چگونه می توانید کمک کنید؟
ClusterFuzz ورودی را به Chrome تغذیه می کند و خرابی ها را تماشا می کند. برخی از ساختهای Chrome دارای بررسیهای اضافی فعال هستند، برای مثال AddressSanitizer ، که به دنبال خطاهای ایمنی حافظه میگردد.
ClusterFuzz اجزا را بر اساس محل خرابی تخصیص می دهد و شدت را بر اساس نوع خرابی و اینکه آیا در یک فرآیند sandboxed اتفاق افتاده است اختصاص می دهد . بهعنوان مثال، استفاده از پشتهها پس از آزاد شدن از شدت بالایی برخوردار است، مگر اینکه در فرآیند مرورگر باشد، که در این صورت بسیار مهم است (بدون ماسهبازی برای محدود کردن تأثیر!):
class Foo {
Widget* widget;
};
void Foo::Bar() {
delete widget;
...
widget->Activate(); // Bad in the renderer process, worse in the
// browser process. Obviously, real bugs are
// more subtle. Usually.
ClusterFuzz ورودی را از fuzzer ها یا از اشکالات ارسال شده خارجی تولید می کند. برخی از fuzzer ها توسط libFuzzer تغذیه می شوند که ورودی را برای افزایش پوشش کد توسعه می دهد. برخی گرامر زبان ورودی تبدیل شده به protobufs
را درک می کنند. هنگامی که ClusterFuzz یک خرابی را پیدا کرد، سعی می کند تا مورد تست ورودی را به حداقل برساند و حتی برای یافتن ارتکاب متخلف دو نیم می کند . خیلی پیدا میکنه...
شما می توانید کمک کنید:
- در مورد طول عمر اشیا و سرریز اعداد صحیح پارانویا باشید.
- fuzzer های جدید اضافه کنید، به خصوص زمانی که داده های غیرقابل اعتماد یا IPC را پردازش می کنید (پیوندهای زیر را ببینید، اغلب کمتر از 20 خط کد).
- رفع اشکالات گزارش شده توسط ClusterFuzz: به اکتشافی های شدت آن می توان اعتماد کرد زیرا مبتنی بر قابلیت بهره برداری در دنیای واقعی است : حتی یک سرریز بایت منجر به اجرای کد دلخواه توسط یک مهاجم شده است.
منابع
- تست فاز در Chromium : نحوه افزودن fuzzer های جدید به ClusterFuzz برای فرمت های داده جدید، یا فقط به این دلیل که اعتبار یافتن vuln های عالی را می خواهید.
- بهروزرسانی برنامه Chrome Fuzzer و نحوه انجام آن : Fuzzers نیز توسط مشارکتکنندگان خارجی نوشته میشود. در مورد تجربه آنها بشنوید و بدانید که چگونه می توان شروع به کار کرد.