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

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

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

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

مطالعه مقاله
Vulnerlab - والنرلب - فازینگ - فازر - Fuzzing - Fuzzer

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

چکیده – فازینگ جعبه‌ خاکستری (greybox fuzzing) از طریق اثربخشی بی‌سابقه در شناسایی خودکار خطاها، به بهبود امنیت نرم‌افزار کمک می‌کند. موفقیت این رویکرد ناشی از بازخورد پوشش (coverage feedback) استخراج‌ شده از سیستم تحت آزمون (Program Under Test – PUT) است که فازر را برای کاوش بخش‌های مختلف برنامه هدایت می‌کند. رایج‌ترین شیوه استفاده از این بازخورد، جستجوی نوآوری‌محور (novelty search)  است؛ در این روش، فازر تنها ورودی‌هایی را

مطالعه مقاله
Vulnerlab - والنرلب - SoK - فازینگ - فازر - Fuzzing - bug - آسیب‌ پذیری‌ - باگ‌ - پوشش کد - Code Coverage

SoK: مطالعه نظام‌مند یکپارچه‌سازی و بازتولید دستاوردهای پژوهشی فازینگ در ++AFL

چکیده – فازینگ (Fuzzing) به یکی از مؤثرترین تکنیک‌های خودکار برای کشف آسیب‌پذیری‌ها و باگ‌های (bug) نرم‌افزاری تبدیل شده است. با وجود سال‌ها پژوهش که جنبه‌های مختلف این حوزه را هدف قرار داده‌اند، ارزیابی میزان پیشرفت واقعی فازینگ در گذر زمان همچنان چالش‌برانگیز است. در این مقاله، ما یک تحلیل تجربی در مقیاس وسیع از روند پیشرفت فازینگ ارائه می‌دهیم که بر پایه ++AFL انجام شده است؛ پیشرفته‌ترین فازری که

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

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

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

مطالعه مقاله
والنرلب - vulnerlab - فازینگ باینری کارآمد -دسترسی به کد منبع - ابزارگذاری ایستا -Performant Binary Fuzzing Static Instrumentation- Source Code

فازینگ باینری کارآمد بدون دسترسی به کد منبع با استفاده از ابزارگذاری ایستا

چکیده – پیشرفت‌های حوزه آزمون فاز (fuzz testing) باعث شده است که بتوان به‌ صورت ‌ سریع و جامع، خطاهای بحرانی از نظر امنیتی را در سیستم‌های نرم‌افزاری شناسایی کرد. با این حال، برخی از این تکنیک‌ها به دسترسی به کد منبع (source-code) متکی هستند که غالبا بصورت عملی ممکن نیست. ما در این مقاله، به بررسی روش‌هایی می‌پردازیم که بتوانند عمق و کارایی فازرهایی که به کد منبع دسترسی دارند

مطالعه مقاله
DeepGo - فازینگ -جعبه خاکستری - پیش‌بینانه - هدایت ‌شده - Predictive Directed Greybox Fuzzing

DeepGo: فازینگ جعبه خاکستری پیش‌بینانه و هدایت ‌شده

فازینگ جعبه‌ خاکستری هدایت ‌شده (Directed Greybox Fuzzing یا DGF) رویکردی مؤثر است که با استفاده از نقاط هدف از پیش‌ تعریف‌ شده، برای تقویت آزمون نواحی آسیب‌پذیر کد طراحی شده است. روش‌های پیشرفته DGF با بازتعریف و بهینه‌سازی معیار برازندگی (fitness metric) تلاش می‌کنند به‌صورت دقیق و سریع به نقاط هدف برسند. با این حال، بهینه‌ سازی‌های معیار برازندگی عمدتاً بر الگوریتم‌های ابتکاری متکی هستند که معمولاً به اطلاعات

مطالعه مقاله
Sanitizer - سنی تایزر

بررسی سنی‌تایزرهای LLVM – بخش سوم

