شناسایی آسیب پذیری های نرم افزار به سرعت و کارآمد


شناسایی آسیب پذیری های نرم افزار به سرعت و کارآمد

محققین پوشش کد fuzzer خود را ارزیابی می کنند، یعنی اینکه چه مقدار از کد برنامه را می توان با ابزار آنها تجزیه و تحلیل کرد. نتیجه: پوشش کد با ضریب 4 بیشتر از الگوریتم های دیگر است. اعتبار: Michael Schwettmann

تقریباً هر کد برنامه جدید دارای اشکالاتی است که در بدترین حالت ممکن است امنیت را به خطر بیندازد. به منظور شناسایی سریع و کارآمد آنها، محققان موسسه هورست گورتز برای امنیت فناوری اطلاعات در دانشگاه روهر بوخوم، آلمان، سیستم جدیدی به نام Fuzzware توسعه داده‌اند.

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

دکترای بوخوم دانشجوی توبیاس شارنوفسکی، تحت نظارت پروفسور تورستن هولز، نتایج را در سی و یکمین سمپوزیوم امنیتی Usenix در ایالات متحده در اوت 2022 ارائه کرده است. او این تحقیق را با همکاری همکاران دانشگاه کالیفرنیا سانتا باربارا و دانشگاه Vrije در آمستردام انجام داد.

خراب کردن نرم افزار از عمد

این گروه از آنچه به عنوان fuzzing شناخته می شود برای تشخیص خطاها در کد برنامه استفاده می کند. Fuzzer ها الگوریتم هایی هستند که نرم افزار تست شده را با ورودی های تصادفی تغذیه می کنند و بررسی می کنند که آیا می توانند برنامه را با آنها خراب کنند یا خیر. چنین خرابی هایی نشان دهنده خطاهای برنامه نویسی است. فوزر ورودی را تغییر می دهد تا هر چه بیشتر اجزای برنامه را گام به گام کشف کند.

Fuzzing در حال حاضر برای مناطق خاصی از برنامه ایجاد شده است، به عنوان مثال برای آزمایش سیستم عامل هایی مانند ویندوز یا لینوکس. با این حال، هنوز به طور گسترده ای برای آزمایش سیستم های جاسازی شده استفاده نشده است، زیرا آنها تعدادی چالش را ایجاد می کنند: نرم افزار – به اصطلاح سیستم عامل – در یک قطعه سخت افزاری تعبیه شده است که با آن تعامل دارد. اغلب سیستم ها حافظه نسبتا کمی دارند و پردازنده های کندی دارند. اگر محققین بخواهند فازسازی را مستقیماً روی سیستم انجام دهند، این یک مشکل است. آزمایش همه ورودی های ممکن و منتظر پاسخ سیستم بسیار طولانی خواهد بود.

تقلید مجازی از سخت افزار

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

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

ورودی های محدود تجزیه و تحلیل کارآمد را تسهیل می کند

به همراه همکارانش از سانتا باربارا و آمستردام، تیم بوخوم 77 سیستم عامل را با استفاده از Fuzzware آزمایش کردند. در مقایسه با روش های فازی مرسوم، آنها تا 95.5 درصد از تمام ورودی های ممکن را مرتب کردند.

این کار به Fuzzware امکان می دهد تا سه برابر بیشتر از روش های معمولی کد برنامه را در مدت زمان مشابه بررسی کند. در این فرآیند، گروه همچنین آسیب‌پذیری‌های دیگری را شناسایی کرد که با روش‌های فازی دیگر شناسایی نشده بودند.

اطلاعات بیشتر:
Fuzzware: استفاده از مدل سازی دقیق MMIO برای Fuzzing موثر میان افزار. www.usenix.org/conference/usen … entation/scharnowski

ارائه شده توسط Ruhr-Universitaet-Bochum


نقل قول: شناسایی سریع و کارآمد آسیب‌پذیری‌های نرم‌افزار (2022، 14 دسامبر) بازیابی شده در 14 دسامبر 2022 از

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





منبع