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

Vulnerlab - والنرلب - فازینگ - فازر - Fuzzing - Fuzzer

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

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

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

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

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

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

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

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

مطالعه مقاله
REDQUEEN - فازینگ - تناظر ورودی با وضعیت - Fuzzing with Input-to-State Correspondence

REDQUEEN: فازینگ با استفاده از تناظر ورودی با وضعیت

چکیده – آزمون خودکار نرم‌افزار مبتنی بر فازینگ (Fuzzing) در سال‌های اخیر با یک بازگشت و احیای جدی مواجه شده است. به‌ ویژه فازینگ مبتنی بر بازخورد (feedback-driven fuzzing) که به دلیل توانایی آن در انجام کارآمد آزمون‌های تصادفی (randomized testing) با مجموعه‌های ورودی محدود، به رویکردی شناخته‌ شده تبدیل شده است. با وجود پیشرفت‌های فراوان، دو مشکل رایج همچنان وجود دارد: اعداد جادویی (magic numbers) و جمع‌آزماهای تو‌در‌تو (nested checksums).

مطالعه مقاله

SYZVEGAS: غلبه بر چالش‌های فازینگ کرنل با استفاده از یادگیری تقویتی

فازینگ شامل تعداد زیادی تصمیم‌گیری است که برای به حداکثر رساندن کارایی، به پارامترهای دقیق و از پیش‌تنظیم ‌شده نیاز دارند. این موضوع به‌ ویژه در فازینگ هستهٔ سیستم‌عامل اهمیت بیشتری دارد، زیرا (۱) هسته‌های سیستم‌ عامل بسیار بزرگ و پیچیده‌اند، (۲) رابط فراخوانی سیستمی (syscall) خاصی دارند که نیازمند مدیریت ویژه است (مثلاً کدگذاری وابستگی‌های صریح بین syscallها)، و (۳) رفتار ورودی‌ها (یعنی تست‌کیس‌ها) به دلیل ماهیت حالت‌مند هسته‌ها

مطالعه مقاله
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 ابزاری است که با تزریق کدهای نظارتی در مرحله کامپایل، رفتار برنامه را در

مطالعه مقاله
vulnerlab - والنرلب - BertRLFuzzer: یک فازر مبتنی بر BERT و یادگیری تقویتی (RL)

BertRLFuzzer: یک فازر مبتنی بر BERT و یادگیری تقویتی (RL)

چکیده – مقاله «BertRLFuzzer: A BERT and Reinforcement Learning Based Fuzzer» یک ابزار نوآورانه برای کشف آسیب ‌پذیری‌های امنیتی در برنامه‌های وب معرفی می‌کند که براساس ترکیب مدل زبانی BERT و یادگیری تقویتی (RL – Reinforcement Learning) طراحی شده است. عملکرد BertRLFuzzer به این صورت است که با دریافت فهرستی از بذرهای ورودی‌ اولیه (seed inputs)، عملیات جهش (mutation) را بر روی آن‌ها انجام می‌دهد به‌گونه‌ای که هم با دستور

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

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

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

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

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

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

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

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

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

مطالعه مقاله
REDQUEEN - فازینگ - تناظر ورودی با وضعیت - Fuzzing with Input-to-State Correspondence

REDQUEEN: فازینگ با استفاده از تناظر ورودی با وضعیت

چکیده – آزمون خودکار نرم‌افزار مبتنی بر فازینگ (Fuzzing) در سال‌های اخیر با یک بازگشت و احیای جدی مواجه شده است. به‌ ویژه فازینگ مبتنی بر بازخورد (feedback-driven fuzzing) که به دلیل توانایی آن در انجام کارآمد آزمون‌های تصادفی (randomized testing) با مجموعه‌های ورودی محدود، به رویکردی شناخته‌ شده تبدیل شده است. با وجود پیشرفت‌های فراوان، دو مشکل رایج همچنان وجود دارد: اعداد جادویی (magic numbers) و جمع‌آزماهای تو‌در‌تو (nested checksums).

مطالعه مقاله

SYZVEGAS: غلبه بر چالش‌های فازینگ کرنل با استفاده از یادگیری تقویتی

فازینگ شامل تعداد زیادی تصمیم‌گیری است که برای به حداکثر رساندن کارایی، به پارامترهای دقیق و از پیش‌تنظیم ‌شده نیاز دارند. این موضوع به‌ ویژه در فازینگ هستهٔ سیستم‌عامل اهمیت بیشتری دارد، زیرا (۱) هسته‌های سیستم‌ عامل بسیار بزرگ و پیچیده‌اند، (۲) رابط فراخوانی سیستمی (syscall) خاصی دارند که نیازمند مدیریت ویژه است (مثلاً کدگذاری وابستگی‌های صریح بین syscallها)، و (۳) رفتار ورودی‌ها (یعنی تست‌کیس‌ها) به دلیل ماهیت حالت‌مند هسته‌ها

مطالعه مقاله
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 ابزاری است که با تزریق کدهای نظارتی در مرحله کامپایل، رفتار برنامه را در

مطالعه مقاله
vulnerlab - والنرلب - BertRLFuzzer: یک فازر مبتنی بر BERT و یادگیری تقویتی (RL)

BertRLFuzzer: یک فازر مبتنی بر BERT و یادگیری تقویتی (RL)

چکیده – مقاله «BertRLFuzzer: A BERT and Reinforcement Learning Based Fuzzer» یک ابزار نوآورانه برای کشف آسیب ‌پذیری‌های امنیتی در برنامه‌های وب معرفی می‌کند که براساس ترکیب مدل زبانی BERT و یادگیری تقویتی (RL – Reinforcement Learning) طراحی شده است. عملکرد BertRLFuzzer به این صورت است که با دریافت فهرستی از بذرهای ورودی‌ اولیه (seed inputs)، عملیات جهش (mutation) را بر روی آن‌ها انجام می‌دهد به‌گونه‌ای که هم با دستور

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