17. آشنایی با SanitizerStats سنی‌تایزرها (sanitizer) از يك مكانيزم ساده براي جمع‌آوري آمار پروفايلينگ (profiling statistics) پشتيباني مي‌كنند تا درک هزينه‌ها و سربار (overhead) مرتبط با استفاده از سنی‌تایزرها (sanitizer) را تسهيل كنند.    17.1 نحوه ساخت و اجرا (How to build and run) در حال حاضر SanitizerStats تنها با Control Flow Integrity (CFI)[1] قابل استفاده است. علاوه بر -fsanitize=cfi*، بايد -fsanitize-stats نيز اضافه شود. اين كار باعث مي‌شود برنامه

مطالعه مقاله
Sanitizer - سنی تایزر

بررسی سنی‌تایزرهای LLVM – بخش دوم

12. آشنایی با DataFlowSanitizer (معروف به dfsan) DataFlowSanitizer يک سامانه تحليل پوياي گردش داده (dynamic data flow analysis) به صورت عمومي است. بر خلاف ساير ابزارهاي سنی‌تایزر (Sanitizer)، اين ابزار براي شناسايي يک رده مشخص از خطاها به صورت مستقل طراحي نشده است. در عوض، يک چارچوب عمومي تحليل پوياي گردش داده فراهم ميکند تا توسط برنامه نويسان به عنوان client مورد استفاده قرار گيرد و به آنان امکان دهد

مطالعه مقاله
Sanitizer - سنی تایزر

بررسی سنی‌تایزرهای LLVM – بخش اول

1. مقدمه (Introduction) واژه «سنی‌تایزر» (Sanitizer) در زبان انگلیسی به معنای ضدعفونی‌کننده یا پاک‌کننده است، اما در حوزه علوم کامپیوتر—به‌ویژه در اکوسیستم‌های LLVM و Clang—معنایی کاملاً تخصصی و متفاوت دارد. در این زمینه، سنی‌تایزر به ابزاری گفته می‌شود که برای تشخیص خطاهای زمان اجرا از طریق ابزارگذاری (Instrumentation) به کار می‌رود. به بیان دقیق‌تر، Code Sanitizer ابزاری است که با تزریق کدهای نظارتی در مرحله کامپایل، رفتار برنامه را در

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

فازر ++AFL

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

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

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

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

مطالعه مقاله
Vulnerlab - والنرلب - فازینگ - فازر - Fuzzing - Fuzzer

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

چکیده – فازینگ جعبه‌ خاکستری (greybox fuzzing) از طریق اثربخشی بی‌سابقه در شناسایی خودکار خطاها، به بهبود امنیت نرم‌افزار کمک می‌کند. موفقیت این رویکرد ناشی از بازخورد پوشش (coverage feedback) استخراج‌ شده از سیستم تحت آزمون (Program Under Test – PUT) است که فازر را برای کاوش بخش‌های مختلف برنامه هدایت می‌کند. رایج‌ترین شیوه استفاده از این بازخورد، جستجوی نوآوری‌محور (novelty search)  است؛ در این روش، فازر تنها ورودی‌هایی را

مطالعه مقاله
Vulnerlab - والنرلب - SoK - فازینگ - فازر - Fuzzing - bug - آسیب‌ پذیری‌ - باگ‌ - پوشش کد - Code Coverage

SoK: مطالعه نظام‌مند یکپارچه‌سازی و بازتولید دستاوردهای پژوهشی فازینگ در ++AFL

چکیده – فازینگ (Fuzzing) به یکی از مؤثرترین تکنیک‌های خودکار برای کشف آسیب‌پذیری‌ها و باگ‌های (bug) نرم‌افزاری تبدیل شده است. با وجود سال‌ها پژوهش که جنبه‌های مختلف این حوزه را هدف قرار داده‌اند، ارزیابی میزان پیشرفت واقعی فازینگ در گذر زمان همچنان چالش‌برانگیز است. در این مقاله، ما یک تحلیل تجربی در مقیاس وسیع از روند پیشرفت فازینگ ارائه می‌دهیم که بر پایه ++AFL انجام شده است؛ پیشرفته‌ترین فازری که

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

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

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

مطالعه مقاله
والنرلب - vulnerlab - فازینگ باینری کارآمد -دسترسی به کد منبع - ابزارگذاری ایستا -Performant Binary Fuzzing Static Instrumentation- Source Code

