در مورد این مسئله که هایجک پروتکل BGP چیست و به چه شکل صورت می‏گیرد، اجازه بدهید داخل این پست یک مقدار آن را توضیح بدهم (در حد سواد اندکم). پروتکل Border Gateway Protocol در حقیقت یک پروتکل | استاندارد برای مسیریابی مولفه‏های درون یک ساختار شبکه‏ای (Internetworking) است. 

به زبان خیلی ساده‏تر این پروتکل مشخص می‏کند ترافیک از چه مسیر باید بگذرد تا به مقصد خود برسد که الگوریتم‏های آن هم بسیار پیچیده است (الگوریتم های Bellman–Ford، Dijkstra، Floyd–Warshall و ... از این دست الگوریتم‏ها هستند) که حال در مورد آن قصد صحبت ندارم که چطور می‏توان یک پروتکل مشابه BGP مهندسی کرد و ساختار درونی آن به چه شکل است.

به هر صورت پروتکل BGP مشخص می‏کند که بهینه ‏ترین راه بین دو شبکه در فضای اینترنت‏کاری چیست و عموما از این پروتکل برای تشخیص مسیر انتقال اطلاعات بین دو ISP یا در سطح کلان بین دو نقطه Internet Exchange Point استفاده می‏شود.  البته به این نکته هم دقت کنید، از این پروتکل برای انتقال اطلاعات استفاده نمی‏شود، بلکه از این پروتکل برای تشخیص بهینه‏ترین راه (Possible Shortest Path) استفاده می‏شود.

به عبارت خیلی تخصصی‏تر تو حوزه مخابرات رادیویی و شبکه‏سازی، وقتی مجموعه‏ای از پیشوندهای IP تحت یک موجودیت فعالیت می‏کنند، در قالب Autonomous System شناخته می‏شوند، که این ASها دارای یک شناسه هستند که در قالب Autonomous System Number شناخته می‏شود که این شناسه توسط Internet Assigned Numbers Authority به آن‏ها تخصیص داده می‏شود.


به عنوان مثال، الان به من یک آدرس IP توسط های‏وب تخصیص داده شده است که فرض کنید این آدرس IP مثلا 70.177.9.30 است.  شایان ذکر است، این آدرس اینترنتی به یک فضای آدرس خیلی بزرگتر 70.177.0.0/20 تعلق دارد که به عنوان پیشوند (Prefix) به آن ارجاع می‏شود. مالکیت این پیشوند هم 70.177.0.0/20  برای های‏وب است و در قالب مثلا https://bgp.he.net/AS56402 سابمیت و معرفی می‏شود. 


حال فرض کنید من می‏خواهم یک دیتا | پاکت شبکه به یک Node در یک ISP دیگر ارسال کنم، در این شرایط باید از پروتکل BGP برای پیدا کردن بهینه‏ترین مسیر به ISP مقصد استفاده شود. این کار با اشتراک اطلاعات مسیریابی (همین ASها) توسط BGP peers صورت می‏گیرد. 


خلاصه اینکه با اختصاص هر فضای اینترنتی به یک ISP و قواعدی که وجود دارد و استفاده از پروتکل BGP می‏توان بهینه‏ترین مسیر را به هر مقصدی در اینترنت پیدا کرد. حال وقتی حرف از ربودن پروتکل BGP یا همان هایجک پروتکل BGP می‏آید، در حقیقت اتفاقی که رخ می‏دهد این است که افرادی سعی می‏کنند با استفاده از BGP راه‏های مسیریابی را دستکاری کنند. از این روش حمله بیشتر هم دولت‏ها برای بازرسی ترافیک شبکه در یک مسیر خاص استفاده می‏کنند.


نحوه پیاده‏سازی این دست حملات هم به این شکل است که یک مهاجم می‏تواند با دستکاری BGP ترافیک شبکه را به مسیری منتقل کند که می‏خواهد و در نهایت ترافیک ورودی به آنجا را مورد پایش یا دستکاری قرار بدهد، چون آن سیستم تحت کنترل او است. هایجک پروتکل BGP در سطح اینترنت توسط پیکربندی یک مسیریاب روی لبه (Router Edge) برای اعلان پیشوندهایی (Prefix Announcements) است که به آن تخصیص داده نشده‏اند. 

اگر حالا این اعلان مخرب و غیرمشروع مشخص کننده مسیر کوتاه‏تر و بهینه‏تر برای یک مقصد مشخص (مورد هدف مهاجم) باشد، در نتیجه ترافیک ورودی به روتر روی لبه برای ارسال به آن مقصد، به مسیری منحرف می‏شود که به عنوان مسیر بهینه توسط مهاجم معرفی شده است. در حقیقت به این مسیر، مسیر آلوده میگویند.


قابل ذکر است، با اعلان پیشوندهای غیرصحیح، روتری که آلوده یا دستکاری شده است، در ادامه Routing Information Base دیگر Peerها را آلوده می‏کند. در نتیجه آلوده شدن یک Peer ممکن است اطلاعات مسیریابی ناصحیح به دیگر Peerها و دیگر Autonomous Systems اینترنت انتشار داده شود. این هم در نهایت ساختار ارتباطی و مسیریابی را به هم میریزد. برای همین کشورهایی که این کارها را میکنند، به شدت و با هزینه های میلیون یورویی جریمه خواهند شد.


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


به کانال بنده جوین شوید: @miladkahsarialhadi