Skip to content
قطعات اتوماسیون، تامین جهانی
How to Harden PLCs Against Cyber Threats in Factories?

چگونه PLCها را در برابر تهدیدات سایبری در کارخانه‌ها مقاوم کنیم؟

این مقاله فنی امنیت PLC و DCS را از دیدگاه مهندس بررسی می‌کند و به جزئیات آسیب‌پذیری‌های سطح پروتکل (Modbus، Profinet)، مراحل گام‌به‌گام سخت‌سازی، روش‌های برنامه‌نویسی امن و داده‌های واقعی از کارخانه‌های خودروسازی و تصفیه آب می‌پردازد. این مقاله راهنمایی‌های عملی برای تقسیم‌بندی شبکه، پیکربندی فایروال، روند به‌روزرسانی فرم‌ویر و سخت‌سازی دسترسی از راه دور ارائه می‌دهد.

درک سطح حمله PLCها و DCSهای مدرن

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

بررسی عمیق: آسیب‌پذیری‌های سطح پروتکل که مهندسان باید بدانند

پروتکل‌های صنعتی دهه‌ها پیش برای سادگی و سرعت طراحی شده‌اند. امنیت هرگز هدف طراحی نبوده است. درک این ضعف‌های فنی به مهندسان کمک می‌کند کنترل‌های جبرانی مناسب را انتخاب کنند.

Modbus TCP: بدون احراز هویت، بدون رمزنگاری

Modbus TCP از کدهای عملکرد ۰۱-۰۶ برای عملیات خواندن و نوشتن استفاده می‌کند. هر دستگاهی که به پورت ۵۰۲ دسترسی داشته باشد می‌تواند فرمان‌های نوشتن دلخواه ارسال کند. هیچ مفهوم جلسه، هویت کاربر یا بررسی صحت پیام وجود ندارد. مهاجمی که به شبکه دسترسی پیدا کند می‌تواند یک موتور را متوقف کند، یک شیر را باز کند یا یک نقطه تنظیم را تغییر دهد بدون اینکه لاگ‌های احراز هویت باقی بگذارد. تنها محافظت، جداسازی در لایه شبکه یا دروازه‌های لایه برنامه است که کدهای عملکرد را فیلتر می‌کنند.

Profinet و EtherNet/IP: آسیب‌پذیر در برابر حملات تزریق

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

OPC کلاسیک: متکی به شکاف‌های امنیتی DCOM

بسیاری از سیستم‌های DCS قدیمی از OPC DA (دسترسی به داده) استفاده می‌کنند که به Microsoft DCOM وابسته است. DCOM سابقه طولانی آسیب‌پذیری‌های اجرای کد از راه دور دارد. علاوه بر این، OPC کلاسیک به‌طور بومی از رمزنگاری پشتیبانی نمی‌کند. مهاجمانی که سرور OPC را به خطر بیندازند می‌توانند هر برچسب فرآیندی را بخوانند یا بنویسند. مهاجرت به OPC UA با امنیت فعال شده مسیر توصیه‌شده است.

راهنمای سخت‌سازی فنی: گام‌به‌گام برای مهندسان میدانی

روش‌های زیر فرض می‌کنند که شما دسترسی فیزیکی یا دسترسی امن از راه دور به کنترلر دارید. همیشه این تغییرات را در یک بازه نگهداری برنامه‌ریزی‌شده انجام دهید و پس از آن عملکرد را بررسی کنید.

مرحله ۱: انجام ممیزی پایه امنیتی

با استفاده از نرم‌افزار مهندسی به هر PLC متصل شوید. موارد زیر را ثبت کنید: نسخه فریمور، پروتکل‌های فعال (HTTP، FTP، SNMP، Telnet)، پورت‌های باز TCP/UDP، حساب‌های کاربری پیکربندی شده و تاریخ آخرین تغییر رمز عبور. از یک صفحه گسترده برای پیگیری انحرافات از استاندارد امنیتی خود استفاده کنید. برای کنترلرهای Siemens S7، سطح دسترسی پیکربندی شده در خصوصیات سخت‌افزاری را بررسی کنید. برای کنترلرهای Rockwell، تنظیمات حفاظت کنترلر را در Studio 5000 مرور کنید.

مرحله ۲: سخت‌سازی پیکربندی کنترلر

