همه چیز خیلی بد است یا نوع جدیدی از رهگیری ترافیک

13 مارس به کارگروه ضد سوء استفاده RIPE پیشنهادی دریافت شده است ربودن BGP (hjjack) را به عنوان نقض خط مشی RIPE در نظر بگیرید. اگر این پیشنهاد پذیرفته می‌شد، ارائه‌دهنده اینترنت که توسط رهگیری ترافیک مورد حمله قرار می‌گرفت این فرصت را داشت که درخواست ویژه‌ای برای افشای مهاجم ارسال کند. اگر تیم بررسی شواهد حمایتی کافی جمع آوری می کرد، LIR که منبع رهگیری BGP بود به عنوان یک مزاحم در نظر گرفته می شد و می توانست از وضعیت LIR خود محروم شود. بحث هایی هم وجود داشت در مقابل این تغییر می کند.

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

در طی چند سال گذشته، تنها درگیری هایی مانند MOAS (سیستم خودمختار چندگانه) به عنوان رهگیری BGP در مطبوعات پوشش داده شده است. MOAS یک مورد خاص است که در آن دو سیستم مستقل مختلف، پیشوندهای متضاد با ASN های متناظر در AS_PATH را تبلیغ می کنند (اولین ASN در AS_PATH که از این پس به عنوان مبدا ASN نامیده می شود). با این حال، حداقل می توانیم نام ببریم 3 نوع اضافی رهگیری ترافیک، به مهاجم اجازه می دهد تا ویژگی AS_PATH را برای اهداف مختلف، از جمله دور زدن رویکردهای مدرن برای فیلتر کردن و نظارت، دستکاری کند. نوع حمله شناخته شده پیلوسووا-کاپلی - آخرین نوع چنین رهگیری، اما اصلاً از نظر اهمیت. کاملاً محتمل است که این دقیقاً همان نوع حمله ای باشد که در هفته های گذشته شاهد آن بوده ایم. چنین رویدادی ماهیت قابل درک و پیامدهای کاملاً جدی دارد.

کسانی که به دنبال نسخه TL;DR هستند می توانند به زیرنویس "Perfect Attack" بروید.

پس زمینه شبکه

(برای کمک به درک بهتر فرآیندهای مربوط به این حادثه)

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

رویکردهای فیلترینگ و نظارت موجود تلاش می‌کنند تا مسیرها را تجزیه و تحلیل کنند و با تجزیه و تحلیل ویژگی AS_PATH تصمیم‌گیری کنند. روتر ممکن است این ویژگی را در طول تبلیغات به هر مقداری تغییر دهد. به سادگی افزودن ASN مالک در ابتدای AS_PATH (به عنوان مبدا ASN) ممکن است برای دور زدن مکانیسم های بررسی مبدا فعلی کافی باشد. علاوه بر این، اگر مسیری از ASN مورد حمله به شما وجود داشته باشد، امکان استخراج و استفاده از AS_PATH این مسیر در سایر تبلیغات شما وجود دارد. هر گونه بررسی اعتبارسنجی فقط AS_PATH برای اعلامیه های دستکاری شده شما در نهایت تایید می شود.

هنوز چند محدودیت وجود دارد که قابل ذکر است. اولاً، در صورت فیلتر کردن پیشوند توسط ارائه‌دهنده بالادست، ممکن است مسیر شما همچنان فیلتر شود (حتی با AS_PATH صحیح) اگر پیشوند به مخروط مشتری شما که در بالادست پیکربندی شده تعلق نداشته باشد. دوم، اگر مسیر ایجاد شده در جهت های نادرست تبلیغ شود و در نتیجه خط مشی مسیریابی را نقض کند، یک AS_PATH معتبر می تواند نامعتبر شود. در نهایت، هر مسیری با پیشوندی که طول ROA را نقض کند ممکن است نامعتبر در نظر گرفته شود.

حادثه

چند هفته پیش شکایتی از یکی از کاربرانمان دریافت کردیم. ما مسیرهایی با پیشوندهای ASN و 25/ را دیدیم، در حالی که کاربر ادعا می کرد که آنها را تبلیغ نکرده است.

TABLE_DUMP2|1554076803|B|xxx|265466|78.163.7.0/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.7.128/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.18.0/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.18.128/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.226.0/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.226.128/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.164.7.0/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.164.7.128/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||

نمونه هایی از اطلاعیه ها برای آغاز آوریل 2019

