این خبر، بخش پنجم و نهایی مقاله مربوط به امنیت پروتکل IEC 60870-5-104 است که توسط واحد تخصصی آگاهیبخشی سایبر صنعتی شرکت پیشگامان امن آرمان(امان) ارائه شده است.جهت دسترسی به بخشهای قبلی این مقاله به انتهای همین صفحه مراجعه نمایید. مراجع این مقاله فنی در انتهای این خبر درج شده اند و در صورت استفاده از مطالب این مقاله لازم است به مراجع مذکور ارجاع داده شود.
جهت بررسی آسیبپذیریهای پروتکل IEC 60870-5-104، مبتنی بر سناریو حمله محور، ابتدا رویکرد موردنظر را موردبررسی قرار میدهیم. در ادامه سهگام تحقق حمله برای بهرهجویی از آسیبپذیریهای پروتکل IEC 60870-5-104 موردبررسی قرار میگیرند.
1- شناسایی: دو روش فعال و غیرفعال برای شناسایی یا تشخیص تجهیزات بهرهبردار از پروتکل IEC 60870-5-104 متصل به شبکه TCP/IP وجود دارد. درروش غیرفعال که به شکل منفعلانه انجام میگیرد هیچ عملی بر روی شبکه هدف انجام نمیشود؛ یک واسط بر روی مد بیقاعده[1] تنظیم میشود تا تمامی بستههای روی خط را بپذیرد. بستهها میتوانند از طریق نرمافزارهایی مانند TCP dump یا وایرشارک موردبررسی قرار گیرند. زمانی که ترافیک پروتکل IEC 60870-5-104 شناسایی شد میتواند برای مصارف آینده از قبیل حمله ارسال مجدد یا شناسایی اهداف حمله با تحلیل ترافیک ذخیره شود.
روش شناسایی فعال روندی است که بستههایی برای برقراری ارتباط و دریافت پاسخ توسط یک دستگاه ارسال میشود. برای مثال در منبع [14] اسکریپت پایتونی نوشته است که فهرستی از آدرسهای IP تجهیزات بستههای پروتکل IEC 60870-5-104 را در صورت وجود کشف میکند و آدرس مشترک آنها را برمیگرداند. به این طریق که دستگاه موردنظر یک بسته APDU ارسال میکند و هدف با یک بسته تصدیق پاسخ میدهد. سپس یک بسته شروع انتقال داده ([2]STARTDT) ارسال میکند. بسته پاسخ برای تشخیص آدرس مشترک بررسیشده و اگر آدرس مشترک پیدا نشد از روش دیگری که در ادامه توضیح داده میشود استفاده میشود. روش دیگر برای به دست آوردن آدرس تجهیزات IEC 60870-5-104 این است که اسکریپت یک بسته C_IC_NA_1 در شبکه پخش کند. این بسته حاوی یک دستور جستوجوی تشخیص IEC 60870-5-104 است. روش غیرفعال ممکن است توسط یک هکر مبتدی کسی که مطمئن نیست درون سیستم چه میگذرد یا برای جلوگیری از شناسایی توسط یک مهاجم ماهرتر استفاده شود. در صورت امکان حالت فعال بهاحتمالزیاد برای اطمینان از وجود دستگاه IEC 60870-5-104 و به دست آوردن اطلاعات دقیق بیشتر از حالت غیرفعال استفاده میشود [16].
2- گردآوری: در این مرحله پس از شناسایی اهداف، اطلاعاتی که میتواند برای حمله استفاده شود، جمعآوری میگردد. این امکان وجود دارد که در زمان انجام حمله، اطلاعات از طریق نظارت بر دادهها جمعآوری شود. در یک سوییچ شبکه عموماً یک کپی از تمام بستهها به یک درگاه خاص با نام درگاه span که درگاه آینه نیز نامیده میشود، ارسالشده و جمعآوری میگردد. اگر یک مهاجم قادر شود به ماشینی دسترسی پیدا کند که متصل به یک درگاه span است یا بتواند با به دست آوردن کنترل مدیریت یک سوییچ، یک درگاه span روی آن فعال کند، قادر خواهد بود کلیه ترافیک عبوری شامل دادههایی که توسط اهداف منتقل میشود را جمعآوری کند [16].
راه دیگر جمعآوری اطلاعات ترافیکی شبکه، قرار گرفتن در بین اهداف و جمعآوری دادهها است. یکی از راههای انجام این کار حمله از جعل بستههای ARP است؛ بهعنوانمثال در منبع [10] و [12] در این زمینه کارکرده شده است. شکل (8) یک حمله جعل ARP موفق را نشان میدهد. حمله جعل ARP از این نکته بهره میبرد که پروتکل IEC 60870-5-104 بهطور ذاتی از تائید و احراز اصالت پشتیبانی نمیکند. یک مهاجم میتواند پیامهای ARP جعلی را با MAC آدرس خود و IP آدرس هدف موردنظر ارسال کند؛ بنابراین هر بستهای که حاوی IP آدرس هدف باشد به ماشین مهاجم ارسال خواهد شد. درنتیجه مهاجم میتواند تمامی بستههایی که بین اهداف در حال ارسال است را ببیند و ویرایش کند.
راههای جایگزین حمله جعل ARP، مسموم کردن DNS[3] و حمله سرریز جدول CAM[4] است که مهاجم بهوسیله اقداماتی حافظه سوئیچ را سرریز و آن را به یک تکرارکننده[5] یا یک هاب تبدیل میکند (در بعضی موارد این حمله میتواند باعث ازکارافتادن سوئیچ و بهنوعی حمله ممانعت از خدمات شود)، البته این حملات نیاز به آسیبپذیریهای دیگری دارد که خارج از ماهیت اصلی خود پروتکل IEC 60870-5-104 است [16].
3- حمله نهایی: مرحله نهایی که تمامی مراحل دیگر به آن ختم میشود، در این دستهبندی «حمله نهایی» نام دارد. در حمله ارسال مجدد دادههای معتبر در زمان ارسال جمعآوریشده و توسط مهاجم مجدداً ارسال میگردند. بستهها را میتوان از محل منبع یا استراق سمع بهوسیله روش حمله مردی در میان در قلب سناریوهای حملات چندمرحلهای[6] جمعآوری کرد. دادهها ممکن است بدون هیچ تغییری یا با تغییر، مجدداً ارسال شوند. اگر دادهها بدون تغییر ارسال شوند، به معنی خواندن و ارسال به ایستگاه نظارت بهمنظور خواندن دستورات کنترلی است. این کار میتواند موجب اختلال در شبکه یا حتی خسارت شود؛ چنین حملاتی میتواند توسط یک مهاجم بیتجربه یا فردی که سیستم را بهدرستی نمیشناسد (سطوح حمله 1 و 2)، انجام شود.
با توجه به شناسایی آسیبپذیریها و حملات مطرحشده در قسمت سوم، در این قسمت یکی از حملات پیادهسازی شده در بستر آزمایش تحت عنوان حمله ارسال مجدد بر روی پروتکل IEC 60870-5-104 شرح داده میشود. بستر آزمایش هدف «پلنت کنترل صنعتی شبیهسازیشده مخازن انتقال مایع» نام دارد و از تجهيزات ابزار دقيق و کنترلی مختلفی که در فرآيندهای صنعتی، ازجمله مخازن انتقال مایع صنایع پتروشیمی، استفاده میشوند طراحی و ساختهشده است. بر اساس شمارههای شکل (9) این بستر دارای تجهیزات ذیل است:
- دو مخزن مایع (1 و 2)
- پمپ آب و درایور (3 و 4)
- جریانسنج[7] (5)
- شیر کنترلی به همراه فرستندهی فشار صفر تا ششصد میلی بار (6)
- حسگر التراسونیک[8] سطح مایع (7)
- دماسنج (8)
- دماسنج غیر بازخوردی (9)
- بخاری[9] (10)
- فشارسنج صفر تا شش غیر بازخوردی (11)
- سه دریچه کنترل مایع (12-14)
در این آزمایش حمله ارسال مجدد با بستههای جمعآوریشده از سیستم مانیتورینگ انجامشده است. اینیک فرم نسبتاً ساده از حمله است؛ هدف از حمله، گردآوری بستههای IEC 60870-5-104 و ارسال مجدد آنها در زمان مناسب به مقصد موردنظر است؛ بنابراین هدف شبیهسازی رفتار یک مهاجم بیتجربه در اتصال به شبکه است.
شکل (10) جزئیات شبکه آزمون را نشان میدهد که متشکل از یک دستگاه فرمانده و فرمانبر IEC 60870-5-104 و بستر حمله لینوکس کالی[10] است؛ از نرمافزار ClearSCADA شرکت اشنایدر جهت مانیتورینگ و کنترل مقادیر و بهعنوان دستگاه فرمانده IEC 60870-5-104 استفاده میشود.
همچنین از RTU شرکت اشنایدر مدل ScadaPack 334E بهعنوان دستگاه فرمانبر استفادهشده است. از این دستگاه جهت اندازهگیری، کنترل مقادیر دما و سطح مخزن، دبی و فشار لولهها، پاسخ به دستورات و درنهایت ارسال آنها تحت شبکه با پروتکل IEC 60870-5-104 به سیستم فرمانده استفادهشده است.
این ویژگیها برای تائید و توسعۀ یک حمله جزو نیازهای اولیه است. شکل (11) یک نما از نرمافزار در حال اجرای ClearScada را نشان میدهد. نوار منو در بالای صفحه طراحیشده سه حالت کنترل سطح، دبی، فشار و دما را به ما میدهد. در ستون سمت چپ امکان شروع و توقف فرآیند به همراه وضعیت و مقادیر متغیرها را نشان داده میشود. در قسمت وسط، نمودار لحظهای متغیر در حال کنترل به همراه مقدار حد مطلوب و مقدار خروجی نمایش دادهشده است.
در این آزمایش از RTU اشنایدر استفادهشده است تا بتوان یک بستر واقعی جهت انجام حمله ارسال مجدد پیادهسازی کرد. مقادیر فرکانس ارسالی بستهها و فیلد شناسه نوع در RTU تنظیم میشود. در این نمونه این فیلد دارای شماره 30 از نوع اطلاعات single-point با برچسب زمانی است. برچسب زمانی میتواند کمتر از نصف دیالوگ تنظیم شود. فیلد علت انتقال (COT) میتواند همانند فرمانده تنظیم شود. در این نمونه آدرسهای مشترک صفر است. درنهایت وضعیت اطلاعات و توصیفکنندهها میتواند تنظیم شود.
شکل (12) ترافیک IEC 60870-5-104 بین فرمانبر و فرمانده را نشان میدهد؛ بستههای استفادهنشده برای حمله ارسال مجدد، از درگاه span سوئیچ جمعآوریشدهاند. بعد از جمعآوری مجموعهای از بستهها در بازه زمانی مشخص، از نرمافزار وایرشارک جهت فیلتر بستههای غیر IEC 60870-5-104 از مجموعه موردنظر استفاده میشود. این امر باعث میشود که فقط بستههای موردنظر از ماشین هدف جمعآوری شود که شامل TCP/IP، بستههای اولیه IEC 60870-5-104، بستههای STARTDT، شکل خواندنی بسته M_SP_TB_1 از فرمانبر، تعدادی بستههای TESTFR از فرمانده که برای بررسی کردن فعالیت پیوند و ارتباط به کار گرفته میشود، است.
بستر حمله کالی محلی است که بستهها مجدداً از آن ارسال میگردند. نرمافزار TCP Replay برای ارسال مجدد بستههای جمعآوریشده مناسب است. بستههای مجدد ارسالشده اگر به شکل هوشمندانهای تغییر داده نشوند در لایۀ کاربرد قابلقبول نیستند، زیرا بستهها توسط پشته کرنل TCP/IP دور ریخته میشوند؛ این بستهها به دلیل اینکه در TCP Replay مقادیر فیلدهای ACK، SYN و دنباله اعداد (Seq#) را قبل از ارسال مجدد تغییر نمیدهد، دور ریخته میشوند.
این امکان وجود دارد که بررسی رفتار مخرب حمله ارسال مجدد با استفاده از قوانین یک سیستم تشخیص نفوذ صنعتی مانند Snort و تحلیل آماری ترافیک شبکه و گزارشها تشخیص داده شود. علاوه بر این ازآنجاییکه بستههای مجدد ارسالشده در لایه کاربرد بیشتر سیستم ها پذیرفته نخواهند شد، این سطح از حمله نباید بهطور مستقیم عملیات فرآیند سیستم کنترل را تحت تأثیر قرار دهد. این حمله به دلیل اینکه بهعنوان ترافیک مجاز به نظر میرسد توسط دیواره آتش شبکه تشخیص داده نمیشود؛ مگر اینکه یک دیوار آتش/سیستم تشخیص نفوذ حالتمند برای ردیابی جریانهای TCP استفاده شود. در یک شبکه با پهنای باند کم یا یک شبکه با حساسیت پایین، این دسته از حملات میتواند موجب اختلال در عملکرد شبکه و افزایش احتمالی زمان Time out تجهیزات شود.
با تلاش بیشتر میتوان این امکان را به وجود آورد که بستههای جمعآوریشده مجدداً ارسال شوند؛ بنابراین آنها توسط کرنل دور ریخته نمیشوند و در لایه کاربرد پذیرفته میشوند. این عمل میتواند با یک اسکریپت پایتون انجام شود که شرایط اولیه TCP Hand shake را انجام داده و seq# را بهدرستی مدیریت میکند؛ برنامههایی نظیر WirePlay و tcplivereplay که بخشی از پروژه TCP Replay است برای این منظور طراحیشدهاند. قابلتوجه است که در نوع حمله با سطح باتجربه یا پیشرفته، مهاجم با سطح اطلاعات بالا و بر اساس شناختی که از فرایند کنترل صنعتی هدف و پروتکل ارتباطی دارد، میتواند بستههای ضبطشده را به شکل حرفهای و هدفمند تغییر دهد؛ این تغییر میتواند بر روی مقادیر حد مطلوب به شکل حمله تخریب غیر فیزیکی صورت گیرد که منجر به سرریز مایع مخزن شود و در فرایند کنترلی ایجاد خلل نماید.
در ادامه این پروژه قصد داریم در شرکت پیشگامان امن آرمان(امان)، ضمن پیادهسازی عملی راهکارهای مقاله کنونی، بروی امن سازی پروتکلهای پرکاربرد کنترل صنعتی نظیر DNP3 و IEC 61850 فعالیتهایی را انجام دهیم و تلاش نماییم بر روی تجهیزات موجود صنعتی، مخاطرات امنیتی این پروتکلهای را کاهش دهیم. با امان همراه باشید تا خروجی این پروژههای را با شما به اشتراک بگذاریم.
نتيجهگیری
در این مجموعه مقاله در قالب پنج بخش تلاش شد تا ضمن معرفی مختصری از IEC 60870-5-104 فرآیند شناخت جوانب امنیتی مختلف در رابطه با این پروتکل حاصل شود. بر اساس ساختار استاندارد IEC 60870-5-104 مرجع و برخی محصولات پیادهسازی شده، آسیبپذیریها (مراحل طراحی، پیکربندی و پیادهسازی) و تهدیدات این پروتکل استخراج و معرفی گردید؛ اهم حملات شناساییشده تخریب غیر فیزیکی، استراق سمع منفعل، ممانعت از کیفیت خدمات، دستکاری غیرمجاز، حملات دادهای، تزریق بسته، ربایش جریان کنترلی، مردی در میان غیرفعال، مردی در میان فعال و جعل هویت است. فرایند شناسایی آسیبپذیریها و تهدیدات با بهرهگیری از محیط آزمایشی مناسبی انجامگرفته است.
در این مقاله برخی راهکارهای امن سازی مرحله طراحی IEC 60870-5-104 و چالشهای درگیر در آن بررسی شد تا حداقل بتوان با شناخت این مسائل امنیتی در اتخاذ راهکارهای امنیتی در سیستم های کنترل صنعتی که از این پروتکل استفاده میکنند دقت بیشتری نمود و از سویی در طراحی پروتکلهای مشابه بومی چالشهای امنیتی بیانشده را موردتوجه قرارداد.
شایانذکر است پروتکلهای دیگری نظیر IEC 61850 در صنایع، در محدودههای مشابه با IEC 60870-5-104، به کار میروند که مقالات متعددی به تحلیل چالشهای امنیتی آن پرداختهاند.
جهت مشاهده بخش های دیگر این مقاله بر روی بخش مورد نظر کلیک نمایید:
- بخش 1: معرفی اجمالی پروتکل IEC 60870-5-104
- بخش 2: برخی کارهای انجام شده در حوزه امنیت پروتکل IEC 60870-5-104
- بخش 3: شناسایی اجمالی تهدیدات و آسیبپذیریها پروتکل IEC 60870-5-104
- بخش 4: راهکارهای امن سازی در مرحله طراحی پروتکل IEC 60870-5-104
- بخش 5: بستر آزمایش و ارزیابی امنیت پروتکل IEC 60870-5-104 و نتیجه گیری
- مشاهده و دانلود اسلاید دوره آموزشی امن سازی سیستمهای کنترل و اتوماسیون صنعتی: با محوریت چالشهای پروتکل IEC 60870-5-104
جهت مشاهده منابع معرفی شده در این بخش، به مقاله اصلی این خبر که توسط یکی از متخصصین شرکت پیشگامان امن آرمان(امان) در مجله معتبر منادی امنیت فضای تولید و تبادل اطلاعات(افتا) به چاپ رسیده است مراجعه نمایید. همچنین میتوان به کتاب مرجع این مقاله نیز مراجعه نمود.
- شناسایی چالشهای امنیتی پروتکل IEC ۶۰۸۷۰-۵-۱۰۴ و بررسی راهکارهای موجود. مجله منادی امنیت فضای تولید و تبادل اطلاعات(افتا). ۱. ۱۳۹۷; ۷ (۲) :۱۵-۳۰
- کتاب پروتکل کنترل صنعتیIEC 60870-5-104 از منظر امنیت سایبری ، ۱۳۹۶
[1] Promiscuous
[2] Start Data Transfer
[3] DNS Poisoning
[4] Content Addressable Memory
[5] Repeater
[6] Multi-Step Attack
[7] Flow meter
[8] Ultrasonic
[9] Heater
[10] Kali