روش مقابله با استاکس‌نت آینده

روش مقابله با استاکس‌نت آینده
تاریخ انتشار : ۰۷ اسفند ۱۳۹۵

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

به گزارش گرداب، با توجه به گزارش چند پژوهشگاه علمی در هند و سنگاپور، منطق نردبانی  (ladder logic) که یکی از قدیمی‌ترین روش‌های برنامه‌نویسی در کنترلرهای منطقی قابل‌برنامه‌ریزی صنعتی (PLC) محسوب می‌شود، همچنان از آسیب‌پذیری‌های خطرناکی بهره می‌برد.

نامن گاویل (Noman Govil)، یکی از محققان «موسسه بین‌المللی فناوری اطلاعات حیدر آّباد هند» (International Institute of Information Technology, Hyderabad)، آنَند آگراوال (Anand Agrawal) و نیلز اُلِ تیپنهائر (Nils Ole Tippenhauer) از دانشگاه فناوری و طراحی سنگاپور (Singapore University of Technology and Design)، توضیح دادند با وجود توجه زیادی که به حملاتی مثل استاکس‌نت شد، کار چندانی در زمینه پرداختن به آنچه در سطح منطق کنترل جاری می‌شود انجام نشده است.

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

محققان برای آزمایش، یکی از سیستم‌های شرکت راکول2 (Rockwell) موردبررسی قرار دادند. در سامانه‌ی مورد آزمایش بروزرسانی‌های  سفت‌افزار (firmware) به جای منطق نردبانی با استفاده از امضاهای دیجیتالی محافظت می‌شد. این روش باعث می‌شود تا تنها افرادی که از قبل تأیید شده‌اند به برنامه‌های دسترسی داشته باشند.

محققان ادامه دادند: «هیچ نوع بررسی یا روش احراز صلاحیتی و اعتبارسنجی برای منابعی که بروزرسانی‌های منطقی کنترلرهای منطقی قابل‌برنامه‌ریزی صنعتی از آن دریافت می‌شود وجود ندارد.»

تیپنهائر و گروهش برای اثبات موضوع یاد شده کدهایی را با تمرکز روی رفتارهای پنهانی و با نام  «بمب‌های نردبان منطقی » (ladder logic bombs) تولید کردند که شناسایی آن برای اپراتور انسانی مشکل است. هدف بررسی این  موضع بود که آیا آن‌ها متوجه اعتبار یا عدم اعتبار برنامه‌ی در حال اجرا روی کنترلرهای صنعتی خود می‌شوند یا خیر؟

برای بررسی سه نوع آزمایش مختلف صورت گرفت که شامل:
•    اختلال سرور بمب‌های نردبان منطقی (Denial of Service LLB) که منتظر می‌مانند تا در زمانی مناسب سامانه را خاموش کنند.
•    دست‌کاری داده‌ی سرور بمب‌های نردبان منطقی (data manipulation LLB) که فرمان‌ها و اطلاعات خوانده شده از روی حسگرها را دست‌کاری می‌کند.
•    داده‌های ورود به سیستم بمب‌های نردبان منطقی (data logging LLB)، که با وجود عدم ایجاد مزاحمت برای سامانه، خطرناک‌ترین در بین سه نوع مطرح شده است؛ زیرا در صورت عدم شناسایی، می‌تواند برای مدتی طولانی باعث فاش شدن داده‌های حساس بشود.
محققان اشاره کردند پنهان‌سازی کدهای مخرب یاد شده بسیار آسان است؛ زیرا می‌توان آن‌ها را به عنوان یک دستورالعمل مشروع که با آرایه‌ها کار کرده با باعث سرریز پشته3 می‌شود معرفی کرد. (این کار بسیار ساده است زیرا باعث ایجاد یک تابع بازگشتی می‌شود که به صورت پیوسته خود را فراخوانی می‌کند.)
تیپنهائر روش‌هایی را نیز برای مقابله با آسیب‌پذیری‌های بالا ذکر کرده است که پیاده‌سازی آن‌ها ساده به نظر می‌رسد.
ابتدا در روشی که «نمونه‌ی طلایی» (golden samples) نامیده می‌شود، شرکت‌ها باید محل ذخیره‌سازی نرم‌افزار  کنترلرهای منطقی قابل‌برنامه‌ریزی را در یک منطقه متمرکز کرده، تمامی مهندسان و کنترلرها باید بروزرسانی‌ها را از محل تعیین شده دریافت کنند. همچنین اپراتورها باید به صورت دوره‌ای اعتبار نرم‌افزارهای مورد استفاده در کنترلرهای صنعتی را موردبررسی قرار دهند و بهتر است این کار به صورت خودکار صورت گیرد.

___________________________________
1- منطق نردبانی، یک روش مکتوب برای مستندسازی طراحی و ساخت رک‌های رله (ترجمه رک رو اضافه کنید) است که در کنترل فرایند و تولید به کار می‌رود.  هر دستگاه توسط یک نماد بر روی نمودار نردبانی ارائه می‌شود که ارتباطات بین ابزارها را نشان می‌دهد. همچنین آیتم‌های دیگری که خارج از رک رله قرار دارند نظیر پمپ‌ها، گرم کن‌ها و غیره نیز در نمودار نردبانی به تصویر کشیده می‌شود.منطق نردبانی به یک‌زبان برنامه‌نویسی تبدیل شده است که برنامه را با استفاده از نمودار گرافیکی بر مبنای نمودارهای مداری سخت‌افزار منطقی رله ارائه می‌دهد.
2- راکول، شرکت تجهیزات الکتریکی آمریکایی است، که در زمینه تولید تجهیزات الکترونیکی و الکتریکی، مهندسی برق، تجهیزات تولید، توزیع و انتقال انرژی الکتریکی فعالیت می‌کند.
3- هنگامی یک نرم‌افزار با سرریز پشته مواجه می‌شود، که حافظه‌ای بیش از پشته فراخوانی را مورد استفاده قرار دهد. پشتۀ فراخوانی حجم مشخصی از حافظه را در اختیار دارد که عموماً هنگام شروع نرم‌افزار مشخص می‌گردد. این حجم به عوامل مختلفی از جمله معماری رایانه، زبان برنامه‌نویسی و چند نخی بودن نرم‌افزار بستگی دارد.