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





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





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


آخرین مقالات

چکیده – فازینگ (Fuzzing) به یکی از مؤثرترین تکنیکهای خودکار برای کشف آسیبپذیریها و باگهای (bug) نرمافزاری تبدیل شده است. با وجود سالها پژوهش که جنبههای مختلف این حوزه را هدف قرار دادهاند، ارزیابی میزان پیشرفت واقعی فازینگ در گذر زمان همچنان چالشبرانگیز است. در این مقاله، ما یک تحلیل تجربی در مقیاس وسیع از روند پیشرفت فازینگ ارائه میدهیم که بر پایه ++AFL انجام شده است؛ پیشرفتهترین فازری که

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

چکیده – تحلیل ایستای امنیتی کد منبع (Static Application Security Testing – SAST) یکی از رویکردهای بنیادی برای تضمین امنیت نرمافزار در مراحل اولیه چرخه حیات توسعه محسوب میشود. با افزایش اندازه و پیچیدگی سامانههای نرمافزاری، بهویژه در معماریهای توزیعشده و مبتنی بر میکروسرویسها، سطح حمله گسترش یافته و شناسایی آسیبپذیریها در سطح کد با دشواری بیشتری همراه شده است. این پژوهش به بررسی تطبیقی یازده ابزار تحلیل ایستای امنیت

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

چکیده – پیشرفتهای حوزه آزمون فاز (fuzz testing) باعث شده است که بتوان به صورت سریع و جامع، خطاهای بحرانی از نظر امنیتی را در سیستمهای نرمافزاری شناسایی کرد. با این حال، برخی از این تکنیکها به دسترسی به کد منبع (source-code) متکی هستند که غالبا بصورت عملی ممکن نیست. ما در این مقاله، به بررسی روشهایی میپردازیم که بتوانند عمق و کارایی فازرهایی که به کد منبع دسترسی دارند

چکیده – آزمون خودکار نرمافزار مبتنی بر فازینگ (Fuzzing) در سالهای اخیر با یک بازگشت و احیای جدی مواجه شده است. به ویژه فازینگ مبتنی بر بازخورد (feedback-driven fuzzing) که به دلیل توانایی آن در انجام کارآمد آزمونهای تصادفی (randomized testing) با مجموعههای ورودی محدود، به رویکردی شناخته شده تبدیل شده است. با وجود پیشرفتهای فراوان، دو مشکل رایج همچنان وجود دارد: اعداد جادویی (magic numbers) و جمعآزماهای تودرتو (nested checksums).

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

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

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

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

چکیده – فازینگ (Fuzzing) به یکی از مؤثرترین تکنیکهای خودکار برای کشف آسیبپذیریها و باگهای (bug) نرمافزاری تبدیل شده است. با وجود سالها پژوهش که جنبههای مختلف این حوزه را هدف قرار دادهاند، ارزیابی میزان پیشرفت واقعی فازینگ در گذر زمان همچنان چالشبرانگیز است. در این مقاله، ما یک تحلیل تجربی در مقیاس وسیع از روند پیشرفت فازینگ ارائه میدهیم که بر پایه ++AFL انجام شده است؛ پیشرفتهترین فازری که

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

چکیده – تحلیل ایستای امنیتی کد منبع (Static Application Security Testing – SAST) یکی از رویکردهای بنیادی برای تضمین امنیت نرمافزار در مراحل اولیه چرخه حیات توسعه محسوب میشود. با افزایش اندازه و پیچیدگی سامانههای نرمافزاری، بهویژه در معماریهای توزیعشده و مبتنی بر میکروسرویسها، سطح حمله گسترش یافته و شناسایی آسیبپذیریها در سطح کد با دشواری بیشتری همراه شده است. این پژوهش به بررسی تطبیقی یازده ابزار تحلیل ایستای امنیت

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

چکیده – پیشرفتهای حوزه آزمون فاز (fuzz testing) باعث شده است که بتوان به صورت سریع و جامع، خطاهای بحرانی از نظر امنیتی را در سیستمهای نرمافزاری شناسایی کرد. با این حال، برخی از این تکنیکها به دسترسی به کد منبع (source-code) متکی هستند که غالبا بصورت عملی ممکن نیست. ما در این مقاله، به بررسی روشهایی میپردازیم که بتوانند عمق و کارایی فازرهایی که به کد منبع دسترسی دارند

چکیده – آزمون خودکار نرمافزار مبتنی بر فازینگ (Fuzzing) در سالهای اخیر با یک بازگشت و احیای جدی مواجه شده است. به ویژه فازینگ مبتنی بر بازخورد (feedback-driven fuzzing) که به دلیل توانایی آن در انجام کارآمد آزمونهای تصادفی (randomized testing) با مجموعههای ورودی محدود، به رویکردی شناخته شده تبدیل شده است. با وجود پیشرفتهای فراوان، دو مشکل رایج همچنان وجود دارد: اعداد جادویی (magic numbers) و جمعآزماهای تودرتو (nested checksums).

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

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

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

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