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





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





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


آخرین مقالات

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

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

اینترنت اشیاء (Internet of Things – IoT) از زمان پیدایش خود یک مسیر طولانی را پیموده است. بااینحال، فرایند استانداردسازی سامانههای اینترنت اشیاء برای دستیابی به راهکارهای امن اینترنت اشیاء همچنان در مراحل ابتدایی خود قرار دارد. پژوهشگران تاکنون مقالات مروری ارزشمند متعددی درباره چارچوبها (Frameworks)، معماریها (Architectures) و همچنین تهدیدهای موجود در لایههای مختلف اینترنت اشیاء ارائه کردهاند. بااینوجود، بخش عمدهای از پژوهشهای موجود، جنبههای امنیتی میانافزار (Firmware) در

پهپادهای مصرفی که امکان تصویربرداری هوایی حرفهای را فراهم میکنند، نویدبخش تحول در صنعت لجستیک هستند و هماکنون نیز در عملیات امداد انسانی و حتی در درگیریهای مسلحانه مورد استفاده قرار میگیرند. با وجود پذیرش گسترده و محبوبیت بالای آنها، ورود آسان به حوزه جابهجایی هوایی (که به طور سنتی به شدت تحت مقررات سختگیرانه قرار دارد) خطرات و تهدیدات متعددی برای ایمنی، امنیت و حریم خصوصی ایجاد میکند. به

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

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

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

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

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

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

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

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

اینترنت اشیاء (Internet of Things – IoT) از زمان پیدایش خود یک مسیر طولانی را پیموده است. بااینحال، فرایند استانداردسازی سامانههای اینترنت اشیاء برای دستیابی به راهکارهای امن اینترنت اشیاء همچنان در مراحل ابتدایی خود قرار دارد. پژوهشگران تاکنون مقالات مروری ارزشمند متعددی درباره چارچوبها (Frameworks)، معماریها (Architectures) و همچنین تهدیدهای موجود در لایههای مختلف اینترنت اشیاء ارائه کردهاند. بااینوجود، بخش عمدهای از پژوهشهای موجود، جنبههای امنیتی میانافزار (Firmware) در

پهپادهای مصرفی که امکان تصویربرداری هوایی حرفهای را فراهم میکنند، نویدبخش تحول در صنعت لجستیک هستند و هماکنون نیز در عملیات امداد انسانی و حتی در درگیریهای مسلحانه مورد استفاده قرار میگیرند. با وجود پذیرش گسترده و محبوبیت بالای آنها، ورود آسان به حوزه جابهجایی هوایی (که به طور سنتی به شدت تحت مقررات سختگیرانه قرار دارد) خطرات و تهدیدات متعددی برای ایمنی، امنیت و حریم خصوصی ایجاد میکند. به

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

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

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

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

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

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