تمام پشته‌های پروتکل استفاده‌نشده را غیرفعال کنید. در یک PLC معمولی، وب‌سرور، FTP، SNMP و هر پورت نگهداری اختصاصی را خاموش کنید. برای پورت‌های اترنت، مذاکره خودکار خدمات استفاده‌نشده را غیرفعال کنید. اگر پروتکل اجازه شمارش می‌دهد، آدرس‌دهی رک/اسلات پیش‌فرض را تغییر دهید. در کنترلرهای Rockwell Logix، پورت‌های استفاده‌نشده را در حالت «غیرفعال» قرار دهید و «حفاظت سیستم» را با یک کلید منحصر به فرد فعال کنید.

مرحله ۳: پیاده‌سازی کنترل دسترسی قوی

برای هر مهندس حساب کاربری جداگانه ایجاد کنید. از حساب‌های پیش‌فرض «admin» یا «engineer» استفاده نکنید. برای سیستم‌هایی که دسترسی مبتنی بر نقش را پشتیبانی می‌کنند، حداقل سه نقش تعریف کنید: اپراتور (فقط خواندن)، تکنسین (خواندن به‌علاوه فرمان‌های دستی) و مهندس (دسترسی کامل به برنامه). قوانین پیچیدگی رمز عبور را تنظیم کنید: حداقل ۱۲ کاراکتر، حروف بزرگ، حروف کوچک، اعداد و نمادها. رمزهای پیش‌فرض کارخانه را قبل از اتصال PLC به هر شبکه تغییر دهید.

مرحله ۴: اعمال محافظت‌های سطح شبکه

هر PLC را پشت یک فایروال صنعتی قرار دهید که محتوای پروتکل را بررسی کند. قوانین فایروال را طوری ایجاد کنید که فقط آدرس‌های IP منبع مشخص برای هر نوع ترافیک مجاز باشند. به عنوان مثال، ترافیک HMI به PLC را روی پورت پروتکل ۴۴۸۱۸ (EtherNet/IP) مجاز کنید اما ترافیک نرم‌افزار برنامه‌نویسی (پورت ۲۲۲۲) را به جز از یک ایستگاه کاری مهندسی اختصاصی مسدود کنید. از VLAN برای جدا کردن PLCهای ایمنی از PLCهای کنترل استاندارد استفاده کنید. احراز هویت پورت ۸۰۲.۱X را روی پورت‌های سوئیچ پیاده‌سازی کنید تا از اتصال دستگاه‌های غیرمجاز جلوگیری شود.

مرحله ۵: ایجاد روند امن به‌روزرسانی فریمور

هرگز فریمور را مستقیماً از وب‌سایت فروشنده از طریق اینترنت به‌روزرسانی نکنید. فایل باینری فریمور را روی یک کامپیوتر آفلاین و مورد اعتماد دانلود کنید. امضای دیجیتال فایل را تأیید کنید. به‌روزرسانی را حداقل به مدت ۴۰ ساعت شبیه‌سازی شده روی یک کنترلر مشابه در محیط آزمایشگاه تست کنید. روش بازگردانی را در صورت شکست به‌روزرسانی مستند کنید. به‌روزرسانی‌ها را فقط در زمان‌های برنامه‌ریزی شده انجام دهید و هرگز در فرآیند در حال اجرا.

مرحله ۶: پیکربندی لاگ‌گیری و هشداردهی

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

راهنمایی فنی پیشرفته: روش‌های امن برنامه‌نویسی PLC

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

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

مورد فنی دنیای واقعی: کارخانه خودرو ۳۲۰ PLC را ایمن می‌کند

یک تأسیسات بزرگ تولید قوای محرکه خودرو با ۳۲۰ PLC (Siemens S7-1200 و S7-1500) با تلاش‌های مکرر دسترسی غیرمجاز از لپ‌تاپ‌های پیمانکاران آلوده مواجه بود. تیم مهندسی کارخانه برنامه امنیتی سیستماتیکی با مراحل فنی زیر اجرا کرد.

  • موجودی انجام شد و ۴۷ PLC با رمزهای عبور پیش‌فرض هنوز فعال کشف شدند.
  • تمام اطلاعات ورود پیش‌فرض تغییر کرد و تنظیمات انقضای رمز عبور به ۹۰ روز تنظیم شد.
  • سرور وب و FTP روی همه کنترلرها از طریق عملیات دسته‌ای TIA Portal غیرفعال شد.
  • بخش‌بندی شبکه اجرا شد: پنج منطقه OT با فایروال‌های Siemens Scalance جدا شدند.
  • قوانین سختگیرانه فایروال ایجاد شد: فقط ترافیک Profinet IO (پورت‌های ۳۴۹۶۲-۳۴۹۶۴) بین PLC و IO راه دور مجاز است؛ فقط ارتباط S7 (پورت ۱۰۲) از HMIها و SCADAهای مشخص مجاز است؛ تمام ترافیک دیگر مسدود شد.
  • فریمور همه ۳۲۰ PLCها پس از آزمایش در آزمایشگاه از نسخه ۲.۶ به ۳.۰ به‌روزرسانی شد.
  • ارسال syslog به یک SIEM متمرکز با هشدار برای رویدادهای دانلود برنامه فعال شد.

نتایج اندازه‌گیری شده پس از ۹۰ روز: تلاش‌های ورود غیرمجاز از ۴۸۷ به ۳۹ در ماه کاهش یافت (کاهش ۹۲٪). زمان توقف تولید ناشی از حوادث سایبری از ۶ رویداد به ۰ رسید. زمان شناسایی دانلودهای برنامه غیرعادی از ۱۴ ساعت به ۱۲ دقیقه کاهش یافت. کل هزینه پروژه ۱۸۰,۰۰۰ دلار بود که از حمله احتمالی باج‌افزاری جلوگیری کرد که هزینه تخمینی آن ۴.۲ میلیون دلار به ازای هر هفته توقف بود.

مورد فنی: تأسیسات تصفیه آب تزریق Modbus را کاهش می‌دهد

یک تأسیسات تصفیه آب شهری ۸۵ PLC را با استفاده از Modbus TCP در یک شبکه مسطح اداره می‌کرد. اپراتورها مشاهده کردند که عملگرهای شیر و شروع پمپ به‌طور متناوب بدون فرمان از HMI رخ می‌دهد. بررسی نشان داد دستگاه غیرمجاز در شبکه وجود دارد که کد عملکرد ۰۵ (نوشتن کویل تکی) و کد عملکرد ۱۶ (نوشتن چند رجیستر) را تزریق می‌کند.

تیم مهندسی اقدامات مقابله‌ای فنی زیر را پیاده‌سازی کرد:

  • یک فایروال صنعتی (Tofino) را در حالت شفاف بین سوئیچ اصلی و زیرشبکه PLC نصب کرد.
  • فهرست سفید تراکنش‌های مجاز Modbus را ایجاد کرد: فقط درخواست‌های خواندن (کدهای عملکرد ۰۱، ۰۲، ۰۳، ۰۴) از آدرس‌های IP HMI و SCADA.
  • درخواست‌های نوشتن (کدهای عملکرد ۰۵، ۰۶، ۱۵، ۱۶) را فقط از یک آدرس IP ایستگاه کاری مهندسی اختصاصی و فقط در پنجره‌های نگهداری مشخص شده با استفاده از ACL مبتنی بر زمان مجاز کرد.
  • بازرسی عمیق بسته‌ها را فعال کرد تا اطمینان حاصل شود آدرس‌های رجیستر در محدوده‌های پیکربندی شده باقی می‌مانند.

نتایج: در ماه اول، فایروال ۱۲۰۰ کد عملکرد مخرب Modbus را مسدود کرد. فرمان‌های نوشتن غیرمجاز به PLCهای پمپ حیاتی کاملاً متوقف شد. اپراتورها اعتماد کامل به یکپارچگی کنترل را بازیافتند. هزینه راه‌حل ۲۵۰۰۰ دلار بود که از جریمه‌های زیست‌محیطی احتمالی و قطع خدمات جلوگیری کرد.

راهنمای مهندس برای پیکربندی دسترسی راه دور امن

پشتیبانی راه دور برای PLCها از نظر عملیاتی ضروری اما از نظر فنی پرخطر است. این الگوی پیکربندی دقیق را دنبال کنید.

  • استقرار یک متمرکزکننده VPN اختصاصی OT: از دستگاه فایروال پشتیبانی‌کننده IPsec یا OpenVPN استفاده کنید. آن را در DMZ بین IT و OT قرار دهید. از VPN سازمانی IT برای دسترسی OT استفاده نکنید.
  • پیکربندی MFA برای هر کاربر: هم گواهی یا توکن سخت‌افزاری و هم رمز عبور را الزامی کنید. با دایرکتوری LDAP مخصوص OT یکپارچه‌سازی کنید.
  • اجرای محدودیت‌های مبتنی بر زمان و منبع: دسترسی راه دور را فقط در ساعات از پیش تأیید شده و از آدرس‌های IP عمومی مشخص شده دفتر فروشنده مجاز کنید.
  • استفاده از jump host با ضبط جلسه: از کاربران راه دور بخواهید ابتدا به یک دستگاه ویندوز قفل‌شده در داخل منطقه OT متصل شوند. تمام نرم‌افزارهای برنامه‌نویسی PLC فقط روی آن jump host اجرا می‌شوند. ویدئو و لاگ‌های کامل کلیدهای فشرده شده را ضبط کنید.
  • اجرای اعتبارنامه‌های یک‌بار مصرف: برای هر جلسه رمز عبور VPN منحصر به فرد تولید کنید. آن‌ها را به‌طور خودکار پس از ۸ ساعت لغو کنید. اعتبارنامه‌های مدیر محلی jump host را پس از هر بازدید فروشنده تغییر دهید.