فازینگ باینری کارآمد بدون دسترسی به کد منبع با استفاده از ابزارگذاری ایستا

چکیده – پیشرفت‌های حوزه آزمون فاز (fuzz testing) باعث شده است که بتوان به‌ صورت ‌ سریع و جامع، خطاهای بحرانی از نظر امنیتی را در سیستم‌های نرم‌افزاری شناسایی کرد. با این حال، برخی از این تکنیک‌ها به دسترسی به کد منبع (source-code) متکی هستند که غالبا بصورت عملی ممکن نیست. ما در این مقاله، به بررسی روش‌هایی می‌پردازیم که بتوانند عمق و کارایی فازرهایی که به کد منبع دسترسی دارند

مطالعه مقاله
DeepGo - فازینگ -جعبه خاکستری - پیش‌بینانه - هدایت ‌شده - Predictive Directed Greybox Fuzzing

DeepGo: فازینگ جعبه خاکستری پیش‌بینانه و هدایت ‌شده

فازینگ جعبه‌ خاکستری هدایت ‌شده (Directed Greybox Fuzzing یا DGF) رویکردی مؤثر است که با استفاده از نقاط هدف از پیش‌ تعریف‌ شده، برای تقویت آزمون نواحی آسیب‌پذیر کد طراحی شده است. روش‌های پیشرفته DGF با بازتعریف و بهینه‌سازی معیار برازندگی (fitness metric) تلاش می‌کنند به‌صورت دقیق و سریع به نقاط هدف برسند. با این حال، بهینه‌ سازی‌های معیار برازندگی عمدتاً بر الگوریتم‌های ابتکاری متکی هستند که معمولاً به اطلاعات

مطالعه مقاله
Sanitizer - سنی تایزر

بررسی سنی‌تایزرهای LLVM – بخش سوم

17. آشنایی با SanitizerStats سنی‌تایزرها (sanitizer) از يك مكانيزم ساده براي جمع‌آوري آمار پروفايلينگ (profiling statistics) پشتيباني مي‌كنند تا درک هزينه‌ها و سربار (overhead) مرتبط با استفاده از سنی‌تایزرها (sanitizer) را تسهيل كنند.    17.1 نحوه ساخت و اجرا (How to build and run) در حال حاضر SanitizerStats تنها با Control Flow Integrity (CFI)[1] قابل استفاده است. علاوه بر -fsanitize=cfi*، بايد -fsanitize-stats نيز اضافه شود. اين كار باعث مي‌شود برنامه

مطالعه مقاله
Sanitizer - سنی تایزر

بررسی سنی‌تایزرهای LLVM – بخش دوم

12. آشنایی با DataFlowSanitizer (معروف به dfsan) DataFlowSanitizer يک سامانه تحليل پوياي گردش داده (dynamic data flow analysis) به صورت عمومي است. بر خلاف ساير ابزارهاي سنی‌تایزر (Sanitizer)، اين ابزار براي شناسايي يک رده مشخص از خطاها به صورت مستقل طراحي نشده است. در عوض، يک چارچوب عمومي تحليل پوياي گردش داده فراهم ميکند تا توسط برنامه نويسان به عنوان client مورد استفاده قرار گيرد و به آنان امکان دهد

مطالعه مقاله
Sanitizer - سنی تایزر

بررسی سنی‌تایزرهای LLVM – بخش اول

1. مقدمه (Introduction) واژه «سنی‌تایزر» (Sanitizer) در زبان انگلیسی به معنای ضدعفونی‌کننده یا پاک‌کننده است، اما در حوزه علوم کامپیوتر—به‌ویژه در اکوسیستم‌های LLVM و Clang—معنایی کاملاً تخصصی و متفاوت دارد. در این زمینه، سنی‌تایزر به ابزاری گفته می‌شود که برای تشخیص خطاهای زمان اجرا از طریق ابزارگذاری (Instrumentation) به کار می‌رود. به بیان دقیق‌تر، Code Sanitizer ابزاری است که با تزریق کدهای نظارتی در مرحله کامپایل، رفتار برنامه را در

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

فازر ++AFL

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

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