یکی از مراحل ضروری در توسعه نرمافزار، کنترل کیفیت است. توسعهدهندگان در این فرایند باید توجه زیادی به امنیت و پایداری نرمافزار داشته باشند. تست فازینگ (Fuzzing Test) یا فاز تستینگ (Fuzz Testing) یکی از رایجترین و کارامدترین روشهای بررسی امنیت و پایداری نرمافزارها است. فازر هوشمند سایبرنو با انجام این تست روی نرمافزارهای شما، امنیت و پایداری آنها را میسنجد.
یکی از روشهای هکرها برای ایجاد کرش در نرمافزارها که گاهی اوقات منجر به نشت اطلاعات میشود، وارد کردن حجم بسیار زیادی از ورودیهای تصادفی و غیرمنتظره (Fuzz) است. بر این اساس، آزمونی به نام تست فازینگ طراحی شده است که در آن، ابزاری به نام فازر (Fuzzer)، ورودیهای Fuzz را به نرمافزار معرفی و خروجیهای نرمافزار را برای شناسایی باگها و آسیبپذیریهای احتمالی، نشت اطلاعات یا کرش شدن، بررسی میکند. برای آشنایی بیشتر با تست فازینگ به مقاله «فازینگ چیست؟ با بهترین روش تست امنیت و پایداری نرمافزار آشنا شوید» مراجعه کنید.
فازر هوشمند سایبرنو، محصولی از شرکت امنیت سایبری سایبرنو است که تست فازینگ را به صورت خودکار روی محصولات نرمافزاری شما انجام میدهد. این محصول میتواند آسیبپذیریهای احتمالی موجود در نرمافزارها را با صرف کمترین هزینه و در کوتاهترین زمان ممکن شناسایی کند. همچنین، فازر هوشمند سایبرنو قابلیت شناسایی باگها و آسیبپذیریهایی که به صورت دستی قابل شناسایی نیستند را نیز دارد.
فازر هوشمند سایبرنو برخلاف روش مرسوم در فاز تستینگ، ورودیهای تصادفی یا مبتنی بر فرمت فایل به نرمافزار معرفی نمیکند، بلکه با استفاده از قابلیت Intel PT در پردازندهها، ابزار Intel Pin و الگوریتمهای یادگیری ماشین، میزان پوشش (Coverage) نرمافزار را در هر بار اجرا شناسایی و در هر دور اجرا، ورودیهایی به نرمافزار معرفی میکند که بیشترین پوشش را دارند.
پین (Pin) یک فریمورک تحلیل فایل باینری داینامیک است که با استفاده از آن میتوان ابزارهای تحلیل نرمافزار را برای سیستمهای عامل ویندوز و لینوکس، توسعه داد. میتوان از این محصول شرکت اینتل برای نظارت و ثبت رفتار نرمافزار در حال اجرا، استفاده کرد. ابزارهایی که با این فناوری ساخته میشوند Pintool نام میگیرند. در فازر هوشمند سایبرنو، از این فناوری برای تست فازینگ بدون نیاز به دسترسی به کد منبع استفاده میشود. این در حالی است که در اکثر فازرها از کد منبع برای ایجاد ابزار دقیق فازینگ و شناسایی باگهای نرمافزار، استفاده میشود. بنابراین، روش فاز تستینگ مورد استفاده فازر هوشمند سایبرنو، یک روش جعبه سیاه است. در بسیاری از موارد، اجرای تست فازینگ با دسترسی به کد منبع امکانپذیر است. برای مثال، زمانی که توسعهدهنده میخواهد نرمافزاری را که خودش توسعه داده است، تست کند میتواند از روش معمول فازینگ با دسترسی به کد منبع استفاده کند. با این حال، در دو وضعیت زیر باید فاز تستینگ بدون دسترسی به کد منبع انجام شود:
۱- کشف آسیبپذیری در نرمافزارهایی که به کد آنها دسترسی نداریم.
۲- کنترل کیفیت نرمافزار در سیستمهای Legacy (نسخههای قدیمی یا عمومی شده نرمافزارها، یا نرمافزارهای تجاری که به کد آنها دسترسی نداریم.)
گفتیم که فازر هوشمند سایبرنو میتواند بدون دسترسی به کد منبع، تست فازینگ را انجام دهد. این فازر، قابلیتهای متعددی دیگری نیز دارد که از مهمترین آنها میتوان به موارد زیر اشاره کرد:
بیشترین کاربرد این فازر برای شناسایی آسیبپذیریها در برنامههای دارای پسوند EXE یا DLL است. شما میتوانید با این فازر، اسیبپذیریهای بالقوه در نرمافزارهای سیستم عامل ویندوز توسعه داده شده توسط خودتان را شناسایی کنید. همچنین، با توجه به عدم نیاز فازر هوشمند سایبرنو به کد منبع برای انجام تست فازینگ، امکان بررسی پایداری و امنیت نرمافزارهای Legacy و نرمافزاری تجاری دارای پسوند EXE و DLL نیز وجود دارد.
درایورهای سطح هسته سیستم عامل ویندوز نیز میتوانند دارای آسیبپذیری باشند. توجه داشته باشید که با توجه به اینکه درایورهای سیستم عامل ویندوز در سطح هسته اجرا میگردند و بالاترین سطح دسترسی را در اختیار دارند، وجود آسیبپذیری در آنها میتواند بسیار خطرناکتر از آسیبپذیریهای سطح کاربر باشد. با توجه به این موضوع فازر هوشمند سایبرنو با ارسال ورودی از طریق IOCTL یا IRP و سپس شناسایی کرش در سیستم عامل اقدام به فاز کردن درایورهای سطح هسته این سیستم عامل مینماید.
CI/CD یکی از روشهای اصلی توسعه اپلیکیشنها است که با استفاده از آن میتوان با خودکارسازی مراحل توسعه و انتشار اپلیکیشن، محصولات نرمافزار را با سرعت بیشتری به دست کاربران رساند. در واقع، در CI/CD از یکپارچهسازی مداوم، تحویل مداوم و به کارگیری مداوم برای تولید هر چه سریعتر اپلیکیشنها استفاده میشود. در این روش نیز بررسی امنیت اپلیکیشن پیش از رسیدن آن به دست کاربر، از اهمیت بسیار زیادی برخوردار است. فاز تستینگ، با توجه به خودکار بودن این نوع تست امنیت اپلیکیشن، یکی از بهترین تستهای امنیت اپلیکیشنهایی است که به روش CI/CD توسعه پیدا میکنند. تیمهای توسعه نرمافزار به راحتی میتوانند فازر هوشمند سایبرنو را در مراحل CI/CD محصولات خود قرار دهند. این فازر، امکان ارتباط با ابزارهای CI/CD همانند Jenkins، Atlassian Bamboo، GitLab CI/CD و... را دارد.
فازر هوشمند سایبرنو به طور کامل از REST-API پشتیبانی میکند. بنابراین قابلیت یکپارچهسازی با دیگر ابزارهای امنیتی و همچنین ابزارهای توسعه را دارد. علاوه بر آن نمونه کدهایی در زبانهای برنامهنویسی مختلف جهت استفاده از خودکار از این سامانه ارائه میگردد.
از جمله قابلیتهای فازر هوشمند سایبرنو مقیاسپذیری است. به این معنا که شما میتوانید با توجه به منابع سختافزاری خود تعداد Test-Caseهای اجرا شده در هر ساعت را ارتقا دهید. شما میتوانید این سامانه را بر روی صدها Server قرار داده تا تست برنامه شما به صورت موازی بر روی آنها انجام گیرد. در شکل زیر معماری سادهشده فازر هوشمند سایبرنو (بدون در نظر گرفتن امکان Master of Masters) ارائه شده است.
همانطور که در این شکل مشاهده میشود Fuzzer Manager مسئول تولید Test-Case جدید و ارسال آن جهت اجرا به Slaveهاست. هر Client یا Node ماشینی است که برای اجرای Test مورد استفاده میگیرد. در هر Client با توجه به میزان منابع سختافزاری آن به طور همزمان چندین Slave میتواند اجرا گردد. هر Slave در لحظه یک Test-Case را میتواند اجرا نماید.