→ شروع بازیکتابخانهٔ مأموریت‌ها GitHub
مأموریت 5 · ساختن مرزها

راه‌های فرعی خروج را ببندید

با شبکه‌ای آشنا شوید که پیش‌فرضش رد کردن ارتباط‌هاست.

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

نگهبان شبکه
«یک فهرست مشخص به من بدهید. هر راهی که در آن نباشد، بسته می‌ماند.»

تصمیم شما

فقط همان یک مسیری را مجاز کنید که این ربات در طرحِ راهنما به آن نیاز دارد.

  1. پراکسیِ کنترل‌شدهٔ خودش
    پراکسی مقصدها را بررسی می‌کند و اطلاعات واقعی احراز هویت را در درخواست قرار می‌دهد.
  2. هر وب‌سایتی که ربات بگوید مفید است
    بگذارید مدل تصمیم بگیرد کدام سایت‌ها قابل‌اعتمادند.
  3. یک سرویس عمومی برای پاسخ به پرس‌وجوهای DNS
    اجازه بدهید ربات مستقیماً نشانی هر نام دامنه‌ای را جست‌وجو کند.
  4. پراکسیِ دوست دیگر
    اگر پراکسی خودش از کار افتاد، به‌عنوان مسیر پشتیبان مفید است.
نمایش توضیح

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

«رد کردن به‌صورت پیش‌فرض» یعنی «هیچ چیزی مجاز نیست، مگر اینکه آگاهانه اجازه‌اش را بدهیم». فهرست مجازها کوچک‌تر از فهرست همهٔ مقصدهای بدِ احتمالی است.
  • شبکهٔ هر دوست، NAT برای دسترسی به اینترنت و DNS بیرونی ندارد و قانون شبکهٔ آن فقط محدودهٔ بسیار مشخصی را مجاز می‌کند.
  • خودِ پرس‌وجوهای DNS می‌توانند داده‌های کدگذاری‌شده را حمل کنند؛ پس «نداشتن امکان مرور وب» با «نداشتن راه خروج» یکی نیست.
  • شبکه و پراکسی این محدودیت‌ها را اجرا می‌کنند؛ نه اعتماد به اینکه مدل درست رفتار می‌کند.
پراکسی

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

منبع: بخش راهنمای اصلی 9. خواندن PDF اصلی. این درس هیچ سرور واقعی را آزمایش نمی‌کند.