کلیه حقوق مطالب متعلق به Vulnerlab است. بازنشر با ذکر منبع مجاز است.

Fuzzing - فازینگ - Software Bugs - باگ‌های نرم‌افزاری - آسیب‌پذیری‌ - Vulnerabilities - تحلیل آلودگی - Taint Analysis

مروری بر وضعیت کنونی دانش و روش‌های پیشرفته فازینگ

چکیده – فازینگ (Fuzzing) به ‌عنوان یکی از پرکاربردترین تکنیک‌های آزمون نرم‌افزار، با تولید تعداد زیادی ورودی آزمون (Test Input) می‌تواند طیف متنوعی از نقاط ضعف موجود در یک برنامه، از جمله باگ‌های نرم‌افزاری (Software Bugs) و آسیب‌پذیری‌ها (Vulnerabilities) را شناسایی کند. به دلیل اثربخشی این روش، فازینگ به ‌عنوان روشی ارزشمند برای کشف و شکار باگ (Bug Hunting) شناخته می‌شود. در این مقاله، ضمن ارائه مروری بر فازینگ که

مطالعه مقاله
افزودن خودکار آسیب‌پذیری در مقیاس بزرگ - LAVA - آسیب‌پذیری‌ - Vulnerability - فازینگ - Fuzzing

LAVA: افزودن خودکار آسیب‌پذیری در مقیاس بزرگ

چکیده – پژوهش‌های مرتبط با خودکارسازی کشف آسیب‌پذیری‌ها (Vulnerability)، از دیرباز به دلیل کمبود مجموعه‌داده‌های مرجع معتبر (Ground Truth – منظور اطلاعاتی است که درستی آن از قبل مشخص و قابل اعتماد است و نتایج یک ابزار را با آن مقایسه می‌کنیم) برای ارزیابی ابزارها و روش‌ها با محدودیت مواجه بوده‌اند. فقدان چنین داده‌هایی موجب می‌شود که نه توسعه‌دهندگان ابزارها و نه کاربران آن‌ها نتوانند معیارهای بنیادینی همچون نرخ عدم

مطالعه مقاله
والنرلب - vulnerlab- فازینگ - Fuzzing - فازرهای هدایت‌ شده با پوشش کد - coverage-guided fuzzers

چالش‌های حل نشده حوزه فازینگ: دام‌ها، نقاط کور و درس‌های آموخته ‌شده از دنیای واقعی

چکیده – فازینگ (Fuzzing) در سال‌های اخیر به یکی از مؤثرترین و پرکاربردترین روش‌های کشف خودکار آسیب‌پذیری‌های نرم‌افزاری تبدیل شده است. با این حال، علی‌رغم انتشار پژوهش‌های فراوان و توسعه مستمر ابزارها و تکنیک‌های جدید، به نظر می‌رسد پیشرفت عملی این حوزه متوقف یا کُند شده است.. بسیاری از فازرها (Fuzzers) مدعی بهبود کارایی از طریق به‌کارگیری روش‌ها و تکنیک‌های پیچیده هستند، اما میزان اثربخشی واقعی این نوآوری‌ها در سناریوهای

مطالعه مقاله
فازینگ -فازینگ جعبه ‌سفید - Fuzzing- Whitebox Fuzzing- والنرلب - vulnerlab

فازینگ جعبه ‌سفید مبتنی بر مدل برای باینری‌های برنامه

چکیده – بسیاری از برنامه‌های دنیای واقعی، فایل‌های بسیار ساختاریافته (highly structured) و پیچیده را به عنوان ورودی دریافت می‌کنند. آزمون خودکار چنین برنامه‌هایی، مسئله‌ای پیچیده و غیر بدیهی است. چنانچه ورودی آزمون با قالب فایل مشخص مطابقت نداشته باشد، برنامه یک خطای تجزیه‌گر (parser error) بازمی‌گرداند. در فازینگ جعبه ‌سفید مبتنی بر اجرای نمادین (symbolic execution-based whitebox fuzzing)، کدهای مربوط به مدیریت این خطاها می‌توانند به یک عامل اتلاف

مطالعه مقاله
فازی ‌سازی - FUZZIFICATION - فازینگ - Fuzzing

فازی‌سازی: تکنیک‌های ضد فازینگ

فازینگ (Fuzzing) یک تکنیک آزمون نرم‌افزار است که بدون نیاز به آگاهی از ساختار داخلی برنامه، فضای ورودی‌های آن را به‌صورت سریع و خودکار کاوش می‌کند. بنابراین، توسعه‌دهندگان معمولاً از فازینگ به‌ عنوان بخشی از فرایند یکپارچه‌سازی آزمون در طول چرخهٔ توسعهٔ نرم‌افزار استفاده می‌کنند. با این حال، همین ماهیت جعبه ‌سیاه (black-box) و خودکار بودن فازینگ باعث می‌شود این روش برای مهاجمانی که به دنبال کشف آسیب‌پذیری‌های روز-صفر (zero-day) هستند

