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





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





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


آخرین مقالات

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

فازینگ (Fuzzing) مؤثرِ برنامههایی که ورودیهای باینریِ ساختیافته (Structured) مانند فایلهای چندرسانهای را پردازش میکنند، کاری چالشبرانگیز است؛ زیرا این برنامهها انتظار دارند ورودی دقیقاً مطابق یک قالب (Format) بسیار مشخص باشد. با این حال، فازرهای موجود عمدتاً مستقل از قالببندی (format-agnostic) هستند؛ این ویژگی اگرچه آنها را انعطافپذیر میکند، اما در سناریوهایی که رعایت یک قالب خاص ضروری است، کارایی آنها را کاهش میدهد. در اینجا، ابزار FormatFuzzer معرفی

آزمون فازی یا فازینگ (Fuzz testing – Fuzzing) در سالهای اخیر در شناسایی نقصهای امنیتی پیشرفت چشمگیری داشته است. این روش تعداد زیادی موارد آزمایشی (test cases) تولید کرده و اجرای آنها را برای یافتن خطاها پایش میکند. فازینگ تاکنون هزاران باگ (Bug) و آسیبپذیری را در برنامههای مختلف شناسایی کرده است. با وجود اثربخشی، هنوز یک تحلیل نظاممند از شکافهایی که فازینگ با آنها مواجه است وجود ندارد. فازینگ

پروتکلهای ارتباطی زیربنای جهانِ بههمپیوستهٔ امروز را تشکیل میدهند، اما وجود آسیبپذیری در پیادهسازی آنها تهدیدات امنیتی مهمی را به همراه دارد. تحولات اخیر نشان دهندهٔ رشد چشمگیر پژوهشهای مبتنی بر فازینگ (Fuzzing) برای کشف این آسیبپذیریها در پیادهسازی پروتکلها است. بااینحال، هنوز مرور نظاممندی از فازینگ پروتکل (Protocol Fuzzing) ارائه نشده است که بتواند به پرسشهای اساسی، مانند چالشهای منحصربهفرد این حوزه و شیوهٔ مواجههٔ پژوهشهای موجود با این

باینریهای WebAssembly اغلب از زبانهای ناایمن از نظر مدیریت حافظه مانند C و ++C کامپایل میشوند. به دلیل وجود مدل حافظهٔ خطی (Linear Memory) در WebAssembly و فقدان برخی مکانیزمهای حفاظتی (مانند stack canary) آسیبپذیریهای حافظه که در سطح کد منبع وجود دارند، در باینریهای کامپایل شدهٔ WebAssembly قابل بهرهبرداری (exploitable) هستند؛ در برخی موارد حتی آسانتر از کد بومی (native code). در این مقاله، مسئلهٔ کشف چنین آسیبپذیریهایی از

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

امروزه مجازیسازی تودرتو (Nested virtualization) به طور گسترده توسط تأمینکنندگان اصلی خدمات ابری پشتیبانی میشود و به کاربران امکان میدهد از فناوریهای مبتنی بر مجازیسازی در فضای ابری بهرهمند شوند. با این حال، پشتیبانی از مجازیسازی تودرتو به طور قابل توجهی بر پیچیدگی هایپروایزر (hypervisor) میزبان میافزاید و سطح حمله جدیدی را در بسترهای ابری ایجاد میکند. اگرچه پژوهشهای پیشین متعددی فازینگ هایپروایزرها را مورد بررسی قرار دادهاند، اما هیچکدام

فازینگ شامل تعداد زیادی تصمیمگیری است که برای به حداکثر رساندن کارایی، به پارامترهای دقیق و از پیشتنظیم شده نیاز دارند. این موضوع به ویژه در فازینگ هستهٔ سیستمعامل اهمیت بیشتری دارد، زیرا (۱) هستههای سیستم عامل بسیار بزرگ و پیچیدهاند، (۲) رابط فراخوانی سیستمی (syscall) خاصی دارند که نیازمند مدیریت ویژه است (مثلاً کدگذاری وابستگیهای صریح بین syscallها)، و (۳) رفتار ورودیها (یعنی تستکیسها) به دلیل ماهیت حالتمند هستهها

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

فازینگ جعبه خاکستری هدایت شده (Directed Greybox Fuzzing یا DGF) رویکردی مؤثر است که با استفاده از نقاط هدف از پیش تعریف شده، برای تقویت آزمون نواحی آسیبپذیر کد طراحی شده است. روشهای پیشرفته DGF با بازتعریف و بهینهسازی معیار برازندگی (fitness metric) تلاش میکنند بهصورت دقیق و سریع به نقاط هدف برسند. با این حال، بهینه سازیهای معیار برازندگی عمدتاً بر الگوریتمهای ابتکاری متکی هستند که معمولاً به اطلاعات

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

