info[at]nsec.ir
(+۹۸)-۳۱-۳۳۹۱۵۳۳۶

آنچه از بدافزار استاکس‌نت پس از یک دهه می‌دانیم

استاکس‌نت دنیای ما را به مکانی تبدیل کرد که کدها در آن، آغازگر (و شاید خاتمه‌دهنده) جنگ‌ها هستند.

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

بازی‌های المپیک

استاکس‌نت بدافزاری است که به نیروگاه اتمی نظنز در سال ۲۰۰۷ نفوذ کرد و سبب ایجاد خرابی‌هایی در این نیروگاه شد. در این خرابکاری از ابتدا همکاری ایالت متحده آمریکا و اسرائیل واضح بود اما آنچه که در گزارش اخیر یاهونیوز افشا شده است وجود قطعی یک نفوذی هلندی و همچنین همکاری احتمالی فرانسه و آلمان در این خرابکاری بوده است. هرچند به نظر می‌رسد سازمان اطلاعات بریتانیا نیز در این پروژه همکاری داشته است. همکاری این پنج کشور سبب شد تا این پروژه را در خفا بازی‌های المپیک بنامند که یادآور پنج قاره با نماد پنج حلقه است.

به گزارش یاهونیوز، سازمان موساد و سیا در سال ۲۰۰۴ از سازمان اطلاعاتی هلند موسوم به AIVD می‌خواهند تا آن‌ها را در نفوذ به تجهیزات نیروگاه اتمی نطنز یاری کند. هلندی‌ها با بر عهده گرفتن خطرناک‌ترین و شاید مهم‌ترین بخش این پروژه، یک مهندس مکانیک را به عنوان مهره نفوذی اجیر کرده و راهی تهران می‌کنند.

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

در این گزارش نقل می‌شود که در سال ۲۰۰۰ همزمان با تأسیس نیروگاه اتمی نظنز، سازمان AIVD سامانه ایمیلی یکی از سازمان‌های دفاعی ایران را هک می‌کند تا اطلاعاتی در مورد برنامه هسته‌ای ایران به دست آورد. اسرائیل و ایالت متحده آمریکا تا سال ۲۰۰۴ مخفیانه فعالیت‌های نیروگاه هسته‌ای نطنز را زیر نظر می‌گیرند تا این که به این نتیجه می‌رسند برای به دست آوردن اطلاعات بیشتر به یک نفوذی در نظنز نیاز دارند و بدین منظور از AIVD درخواست کمک می‌کنند. به نظر می‌رسد تا اینجا خبری از بدافزار استاکس‌نت نیست.

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

مهاجمین در ماه مه ۲۰۰۶ و فوریه ۲۰۰۷ کد را به‌روزرسانی می‌کنند، ولی به‌روزرسانی نهایی در ۲۴ سپتامبر ۲۰۰۷ صورت می‌گیرد. در به‌روزرسانی آخر، توابع کلیدی کد را تغییر می‌دهند و در نهایت کد بدافزار را کامپایل می‌کنند.

از آنجایی که سیستم‌های کنترلی نظنز به اینترنت دسترسی نداشتند، استاکس‌نت تنها یک راه برای انتشار داشته است، درگاه USB این سیستم‌ها. براساس این گزارش مهره هلندی‌ها یا مستقیماً با کمک درایو USB، استاکس‌نت را در این سیستم‌ها نصب کرده یا سیستم یکی از مهندسان آن‌جا را آلوده کرده است که منجر به آلوده شدن PLCها نیز شده است. قابل ذکر است که سیستم‌های کنترل صنعتی توسط کدهای شبه‌اسمبلی به خصوصی که روی PLCها قرار دارد هدایت می‌شوند. تجهیزات PLC‌ آلوده‌شده نیروگاه نیز اکثراً از محصولات شرکت آلمانی زیمنس (Siemens) بوده‌اند.

به نقل از یاهونیوز پس از ورود استاکس‌نت به سیستم‌های کنترلی نظنر، نفوذی هلندی دیگر به نظنز بازنگشت، اما استاکس‌نت فعالیت مخرب خود را مخفیانه تا سال ۲۰۰۸ ادامه داد. در سال ۲۰۰۹ مهاجمین تصمیم می‌گیرند که روش تهاجمی خود را تغییر دهند و نسخه جدیدی از کد را در ماه‌های ژوئن، مارس و آوریل ۲۰۱۰ منتشر می‌کنند.

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

