آزاد راه 3 / نفوذ به سیستم های نظامی قدیمی

Mestercomuter Mestercomuter Mestercomuter · 5 شهریور · خواندن 4 دقیقه

راستش همیشه سیستم‌های قدیمی برام جذاب بودن. مخصوصاً اونایی که یه زمانی نقش حیاتی توی عملیات نظامی داشتن. یکی از معروف‌ترین نمونه‌ها، MILNET بود؛ شبکه‌ای که اوایل دهه ۸۰ میلادی برای جدا کردن بخش نظامی از ARPANET ساخته شد. روی همین بستر، سیستم‌های C2 (Command & Control) اجرا می‌شدن؛ یعنی همون مغز متفکر عملیات نظامی.این مقاله یه مرور فنی و در عین حال تجربه‌ای روی این سیستم‌هاست. نه قصه‌پردازی و نه اغراق، فقط یه نگاه واقعی به ضعف‌هایی که باعث می‌شدن هک بشن.

ساختار کلی سیستم‌های C2

سیستم‌های فرماندهی و کنترل سه لایه اصلی داشتن. لایه اول، سرورهای مرکزی بودن که دستورات از اونجا صادر می‌شد. معمولاً مین‌فریم‌های IBM یا DEC بودن. لایه دوم، ارتباطات بود که روی TCP/IP اولیه کار می‌کرد. داده‌ها مستقیم و بدون رمز رد و بدل می‌شدن. لایه سوم هم واحدهای میدانی بودن که این دستورات رو دریافت و اجرا می‌کردن.

خلاصه‌ش این بود که این سیستم‌ها برای سرعت و عملکرد طراحی شده بودن، نه برای امنیت.

وقتی دقیق‌تر نگاه می‌کردم، چند مشکل واضح به چشم می‌خورد.

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

دومین نقطه ضعف این بود که داده‌ها بدون رمز جابه‌جا می‌شدن. هر بسته TCP/IP همون‌طوری plain-text بود. یعنی راحت می‌شد وسط راه نشست و دید که چی داره رد و بدل می‌شه.

مشکل بعدی نبود سیستم‌های تشخیص نفوذ بود. هیچ IDS یا سیستم هشداردهنده‌ای وجود نداشت. یعنی می‌شد ساعت‌ها کار شناسایی یا تست انجام داد بدون اینکه کسی متوجه بشه.

چهارمین ضعف به باگ‌های نرم‌افزاری برمی‌گشت. نسخه‌های قدیمی UNIX و VMS پر از مشکل بودن. حتی نمونه‌های تاریخی مثل کرم موریس نشون دادن که یه باگ ساده می‌تونه کل شبکه رو به هم بریزه.

و آخرین مسئله اتصال MILNET به شبکه‌های عمومی مثل ARPANET بود. این اتصال‌ها باعث می‌شد کسی از بیرون بتونه خودش رو برسونه به داخل.

 

خوب حالا یک چالش اون تایمی که ما یا من کار میکردم و خوب اینا هنوز منسوخ نشده بود به صورت کامل خوب دسترسی مون باید راه دور می‌بود نمیشد بریم آمریکا یک چیزی بزاریم 

وقتی پای اجرای حمله از راه دور وسط می‌اومد، چند روش اصلی بیشتر جواب می‌داد. این‌ها همون تکنیک‌هایی بودن که توی حوادث واقعی مثل ۱۹۸۷ استفاده شدن.

Packet Spoofing یا جعل بسته‌های داده

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


Exploiting Software Vulnerabilities یا بهره‌برداری از باگ‌ها

سیستم‌های MILNET روی یونیکس و VMS قدیمی بودن. این نسخه‌ها باگ‌هایی مثل buffer overflow داشتن. یکی از معروف‌ترین نمونه‌ها همون باگ sendmail بود که توی کرم موریس استفاده شد. اجرای این حمله از راه دور خیلی ساده بود. کافی بود پورت‌های باز مثل SMTP رو اسکن کنی و بعد یه ورودی مخرب بفرستی. مشکلش اینجا بود که سیستم‌ها مرتب پچ نمی‌شدن و خیلی وقتا با همون باگ‌های قدیمی آنلاین می‌موندن. نتیجه این می‌شد که می‌شد یه shell از راه دور گرفت و بعدش کنترل بیشتری پیدا کرد.


Brute-Force و Dictionary Attacks روی رمزها

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


Packet Sniffing یا شنود داده‌ها

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


Pivoting از شبکه‌های عمومی

گاهی وقتا MILNET به ARPANET وصل بود. این خودش یه در پشتی می‌شد. هکرها اول یه سیستم توی ARPANET (مثلاً یه دانشگاه) رو هک می‌کردن و بعد از اونجا به MILNET می‌پریدن. مشکل اصلی اینجا بود که جداسازی شبکه‌ها کامل انجام نشده بود. همین باعث می‌شد نفوذ از شبکه عمومی به شبکه نظامی امکان‌پذیر بشه.


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

 

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