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

دسته‌بندی

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

Dynamic Symbolic Execution - Hybrid Fuzzing

کاربرد اجرای نمادین پویا در فازینگ هیبریدی کد دودویی برای معماری‌های Baikal-M و RISC-V 64

فازینگ هیبریدی (Hybrid Fuzzing) و اجرای نمادین پویا (Dynamic Symbolic Execution) به بخش حیاتی چرخه حیات توسعه نرم‌افزار امن تبدیل شده‌اند. در حال حاضر، نسبت کدهایی که برای معماری‌های ARM و RISC-V توسعه داده می‌شوند، به طور مداوم در حال افزایش است و وظیفه تحلیل مؤثر آنها را در اولویت قرار می‌دهد. این مقاله با توسعه روش‌های اجرای نمادین پویا و فازینگ هیبریدی برای معماری‌های مدرن RISC – «Baikal-M (ARM/AArch64)  و

مطالعه مقاله
MSFuzz - فازینگ - Fuzzing

MSFuzz: بهبود فازینگ پروتکل با درک نحو پیام‌های مبتنی بر مدل‌های زبانی بزرگ

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

مطالعه مقاله
NDFuzz

NDFuzz: یک چارچوب غیرتهاجمی برای فازینگ هدایت‌ شده با پوشش در تجهیزات شبکه مجازی‌سازی‌ شده

مجازی‌سازی عملکردهای شبکه (Network Function Virtualization) با بهره‌گیری از فناوری‌های مجازی‌سازی و سخت‌افزارهای عمومی، میان‌افزارهای قابل‌برنامه‌ریزی درون‌شبکه‌ای را فراهم می‌کند و در میان تمامی تولیدکنندگان اصلی تجهیزات شبکه به محبوبیت گسترده‌ای دست یافته است. با این حال، اعمال فازینگ هدایت‌ شده با پوشش (coverage-guided fuzzing) که یکی از پیشرفته‌ترین روش‌های کشف آسیب‌پذیری به شمار می‌رود بر روی این تجهیزات شبکه مجازی‌سازی ‌شده چالش‌برانگیز است؛ چرا که این دستگاه‌ها بطور ناگزیر از

مطالعه مقاله
پروتکل فازینگ شبکه

بررسی پیشرفت‌های فنی فازینگ پروتکل شبکه

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

مطالعه مقاله
The general workflow of SCGF.

زمان‌بندی چندمرحله‌ای بذرهای مبتنی بر یادگیری تقویتی برای فازینگ پروتکل‌های شبکه

زمان‌بندی مؤثر بذر (Seed)، در فازینگ پروتکل شبکه، نقش مهمی در بهبود کارایی آزمایش ایفا می‌کند. روش‌های سنتی زمان‌بندی بذر مبتنی بر حالت (وضعیت) در فازینگ پروتکل شبکه اغلب با انتخاب بذر نامتوازن، استراتژی‌های زمان‌بندی یکپارچه و تخصیص توان ناکارآمد محدود می‌شوند. برای غلبه بر این محدودیت‌ها، ما SCFuzz را پیشنهاد می‌کنیم، به طور خاص با استفاده از یک مدل باندیت چنداهرمـی (Multi-Armed Bandit Model) برای ایجاد تعادل پویا بین

مطالعه مقاله
Detecting Software Vulnerability with Symbolic Execution and Fuzzing

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

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

مطالعه مقاله
Symbolic Execution - اجرای نمادین - KLEE

راه اندازی آزمایشگاه Symbolic Exection توسط klee

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

مطالعه مقاله
Symbolic Execution and Program Testing

اجرای نمادین و آزمون برنامه‌ها

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

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

راه اندازی آزمایشگاه فازینگ libfuzzer

LibFuzzer یک موتور فازینگ (Fuzzing) درون‌فرآیندی مبتنی بر پوشش کد (Code coverage) و با رویکرد تکاملی است. LibFuzzer همراه با کتابخانه‌ای که قرار است مورد آزمایش قرار گیرد، لینک می‌شود و ورودی‌های فازشده (fuzzed inputs) را از طریق یک نقطه‌ی ورود مشخص برای فازینگ (که به آن «تابع هدف» یا target function نیز گفته می‌شود) به کتابخانه ارسال می‌کند. فازر سپس مسیرهای طی‌شده در کد را ردیابی کرده و با

مطالعه مقاله
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 نيز اضافه شود. اين كار باعث مي‌شود برنامه

