Codesys

CODESYS که توسط شرکت آلمانی Smart Software Solutions (3S) توسعه یافته است، مجموعه ای نرم افزاری است که توسط متخصصان اتوماسیون به عنوان یک محیط توسعه مبتنی بر استاندارد  IEC 61131-3 و برای برنامه نویسی برنامه های کنترل کننده که اغلب در محیط های صنعتی یافت می شوند ، استفاده می شود. این محصول یک محیط توسعه ای مستقل از پلتفرم است که با سخت افزار PLC و بسیاری از مؤلفه های اتوماسیون دیگر سازگار است.

به تازگی یک نقص مهم در وب سرور CODESYS شناسایی شده است که می تواند به یک مهاجم از راه دور اجازه دهد که موجب crash سرور یا DoSو یا اجرای کد شود. این نقص که از نوع سرریز بافر مبتنی بر پشته[1] می باشد دارای امتیاز 10 از 10 در مقیاس CVSS v.2 می باشد و برای بهره برداری از آن نیاز به مهارت های بالا نمی باشد.

این آسیب پذیری با شماره CVE-2020-10245 در وب-سرور CODESYS وجود دارد ، که برای نمایش اسکرین های سیستم CODESYS در یک مرورگر وب استفاده می شود.

جزئیات فنی آسیب پذیری

در این نقص، یک کتابخانه وب سرور به نام CmpWebServerHandlerV3.dll (نسخه پرونده 3.5.15.20) داده های ارسال شده توسط کاربر به URL وب سرور را به درستی تأیید اعتبار نمی کند. بنابراین مهاجم می تواند با درخواست مقداری بسیار بزرگ  جهت تخصیص به حافظه از طریق یک پیغام WEB_CLIENT_OPENCONNECTION که به مؤلفه CmpWebServerHandlerV3 ارسال شده است، از این ضعف امنیتی سوء استفاده کند.

به عبارت دیگر این نقص به این دلیل است که تابع MemGCGetSize ، 0x5c بایت را به مقدار درخواستی حافظه در حین پروسه ی تخصیص حافظه اضافه می کند. تابع MemGCGetSize در تابع SysMemAllocData فراخوانی می شود ، که توسط بسیاری از اجزای CODESYS برای تخصیص حافظه از پشته استفاده می شود.

از سوی دیگر مؤلفه CmpWebServerHandlerV3 (هنگامي كه در حالت 0 باشد) سعي مي كند -1 (0xffffffff)  بایت را براي بافر ارتباطي اختصاص دهد. وقتی تابع SysMemAllocData فراخوانی می شود ، اندازه تخصیص حافظه سرریز می شود و یک بافر کوچک  (0xffffffff + 0x5c = 0x5b) اختصاص می یابد.

در PoC منتشرشده درGitHub ، از یک اکسپلویت برای خاتمه دادن به پروسه ی 32 بیتی “CODESYSControlService.exe” در وب سرور استفاده می شود.

نسخه های آسیب پذیر و راه حل:

در CODESYS نسخه 3 ، وب سرور (CmpWebServer و CmpWebServerHandler) بخشی اختیاری از  CODESYS runtime system است. با این حال تمام نسخه های CODESYS V3 runtime systems حاوی وب سروری قبل از نسخه  V3.5.15.40 بدون توجه به نوع CPU یا سیستم عامل، تحت تأثیر قرار می گیرند. بنابراین کاربران باید این محصول را به آخرین نسخه (V3.5.15.40) به روزرسانی کنند.

رصد فضای اینترنت کشور

یکی از پورت هایی که codeSyS از آن برای ارتباط شبکه ای استفاده می کند، پورت TCP/2455 می باشد. که با پویش این پورت در کشور موردی که مشخصا دارای این سرویس باشد کشف نشد.

البته بدیهی است که طبق توضیحات ذکر شده، آسیب پذیری برروی سرویس دهنده وب می باشد.

درصورت وجود این سرویس در شبکه های داخلی احتمال استفاده از آن در مراحل Lateral Movement در زنجیره حملات سایبری بالا می باشد.

[1] heap-based buffer overflow

بازگو شده از : مرکز ماهر

اخبار

CODESYSCVE-2020-10245

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *