رضا سیف
رضا سیف
خواندن ۱۰ دقیقه·۶ سال پیش

پرونده استاکس‌نت: پیچیده‌ترین نرم‌افزار تاریخ

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

در اتاق را ببندید. صحبت خصوصی است.

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

این نرم‌افزار ، یک ورم (worm) کامپیوتری است. تاریخ نوشته شدندش براساس حدس و گمان‌ها بین سالهای ۲۰۰۵ و ۲۰۱۰ اتفاق افتاده. بدلیل پیچیدگی‌های بسیار زیاد این کرم کامپیوتری، از شرح جزئیات فنی در این مقاله اجتناب میکنم.

مرحله صفر: ورود فیزیکی

این کرم کامپیوتری در ابتدا برروی یک فلش USB آماده شده بود. کسی این فلش را در کنار دستش پیدا کرده یا از ازطریق ایمیل آنرا دریافت کرده و درباره محتویاتش کنجکاو شده. (سوال: ازکجا؟ چه کسی؟)

زمانیکه این فلش وارد کامپیوتر ویندوزی شده، بدون اینکه کاربر متوجه شود ، سریع خودش را اجرا کرده و یک کپی از خود را روی سیستم موردنظر نصب کرده. متاسفانه تقریبا تمامی شرکت های دولتی و خصوصی کشورمان از ویندوز بجای لینوکس در محیط های حساس استفاده میکنند و زمانیکه شرکت زیمنس درحال راه اندازی تاسیسات هسته ای ما بود، بنا به دلایل نامشخصی (شاید خیانت داخلی‌ها یا دسیسه خارجیها) ویندوز را بعنوان سیستم عامل اصلی انتخاب کردند. در کمترین حالات ممکن ، سه روش برای اجرای خود برروی سیستم مذکور پیش‌روی این کرم کامپیوتری بوده، که مطمئن شود درصورتیکه اولین تلاش برای اجرای خود بی‌ثمر ماند، راه‌های بعدی را امتحان کند. درزمانی که این کرم کامپیوتری نوشته شده حداقل دو روش از این سه، کاملا جدید بودند و هیچ نرم افزار امنیتی قادر به کشف آنها نبوده است. چون آن دو روش جدید، برروی آسیب پذیریهای کاملا جدید ویندوز ساخته شده بودند که در اصطلاح امنیتی به آنها Zero-Day Exploit میگویند. این دو روش بعد از حمله این کرم کامپیوتری به اطلاع اذهان عمومی و جامعه امنیتی رسید. (سوال: چرا؟)

مرحله اول: استقرار

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

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

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

مرحله دوم: اطلاع رسانی به مرکز فرماندهی

بعد از استقرار امن روی اولین قربانی، نرم‌افزار شروع به پیدا کردن روش‌هایی برای اتصال به شبکه جهانی اینترنت کرده. جالب است بدانید که درصورتیکه سیستم اولین قربانی ، به اینترنت متصل نبوده، این کرم شروع به پیدا کردن و مسیریابی پیچیده (routing) بین کامپیوترهای موجود در شبکه مینموده تا دسترسی به اینترنت پیدا کند. بعد از برقراری ارتباط با اینترنت، شروع به برقراری یک ارتباط امن با آدرس های زیر میکند: http://www.mypremierfutbol.com و http://www.todaysfutbol.com .

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

مرحله سوم: انتشار بزرگ

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

نرم افزار اینکار را با نصب یک درایور جعلی سخت‌افزاری که به دقت طراحی شده انجام میداد. این درایور که بصورت دیجیتال با برند Realtek امضاء شده بود که بدین‌معنا بود که نرم‌افزار (یا سازندگان آن) توانسته بود به امن‌ترین قسمت شرکت تایوانی Realtek نفوذ کنند و ظاهرا بدون آنکه این شرکت مطلع شود محرمانه ترین اطلاعات آنرا بدزدند: کلید امنیتی که realtek با آن درایورهایش را امضا و منتشر میکند. بعد از مدتی کسانیکه این درایور را نوشته بودند شروع به امضا کردن این درایور با کلیدهای محرمانه یک شرکت تایوانی دیگر کردند: شرکت JMicron. شرکت دیگری که محرمانه ترین اطلاعاتش به غارت رفته بود.

