برچسب Archives: Routing Protocol

TTL Security در پروتکل مسیریابی BGP

چند وقته برروی امنیت پروتکل BGP کار میکردم . خوب با یک مکانیزم امنیتی و کامند در IOS میخواهیم آشنا شویم. دستور زیر

یک مکانیزم امنیتی بسیار سبک و راحت می باشد که session ایجاد شده بین peer های BGP را از حملات CPU-utilization محافظت می کند. درIPv4 از فیلد TTL و در  IPv6 از Hop Limit برای جلوگیری از این دسته حملات استفاده می شود. برای مثال می توان حملات DOS را نام برد که سعی می کند تا بخشی از شبکه را از کار بیندازد با پکت IP که در هدر آن Source,Destination جعلی وجود دارد. این مکانیزم امنیتی بدین صورت عمل می کند که پکت های دریافتی بایستی مقدار TTL آن مساوی و یا بزرگتر از مقدار تعیین شده توسط کانفیگ انجام شده برروی روتر باشد. وقتی پکت از فاصله یک Hop دریافت می شود مقدار TTL برابر 255 و اگر فاصله 2Hop باشد مقدار این فیلد 254 خواهد بود. در واقع در این دستور حداکثر تعداد Hop بین دو peer از eBGP را مشخص می کنیم.

این ویژگی می بایست در هر روتر درون AS کانفیگ گردد. نشست BGP تنها در برابر ترافیک Incoming محافظت می شود و تاثیری در ترافیک خروجی از روتر نخواهد داشت. وقتی این کانفیگ برروی روتر صورت گیرد BGP تنها نشست هایی را آغاز می کند و یا  Alive نگه میدارد که دارای شرایط تعیین شده در کانفیگ باشد.

اطلاعات بیشتر

حمله برروی LSDB ها در پروتکل مسیریابی OSPF همراه سناریو عملی

سلام دوستان.

دلیل اصلی نوشتن این مطلب برمیگرده به پستی که در یکی از سایت های ایرانی خوندم، سایت وتیمی که خود را جزو بهترین و برترین شرکت های امنیت شبکه و رایانه ای کشور می داند. درواقع مطلبی که خوندم  دوست عزیز امنیتی مون اسم تاپیک رو ”  آسیب پذیری موجود بر روی پروتکل OSPF ”  گذاشته بود و اگر بطور صریح حرف بزنیم ترجمه و شرح CVE-2012-0249 بودش!

این باگ مربوط به برنامه Quagga که بیس آن Zebra است. باگ در Daemon OSPF که وظیفه اجرای پروتکل OSPF را برعهده دارد رخ می دهد. در بسته های دریافتی LS Update طول چک نمی شود. طول در LSA Hader قرار میگیرد (فیلد length)  و این باگ باعث ایجاد حملات DOS می شود. حال نمیدونم وظیفه پروتکل آیا واقعا چک کردن طول داده هاست؟ یا این یک خطای برنامه نویسی است؟ که این بشر نوشته کشف آسیب پذیری در پروتکل OSPF ونکته ظریف اینجاست که اگر باگ مرتبط با پروتکل باشد بدون شک بایستی در تمامی دیوایس هایی که این پروتکل را پیاده سازی نموده اند وجود داشته باشد. پروتکل های که نوشته می شوند براساس تفکر و منطق هستند پس باگ هم بایستی logical باشد نه مرتبط با Secure Coding.

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

 

ابتدا مروری بر قواعد OSPF خواهیم داشت تا حمله بهتر درک شود:

  • قواعد براساس وضعیت پیوندهایا همان Link-State است، بنابراین همه روترهایی که در یک ناحیه OSPF قر ار دارند بایستی توپولوژی آن Area رو یادبگیرند.
  • بطورکلی OSPF سه مرحله دارد:
  1. اطلاعات روترهای مجاور، neighbor ها که شرایط برقراری ارتباط و تبادل داده ها را دارد، در جدولی به نام neighbor table ذخیره می شود.
  2. نگهداری و تبادل اطلاعات توپولوزیکی شبکه، بین روترهای همسایه است. این اطلاعات در جدولی به نام LSDB ذخیره می گردد.
  3. انتخاب بهترین مسیر ازروی جدول LSDB که این کارتوسط الگوریتم Dijkstra انجام می شود.

برای ساخت Topology Database از ارسال و دریافت بسته هایی به نام LSA استفاده می شود لذا بنابرموقعیت توپولوژیکی 11نوع LSA داریم که Header تمامی آنها یکسان است. ساختار این هدر را در پایین می توانید مشاهده کنید :

 

اطلاعات بیشتر

حمله برروی Designated Router

برای حملات در OSPF بطور معمول حملاتی که پیشنهاد می شود برروی آسیب پذیری های الگوریتم Network LSA و پروتکل Hello است.  Network LSA ها توسط Designated Router ارسال می شد، که این روتر در میان روترهای مجاور در شبکه توسط الویت هایی که از پیش تنظیم شده است (که گاها هم می توانند بصورت مقدار پیش فرض باشند) .

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