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





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





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


آخرین مقالات

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

17. آشنایی با SanitizerStats سنیتایزرها (sanitizer) از يك مكانيزم ساده براي جمعآوري آمار پروفايلينگ (profiling statistics) پشتيباني ميكنند تا درک هزينهها و سربار (overhead) مرتبط با استفاده از سنیتایزرها (sanitizer) را تسهيل كنند. 17.1 نحوه ساخت و اجرا (How to build and run) در حال حاضر SanitizerStats تنها با Control Flow Integrity (CFI)[1] قابل استفاده است. علاوه بر -fsanitize=cfi*، بايد -fsanitize-stats نيز اضافه شود. اين كار باعث ميشود برنامه

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

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

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

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

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

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

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

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

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

17. آشنایی با SanitizerStats سنیتایزرها (sanitizer) از يك مكانيزم ساده براي جمعآوري آمار پروفايلينگ (profiling statistics) پشتيباني ميكنند تا درک هزينهها و سربار (overhead) مرتبط با استفاده از سنیتایزرها (sanitizer) را تسهيل كنند. 17.1 نحوه ساخت و اجرا (How to build and run) در حال حاضر SanitizerStats تنها با Control Flow Integrity (CFI)[1] قابل استفاده است. علاوه بر -fsanitize=cfi*، بايد -fsanitize-stats نيز اضافه شود. اين كار باعث ميشود برنامه

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

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

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

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

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

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

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

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