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

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

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

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

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

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

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

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

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

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