400 likes | 645 Views
سمينار آشنايي با بدافزار Stuxnet تشريح عملكرد Stuxnet در سيستمهاي كنترل صنعتي و روشهاي مقابله با آن. سيد محمد جلالي مرکز تخصصی آپا دانشگاه صنعتي اصفهان آبانماه 1389. بخشهاي مختلف سمينار. امنيت در سيستمهای کنترل صنعتی زیر مؤلفههای مولفهي PLC بدافزار Stuxnet.
E N D
سمينار آشنايي با بدافزار Stuxnetتشريح عملكرد Stuxnet در سيستمهاي كنترل صنعتي و روشهاي مقابله با آن سيد محمد جلالي مرکز تخصصی آپا دانشگاه صنعتي اصفهان آبانماه 1389
بخشهاي مختلف سمينار • امنيت در سيستمهای کنترل صنعتی • زیر مؤلفههای مولفهي PLC بدافزار Stuxnet
SCADA چيست؟ SCADA: Supervisory Control And Data Acquisition مشاهده و كنترل فرآيند صنعتي به صورت متمركز
تفاوت امنیت IT و امنیت SCADA SCADA • استفاده از ضدویروسها به دليل تاخیر مشکل است. • آگاهیها و آموزشهای امنیتی پایین است. • اکثر دادهها و اطلاعات کنترلی بهصورت رمزنشده مبادله میشوند. • تست نفوذپذیری ممکن است مخرب باشد. • وصلههای امنیتی نامرتب و اعمال آنها ممکن است مخرب باشد. IT • میتوان از ضدویروس استفاده کرد. • آگاهیها و آموزشهای امنیتی وجود دارد. • ميتوان از تکنیکهای رمزنگاری استفاده نمود. • امکان تست نفوذپذیری روتین وجود دارد. • وصلههای امنیتی مرتب وجود دارد و توصيه ميشود كه اعمال شوند.
تفاوت امنیت IT و امنیت SCADA - ادامه • بی شک امنیت IT مهم است. • عواقب نقض امنیت IT • مالی • نقض حریم خصوصی • نیاز به پیکره بندی مجدد سامانه ها • ارسال نامه های ناخواسته کندی اجرای فرامین و .... • ولی زندگی جریان دارد!
تفاوت امنیت IT و امنیت SCADA - ادامه • ناامنی در سیستمهای SCADAزندگی در دنیای واقعی را تحت تاثیر قرار میدهد. • عواقب نقض امنیت SCADA • کشته و زخمی شدن انسانها • نابودی تاسیسات
روشهای ممکن برای ایجاد اختلال • انکار سرویس DOS • جلوگیری از دستیابی اپراتور به سیستمها و عدم امکان مشاهده وضعیت یا صدور فرمانهای کنترلی • گمراهسازی اپراتور • گمراهسازی اپراتور و تشويق به انجام اقدامات اشتباه بر اساس اطلاعات نادرست • دستکاری مستقیم تجهیزات صنعتی • ارسال غیرمجاز فرمان به تجهیزات
توصیههای ایمنی استفاده سیستمعامل مناسب و امن متناسب با شرایط سازمان بهروزرسانی مداوم سیستمعامل و نصب وصلههای امنیتی استفاده از نرمافزار ضدبدافزار مناسب و بهروزرسانی مداوم آن طبقهبندی رایانهها و لایهبندی شبکه و استفاده از firewallدر هر لایه استفاده از حداقل سطح دسترسی در حساب کاربری به هنگام اتصال رایانه به اینترنت یا حافظههاي جانبی
توصیه های ایمنی خاص سامانه های کنترل صنعتی • محدودسازی و کنترل دسترسی به سامانههای صنعتی • محدودسازی و کنترل ارتباطهاي شبکهي اداری، شبکهي کنترلي و شبکهي صنعتی • تشکیل گروههای کاری متشکل از متخصصان IT و متخصصان کنترل صنعتی • حمایت از توسعه و بهبود دانش و تجربه امنیت در سامانه های صنعتی • طراحی امنیتی شبکه های جدید و طراحی مجدد شبکههای موجود
زیر مؤلفههای مولفهي PLC بدافزار Stuxnet« مختص نرمافزارها و سختافزارهاي شركت Siemens»
زیر مؤلفههای مولفهي PLC بدافزار Stuxnet • Driver • Project • WinCC • CPU
زیر مؤلفه های مولفهي PLC بدافزار Stuxnet • Driver • Project • WinCC • CPU
تغيير Driver ارتباط با PLC SIMATIC Manager s7otbxdx.dll PLC Request code block from PLC S7blk_read Driverآلوده Modified STL code block Show PLC code block Modified STL code block Modified STL code block s7otbxsx.dll Driverسالم S7blk_read
تغيير Driver ارتباط با PLC - ادامه • هدف از آلوده كردن Driver3 چيز است: • مانيتوركردن بلوكهاي كدي كه خوانده يا نوشته ميشوند. • آلودهكردن PLCبا تزريق كد يا تغيير كد قبلي آنها • مخفيكردن اين موضوع كه PLC آلوده شده است.
تغيير Driver ارتباط با PLC - يك نمونه Driverسالم Driverآلوده
تغيير Driver ارتباط با PLC - ادامه • راه تشخيص • چك كردن وجود فايل با نام s7otbxsx.dll • راه پاكسازي • نصب دوباره نرمافزارهاي Siemens (راهحل بهتر) • حذف s7otbxdx.dll و تغيير نام s7otbxsx.dll به s7otbxdx.dll
زیر مؤلفه های مولفهي PLC بدافزار Stuxnet • Driver • Project • WinCC • CPU
آلودگي پروژههاي Step7 • پوشههايي حاوي فايلهاي S7Pرا آلوده ميكند. • پروژههاي داخل فايلهاي zipهم ميتوانند آلوده شوند. • بازكردن پروژههاي آلوده منجر به آلودگي رايانهها ميشود. • با بازكردن پروژههاي آلوده به نسخهي جديدتر ويروس، نسخهي جديدتر جايگزين ميشود.
تشخيص آلودگي پروژههاي Step7 • بدافزار اين فايلها را ايجاد ميكند. • xutils\listen\xr000000.mdx • (فایل اصلی بدافزار با حجم 487KB) • xutils\links\s7p00001.dbf • xutils\listen\s7000001.mdx
تشخيص آلودگي پروژههاي Step7 - ادامه xutils\listen\ xutils\links\
تشخيص آلودگي پروژههاي Step7 - ادامه • درون تمام زيرپوشههاي پوشهي «hOmSave7» يك فايل dll كپي ميكند. • ممكن است نامهاي متفاوتي به آن داده شود. (s7hkimdb.dll) • با بازكردن يك پروژهي آلوده در يك سيستم سالم اين dll آلودگي را منتشر ميكند.
پاكسازي پروژههاي Step7 • استفاده از نرمافزارهاي ضدويروس كه به روزرساني شدهاند.(راهحل بهتر) • حذف فايلهاي اضافه شده • xutils\listen\xr000000.mdx • (فایل اصلی بدافزار با حجم 487KB) • xutils\links\s7p00001.dbf • xutils\listen\s7000001.mdx • dllكپي شده در تمام زيرپوشههاي پوشهي «hOmSave7»
زیر مؤلفه های مولفهي PLC بدافزار Stuxnet • Driver • Project • WinCC • CPU
تشخيص آلودگي WinCC • بدافزار اين فايلها را ايجاد ميكند. • GracS\cc_alg.sav • (فایل اصلی بدافزار با حجم حدود 487KB) • GracS\db_log.sav • GracS\cc_tag.sav • GracS\cc_tlg7.sav
پاكسازي WinCC • استفاده از نرمافزارهاي ضدويروس كه به روزرساني شدهاند.(راهحل بهتر) • حذف فايلهاي اضافه شده • GracS\cc_alg.sav • (فایل اصلی بدافزار با حجم حدود 487KB) • GracS\db_log.sav • GracS\cc_tag.sav • GracS\cc_tlg7.sav
زیر مؤلفه های مولفهي PLC بدافزار Stuxnet • Driver • Project • WinCC • CPU
آلودگي پردازندههاي PLC • هدف نهايي Stuxnet تغيير كد PLCها است. • فقط سيستمهاي Siemens آلوده ميشوند. • بسته به خصوصيات سيستم كنترلي هدف، كدهاي تزريق شده فرق ميكند. • دو نوع كد جهت تزريق در PLCدر بدافزار پيدا شده است. • كد نوع اول PLCبا پردازنده 315 را آلوده ميكند. • كد نوع دوم PLC با پردازنده 417 را آلوده ميكند.
مراحل آلودگي پردازندههاي PLC • ابتدا نوع پردازنده را چك ميكند. • اگر 6ES7-315-2 يا 6ES7-417نباشد روند آلودگي را ادامه نميدهد. • SDBرا چك ميكند براي تعيين اينكه آيا بايد روند آلودگي ادامه پيدا كند. • هدف از چك كردن SDB معلوم نيست. • FC1869با كد آلودهاي كه داخل Stuxnetتعبيه شده جايگزين ميشود. • به اين ترتيب كنترل profibusرا به دست ميگيرد.
مراحل آلودگي پردازندههاي PLC - ادامه • ساختار شكل صفحهي بعد به داخل PLCتزريق ميشود. • OB1به شكلي آلوده ميشود كه با اجراي هر سيكل كد تزريق شده در PLC اجرا شود. • OB1بزرگتر ميشود. كد آلوده به ابتداي آن اضافه ميشود. كد اصلي به بعد از آن كپي ميشود. • OB35به شكلي آلوده ميشود كه در شرايط خاصي جلوي اجراي OB1را بگيرد.
تشخيص آلودگي پردازندههاي PLC استفاده از رايانهي بدون آلودگي و پروژهي خام ابتداي OB1آلوده با كد نوع اول اين دستورات را ميبينيد: UC FC1865 POP L DW#16#DEADF007 ==D BEC L DW#16#0 L DW#16#0
تشخيص آلودگي پردازندههاي PLC - ادامه ابتداي OB35آلوده با كد نوع اول اين دستورات را ميبينيد: UC FC1874 POP L DW#16#DEADF007 ==D BEC L DW#16#0 L DW#16#0 ابتداي OB1آلوده با كد نوع دوم اين دستورات را ميبينيد: UC FC6083
پاكسازي پردازندههاي PLC • برنامهي داخل پردازندهها حذف شوند. • با يك رايانه و پروژهي بدون آلودگي دوباره برنامهريزي شوند. • هشدار! • پيش از بازكردن پروژه با انجام روند تشخيص آلودگي پروژهها از عدم آلودگي آنها مطمئن شويد. • در صورت Downloadكد، با رايانهي آلوده يا پروژههاي آلوده، PLCپاكسازي نشده است. • فايلهاي پشتيبان پروژهها حتي اگر zip شده باشند ممكن است آلوده باشند.
جمعبندي • Driverارتباط با PLCآلوده ميشود. • در PLCكدهايي را تزريق ميكند و كدها را از ديد استفادهكننده مخفي ميكند. • پروژههاي step7آلوده ميشوند. • ميتوانند آلودگي را نيز به يك رايانهي سالم منتقل كنند. • پروژههاي WinCCآلوده ميشوند. • علاوه بر انتقال آلودگي ميتوانند اطلاعات را به سرقت ببرند. • پردازندهها آلوده ميشوند. • ممكن است در نحوهي كار سيستم كنترل اخلال ايجاد شود.
جمعبندي - ادامه • آلودگی PLCها میتواند مستقل از آلودگی رایانههای محیط صنعتی باشد. (PLCهاي آلوده، رايانههاي پاك و يا بالعكس) • برای پاکسازی باید رایانهها، پروژهها و پردازندهها پالایش شوند. • هدف بدافزار از تزريق كد درون PLCمعلوم نيست زيرا: • با اينكه تغييرات بدافزار در كد PLCمشخص شده است. • اما ساختار سيستم كنترلي كه جزء اهداف بدافزار بوده را نميدانيم. • پس نشانهها و اشکالات غیرمتعارف سيستم كنترل را جدي بگيريد!
تماس بگیرید... در صورت مشاهدهی وقایع نامتعارف سایتهای تولید نرمافزارهای صنعتی نياز به آموزش نياز به ايجاد گوهر در سازمان نياز به اطلاعات بیشتر http://www.certcc.ir http://www.nsec.ir cc@nsec.ir