همانطور که گفتیم ، این نرم‌افزار پیچیده‌ترین نرم‌افزار قرن ماست. واقعا پیچیده. چرا که بعد از اینهمه مراحلی که طی کرده هنوز "کارش رو شروع نکرده"!

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

مرحله چهارم: تسخیر هدف اصلی

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

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

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

این دو موتور صنعتی که بدنبالش میگردد ، در صنعت به آنها درایو فرکانس متغیر میگویند. از آنها برای سانتریفیوژهای غنی سازی اورانیوم استفاده میشود. برای غنی سازی اورانیوم، دانشمندان هسته ای این موتورها را بین ۸۰۰ تا ۱۲۰۰ هرتز تنظیم کرده بودند، نرم افزار این موضوع را میفهمد و بدنبال موتورهایی با این فرکانس میگردد.

مرحله پنجم: خواب!

خواب؟؟ بعد از تسخیر همه سانتریفیوژها ؟؟

جواب مثبت است چون اسم پیچیده‌ترین نرم‌افزار تاریخ را یدک میکشد. حالا دقیقا چه اتفاقی بعد از مرحله چهارم در تاسیسات هسته ای ما رخ داد؟ بخوانید:

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

و نرم افزار به مدت و دلایل نامشخصی بخواب میرود: حدس و گمان ها از چند ثانیه تا چند هفته بوده (کمتر از یکماه کامل).

مرحله ششم: تخریب

بعد از ثانیه‌ها، روزها و شاید هفته ها،باز به دلایل و مبناء نامشخصی، نرم افزار زمان را مناسب تشخیص داده و بدون جلب توجه و به صدا درآوردن آلارم خاصی به آرامی از خواب برمیخیزد. چند سانتریفیوژ که درحال غنی سازی اورانیوم هستند را به صورت تصادفی انتخاب میکند، آنها را قفل میکند تا اگر انسانی متوجه نقص عملکرد دستگاه شد ، نتواند سیستم را خاموش کند. سپس مخفیانه شروع به دستکاری سرعت آنها میکند: نه آنقدر زیاد که دستگاه منفجر شود و نه آنقدر کم که کسی متوجه خرابی آن شود، کمی بیشتر یا کمی کمتر از میزان استاندارد تا اورانیوم داخل سانتریفیوژها را با افزایش فشار گاز UF6 تبدیل به تفاله کند.

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

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

همزمان با همه اینکارها ، حین حمله به تاسیسات و دستکاری کردن سرعت سانتریفیوژها،برای پرسنلی که وظیفه پایش و مانیتورینگ سیستم را دارند، دیتای ۲۱ ثانیه‌ای ضبط شده از صفحه نمایش مانیتورینگ تاسیسات را پخش میکند که همه چیز را "نرمال" نشان میدهد! چون سانتریفیوژها را در حالت قفل (lock) گذاشته و تنها سیستم مانیتورینگ میتواند آنها را متوقف کند. این فیلم ۲۱ ثانیه ای زمانی توسط ویروس ضبط شده که همه چیز درحال کار عادی بوده اند! و حالا موقع حمله در حالت تکرار بصورت لوپ بازپخش میشوند.

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

آنچه در تاسیسات اتفاق افتاد

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

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

اگر شما مسئول چنین تاسیسات مهم و استراتژیک و خطرناکی بودید چکار میکردید؟ مطمئنا همه چیز را بارها و بارها چک میکردید اما دلیل این ازکارافتادن‌هارا متوجه نمیشدید. شما میتوانستید تک تک کامپیوترها و دستگاه های تاسیسات خود را جایگزین کنید اما باز مشکل حل نشده باقی میماند و سانتریفیوژ بلافاصله از کار میافتاد.جلوی چشم شما حدود ۱۰۰۰ سانتریفیوژ از کار می‌افتاد و یا آفلاین میشدند بدون آنکه دلیلش را بفهمید.

این داستان کامل استاکس‌نت بود و چیزی که در صحنه اتفاق افتاد.

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

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


جنبه‌های فنی

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

پی‌نوشت: از اینکه این مطلب را به اشتراک میگذارید متشکرم :)

stuxnetامنیتبرنامه‌نویسیپروندههک
توسعه دهنده نرم‌افزار
شاید از این پست‌ها خوشتان بیاید