
خانه » اجرای نمادین
آسیب پذیریهای تحلیل شده





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





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


آخرین مقالات

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

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

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

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

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

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

ماشین مجازی نمادین[1] KLEE بر فراز زیرساخت گردآورنده LLVM ساخته شده[2] است و در حال حاضر دو بخش اصلی وجود دارد: هسته موتور ماشین مجازی نمادین که مسئول اجرای ماژول های بیتکد[3] LLVM با پشتیبانی از مقدارهای نمادین است. این بخش از کدهای موجود در مسیر lib تشکیل شده است. لایه شبیه سازی[4] POSIX و لینوکس که برای پشتیبانی از uClibc ساماندهی شده است و پشتیبانی بیشتری برای نمادین کردن

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

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

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

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

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

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

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

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

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

ماشین مجازی نمادین[1] KLEE بر فراز زیرساخت گردآورنده LLVM ساخته شده[2] است و در حال حاضر دو بخش اصلی وجود دارد: هسته موتور ماشین مجازی نمادین که مسئول اجرای ماژول های بیتکد[3] LLVM با پشتیبانی از مقدارهای نمادین است. این بخش از کدهای موجود در مسیر lib تشکیل شده است. لایه شبیه سازی[4] POSIX و لینوکس که برای پشتیبانی از uClibc ساماندهی شده است و پشتیبانی بیشتری برای نمادین کردن

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

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

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