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

WAFL - فازینگ - WebAssembly - فازینگ صرفا باینری WebAssembly - اسنپ‌شات‌های سریع - Fuzzing - WAVM

WAFL: فازینگ صرفا باینری WebAssembly با اسنپ‌شات‌های سریع

چکیده – WebAssembly، یک استاندارد باز برای کدهای باینری می‌باشد که به ‌سرعت در وب و فراتر از آن در حال گسترش و پذیرش است. از آنجا که باینری‌ها اغلب با زبان‌های سطح پایینی مانند C و ++C نوشته می‌شوند، می‌توانند مملو از همان باگ‌هایی باشند که در نمونه‌های سنتیِ متناظر آن‌ها نیز وجود دارد. با این حال، ابزارهای محدودی برای کشف این باگ‌ها در باینری‌های WebAssembly وجود دارد. ما

مطالعه مقاله
فازینگ - Fuzzing - بازنویسی باینری - Binary Rewriting - والنرلب - E9AFL

فازینگ مقیاس‌پذیر فایل‌های باینری برنامه‌ها با استفاده از E9AFL

چکیده – فازینگ جعبه خاکستری (Greybox Fuzzing) روشی مؤثر برای آزمون نرم‌افزار محسوب می‌شود. فازرهای جعبه خاکستری مانند AFL، از ابزارگذاری (Instrumentation) استفاده می‌کنند که اطلاعات مربوط به پوشش مسیر (Path Coverage) را جمع‌آوری کرده و از این اطلاعات برای هدایت فرایند فازینگ بهره می‌گیرند. این ابزارگذاری معمولاً توسط یک زنجیره ابزار کامپایلر اصلاح ‌شده (Modified Compiler Toolchain) در برنامه قرار داده می‌شود؛ بنابراین، برنامه برای سازگاری با فازینگ جعبه

مطالعه مقاله
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) مدعی بهبود کارایی از طریق به‌کارگیری روش‌ها و تکنیک‌های پیچیده هستند، اما میزان اثربخشی واقعی این نوآوری‌ها در سناریوهای

مطالعه مقاله
FormatFuzzer - فازینگ - fuzzing

FormatFuzzer: فازینگ مؤثرِ قالب‌های فایل باینری

چکیده – فازینگ (Fuzzing) مؤثرِ برنامه‌هایی که ورودی‌های باینریِ ساخت‌یافته (Structured) مانند فایل‌های چندرسانه‌ای را پردازش می‌کنند، کاری چالش‌برانگیز است؛ زیرا این برنامه‌ها انتظار دارند ورودی دقیقاً مطابق یک قالب (Format) بسیار مشخص باشد. با این حال، فازرهای موجود عمدتاً مستقل از قالب‌بندی (format-agnostic) هستند؛ این ویژگی اگرچه آن‌ها را انعطاف‌پذیر می‌کند، اما در سناریوهایی که رعایت یک قالب خاص ضروری است، کارایی آن‌ها را کاهش می‌دهد. در اینجا، ابزار FormatFuzzer

مطالعه مقاله
WebAssembly - فازینگ - fuzzm

Fuzzm: شناسایی آسیب‌پذیری‌های حافظه با استفاده از ابزاربندی در سطح باینری و فازینگ WebAssembly

چکیده – باینری‌های WebAssembly اغلب از زبان‌های ناایمن از نظر مدیریت حافظه مانند C و ++C کامپایل می‌شوند. به دلیل وجود مدل حافظهٔ خطی (Linear Memory) در WebAssembly و فقدان برخی مکانیزم‌های حفاظتی (مانند stack canary) آسیب‌پذیری‌های حافظه که در سطح کد منبع وجود دارند، در باینری‌های کامپایل ‌شدهٔ WebAssembly قابل بهره‌برداری (exploitable) هستند؛ در برخی موارد حتی آسان‌تر از کد بومی (native code). در این مقاله، مسئلهٔ کشف چنین آسیب‌پذیری‌هایی

مطالعه مقاله
Nested Virtualization- Fuzzing - مجازی‌ سازی تودرتو - ماشین‌های مجازی فاز هارنس - فازینگ

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

چکیده – امروزه مجازی‌سازی تودرتو (Nested virtualization) به طور گسترده توسط تأمین‌کنندگان اصلی خدمات ابری پشتیبانی می‌شود و به کاربران امکان می‌دهد از فناوری‌های مبتنی بر مجازی‌سازی در فضای ابری بهره‌مند شوند. با این حال، پشتیبانی از مجازی‌سازی تودرتو به طور قابل توجهی بر پیچیدگی هایپروایزر (hypervisor) میزبان می‌افزاید و سطح حمله جدیدی را در بسترهای ابری ایجاد می‌کند. اگرچه پژوهش‌های پیشین متعددی فازینگ هایپروایزرها را مورد بررسی قرار داده‌اند،

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

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

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

