
خانه » فازینگ جعبه خاکستری
آسیب پذیریهای تحلیل شده





جدیدترین آزمایشگاه





آخرین مسابقات


آخرین مقالات

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

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

فناوریهای فازینگ (Fuzzing) در سالهای اخیر با سرعت زیادی تکامل یافتهاند و توانستهاند با عمق و سرعتی روزافزون، باگهای (Bug) برنامهها را آشکار کنند. با این حال، برنامههایی که با قالبهای (Format) پیچیده کار میکنند، چالشبرانگیزتر هستند؛ زیرا ورودیها باید دارای ویژگیهای خاصِ وابسته به قالب باشند تا بتوانند از مرحلهی اولیهی تجزیه (parsing) عبور کرده و به رفتارهای عمیقتر برنامه دست یابند. برخلاف رویکردهای پیشین که بر پایهی مشخصات

پروتکلهای ارتباطی زیربنای جهانِ بههمپیوستهٔ امروز را تشکیل میدهند، اما وجود آسیبپذیری در پیادهسازی آنها تهدیدات امنیتی مهمی را به همراه دارد. تحولات اخیر نشان دهندهٔ رشد چشمگیر پژوهشهای مبتنی بر فازینگ (Fuzzing) برای کشف این آسیبپذیریها در پیادهسازی پروتکلها است. بااینحال، هنوز مرور نظاممندی از فازینگ پروتکل (Protocol Fuzzing) ارائه نشده است که بتواند به پرسشهای اساسی، مانند چالشهای منحصربهفرد این حوزه و شیوهٔ مواجههٔ پژوهشهای موجود با این

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

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

آسیب پذیریهای امنیتی در دستگاههای اینترنت اشیاء (IoT یا Internet-of-Things)، پلتفرمهای موبایل و سیستمهای خودران (autonomous systems) همچنان بحرانی باقی ماندهاند. فازرهای سنتی مبتنی بر جهش (mutation-based fuzzers) با وجود اینکه مسیرهای کد را بهطور مؤثر کاوش میکنند عموماً تغییرات را در سطح بایت یا بیت انجام میدهند و از منطق معنایی غافلاند. ابزارهای مبتنی بر پوشش کد (Coverage-guided tools) مانند ++AFL برای اعمال محدودیتهای ساختاری سطحی، به فرهنگ لغتها (dictionaries)،

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

نرمافزارهای مدرن اغلب ورودیهایی با دستور زبانهای (grammars) بسیار پیچیده را میپذیرند. برای انجام فازینگ جعبه خاکستری (greybox fuzzing) و کشف باگهای امنیتی (security bugs) در چنین نرمافزارهایی، تولید ورودیهایی که با دستور زبان ورودی نرمافزار مطابقت داشته باشند، ضروری است. با این حال، این یک کار چالشبرانگیز شناخته شده است زیرا نیاز به درک عمیقی از گرامر دارد که اغلب در دسترس نیست و استنباط آن دشوار است. پیشرفتهای

امنیت مرورگرهای وب (Web Browsers) بهعنوان یکی از مؤلفههای بنیادی زیرساخت دسترسی به اینترنت (Internet Access Infrastructure)، توجه قابلتوجهی را به خود جلب کرده است. رویکردهای فعلی برای شناسایی آسیبپذیریهای مرورگر (Browser Vulnerabilities) عمدتاً بر ممیزی کد (Code Auditing) و آزمون واحد مبتنی بر مؤلفه (Componentized Unit Testing) متکی هستند. فازینگ (Fuzzing) بهعنوان یک تکنیک کارآمد (Efficient Technique) برای کشف آسیبپذیریها (Vulnerability Discovery) مطرح شده است. با این حال، بهکارگیری

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

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

فناوریهای فازینگ (Fuzzing) در سالهای اخیر با سرعت زیادی تکامل یافتهاند و توانستهاند با عمق و سرعتی روزافزون، باگهای (Bug) برنامهها را آشکار کنند. با این حال، برنامههایی که با قالبهای (Format) پیچیده کار میکنند، چالشبرانگیزتر هستند؛ زیرا ورودیها باید دارای ویژگیهای خاصِ وابسته به قالب باشند تا بتوانند از مرحلهی اولیهی تجزیه (parsing) عبور کرده و به رفتارهای عمیقتر برنامه دست یابند. برخلاف رویکردهای پیشین که بر پایهی مشخصات

پروتکلهای ارتباطی زیربنای جهانِ بههمپیوستهٔ امروز را تشکیل میدهند، اما وجود آسیبپذیری در پیادهسازی آنها تهدیدات امنیتی مهمی را به همراه دارد. تحولات اخیر نشان دهندهٔ رشد چشمگیر پژوهشهای مبتنی بر فازینگ (Fuzzing) برای کشف این آسیبپذیریها در پیادهسازی پروتکلها است. بااینحال، هنوز مرور نظاممندی از فازینگ پروتکل (Protocol Fuzzing) ارائه نشده است که بتواند به پرسشهای اساسی، مانند چالشهای منحصربهفرد این حوزه و شیوهٔ مواجههٔ پژوهشهای موجود با این

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

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

آسیب پذیریهای امنیتی در دستگاههای اینترنت اشیاء (IoT یا Internet-of-Things)، پلتفرمهای موبایل و سیستمهای خودران (autonomous systems) همچنان بحرانی باقی ماندهاند. فازرهای سنتی مبتنی بر جهش (mutation-based fuzzers) با وجود اینکه مسیرهای کد را بهطور مؤثر کاوش میکنند عموماً تغییرات را در سطح بایت یا بیت انجام میدهند و از منطق معنایی غافلاند. ابزارهای مبتنی بر پوشش کد (Coverage-guided tools) مانند ++AFL برای اعمال محدودیتهای ساختاری سطحی، به فرهنگ لغتها (dictionaries)،

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

نرمافزارهای مدرن اغلب ورودیهایی با دستور زبانهای (grammars) بسیار پیچیده را میپذیرند. برای انجام فازینگ جعبه خاکستری (greybox fuzzing) و کشف باگهای امنیتی (security bugs) در چنین نرمافزارهایی، تولید ورودیهایی که با دستور زبان ورودی نرمافزار مطابقت داشته باشند، ضروری است. با این حال، این یک کار چالشبرانگیز شناخته شده است زیرا نیاز به درک عمیقی از گرامر دارد که اغلب در دسترس نیست و استنباط آن دشوار است. پیشرفتهای

امنیت مرورگرهای وب (Web Browsers) بهعنوان یکی از مؤلفههای بنیادی زیرساخت دسترسی به اینترنت (Internet Access Infrastructure)، توجه قابلتوجهی را به خود جلب کرده است. رویکردهای فعلی برای شناسایی آسیبپذیریهای مرورگر (Browser Vulnerabilities) عمدتاً بر ممیزی کد (Code Auditing) و آزمون واحد مبتنی بر مؤلفه (Componentized Unit Testing) متکی هستند. فازینگ (Fuzzing) بهعنوان یک تکنیک کارآمد (Efficient Technique) برای کشف آسیبپذیریها (Vulnerability Discovery) مطرح شده است. با این حال، بهکارگیری