دو شب پیش سیستم فیلترینگ، چندتا وبسایت معروف روی کلودفلر رو وایتلیست کرد و بلافاصله بعد از این اتفاق، یه متد جدید با اسم SNI Spoofing معرفی شد که کامل سیستم فیلترینگ رو دور میزد و فیلترچیهای دوستداشتنی مجبور شدن ۴-۵ ساعت بعد از وایتلیست کردن این سایتها، دوباره همه رو بنندن تا این متد رو از کار بندازن. حالا SNI Spoofing چطوری کار میکنه و سیستم فیلترینگ رو دور میزنه؟👇🏻
اول کلاینت یه کانکشن TCP با کلادفلیر برقرار میکنه. تا اینجا فیلترینگ کاری بهش نداره.
بعد یه TLS ClientHello برای یکی از دامینهای وایتلیستشده میفرسته، با این تفاوت که شماره Seq توی TCP عمداً اشتباهه.
فیلترینگ دامین رو وایتلیست میبینه، پس اجازه عبور میده و این کانکشن رو «قانونی» علامتگذاری میکنه.
اما وقتی بسته به کلادفلیر میرسه، چون Seq نامعتبره، بدون پردازش Drop میشه.
حالا که از دید فیلترینگ این کانکشن معتبره، کلاینت دوباره داخل همون کانکشن یه TLS ClientHello واقعی (با Seq درست) ولی برای یه دامین غیر وایتلیست میفرسته.
این یکی هم از فیلترینگ رد میشه و کلادفلیر هم قبولش میکنه و اتصال برقرار میشه.
فرضهای کلیدی این روش:
۱. امکان اتصال به کلادفلیر وجود داره.
۲. یه تعدادی دامنه وایتلیست شدن.
۳. گواهی هر دو دامنه وایتلیست و غیروایت لیست از طریق یک سرور واحد ارایه میشه.
۳. فیلترینگ ترتیب/اعتبار Seq رو چک نمیکنه.
۴. بعد از «معتبر» شناختن کانکشن، دیگه محتوای بعدیش رو بررسی نمیکنه.
روش موثر برای جلوگیری از این روش بدون اسیب زدن به پروتکل TCP اینه که فیلترینگ شرایط معتبر دونستن کانکشن رو سختگیرانهتر کنه. مثلا برای TLS حتما منتظر ServerHello بمونه و تا وقتی ServerHello رو نگرفته همچنان محتوای ClientHello رو بررسی کنه.
📱
aleskxyz🚀
@IranCoderz 👨💻