فازینگ (Fuzzing) مؤثرِ برنامههایی که ورودیهای باینریِ ساختیافته (Structured) مانند فایلهای چندرسانهای را پردازش میکنند، کاری چالشبرانگیز است؛ زیرا این برنامهها انتظار دارند ورودی دقیقاً مطابق یک قالب (Format) بسیار مشخص باشد. با این حال، فازرهای موجود عمدتاً مستقل از قالببندی (format-agnostic) هستند؛ این ویژگی اگرچه آنها را انعطافپذیر میکند، اما در سناریوهایی که رعایت یک قالب خاص ضروری است، کارایی آنها را کاهش میدهد. در اینجا، ابزار FormatFuzzer معرفی

آزمون فازی یا فازینگ (Fuzz testing – Fuzzing) در سالهای اخیر در شناسایی نقصهای امنیتی پیشرفت چشمگیری داشته است. این روش تعداد زیادی موارد آزمایشی (test cases) تولید کرده و اجرای آنها را برای یافتن خطاها پایش میکند. فازینگ تاکنون هزاران باگ (Bug) و آسیبپذیری را در برنامههای مختلف شناسایی کرده است. با وجود اثربخشی، هنوز یک تحلیل نظاممند از شکافهایی که فازینگ با آنها مواجه است وجود ندارد. فازینگ

پروتکلهای ارتباطی زیربنای جهانِ بههمپیوستهٔ امروز را تشکیل میدهند، اما وجود آسیبپذیری در پیادهسازی آنها تهدیدات امنیتی مهمی را به همراه دارد. تحولات اخیر نشان دهندهٔ رشد چشمگیر پژوهشهای مبتنی بر فازینگ (Fuzzing) برای کشف این آسیبپذیریها در پیادهسازی پروتکلها است. بااینحال، هنوز مرور نظاممندی از فازینگ پروتکل (Protocol Fuzzing) ارائه نشده است که بتواند به پرسشهای اساسی، مانند چالشهای منحصربهفرد این حوزه و شیوهٔ مواجههٔ پژوهشهای موجود با این

باینریهای WebAssembly اغلب از زبانهای ناایمن از نظر مدیریت حافظه مانند C و ++C کامپایل میشوند. به دلیل وجود مدل حافظهٔ خطی (Linear Memory) در WebAssembly و فقدان برخی مکانیزمهای حفاظتی (مانند stack canary) آسیبپذیریهای حافظه که در سطح کد منبع وجود دارند، در باینریهای کامپایل شدهٔ WebAssembly قابل بهرهبرداری (exploitable) هستند؛ در برخی موارد حتی آسانتر از کد بومی (native code). در این مقاله، مسئلهٔ کشف چنین آسیبپذیریهایی از

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

امروزه مجازیسازی تودرتو (Nested virtualization) به طور گسترده توسط تأمینکنندگان اصلی خدمات ابری پشتیبانی میشود و به کاربران امکان میدهد از فناوریهای مبتنی بر مجازیسازی در فضای ابری بهرهمند شوند. با این حال، پشتیبانی از مجازیسازی تودرتو به طور قابل توجهی بر پیچیدگی هایپروایزر (hypervisor) میزبان میافزاید و سطح حمله جدیدی را در بسترهای ابری ایجاد میکند. اگرچه پژوهشهای پیشین متعددی فازینگ هایپروایزرها را مورد بررسی قرار دادهاند، اما هیچکدام

فازینگ شامل تعداد زیادی تصمیمگیری است که برای به حداکثر رساندن کارایی، به پارامترهای دقیق و از پیشتنظیم شده نیاز دارند. این موضوع به ویژه در فازینگ هستهٔ سیستمعامل اهمیت بیشتری دارد، زیرا (۱) هستههای سیستم عامل بسیار بزرگ و پیچیدهاند، (۲) رابط فراخوانی سیستمی (syscall) خاصی دارند که نیازمند مدیریت ویژه است (مثلاً کدگذاری وابستگیهای صریح بین syscallها)، و (۳) رفتار ورودیها (یعنی تستکیسها) به دلیل ماهیت حالتمند هستهها

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

فازینگ جعبه خاکستری هدایت شده (Directed Greybox Fuzzing یا DGF) رویکردی مؤثر است که با استفاده از نقاط هدف از پیش تعریف شده، برای تقویت آزمون نواحی آسیبپذیر کد طراحی شده است. روشهای پیشرفته DGF با بازتعریف و بهینهسازی معیار برازندگی (fitness metric) تلاش میکنند بهصورت دقیق و سریع به نقاط هدف برسند. با این حال، بهینه سازیهای معیار برازندگی عمدتاً بر الگوریتمهای ابتکاری متکی هستند که معمولاً به اطلاعات