دسته‌بندی

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

فازینگ

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

مطالعه مقاله
Sanitizer - سنی تایزر

بررسی سنی‌تایزرهای LLVM – بخش دوم

12. آشنایی با DataFlowSanitizer (معروف به dfsan) DataFlowSanitizer يک سامانه تحليل پوياي گردش داده (dynamic data flow analysis) به صورت عمومي است. بر خلاف ساير ابزارهاي سنی‌تایزر (Sanitizer)، اين ابزار براي شناسايي يک رده مشخص از خطاها به صورت مستقل طراحي نشده است. در عوض، يک چارچوب عمومي تحليل پوياي گردش داده فراهم ميکند تا توسط برنامه نويسان به عنوان client مورد استفاده قرار گيرد و به آنان امکان دهد

مطالعه مقاله
Sanitizer - سنی تایزر

بررسی سنی‌تایزرهای LLVM – بخش اول

1. مقدمه (Introduction) واژه «سنی‌تایزر» (Sanitizer) در زبان انگلیسی به معنای ضدعفونی‌کننده یا پاک‌کننده است، اما در حوزه علوم کامپیوتر—به‌ویژه در اکوسیستم‌های LLVM و Clang—معنایی کاملاً تخصصی و متفاوت دارد. در این زمینه، سنی‌تایزر به ابزاری گفته می‌شود که برای تشخیص خطاهای زمان اجرا از طریق ابزارگذاری (Instrumentation) به کار می‌رود. به بیان دقیق‌تر، Code Sanitizer ابزاری است که با تزریق کدهای نظارتی در مرحله کامپایل، رفتار برنامه را در

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

فازر ++AFL

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

مطالعه مقاله
vulnerlab - والنرلب - فازینگ جامع و مقرون‌به‌صرفه آگاه از دستور زبان

تسهیل فازینگ جامع و مقرون‌به‌صرفه آگاه از دستور زبان با بهره‌گیری از مدل‌های زبانی بزرگ

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

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

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

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

مطالعه مقاله
vulnerlab - والنرلب - مسئله ارضاپذیری در چارچوب نظریه‌ها- SMT Solver

Z3: ابزاری سریع و بهینه برای حل مسائل SMT

Z3 یک حل کننده صدق پذیری بر اساس نظریه ها (SMT – Satisfiability Modulo Theory) است که توسط بخش تحقیقات مایکروسافت توسعه داده شده است. Z3 ابزار قدرتمندی برای حل مسائلی است که شامل ترکیبی از نظریه‌های پس‌زمینه مانند حساب، بردارهای بیتی، آرایه‌ها و توابع تفسیر نشده هستند و به طور گسترده در تأیید، تحلیل و آزمایش نرم‌افزار استفاده می‌شوند. Z3 با استفاده از ادغام دقیق موتورهای تخصصی برای نظریه‌های

مطالعه مقاله
DFL - والنرلب - vulnerlab - فازینگ - fuzzing -

DFL: چارچوب فازینگ مبتنی بر تولید نمونه‌های DOM برای موتورهای رندر مرورگر

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

مطالعه مقاله
والنرلب - vulnerlab - فازینگ - fuzzing

مروری بر فازینگ

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

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

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

مطالعه مقاله
Sanitizer - سنی تایزر

بررسی سنی‌تایزرهای LLVM – بخش دوم

12. آشنایی با DataFlowSanitizer (معروف به dfsan) DataFlowSanitizer يک سامانه تحليل پوياي گردش داده (dynamic data flow analysis) به صورت عمومي است. بر خلاف ساير ابزارهاي سنی‌تایزر (Sanitizer)، اين ابزار براي شناسايي يک رده مشخص از خطاها به صورت مستقل طراحي نشده است. در عوض، يک چارچوب عمومي تحليل پوياي گردش داده فراهم ميکند تا توسط برنامه نويسان به عنوان client مورد استفاده قرار گيرد و به آنان امکان دهد

مطالعه مقاله
Sanitizer - سنی تایزر

بررسی سنی‌تایزرهای LLVM – بخش اول

1. مقدمه (Introduction) واژه «سنی‌تایزر» (Sanitizer) در زبان انگلیسی به معنای ضدعفونی‌کننده یا پاک‌کننده است، اما در حوزه علوم کامپیوتر—به‌ویژه در اکوسیستم‌های LLVM و Clang—معنایی کاملاً تخصصی و متفاوت دارد. در این زمینه، سنی‌تایزر به ابزاری گفته می‌شود که برای تشخیص خطاهای زمان اجرا از طریق ابزارگذاری (Instrumentation) به کار می‌رود. به بیان دقیق‌تر، Code Sanitizer ابزاری است که با تزریق کدهای نظارتی در مرحله کامپایل، رفتار برنامه را در

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

فازر ++AFL

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

مطالعه مقاله
vulnerlab - والنرلب - فازینگ جامع و مقرون‌به‌صرفه آگاه از دستور زبان

تسهیل فازینگ جامع و مقرون‌به‌صرفه آگاه از دستور زبان با بهره‌گیری از مدل‌های زبانی بزرگ

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

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

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

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

مطالعه مقاله
vulnerlab - والنرلب - مسئله ارضاپذیری در چارچوب نظریه‌ها- SMT Solver

Z3: ابزاری سریع و بهینه برای حل مسائل SMT

Z3 یک حل کننده صدق پذیری بر اساس نظریه ها (SMT – Satisfiability Modulo Theory) است که توسط بخش تحقیقات مایکروسافت توسعه داده شده است. Z3 ابزار قدرتمندی برای حل مسائلی است که شامل ترکیبی از نظریه‌های پس‌زمینه مانند حساب، بردارهای بیتی، آرایه‌ها و توابع تفسیر نشده هستند و به طور گسترده در تأیید، تحلیل و آزمایش نرم‌افزار استفاده می‌شوند. Z3 با استفاده از ادغام دقیق موتورهای تخصصی برای نظریه‌های

مطالعه مقاله
DFL - والنرلب - vulnerlab - فازینگ - fuzzing -

DFL: چارچوب فازینگ مبتنی بر تولید نمونه‌های DOM برای موتورهای رندر مرورگر

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

مطالعه مقاله
والنرلب - vulnerlab - فازینگ - fuzzing

مروری بر فازینگ

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

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