مطالعه مقاله
Detecting Software Vulnerability with Symbolic Execution and Fuzzing

شناسایی آسیب پذیری‌های نرم افزاری توسط فازینگ و اجرای نمادین

این مقاله به بررسی ادغام تکنیک‌های اجرای نمادین (Symbolic Execution) و فازینگ (Fuzzing) برای افزایش تشخیص آسیب‌پذیری‌های نرم‌افزاری می‌پردازد. با افزایش پیچیدگی سیستم‌های نرم‌افزاری و تهدیدات امنیتی مرتبط، روش‌های سنتی اغلب در کشف آسیب‌پذیری‌های عمیق، ناکارآمد هستند. این مطالعه با ترکیب دامنه وسیع آزمایش فازینگ توسط ابزارهایی مانند LibFuzzer، با تحلیل مسیر دقیق اجرای نمادین از طریق ابزارهایی مانند KLEE، قصد دارد رویکردی قوی‌تر برای تشخیص آسیب‌پذیری ایجاد کند. این

مطالعه مقاله
Symbolic Execution - اجرای نمادین - KLEE

راه اندازی آزمایشگاه Symbolic Exection توسط klee

ماشین مجازی نمادین[1] KLEE بر فراز زیرساخت گردآورنده LLVM ساخته شده[2] است و در حال حاضر دو بخش اصلی وجود دارد: هسته موتور ماشین مجازی نمادین که مسئول اجرای ماژول های بیتکد[3] LLVM با پشتیبانی از مقدارهای نمادین است. این بخش از کدهای موجود در مسیر lib تشکیل شده است. لایه شبیه سازی[4] POSIX و لینوکس که برای پشتیبانی از uClibc ساماندهی شده است و پشتیبانی بیشتری برای نمادین کردن

مطالعه مقاله
Symbolic Execution and Program Testing

اجرای نمادین و آزمون برنامه‌ها

این مقاله به اجرای نمادین (Symbolic Execution) برنامه‌ها می‌ پردازد. به جای آنکه ورودی‌ های معمولی یک برنامه (مانند اعداد) ارائه شود، از نمادهایی استفاده می‌ شود که مقادیر دلخواه را نمایندگی می‌ کنند. اجرای برنامه همانند اجرای معمولی ادامه می ‌یابد، با این تفاوت که مقادیر می ‌توانند فرمول‌های نمادین بر پایه این نمادها باشند. مسائل پیچیده و در عین حال جالب، عمدتاً در هنگام اجرای نمادین دستورات شرطی و انشعابی به ‌وجود می‌ آیند.

مطالعه مقاله
AFL - فازینگ - Fuzzing

فازر ++AFL

۱. مقدمه‌ای بر فازینگ (An Introduction to Fuzzing) فازینگ (Fuzzing) یکی از مؤثرترین روش‌های خودکار برای شناسایی باگ‌ها (Bug) و آسیب‌پذیری‌های نرم‌افزاری است که با تولید و ارسال ورودی‌های تصادفی، نیمه‌تصادفی یا ساخت‌یافته، رفتار برنامه را در شرایط غیرعادی مورد بررسی قرار می‌دهد. هدف اصلی این تکنیک، وادار کردن نرم‌افزار به پردازش داده‌های غیرمنتظره و تحلیل واکنش آن در برابر این ورودی‌ها است تا خطاهایی مانند کرش (Crash)، نشت حافظه

مطالعه مقاله
والنرلب - vulnerlab - فازینگ - fuzzing

مروری بر فازینگ

چکیده (Abstract) آسیب ‌پذیری‌های امنیتی یکی از علل اصلی تهدیدات سایبری می‌باشند. پژوهشگران برای کشف و رفع این آسیب ‌پذیری‌ها، روش‌های مختلفی را پیشنهاد داده‌اند که در این میان، فازینگ (Fuzzing) به عنوان یکی از پرکاربردترین تکنیک‌ها شناخته می‌شود. در سال‌های اخیر، راه حل‌های فازینگ، مانند AFL، پیشرفت‌های چشمگیری در کشف آسیب ‌پذیری‌ها داشته‌اند. این مقاله به خلاصه‌ای از پیشرفت‌های اخیر می‌پردازد، تحلیل می‌کند که چگونه این پیشرفت‌ها فرآیند فازینگ

