Google نے ClusterFuzzLite پروجیکٹ کی نقاب کشائی کی ہے، جو مسلسل انضمام کے نظام کے دوران ممکنہ کمزوریوں کی جلد پتہ لگانے کے لیے کوڈ کی فز ٹیسٹنگ کو قابل بناتا ہے۔ فی الحال، ClusterFuzz کو GitHub ایکشنز، Google Cloud Build، اور Prow میں پل درخواستوں کی فز ٹیسٹنگ کو خودکار کرنے کے لیے استعمال کیا جا سکتا ہے، لیکن مستقبل میں دیگر CI سسٹمز کے لیے سپورٹ شامل کیے جانے کی امید ہے۔ یہ پروجیکٹ ClusterFuzz پلیٹ فارم پر مبنی ہے، جو fuzz ٹیسٹنگ کلسٹرز کو مربوط کرنے کے لیے ڈیزائن کیا گیا ہے، اور Apache 2.0 لائسنس کے تحت لائسنس یافتہ ہے۔
واضح رہے کہ 2016 میں گوگل کے OSS-Fuzz سروس کے متعارف ہونے کے بعد سے، 500 سے زیادہ اہم اوپن سورس پروجیکٹس کو مسلسل فزنگ ٹیسٹنگ پروگرام میں قبول کیا گیا ہے۔ ان چیکوں کی بنیاد پر، 6500 سے زیادہ تصدیق شدہ خطرات کو حل کیا گیا ہے، اور 21 سے زیادہ کیڑے ٹھیک کیے گئے ہیں۔ ClusterFuzzLite مجوزہ تبدیلیوں کے جائزے کے دوران مسائل کا پہلے پتہ لگانے کے قابل بنا کر مبہم جانچ کے طریقہ کار کو تیار کرنا جاری رکھے ہوئے ہے۔ ClusterFuzzLite کو سسٹمڈ اور curl پروجیکٹس کے لیے تبدیلی کے جائزے کے عمل میں پہلے سے ہی ضم کر دیا گیا ہے، اور اس نے نئے کوڈ کے جائزے کے ابتدائی مرحلے کے دوران استعمال ہونے والے جامد تجزیہ کاروں اور لنٹرز سے چھوٹ جانے والی غلطیوں کا پتہ لگانے کے قابل بنایا ہے۔
ClusterFuzzLite C, C++، Java (اور دیگر JVM پر مبنی زبانوں)، Go، Python، Rust اور Swift میں پروجیکٹ کی تصدیق کی حمایت کرتا ہے۔ فزنگ ٹیسٹنگ LibFuzer انجن کے ذریعے کی جاتی ہے۔ ایڈریس سینیٹائزر، میموری سینیٹائزر، اور UBSan (Undefined BehaviorSanitizer) کو بھی میموری کی خرابیوں اور بے ضابطگیوں کی نشاندہی کرنے کے لیے استعمال کیا جا سکتا ہے۔
ClusterFuzzLite کی اہم خصوصیات میں شامل ہیں: کوڈ قبول کرنے سے پہلے غلطیوں کی نشاندہی کرنے کے لیے مجوزہ تبدیلیوں کا فوری جائزہ۔ حادثے کے حالات پر رپورٹس ڈاؤن لوڈ کرنا؛ کوڈ کی تبدیلیوں کا جائزہ لینے کے بعد سامنے نہ آنے والی گہری غلطیوں کی نشاندہی کرنے کے لیے مزید جدید فزنگ ٹیسٹنگ پر جانے کی صلاحیت؛ جانچ کے دوران کوڈ کوریج کا اندازہ لگانے کے لیے کوریج رپورٹس کی تخلیق؛ اور ایک ماڈیولر فن تعمیر جو آپ کو اپنی مطلوبہ فعالیت کو منتخب کرنے کی اجازت دیتا ہے۔
ایک یاد دہانی کے طور پر، فزنگ ٹیسٹنگ میں ہر قسم کے بے ترتیب ان پٹ ڈیٹا کے امتزاج کا ایک سلسلہ تیار کرنا شامل ہوتا ہے، حقیقی ڈیٹا کے قریب (مثلاً، بے ترتیب ٹیگ پیرامیٹرز کے ساتھ ایچ ٹی ایم ایل صفحات، آرکائیوز یا بے ترتیب عنوانات کے ساتھ تصاویر وغیرہ)، اور پروسیسنگ کے دوران ممکنہ ناکامیوں کو ریکارڈ کرنا۔ اگر کسی بھی ترتیب کے نتیجے میں کریش ہو جاتا ہے یا متوقع ردعمل سے مماثل نہیں ہوتا ہے، تو یہ طرز عمل ممکنہ طور پر کسی بگ یا کمزوری کی طرف اشارہ کرتا ہے۔
ماخذ: opennet.ru
