الکساندر بارتل، استاد مهندسی نرم افزار و امنیت در دانشگاه اومئو، با همکاری چندین محقق اروپایی، ضعف های نرم افزاری که به یکی از پرکاربردترین زبان های برنامه نویسی جهان نوشته شده است را به طور گسترده مورد تجزیه و تحلیل قرار داده است.
“این شامل نقص در فرآیندهایی است که اطلاعات را بازیابی و بازآفرینی می کند – مانند حساب های مشتری، تراکنش ها یا سوابق بیمار. این آسیب پذیری ها می توانند هزینه های زیادی را برای مشاغل، دولت ها و مقامات دولتی ایجاد کنند.”
جاوا پشت برنامه های مورد استفاده در بازی های موبایل، ربات ها، سیستم های تعبیه شده یا برنامه های تجاری است. در طول سالها، چندین نقص امنیتی گزارش شده است و اکنون محققان اروپایی بررسی کردهاند که آیا و چگونه به آن رسیدگی شده است یا خیر.
آنها محصولات جاوا را که از سریالزدایی استفاده میکنند، فرآیند بازگرداندن اطلاعات بستهبندی شده به حالت قبلی خود، مانند تنظیمات کاربر، عملکردهای بازی، سبد خرید یا برنامههای بانکی را بررسی کردهاند و تجزیه و تحلیل عمیقی از آسیبپذیریها و حملات موجود انجام دادهاند.
شرکت های بزرگ تحت تاثیر قرار گرفتند
پروفسور بارتل می گوید: “ما نقاط ضعف و نحوه رسیدگی به آنها را شناسایی کرده ایم. مشکل این است که به نظر می رسد برنامه نویسان اشتباهات مشابه را بارها و بارها تکرار می کنند و بنابراین آسیب پذیری ها را دوباره معرفی می کنند.”
در مطالعه “An-Depth Study of Java Deserialization Remote-Code Execuit Exploits and Vulnerabilities” که با همکاری Eric Bodden، استاد دانشگاه Paderborn، Yves Le Traon، استاد دانشگاه لوکزامبورگ و Imen Sayar، اکنون انجام شد. محقق INRIA، چندین مثال آورده شده است:
- نقص در برنامه های کاربردی مهم PayPal – به پایگاه های داده تولید دسترسی پیدا کرد
- آسیب پذیری در دپارتمان حمل و نقل سانفرانسیسکو – مهاجمان کنترل 2000 رایانه را به دست گرفتند و سیستم های پرداخت را مسدود کردند.
- Equifax، بزرگترین آژانس گزارش اعتباری ایالات متحده در ایالات متحده، مورد حمله ای قرار گرفت که در آن مهاجم موفق به سرقت 147.7 میلیون قطعه داده شخصی شد.
آنچه محققان اروپایی می بینند این است که جریان بایت ها، جریان اطلاعات، برای اصلاح توسط مهاجمان باز می شود. الکساندر بارتل میگوید: “در طول فرآیند واقعی deserialization، زمانی که اطلاعات دوباره ایجاد میشوند، مهاجم میتواند کنترل کاملی بر سیستم دریافت کننده به دست آورد. حتی تغییرات بسیار کوچک در کد میتواند سیستمها را در برابر حملات آسیبپذیر کند.”
ایرادات جدی
اکثر برنامه های جاوا به کتابخانه های خارجی متکی هستند و هیچ راه آسانی برای تعمیر سیستم های آسیب دیده وجود ندارد. الکساندر بارتل استدلال می کند که برای جلوگیری از معرفی نقص های امنیتی در کد جدید، توسعه دهندگان باید به طور کلی از استفاده از سریال زدایی جاوا اجتناب کنند.
الکساندر می گوید: “یافته های ما نشان می دهد که کل زنجیره تامین برنامه توسعه یافته باید به طور کامل در طول چرخه عمر برنامه تایید شود. یافته ها بسیار جدی هستند زیرا پتانسیل پرهزینه بودن را دارند، نه تنها برای شرکت ها بلکه برای جامعه در کل.” بارتل.
این مطالعه توجه قابل توجهی را به خود جلب کرده است و در مجله بسیار معتبر و انتخابی Transactions on Software Engineering and Methodology منتشر شده است. TOSEM، انجمن ماشین های محاسباتی، ACM. یافته ها نیز در ارائه شد ICSE، کنفرانس بین المللی مهندسی نرم افزار که یکی از معتبرترین کنفرانس ها در این زمینه می باشد.
بارتل و گروه تحقیقاتی او اکنون در حال توسعه روشهایی برای شناسایی موثرتر این آسیبپذیریها و جلوگیری از حملات هستند.
سریال سازی و سریال زدایی
فرآیندهایی در علوم کامپیوتر که شامل ذخیره ساختار داده یا وضعیت شی در قالبی است که میتواند ذخیره یا به محیط محاسباتی دیگری منتقل شود. این شامل “ترجمه” ساختارهای داده به جریانی از بایت ها برای تسهیل ذخیره سازی در حافظه، یک فایل یا در حین انتقال داده به ماشین دیگر است.
مثالها عبارتند از: سیستمهای دارویی، که در آن دولتها نیاز به کدگذاری بستهبندی دارند تا بتوان آن را در سراسر زنجیره تامین ردیابی کرد. توسعه بازی: برای ذخیره و بارگیری داده های بازی مانند پیشرفت بازیکن، تنظیمات و بازی های ذخیره شده. بخش مالی: ذخیره و انتقال داده ها در مورد تراکنش های مالی بین بانک ها و سایر سیستم های مالی.
نقل قول: محققان اروپایی هشدار می دهند که نقص های امنیتی عمده در برنامه های جاوا (2023، 27 دسامبر) بازیابی شده در 27 دسامبر 2023 از
این برگه یا سند یا نوشته تحت پوشش قانون کپی رایت است. به غیر از هرگونه معامله منصفانه به منظور مطالعه یا تحقیق خصوصی، هیچ بخشی بدون اجازه کتبی قابل تکثیر نیست. محتوای مذکور فقط به هدف اطلاع رسانی ایجاد شده است.