NTT در مسیر پیشوند /25 آن را به خصوص مشکوک می کند. LG NTT در زمان وقوع حادثه از این مسیر بی اطلاع بود. بنابراین بله، برخی از اپراتورها یک AS_PATH کامل برای این پیشوندها ایجاد می کنند! بررسی روترهای دیگر یک ASN خاص را نشان می دهد: AS263444. پس از بررسی مسیرهای دیگر با این سیستم خودمختار، با وضعیت زیر مواجه شدیم:

TABLE_DUMP2|1554076800|B|xxx|265466|1.6.36.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.6.38.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.23.143.0/25|265466 262761 263444 22356 6762 9498 9730 45528|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.23.143.128/25|265466 262761 263444 22356 6762 9498 9730 45528|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.24.0.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.24.128.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.26.0.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.26.128.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.64.96.0/20|265466 262761 263444 6762 3491 4760|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.64.112.0/20|265466 262761 263444 6762 3491 4760|IGP|xxx|0|0||NAG||

سعی کنید حدس بزنید اینجا چه مشکلی دارد

به نظر می رسد که شخصی پیشوند را از مسیر گرفته، آن را به دو قسمت تقسیم کرده و مسیر را با همان AS_PATH برای آن دو پیشوند تبلیغ کرده است.

TABLE_DUMP2|1554076800|B|xxx|263444|1.6.36.0/23|263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|263444|1.6.38.0/23|263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|61775|1.6.36.0/23|61775 262761 263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|61775|1.6.38.0/23|61775 262761 263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.6.36.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.6.38.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|28172|1.6.36.0/23|28172 52531 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|28172|1.6.38.0/23|28172 52531 263444 52320 9583|IGP|xxx|0|0||NAG||

مسیرهای نمونه برای یکی از جفت‌های پیشوند تقسیم

چندین سوال به طور همزمان ایجاد می شود. آیا کسی واقعاً این نوع رهگیری را در عمل امتحان کرده است؟ آیا کسی این مسیرها را طی کرده است؟ چه پیشوندهایی تحت تأثیر قرار گرفتند؟

این جایی است که رشته شکست های ما آغاز می شود و دور دیگری از ناامیدی از وضعیت فعلی سلامت اینترنت.

مسیر شکست

اول چیزهای مهم. چگونه می‌توانیم تعیین کنیم که کدام مسیریاب‌ها چنین مسیرهای رهگیری را پذیرفته‌اند و امروز ترافیک آن‌ها می‌تواند تغییر مسیر دهد؟ ما فکر کردیم که با پیشوندهای /25 شروع کنیم زیرا آنها "به سادگی نمی توانند توزیع جهانی داشته باشند." همانطور که می توانید حدس بزنید، ما بسیار اشتباه کردیم. معلوم شد که این معیار بسیار پر سر و صدا است و مسیرهایی با چنین پیشوندهایی می توانند حتی از اپراتورهای Tier-1 ظاهر شوند. به عنوان مثال، NTT حدود 50 پیشوند از این قبیل دارد که آنها را بین مشتریان خود توزیع می کند. از سوی دیگر، این معیار بد است زیرا در صورت استفاده اپراتور، چنین پیشوندهایی را می توان فیلتر کرد فیلتر کردن پیشوندهای کوچک، در همه جهات بنابراین، این روش برای یافتن تمام اپراتورهایی که ترافیک آنها در نتیجه چنین حادثه ای تغییر مسیر داده شده است، مناسب نیست.

یکی دیگر از ایده های خوب ما این بود که به آن نگاه کنیم فيلم هاي پورن با نماي بزرگ. به خصوص برای مسیرهایی که قانون maxLength ROA مربوطه را نقض می کنند. به این ترتیب می‌توانیم تعداد ASN‌های مبدأ مختلف با وضعیت نامعتبر را که برای یک AS مشخص قابل مشاهده بودند، پیدا کنیم. با این حال، یک مشکل "کوچک" وجود دارد. میانگین (میانگین و حالت) این عدد (تعداد ASN های مبدا مختلف) حدود 150 است و حتی اگر پیشوندهای کوچک را فیلتر کنیم، بالای 70 باقی می ماند. این وضعیت یک توضیح بسیار ساده دارد: فقط یک تعداد کمی از اپراتورها که قبلاً از فیلترهای ROA با خط مشی "بازنشانی مسیرهای نامعتبر" در نقاط ورودی استفاده می کنند، به طوری که هر جا مسیری با نقض ROA در دنیای واقعی ظاهر شود، می تواند در همه جهات منتشر شود.