مطالعه مقاله
Dynamic Symbolic Execution - Hybrid Fuzzing

کاربرد اجرای نمادین پویا در فازینگ هیبریدی کد دودویی برای معماری‌های Baikal-M و RISC-V 64

فازینگ هیبریدی (Hybrid Fuzzing) و اجرای نمادین پویا (Dynamic Symbolic Execution) به بخش حیاتی چرخه حیات توسعه نرم‌افزار امن تبدیل شده‌اند. در حال حاضر، نسبت کدهایی که برای معماری‌های ARM و RISC-V توسعه داده می‌شوند، به طور مداوم در حال افزایش است و وظیفه تحلیل مؤثر آنها را در اولویت قرار می‌دهد. این مقاله با توسعه روش‌های اجرای نمادین پویا و فازینگ هیبریدی برای معماری‌های مدرن RISC – «Baikal-M (ARM/AArch64)  و

مطالعه مقاله
MSFuzz - فازینگ - Fuzzing

MSFuzz: بهبود فازینگ پروتکل با درک نحو پیام‌های مبتنی بر مدل‌های زبانی بزرگ

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

مطالعه مقاله
NDFuzz

NDFuzz: یک چارچوب غیرتهاجمی برای فازینگ هدایت‌ شده با پوشش در تجهیزات شبکه مجازی‌سازی‌ شده

مجازی‌سازی عملکردهای شبکه (Network Function Virtualization) با بهره‌گیری از فناوری‌های مجازی‌سازی و سخت‌افزارهای عمومی، میان‌افزارهای قابل‌برنامه‌ریزی درون‌شبکه‌ای را فراهم می‌کند و در میان تمامی تولیدکنندگان اصلی تجهیزات شبکه به محبوبیت گسترده‌ای دست یافته است. با این حال، اعمال فازینگ هدایت‌ شده با پوشش (coverage-guided fuzzing) که یکی از پیشرفته‌ترین روش‌های کشف آسیب‌پذیری به شمار می‌رود بر روی این تجهیزات شبکه مجازی‌سازی ‌شده چالش‌برانگیز است؛ چرا که این دستگاه‌ها بطور ناگزیر از

مطالعه مقاله
پروتکل فازینگ شبکه

بررسی پیشرفت‌های فنی فازینگ پروتکل شبکه

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

مطالعه مقاله
The general workflow of SCGF.

زمان‌بندی چندمرحله‌ای بذرهای مبتنی بر یادگیری تقویتی برای فازینگ پروتکل‌های شبکه

زمان‌بندی مؤثر بذر (Seed)، در فازینگ پروتکل شبکه، نقش مهمی در بهبود کارایی آزمایش ایفا می‌کند. روش‌های سنتی زمان‌بندی بذر مبتنی بر حالت (وضعیت) در فازینگ پروتکل شبکه اغلب با انتخاب بذر نامتوازن، استراتژی‌های زمان‌بندی یکپارچه و تخصیص توان ناکارآمد محدود می‌شوند. برای غلبه بر این محدودیت‌ها، ما SCFuzz را پیشنهاد می‌کنیم، به طور خاص با استفاده از یک مدل باندیت چنداهرمـی (Multi-Armed Bandit Model) برای ایجاد تعادل پویا بین

مطالعه مقاله
Detecting Software Vulnerability with Symbolic Execution and Fuzzing

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

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

مطالعه مقاله
Symbolic Execution - اجرای نمادین - KLEE

راه اندازی آزمایشگاه Symbolic Exection توسط klee

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

مطالعه مقاله
Symbolic Execution and Program Testing

اجرای نمادین و آزمون برنامه‌ها

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

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

راه اندازی آزمایشگاه فازینگ libfuzzer

LibFuzzer یک موتور فازینگ (Fuzzing) درون‌فرآیندی مبتنی بر پوشش کد (Code coverage) و با رویکرد تکاملی است. LibFuzzer همراه با کتابخانه‌ای که قرار است مورد آزمایش قرار گیرد، لینک می‌شود و ورودی‌های فازشده (fuzzed inputs) را از طریق یک نقطه‌ی ورود مشخص برای فازینگ (که به آن «تابع هدف» یا target function نیز گفته می‌شود) به کتابخانه ارسال می‌کند. فازر سپس مسیرهای طی‌شده در کد را ردیابی کرده و با

مطالعه مقاله
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 نيز اضافه شود. اين كار باعث مي‌شود برنامه

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