الخميس، 17 فبراير 2022

 ثغرة خطيرة في Google Chrome

 

أكتشف مؤخرا ثغرة خطيرة في متصفح Google Chrome تسبب في الحاق الضرر على الأنظمة المخترقة على مستوى سرية المعلومات (confidentiality) و سلامة المعلومات (integrity) وكذلك التوافرية (availability). الثغرة سببها برمجية ضمن المتصفح  متعلقة بجزئية (Animation).

تكمن الخطورة الثغرة بسهولة استغلالها كونها لا تتطلب عمل مصادقة (authentication)، يحث يستطيع المخترق ادخال معلومات تتسبب في احداث خلل في ذاكرة الجهاز المخترق (memory corruption).

 الثغرة تحمل رقم (CVE-2022-0609) ومسماها use-after-free in Chrome’s Animation component، يمكن تلافي هذه الثغرة من خلال تحديث نسخة المتصفح للنسخة رقم98.0.4758.102 

الثغرة الخطيرة جدا CVE-2021-44228

"Apache Log4Shell"

يتم استغلال هذه الثغرة لتنفيذ unauthenticated remote code execution أي هجوم (RCEتمكّن من السيطرة الكاملة على النظام المخترَق.

يتم استغلال خاصية Java Naming and Directory Interface (JNDI) لتحميل ملف يحتوي على برمجية تسبب السيطرة على النظام وتنفيذ أوامر بصلاحيات عالية عن طريق تحويل ملف لتكوينobject  باستخدام خاصية Java deserialization. تُستغل هذا الـ object لتكوين malicious code على الجهاز المخترق.

الـ JNDI عبارة عن Java API يتيح الربط مع خدمات الاسماء والأدلة naming and directory services للاستعلام عن المعلومات data والمصادر resources عبر عدة وسائل منها بروتوكول LDAP وبروتوكول DNS كما في الشكل بالأسفل. من الأشياء التي يمكن الاستعلام عنها هو URI، وقد يستعمل الاستعلام عن URI لعمل هجوم من خلال وضع URI يؤشر على Java class يحتوي على خورازميات تنفيذية.



يتيح JNDI شمول متغيرات variables ضمن نص الرسالة للحدث بحيث يقوم بالاستعلام عن قيمة المتغير (مثلا اسم المستخدم أو اسم الجهاز) عبر أحدى الوسائل المتوفرة لديه. يعمل على النظام المصاب بهذه الثغرة خدمة او مجموعة من الخدمات (مثلا web server ،firewall وغيرهما)، الخدمة العاملة تقوم بتسجيل الاحداث من خلال النظام LOG4J الذي يعمل من خلال JNDI.

يقوم المخترق بالاستطلاع للتأكد من وجود الثغرة ومعرفة الوسائل المعرَفة على النظام لخدمة الاستعلام عن  الاسماء والأدلة، ولنفرض وجود LDAP مفعل كأحد الوسائل لهذه الغاية، وأن الخدمة الفعالة هي خدمة web service بالعادة تقوم هذه الخدمة بتسجيل المعلومات الواردة بطلبات الزبائن وتحديدا المعلومات الواردة في جزءuser-agent.

يقوم المخترق بارسال طلب HTTP Get ويضمن في جزء user-agent متغير يشير لمصدر على خادم الـ LDAP. هذا ال خادم هو ضمن منطومة المخترق وتحت إدارته وعليه ملفات تخريبيةmalware  حسب الشكل بالأسفل.

سيقوم الـ JNDI بارسال طلب لخادم الـ LDAP لاستعلام عن المصدر المطلوب والذي بدوره سيجيب الطلب بارسال الملف الذي يحتوي على الاوامر التنفيذية بعد تحويل محتوي الملف لـ object.




الثلاثاء، 14 ديسمبر 2021

الثغرة الخطيرة "Apache Log4Shell"

الثغرة الخطيرة جدا
CVE-2021-44228
"Apache Log4Shell"

يمكن تستغلال هذه الثغرة من تنفيذ unauthenticated remote code execution (RCE)
تمكّن من السيطرة الكاملة على النظام المخترَق.
يتم استغلال خاصية Java Naming and Directory Interface (JNDI) لتحميل ملف يحتوي على برمجية تسبب السيطرة على النظام وتنفيذ أوامر بصلاحيات عالية عن طريق تحويل ملف لتكوين object باستخدام خاصية Java deserialization. تُستغل هذا الـ object لتكوين malicious code على الجهاز المخترق.

الـ JNDI عبارة عن Java API يتيح الربط مع خدمات الاسماء والأدلة naming and directory services للاستعلام عن المعلومات data والمصادر resources عبر عدة وسائل منها بروتوكول LDAP وبروتوكول DNS كما في الشكل بالأسفل. من الأشياء التي يمكن الاستعلام عنها هو URI يؤشر على Java class يحتوي على خورازميات تنفيذية.


يتيح JNDI شمول متغيرات variables ضمن نص الرسالة للحدث بحيث يقوم بالاستعلام عن قيمة المتغير (مثلا اسم المستخدم أو اسم الجهاز) عبر أحدى الوسائل المتوفرة لديه. يعمل على النظام المصاب بهذه الثغرة خدمة او مجموعة من الخدمات (مثلا web server ،firewall وغيرهما)، الخدمة العاملة تقوم بتسجيل الاحداث من خلال النظام LOG4J الذي يعمل من خلال JNDI.

يقوم المخترق بالاستطلاع للتأكد من وجود الثغرة ومعرفة الوسائل المعرَفة على النظام لخدمة الاستعلام عن  الاسماء والأدلة، ولنفرض وجود LDAP مفعل كأحد الوسائل لهذه الغاية، وأن الخدمة الفعالة هي خدمة web service. بالعادة تقوم هذه الخدمة بتسجيل المعلومات الواردة بطلبات الزبائن وتحديدا المعلومات الواردة في جزء user-agent. 
يقوم المخترق بارسال طلب HTTP Get ويضمن في جزء user-agent متغير يشير لمصدر على خادم الـ LDAP. خادم الـ LDAP هو ضمن منطومة المخترق وتحت إدارته وعليه ملفات تخريبية (malware). حسب الشكل بالأسفل.

سيقوم الـ JNDI بارسال طلب لخادم الـ LDAP لاستعلام عن المصدر المطلوب والذي بدوره سيجيب الطلب بارسال الملف الذي يحتوي على الاوامر التنفيذية بعد تحويل محتوي الملف ل object.



الثلاثاء، 2 نوفمبر 2021

تعريف الـ OSPF Throttling

 

تعريف الـ OSPF Throttling

يقوم بروتوكول الـ  OSPF بإرسال رسائل تحديث عند حدوث تغيير في الشبكة، مما يتسبب بتغيير على قاعدة بيانات البروتوكول LSDB عند الراوترات التي وصلها رسائل التحديث OSPF LSA، وهذا يؤدي إلى قيام الراوتر بإجراء عمليات احتساب المسارات للشبكات نتيجة للتغيرات الحاصلة وخصوصا في الحالات التي تكون فيها وضعية الشكبة غير مستقرة. لكي يتجنب الراوتر إجهاد المعالج في إجراء عمليات الحساب بسبب ورود أكثر من تحديث متتالي، يقوم الراوتر بجدولة هذه العملية من خلال انتظار فترة من الزمن قبل الشروع بعملية الحساب. يطلق على هذه الخاصية إسم OSPF Throttling، تقوم هذه الخاصية بتأخير بدء عملية الحساب لفترة محددة او تباعد الفترات بين عمليات الاحتساب المتتالية كلما ورد رسالة تحديث OSPF LSA.

يتم ضبط عمل خاصية OSPF Throttling من خلال ثلاثة ضوابط زمنية لكي لا تمتد فترة التأخير لفترات طويلة، وهذه الضوابط هي:

-         spf-start هي الفترة الزمنية الأولية التي ينتظرها الرواتر قبل الشروع في أول عملية حساب.



-          spf-hold هي أقل فترة انتظار بين عمليتي حساب متتاليتين. تتضاعف مدة هذه الفترة عند كل تشغيل لعملية الحساب، تبقى تتضاعف هذه الفترة ما دامت عمليات الحساب يعاد تشغيلها بشكل مضطرد. لكن تعود لقيمتها الأولية في حال انقضت الفترة دون ورود رسالة تحديث تستوجب تشغيل عملية الحساب.

-         spf-max-wait وهي أقصى مدة ممكنة ينتظرها الراوتر بين عمليتي حساب متتاليتين.

لو افترضنا أن الرواتر استلم رسالة تحديث OSPF LSA فإنه سينتظر مدة spf-start 5 ثواني (على سبيل المثال) قبل بدء عملية حساب المسارات للوضع الحالي بعد التغيير، بعد تشغيل عملية الحساب وانتهائها سينتظر الراوتر مدة spf-hold (نفترض قيمتها هو 10 ثواني) قبل بدء العملية مرة أخرى في حال ورود رسالة تحديث جديدة تستدعي تشغيل العملية من جديد، هنا سينتظر الراوتر مدة spf-hold الحالية (10 ثواني) قبل الشروع بالحساب، وستتضاعف المدة لتصبح (20 ثانية)، ستبقى تتضاعف هذه المدة ما دام الأمر يستلزم تشغيل عملية الحساب. لكن أقصى قيمة يمكن أن تصلها مدة الانتظار بين عمليتي حساب هو  spf-max-wait ولنفترض أنها (40 ثانية).

حال انقضت مدة spf-hold الحالية دون ورود رسالة تحديث وعدم الحاجة لتشغيل العملية فإن مدة الانتظار البينية تعود لقيمتها spf-hold الأصلية.




 

السبت، 24 يوليو 2021

الفرق بين عمل السويتش وعمل الراوتر

 

نتيجة وجود VLANs على السويتشات فإن التوصيل بين السويتشات يتم من خلال مداخل بوضعية trunks.

جهاز السويتش (layer2 switch) يجسد مبادئ ال layer2 forwarding، بينما الراوتر يجسد مبادئ ال  layer3 forwarding

مقارنة بين المبدئين:

السويتش one broadcast domain في حال دخل فريم متجه للكل يقوم السويتش بتمريره عبر جميع المنافذ الأخرى غير الذي دخل منه، بينما هذا نرفوض بالرواتر (لن يمرره عبر المنافذ الأخرى).

السويتش يربط بين عناصر الشبكة الواحدة بينما الراوتر يربط بين الشبكات.

السويتش يمرر الفريم اذا كان وجتهه غير معلومة بالنسبة له (unknown destination) بينما الراوتر يقوم باهمال الرسالة المتجهة لعنوان غير معروف.

السويتش يمرر البيانات بشفافية transparently اي لا يغير بال headers المضافة عليها بينما الراوتر يغير layer2 header ويغير TTL and checksum

السويتش يبني ال forwarding table تلقائيا دون الحاجة لبروتوكول learning process، بينما هذا غير ممكن بالرواتر يتطلب static or dynamic routing

لمزيد من التفاصيل عن الفرق بين اعدادات الخاصة لمنافذ layer2 وبين منافذ layer3، تابع الموضوع التالي:

https://ipmasters-tc.blogspot.com/2013/08/switched-port-routed-port.html

 

الأحد، 6 ديسمبر 2020

استخدام Translation Rule

 استخدام Translation Rule

هذا الموضوع سيتناول بند من الأعمال المطلوبة في أحد المشاريع التي نفذتها في مجال Collaboration (VoIP)، كان الغاية من المشروع استبدال أنظمة التلفونات التقليدية بأنظمة حديثة تعتمد تقنيات TCP/IP. المشروع يشمل عدة أنظمة Collaboration منها:

·        Cisco router voice gateway with PRI interface

·        Cisco CUCM

العمل المطلوب لهذا البند هو تحويل المكالمات الواردة من قبل  مجموعة من الأرقام الداخلية 210-219 والصادرة باتجاه  شبكة التلفونات الارضية عبر PRI interface ليظهر الرقم الطالب للمكالمة الرقم (654abcde)  ( رقم غير حقيقي) وهو أحد الارقام ضمن نطاق الأرقام المخصصة لهذا PRI.




فكانت الاعدادت المناسبة لهذا البند، على النحو التالي:

1- انشاء translation rule  على voice gateway

voice translation-rule 18

 rule 1 /^21.$/ /654abcde      

2- انشاء dial-peer لتوجيه المكالمة مع تضمين translation rule 18

dial-peer voice 8 pots

 translate-outgoing calling 18

 destination-pattern 0[23456].......$

 port 0/0/0:15

 forward-digits all