مطالعه مقاله
Fuzzing - فازینگ - Software Bugs - باگ‌های نرم‌افزاری - آسیب‌پذیری‌ - Vulnerabilities - تحلیل آلودگی - Taint Analysis

مروری بر وضعیت کنونی دانش و روش‌های پیشرفته فازینگ

چکیده – فازینگ (Fuzzing) به ‌عنوان یکی از پرکاربردترین تکنیک‌های آزمون نرم‌افزار، با تولید تعداد زیادی ورودی آزمون (Test Input) می‌تواند طیف متنوعی از نقاط ضعف موجود در یک برنامه، از جمله باگ‌های نرم‌افزاری (Software Bugs) و آسیب‌پذیری‌ها (Vulnerabilities) را شناسایی کند. به دلیل اثربخشی این روش، فازینگ به ‌عنوان روشی ارزشمند برای کشف و شکار باگ (Bug Hunting) شناخته می‌شود. در این مقاله، ضمن ارائه مروری بر فازینگ که

مطالعه مقاله
افزودن خودکار آسیب‌پذیری در مقیاس بزرگ - LAVA - آسیب‌پذیری‌ - Vulnerability - فازینگ - Fuzzing

LAVA: افزودن خودکار آسیب‌پذیری در مقیاس بزرگ

چکیده – پژوهش‌های مرتبط با خودکارسازی کشف آسیب‌پذیری‌ها (Vulnerability)، از دیرباز به دلیل کمبود مجموعه‌داده‌های مرجع معتبر (Ground Truth – منظور اطلاعاتی است که درستی آن از قبل مشخص و قابل اعتماد است و نتایج یک ابزار را با آن مقایسه می‌کنیم) برای ارزیابی ابزارها و روش‌ها با محدودیت مواجه بوده‌اند. فقدان چنین داده‌هایی موجب می‌شود که نه توسعه‌دهندگان ابزارها و نه کاربران آن‌ها نتوانند معیارهای بنیادینی همچون نرخ عدم

مطالعه مقاله
والنرلب - vulnerlab- فازینگ - Fuzzing - فازرهای هدایت‌ شده با پوشش کد - coverage-guided fuzzers

چالش‌های حل نشده حوزه فازینگ: دام‌ها، نقاط کور و درس‌های آموخته ‌شده از دنیای واقعی

چکیده – فازینگ (Fuzzing) در سال‌های اخیر به یکی از مؤثرترین و پرکاربردترین روش‌های کشف خودکار آسیب‌پذیری‌های نرم‌افزاری تبدیل شده است. با این حال، علی‌رغم انتشار پژوهش‌های فراوان و توسعه مستمر ابزارها و تکنیک‌های جدید، به نظر می‌رسد پیشرفت عملی این حوزه متوقف یا کُند شده است.. بسیاری از فازرها (Fuzzers) مدعی بهبود کارایی از طریق به‌کارگیری روش‌ها و تکنیک‌های پیچیده هستند، اما میزان اثربخشی واقعی این نوآوری‌ها در سناریوهای

مطالعه مقاله
فازینگ -فازینگ جعبه ‌سفید - Fuzzing- Whitebox Fuzzing- والنرلب - vulnerlab

فازینگ جعبه ‌سفید مبتنی بر مدل برای باینری‌های برنامه

چکیده – بسیاری از برنامه‌های دنیای واقعی، فایل‌های بسیار ساختاریافته (highly structured) و پیچیده را به عنوان ورودی دریافت می‌کنند. آزمون خودکار چنین برنامه‌هایی، مسئله‌ای پیچیده و غیر بدیهی است. چنانچه ورودی آزمون با قالب فایل مشخص مطابقت نداشته باشد، برنامه یک خطای تجزیه‌گر (parser error) بازمی‌گرداند. در فازینگ جعبه ‌سفید مبتنی بر اجرای نمادین (symbolic execution-based whitebox fuzzing)، کدهای مربوط به مدیریت این خطاها می‌توانند به یک عامل اتلاف

مطالعه مقاله
فازی ‌سازی - FUZZIFICATION - فازینگ - Fuzzing

فازی‌سازی: تکنیک‌های ضد فازینگ

فازینگ (Fuzzing) یک تکنیک آزمون نرم‌افزار است که بدون نیاز به آگاهی از ساختار داخلی برنامه، فضای ورودی‌های آن را به‌صورت سریع و خودکار کاوش می‌کند. بنابراین، توسعه‌دهندگان معمولاً از فازینگ به‌ عنوان بخشی از فرایند یکپارچه‌سازی آزمون در طول چرخهٔ توسعهٔ نرم‌افزار استفاده می‌کنند. با این حال، همین ماهیت جعبه ‌سیاه (black-box) و خودکار بودن فازینگ باعث می‌شود این روش برای مهاجمانی که به دنبال کشف آسیب‌پذیری‌های روز-صفر (zero-day) هستند