باید توجه کرد که اگرچه این امر مزیت بزرگی برای نسخه دوم استاکس‌نت محسوب می‌شود؛ اما همین امر سبب شناخته شدن و لو رفتن این بدافزار شد. مهاجمین برای اطمینان از این که نسخه دوم استاکس‌نت حتماً بتواند به داخل نیروگاه نفوذ پیدا کند به آن چندین مکانیزم انتشاری اضافه کرده بودند که سبب گسترش غیرقابل کنترل این بدافزار در سراسر جهان و در نتیجه کشف آن در ماه ژوئن ۲۰۱۰ شد. شاید این افشای زودرس یکی از دلایل مهمی باشد که پروژه بازی‌های المپیک نتوانست تخریب گسترده‌ای در نطنز ایجاد کند. با این وجود استاکس‌نت تغییر مهمی در ماهیت جنگ‌افزارهای دهه اخیر ایجاد کرد.

اما سؤال اینجاست که وظیفه این بدافزار چه بوده است؟

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

در نسخه دوم این بدافزار به جای آن که شیرهای خروج گاز سانترفیوژها را ببندد، سرعت چرخش سانترفیوژها را به محدوده غیرمجاز آن‌ها می‌برده است. هدف از این کار تخریب سانترفیوژها و کاهش بازدهی فرآیند غنی‌سازی آن‌ها بوده است.

جزئیات فنی استاکس‌نت

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

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

  • اکسپلویت‌های روزصفرم
  • روت‌‌کیت‌های ویندوزی
  • روت‌کیت‌های PLC
  • روش‌های فرار از آنتی‌ویروس
  • روش‌های پیچیده‌ای برای تزریق کد
  • روش‌هایی برای آلوده کردن شبکه
  • به‌روزرسانی‌های نقطه به نقطه
  • واسط فرمان و کنترل

سناریو حمله

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

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

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

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

استاکس‌نت پس از نفوذ به نیروگاه به دنبال سیستم‌های ویندوزی خاصی به نام Field PGها می‌گردد که تنها برای برنامه‌ریزی PLCها استفاده می‌شوند. از آنجایی که بیشتر این کامپیوترها به شبکه متصل نیستند، استاکس‌نت مجبور است ابتدا از طریق آسیب‌پذیری روز صفرم LAN به سایر کامپیوترها راه یابد و سپس از طریق درایوهای قابل حمل به Field PGها برسد. پس از این که استاکس نت به سیستم مقصد رسید کدهای PLCها را تغییر می‌دهد و دائماً ردپای خرابکاری‌های خود را می‌پوشاند تا قربانیان متوجه منشأ این خرابکاری‌ها نشوند.

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

میراث استاکس‌نت

اگرچه آسیب‌پذیری‌های PLCهای زیمنس پس از کشف استاکس‌نت در ماه ژوئن ۲۰۱۲ به‌روز‌رسانی شدند اما بدافزارهای دیگری از تکنیک‌های کد اصلی آن الهام گرفتند که به پسران استاکس‌نت معروف شده‌اند. از جمله این بدافزارهای می‌توان به Duqu، Flame، Havex، Industroyer و Triton اشاره کرد.

پیشنهادهایی برای جلوگیری از وقوع حملات مشابه در این تأسیسات

  • مجزا ساختن شبکه‌های صنعتی از شبکه‌های تجاری عمومی با استفاده از دیوارهای آتش‌ و DMZ
  • رصد مستقیم و لحظه‌به‌لحظه ماشین‌هایی که در فرآیند اتوماسیون تجهیزات صنعتی نقش دارند
  • رصد و گرفتن log از تمامی فعالیت‌های شبکه
  • تهیه فهرستی از نرم‌افزارهای موجود در سیستم‌ها و اعتبارسنجی آن‌ها
  • پیاده سازی امینت فیزیکی سخت برای دست‌یابی به شبکه‌های صنعتی