• تعداد بازدید : 236
Fuzzing در امنیت سایبری چیست؟

Fuzzing در امنیت سایبری چیست؟

Fuzzing یا فازینگ، تکنیکی است که هم توسط کارشناسان امنیتی و هم هکرها برای یافتن آسیب‌پذیری‌های نرم‌افزار استفاده می‌شود. در علم رایانش و شبکه: فازینگ یک روش برای تست خودکار آسیب‌پذیری‌های ورودی نرم‌افزار است. در این مطلب هر آنچه که باید درباره فازینگ بدانید را برای شما شرح خواهیم داد.
آسیب‌پذیری‌های نرم‌افزاری یک مشکل مهم در امنیت سایبری است. این آسیب‌پذیری‌ها اجازه می‌دهند محصولات نرم‌افزاری مورد حمله قرار گیرند و زمانی که آن محصولات به شبکه های امن دیگری متصل می‌شوند، می‌توانند یک نقطه ورود برای هکرها فراهم کنند.
تمامی محصولات نرم‌افزاری حرفه‌ای قبل از انتشار به طور کامل تست می‌شوند. متأسفانه، آسیب‌پذیری‌ها هنوز یک اتفاق رایج هستند. یکی از راه‌های یافتن آسیب‌پذیری‌های اضافی، استفاده از تکنیک تست نرم‌افزاری است که به نام fuzzing (فازینگ) شناخته می‌شود. بنابراین fuzzing چیست و چگونه کار می‌کند؟

Fuzzing چیست؟

Fuzzing یک تکنیک تست نرم افزار خودکار است که تلاش می‌‌کند آسیب پذیری ها را با استفاده از ورودی‌های تصادفی پیدا کند.
هنگامی که کاربر درخواست ورودی غیر از راه های مشخص شده می‌دهد، نرم افزار اغلب رفتار غیرقابل پیش‌بینی از خود نشان می‌دهد. عمل فازی وارد کردن مقادیر زیادی از ورودی‌های غیرمنتظره و ثبت نتیجه‌ی چیزی است که اتفاق می‌افتد. ایده این است که کاربر می‌تواند نرم‌افزار را کنترل کند و تشخیص دهد که آیا آسیب‌پذیری در آن وجود دارد یا خیر. 

Fuzzing برای آزمایش محصولات نرم افزاری و توسط متخصصان امنیتی برای تست ایمن بودن شبکه استفاده می‌شود. همچنین توسط هکرها برای یافتن آسیب‌پذیری‌هایی که خودشان می‌توانند از آن استفاده کنند نیز کاربرد دارد.
آسیب‌پذیری‌های کشف شده توسط فازینگ بسیار متفاوت است. یک ورودی غیرمنتظره ممکن است باعث شود نرم افزار به سادگی از کار بیفتد. همچنین ممکن است اطلاعات خصوصی را برگرداند یا به کاربر اجازه دهد به بخش‌هایی از نرم‌افزار دسترسی داشته باشد که در حالت عادی دارای محدودیت‌ بوده و ممنوع است.

مزایای Fuzzing چیست؟

فازینگ تنها یکی از راه هایی است که محصولات نرم افزاری را می‌توان از نظر آسیب پذیری آزمایش کرد. محبوبیت فازینگ به این دلایل است:

•    Fuzzing کاملاً خودکار است. هنگامی که یک برنامه fuzzing راه اندازی شد، می تواند بدون دخالت انسان به جستجوی آسیب پذیری ها ادامه دهد.
•    Fuzzing ممکن است آسیب پذیری هایی را پیدا کند که سایر تکنیک های تست نرم‌افزار قابلیت آن را ندارند. به همین دلیل، اغلب علاوه بر تکنیک های دستی، از آن نیز استفاده می‌شود.
•    Fuzzing اغلب توسط هکرها برای یافتن آسیب‌پذیری‌های روز صفر استفاده می‌شود. استفاده از تکنیک‌های مشابه هکرها به توسعه‌دهندگان اجازه می‌دهد تا آسیب‌پذیری‌های روز صفر را قبل از آن پیدا کنند.

Fuzzing چگونه کار می کند؟

ابزار مورد استفاده برای فازینگمعمولاً دارای سه جزء است. آن‌ها اغلب به عنوان یک «شاعر»، یک «پیک» و یک «سخنگو» نامیده می‌شوند.

شاعر (The Poet)

شاعر این فرآیند را آغاز می‌کند و مسئول ایجاد یک مورد آزمایشی است. یک مورد آزمایشی فهرستی طولانی از ورودی‌های بالقوه است.

پیک (The Courier)

پیک تمام ورودی های تصادفی را در نرم افزار مورد نظر وارد می‌کند. Fuzzers به گونه‌ای طراحی شده‌اند که این کار را به صورت خودکار انجام دهند و اجازه می دهند مقادیر زیادی از ورودی ها به صورت انبوه آزمایش شوند.

اوراکل (The Oracle)

اوراکل بررسی می‌کند که آیا هر یک از ورودی‌ها باعث می‌شود نرم‌افزار کاری غیر از آن را انجام دهد که برای آن طراحی شده است. اگر فازسازی برای اهداف قانونی انجام شود، این رفتار می‌تواند تکرار و اصلاح شود. یا اگر fuzzing توسط یک هکر انجام شود و رفتار غیر منتظره مفید باشد، ممکن است برای اهداف مخرب استفاده شود.

چگونه مهاجمان از Fuzzing استفاده می‌کنند؟