مطالعه مقاله
Detecting Software Vulnerability with Symbolic Execution and Fuzzing

شناسایی آسیب پذیری‌های نرم افزاری توسط فازینگ و اجرای نمادین

این مقاله به بررسی ادغام تکنیک‌های اجرای نمادین (Symbolic Execution) و فازینگ (Fuzzing) برای افزایش تشخیص آسیب‌پذیری‌های نرم‌افزاری می‌پردازد. با افزایش پیچیدگی سیستم‌های نرم‌افزاری و تهدیدات امنیتی مرتبط، روش‌های سنتی اغلب در کشف آسیب‌پذیری‌های عمیق، ناکارآمد هستند. این مطالعه با ترکیب دامنه وسیع آزمایش فازینگ توسط ابزارهایی مانند LibFuzzer، با تحلیل مسیر دقیق اجرای نمادین از طریق ابزارهایی مانند KLEE، قصد دارد رویکردی قوی‌تر برای تشخیص آسیب‌پذیری ایجاد کند. این

مطالعه مقاله
Symbolic Execution - اجرای نمادین - KLEE

راه اندازی آزمایشگاه Symbolic Exection توسط klee

ماشین مجازی نمادین[1] KLEE بر فراز زیرساخت گردآورنده LLVM ساخته شده[2] است و در حال حاضر دو بخش اصلی وجود دارد: هسته موتور ماشین مجازی نمادین که مسئول اجرای ماژول های بیتکد[3] LLVM با پشتیبانی از مقدارهای نمادین است. این بخش از کدهای موجود در مسیر lib تشکیل شده است. لایه شبیه سازی[4] POSIX و لینوکس که برای پشتیبانی از uClibc ساماندهی شده است و پشتیبانی بیشتری برای نمادین کردن

مطالعه مقاله
Symbolic Execution and Program Testing

اجرای نمادین و آزمون برنامه‌ها

این مقاله به اجرای نمادین (Symbolic Execution) برنامه‌ها می‌ پردازد. به جای آنکه ورودی‌ های معمولی یک برنامه (مانند اعداد) ارائه شود، از نمادهایی استفاده می‌ شود که مقادیر دلخواه را نمایندگی می‌ کنند. اجرای برنامه همانند اجرای معمولی ادامه می ‌یابد، با این تفاوت که مقادیر می ‌توانند فرمول‌های نمادین بر پایه این نمادها باشند. مسائل پیچیده و در عین حال جالب، عمدتاً در هنگام اجرای نمادین دستورات شرطی و انشعابی به ‌وجود می‌ آیند.

مطالعه مقاله
AFL - فازینگ - Fuzzing

فازر ++AFL

۱. مقدمه‌ای بر فازینگ (An Introduction to Fuzzing) فازینگ (Fuzzing) یکی از مؤثرترین روش‌های خودکار برای شناسایی باگ‌ها (Bug) و آسیب‌پذیری‌های نرم‌افزاری است که با تولید و ارسال ورودی‌های تصادفی، نیمه‌تصادفی یا ساخت‌یافته، رفتار برنامه را در شرایط غیرعادی مورد بررسی قرار می‌دهد. هدف اصلی این تکنیک، وادار کردن نرم‌افزار به پردازش داده‌های غیرمنتظره و تحلیل واکنش آن در برابر این ورودی‌ها است تا خطاهایی مانند کرش (Crash)، نشت حافظه

مطالعه مقاله
والنرلب - vulnerlab - فازینگ - fuzzing

مروری بر فازینگ

چکیده (Abstract) آسیب ‌پذیری‌های امنیتی یکی از علل اصلی تهدیدات سایبری می‌باشند. پژوهشگران برای کشف و رفع این آسیب ‌پذیری‌ها، روش‌های مختلفی را پیشنهاد داده‌اند که در این میان، فازینگ (Fuzzing) به عنوان یکی از پرکاربردترین تکنیک‌ها شناخته می‌شود. در سال‌های اخیر، راه حل‌های فازینگ، مانند AFL، پیشرفت‌های چشمگیری در کشف آسیب ‌پذیری‌ها داشته‌اند. این مقاله به خلاصه‌ای از پیشرفت‌های اخیر می‌پردازد، تحلیل می‌کند که چگونه این پیشرفت‌ها فرآیند فازینگ

مطالعه مقاله
wpChatIcon
wpChatIcon