مطالعه مقاله
WAFL - فازینگ - WebAssembly - فازینگ صرفا باینری WebAssembly - اسنپ‌شات‌های سریع - Fuzzing - WAVM

WAFL: فازینگ صرفا باینری WebAssembly با اسنپ‌شات‌های سریع

چکیده – WebAssembly، یک استاندارد باز برای کدهای باینری می‌باشد که به ‌سرعت در وب و فراتر از آن در حال گسترش و پذیرش است. از آنجا که باینری‌ها اغلب با زبان‌های سطح پایینی مانند C و ++C نوشته می‌شوند، می‌توانند مملو از همان باگ‌هایی باشند که در نمونه‌های سنتیِ متناظر آن‌ها نیز وجود دارد. با این حال، ابزارهای محدودی برای کشف این باگ‌ها در باینری‌های WebAssembly وجود دارد. ما

مطالعه مقاله
فازینگ - Fuzzing - بازنویسی باینری - Binary Rewriting - والنرلب - E9AFL

فازینگ مقیاس‌پذیر فایل‌های باینری برنامه‌ها با استفاده از E9AFL

چکیده – فازینگ جعبه خاکستری (Greybox Fuzzing) روشی مؤثر برای آزمون نرم‌افزار محسوب می‌شود. فازرهای جعبه خاکستری مانند AFL، از ابزارگذاری (Instrumentation) استفاده می‌کنند که اطلاعات مربوط به پوشش مسیر (Path Coverage) را جمع‌آوری کرده و از این اطلاعات برای هدایت فرایند فازینگ بهره می‌گیرند. این ابزارگذاری معمولاً توسط یک زنجیره ابزار کامپایلر اصلاح ‌شده (Modified Compiler Toolchain) در برنامه قرار داده می‌شود؛ بنابراین، برنامه برای سازگاری با فازینگ جعبه

مطالعه مقاله
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) مدعی بهبود کارایی از طریق به‌کارگیری روش‌ها و تکنیک‌های پیچیده هستند، اما میزان اثربخشی واقعی این نوآوری‌ها در سناریوهای

مطالعه مقاله
FormatFuzzer - فازینگ - fuzzing

FormatFuzzer: فازینگ مؤثرِ قالب‌های فایل باینری

چکیده – فازینگ (Fuzzing) مؤثرِ برنامه‌هایی که ورودی‌های باینریِ ساخت‌یافته (Structured) مانند فایل‌های چندرسانه‌ای را پردازش می‌کنند، کاری چالش‌برانگیز است؛ زیرا این برنامه‌ها انتظار دارند ورودی دقیقاً مطابق یک قالب (Format) بسیار مشخص باشد. با این حال، فازرهای موجود عمدتاً مستقل از قالب‌بندی (format-agnostic) هستند؛ این ویژگی اگرچه آن‌ها را انعطاف‌پذیر می‌کند، اما در سناریوهایی که رعایت یک قالب خاص ضروری است، کارایی آن‌ها را کاهش می‌دهد. در اینجا، ابزار FormatFuzzer

مطالعه مقاله
WebAssembly - فازینگ - fuzzm

Fuzzm: شناسایی آسیب‌پذیری‌های حافظه با استفاده از ابزاربندی در سطح باینری و فازینگ WebAssembly

چکیده – باینری‌های WebAssembly اغلب از زبان‌های ناایمن از نظر مدیریت حافظه مانند C و ++C کامپایل می‌شوند. به دلیل وجود مدل حافظهٔ خطی (Linear Memory) در WebAssembly و فقدان برخی مکانیزم‌های حفاظتی (مانند stack canary) آسیب‌پذیری‌های حافظه که در سطح کد منبع وجود دارند، در باینری‌های کامپایل ‌شدهٔ WebAssembly قابل بهره‌برداری (exploitable) هستند؛ در برخی موارد حتی آسان‌تر از کد بومی (native code). در این مقاله، مسئلهٔ کشف چنین آسیب‌پذیری‌هایی

مطالعه مقاله
Nested Virtualization- Fuzzing - مجازی‌ سازی تودرتو - ماشین‌های مجازی فاز هارنس - فازینگ

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

چکیده – امروزه مجازی‌سازی تودرتو (Nested virtualization) به طور گسترده توسط تأمین‌کنندگان اصلی خدمات ابری پشتیبانی می‌شود و به کاربران امکان می‌دهد از فناوری‌های مبتنی بر مجازی‌سازی در فضای ابری بهره‌مند شوند. با این حال، پشتیبانی از مجازی‌سازی تودرتو به طور قابل توجهی بر پیچیدگی هایپروایزر (hypervisor) میزبان می‌افزاید و سطح حمله جدیدی را در بسترهای ابری ایجاد می‌کند. اگرچه پژوهش‌های پیشین متعددی فازینگ هایپروایزرها را مورد بررسی قرار داده‌اند،

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

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

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

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