دو رویکرد آخر به ما امکان می دهد اپراتورهایی را پیدا کنیم که حادثه ما را دیده اند (از آنجایی که بسیار بزرگ بود)، اما به طور کلی قابل اجرا نیستند. خوب، اما آیا می توانیم مزاحم را پیدا کنیم؟ ویژگی های کلی این دستکاری AS_PATH چیست؟ چند فرض اساسی وجود دارد:

  • پیشوند قبلاً در هیچ کجا دیده نشده بود.
  • مبدا ASN (یادآوری: اولین ASN در AS_PATH) معتبر است.
  • آخرین ASN در AS_PATH ASN مهاجم است (در صورتی که همسایه آن ASN همسایه را در تمام مسیرهای ورودی بررسی کند).
  • حمله از یک ارائه دهنده منشا می گیرد.

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

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

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

اگر به حادثه اصلی برگردیم، هم مهاجم و هم منطقه توزیع توسط ما با جستجوی نقاط بحرانی شناسایی شدند. با کمال تعجب، AS263444 مسیرهای ساختگی را برای همه مشتریان خود ارسال نکرد. هر چند لحظه ی غریب تری وجود دارد.

BGP4MP|1554905421|A|xxx|263444|178.248.236.0/24|263444 6762 197068|IGP|xxx|0|0|13106:12832 22356:6453 65444:20000|NAG||
BGP4MP|1554905421|A|xxx|263444|178.248.237.0/24|263444 6762 197068|IGP|xxx|0|0|13106:12832 22356:6453 65444:20000|NAG||

یک نمونه اخیر از تلاش برای رهگیری فضای آدرس ما

هنگامی که پیشوندهای خاص تری برای پیشوندهای ما ایجاد شد، یک AS_PATH ایجاد شده ویژه استفاده شد. با این حال، این AS_PATH نمی توانست از هیچ یک از مسیرهای قبلی ما گرفته شود. ما حتی با AS6762 ارتباطی نداریم. با نگاهی به مسیرهای دیگر در این حادثه، برخی از آنها دارای یک AS_PATH واقعی بودند که قبلا استفاده شده بود، در حالی که برخی دیگر نداشتند، حتی اگر شبیه به مسیر واقعی باشد. تغییر AS_PATH علاوه بر این هیچ معنای عملی ندارد، زیرا به هر حال ترافیک به سمت مهاجم هدایت می شود، اما مسیرهایی با AS_PATH "بد" می توانند توسط ASPA یا هر مکانیسم بازرسی دیگری فیلتر شوند. در اینجا به انگیزه هواپیماربای فکر می کنیم. ما در حال حاضر اطلاعات کافی برای تایید اینکه این حادثه یک حمله برنامه ریزی شده بوده است نداریم. با این وجود امکان پذیر است. بیایید سعی کنیم موقعیتی را تصور کنیم، اگرچه هنوز فرضی است، اما بالقوه کاملا واقعی است.

حمله کامل

آن چه که ما داریم؟ فرض کنید شما یک ارائه دهنده حمل و نقل هستید که مسیرهای پخش را برای مشتریان خود ارسال می کنید. اگر مشتریان شما حضور چندگانه (multihome) داشته باشند، تنها بخشی از ترافیک آنها را دریافت خواهید کرد. اما هرچه ترافیک بیشتر باشد، درآمد شما بیشتر است. بنابراین اگر تبلیغات پیشوندهای زیر شبکه این مسیرها را با همان AS_PATH شروع کنید، بقیه ترافیک آنها را دریافت خواهید کرد. در نتیجه، بقیه پول.

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

با در نظر گرفتن سایر مکانیسم های امنیتی مسیریابی، ASPA در این مورد نیز کمکی نخواهد کرد (زیرا از AS_PATH از یک مسیر معتبر استفاده می کند). BGPSec به دلیل نرخ پذیرش پایین و احتمال باقی مانده حملات کاهش رتبه، هنوز گزینه مطلوبی نیست.

بنابراین ما یک سود آشکار برای مهاجم و کمبود امنیت داریم. میکس عالی

چه باید بکنم؟

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

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

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

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

منبع: www.habr.com

اضافه کردن نظر