عیب‌یابی مشکلات رایج پیاده‌سازی امنیت PLC

مهندسان اغلب هنگام اعمال کنترل‌های امنیتی با مشکلات خاصی مواجه می‌شوند. در اینجا راه‌حل‌های فنی ارائه شده است.

  • مشکل: پس از تغییر رمز عبور پیش‌فرض، نرم‌افزار مهندسی نمی‌تواند آنلاین شود.
    راه‌حل: اعتبارنامه‌های ذخیره‌شده در رجیستری ایستگاه کاری مهندسی یا مدیر اعتبارنامه را پاک کنید. برخی پلتفرم‌ها (Rockwell) نیاز به قطع و وصل برق PLC دارند تا رمز عبور جدید در تمام جلسات اعمال شود.
  • مشکل: فایروال پس از تقسیم‌بندی، ترافیک IO مشروع را مسدود می‌کند.
    راه‌حل: از آینه‌سازی پورت برای ضبط ترافیک در طول اجرای تولید استفاده کنید. بسته ضبط‌شده را تحلیل کنید تا همه جفت‌های منبع/مقصد و پورت‌های پروتکل مورد نیاز را شناسایی کنید. قوانین اجازه بر اساس این ترافیک مشاهده‌شده ایجاد کنید، سپس به حالت مسدودکننده تغییر دهید.
  • مشکل: به‌روزرسانی فرم‌ور شکست می‌خورد و PLC به حالت توقف می‌رود.
    راه‌حل: قبل از هر به‌روزرسانی، تأیید کنید که نسخه جدید فرم‌ور دقیقاً از نسخه سخت‌افزاری پشتیبانی می‌کند. از ابزار بازیابی فروشنده (مثلاً Siemens SIMATIC Field PG) برای بازگرداندن به فرم‌ور قبلی استفاده کنید. همیشه یک نسخه پشتیبان از فایل باینری فرم‌ور اصلی روی یک درایو USB آفلاین نگه دارید.

سؤالات متداول از مهندسان میدانی

چگونه می‌توانم تأیید کنم که PLC دستکاری شده است؟

منطق جاری را با یک نسخه پشتیبان شناخته‌شده و سالم که به صورت آفلاین ذخیره شده مقایسه کنید. از ابزارهای مقایسه در نرم‌افزار مهندسی استفاده کنید (مثلاً «Compare Online/Offline» در TIA Portal یا «Compare Logic» در Studio 5000). تاریخ و زمان آخرین دانلود برنامه را بررسی کنید. اگر موجود است، لاگ داخلی PLC را مرور کنید. برای کاربردهای حیاتی، تأیید چکسام در زمان اجرا را داخل منطق پیاده‌سازی کنید.

ایمن‌ترین روش برای آزمایش قوانین فایروال بدون اختلال در تولید چیست؟

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

آیا می‌توانم از اسکنر آسیب‌پذیری استاندارد IT روی شبکه‌های PLC استفاده کنم؟

خیر. اسکنرهای فعال که بسته‌های نادرست ارسال می‌کنند یا تلاش به ورود پیش‌فرض دارند، ممکن است PLCهای قدیمی را از کار بیندازند. از ابزارهای نظارت OT غیرفعال استفاده کنید که ترافیک موجود را بدون ایجاد پروب تحلیل می‌کنند. اگر اسکن فعال لازم است، از ابزارهای خاص فروشنده (مثلاً Rockwell Safety Assurance Tool یا Siemens Sinema Remote Connect) استفاده کنید که محدودیت‌های پروتکل صنعتی را می‌فهمند.

توصیه‌های فنی نهایی برای مهندسان کنترل

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

Back To Blog