Fuzzing یک تکنیک محبوب در بین هکرها است زیرا به آن‌ها اجازه می دهد بدون دسترسی به کد منبع، آسیب پذیری های نرم افزار را پیدا کنند. از آنجایی که fuzzing خودکار است، انجام آن نیز آسان است. اگر یک هکر آسیب پذیری را کشف کند، ممکن است بتواند حملات زیر را انجام دهد.

حملات DDoS

اگر fuzzing کشف کند که ورودی‌های خاصی برای پردازش نیاز به زمان طولانی دارند، می‌توان از این اطلاعات برای راه اندازی یک حمله DDoS استفاده کرد. حمله DDoS شامل ارسال درخواست های زیادی به یک سیستم است که عملکرد آن متوقف می‌شود. Fuzzing اجازه می‌دهد تا درخواست ها به گونه‌ای تنظیم شوند که برای پاسخگویی به بیشترین منابع سیستم نیاز داشته باشند.

تزریق 

حمله تزریق SQL زمانی است که دستورات SQL مخرب به یک برنامه ارسال می‌شود. اگر این عبارات به درستی پاکسازی نشده باشند، می‌توانند به مهاجم اجازه دهند تا با پایگاه داده تعامل داشته باشد. این ممکن است به آن‌ها اجازه دهد داده ها را بدزدند یا آن را تغییر دهند. Fuzzing یک ابزار موثر برای تلاش برای مقادیر زیادی از دستورات SQL و تعیین اینکه آیا پاسخ مطلوبی می‌دهد یا خیر است.

حمله Buffer overflow

حمله سرریز بافر زمانی است که داده‌های بیشتری به بافر برنامه اضافه می‌شود که بتواند آن را مدیریت کند. در این سناریو، این امکان وجود دارد که یک هکر باعث شود آن برنامه کدهای مخرب را اجرا کند. این می‌تواند برای سرقت داده ها یا دسترسی غیرمجاز استفاده شود. Fuzzing برای یافتن ورودی هایی استفاده می شود که می تواند باعث ایجاد سرریز بافر شود.

انواع Fuzzing

ابزارهای فازینگ را می‌توان بر اساس نحوه تولید موارد تست و میزان اطلاعات موجود در مورد سیستم طبقه بندی کرد. 

فازینگ گُنگ در مقابل فازینگ هوشمند

fuzzing گُنگ به سادگی مقادیر زیادی از ورودی‌های تصادفی را اضافه می‌کند. ورودی هایی را انتخاب نمی‌کند که به احتمال زیاد توسط برنامه پذیرفته شوند. این امر اجرای آن را بدون دانستن چیزی در مورد نرم افزار آسان تر می‌کند. با این حال، همچنین بسیار ناکارآمد است زیرا اکثر ورودی ها رد می‌شوند.
fuzzing هوشمند ورودی هایی را ایجاد می‌کند که برنامه به احتمال زیاد آن‌ها را می‌پذیرد. این مستلزم آن است که کاربر درک کند که چه قالب ورودی قابل قبول است و سپس مقادیر زیادی ورودی در آن قالب تولید کند. فاز هوشمند نیاز به تلاش بیشتر و دانش محصول برای پیاده سازی دارد، اما به طور قابل توجهی کارآمدتر است.

جهشی در مقابل نسلی

فازرهای جهشی ورودی هایی را که قبلاً پذیرفته شده بود را می‌گیرند و تغییرات جزئی در آن ایجاد می‌کنند. این اجازه می‌دهد تا ورودی هایی تولید شوند که احتمالاً بدون اطلاع از قالبِ پذیرفته شده، پذیرفته می‌شوند.
fuzzer های نسلی بر اساس آنچه در مورد قالب پذیرفته شده شناخته شده است، ورودی های کاملاً جدیدی ایجاد می‌کنند. 

جعبه سفید در مقابل جعبه سیاه

fuzzing جعبه سیاه بدون هیچ‌گونه اطلاعاتی در مورد برنامه در حال آزمایش استفاده می‌شود. این روش نسبت به جعبه سفید fuzzing موثرتر است، اما می‌تواند برای هر برنامه کاربردی بدون دسترسی به کد منبع اعمال شود. این باعث محبوبیت آن در بین هکرها می‌شود. 
Fuzzing جعبه سفید از اطلاعات مربوط به برنامه در حال آزمایش برای ایجاد ورودی‌هایی استفاده می‌کند که به احتمال زیاد پذیرفته می‌شوند و آسیب پذیری ایجاد می‌کنند. این در درجه اول توسط توسعه دهندگان نرم افزار استفاده می‌شود زیرا موثرتر از fuzzing جعبه سیاه است.

Fuzzing Fuzzing ابزار مهمی برای جلوگیری از سوء استفاده‌های روز صفر است. یک روش تست نرم افزار قدرتمند است که توسط توسعه دهندگان نرم افزار، متخصصان امنیتی و هکرها استفاده می‌شود. اجرای آن به حداقل تلاش نیاز دارد و می‌تواند آسیب‌پذیری‌هایی را بیابد که سایر تکنیک‌های تست نرم‌افزار آن را ندارند.
از نظر امنیتی بسیار مهم است زیرا اغلب برای کشف آسیب‌پذیری‌های روز صفر استفاده می‌شود. این آسیب‌پذیری‌ها می‌توانند توسط متخصصان امنیتی کشف و برطرف شوند یا توسط هکرها کشف و مورد سوء استفاده قرار گیرند.

امتیاز :  ۴.۶۷ |  مجموع :  ۳

برچسب ها

    6.0.8.0
    V6.0.8.0