رأس القلم
كالي
ل AMD64
ماك
ل ARM64
ماك
قريباً
النوافذ
قريباً

التنقل في إعادة التوجيه: دليل هندسة الأمان لتجاوز الروابط والتشويش على الروابط

المفهوم الأساسي: الفجوة الدلالية في تحليل الروابط

في سياق مطاردة التهديدات الحديثة، فإن رابط الالتفافية ليس مجرد "عنوان URL مخفي". إنه يمثل الفجوة الدلالية-تناقض بين كيفية تفسير الماسح الأمني ("المراقب") ل URI وكيفية عرض متصفح الضحية ("المنفذ") له.

يستغل المهاجمون هذه الثغرة للتحايل على بوابات البريد الإلكتروني الآمنة (SEG) وفلاتر محتوى الويب وأنظمة الكشف عن نقاط النهاية والاستجابة (EDR). الهدف من ذلك هو تقديم "واجهة حميدة" لأجهزة التحليل الآلية مع تقديم "حمولة خبيثة" للمستخدم النهائي.

منهجيات المراوغة المتقدمة

1. العيش خارج الأرض (LotL) عبر عمليات إعادة التوجيه المفتوحة

يستفيد المهاجمون بشكل متزايد من "عمليات إعادة التوجيه المفتوحة" على نطاقات موثوقة للغاية (مثل Google أو Microsoft أو AWS).

  • التقنية: رابط مثل https://www.google.com/url?q=https://malicious.example قد يتجاوز مرشحات السمعة لأن المجال الأساسي (google.com) مدرج في القائمة المسموح بها عالميًا.
  • الممر الجانبي يرى عامل التصفية نطاقًا موثوقًا به؛ يقوم متصفح المستخدم بتنفيذ عملية إعادة التوجيه إلى موقع التصيد الاحتيالي.

2. إخفاء عنوان URL ومفتاح البيئة

تستخدم الروابط الالتفافية المتطورة التي تستخدم التخفي من جانب الخادم. يقوم خادم الاستضافة بفحص الطلب الوارد قبل أن يقرر ما الذي سيقدمه.

  • كشف الروبوتات/الماسح الضوئي: إذا كان الطلب ينشأ من مركز بيانات معروف (AWS، Azure) أو يحتوي على وكيل مستخدم "ماسح أمني"، يقوم الخادم بإرجاع 200 موافق مع صفحة "قيد الإنشاء" حميدة.
  • التسليم المستهدف: إذا كان الطلب مطابقًا لملف تعريف بشري (عنوان IP سكني، لغة متصفح محددة، قياس حركة الفأرة عن بُعد صالح)، فإنه يقدم مجموعة أدوات التصيد الاحتيالي.

3. الثغرات التفاضلية للمحلل (عدم الامتثال ل RFC 3986)

مكتبات مختلفة (مكتبات بايثون أورليبغو الشبكة/النصكروم وميض) تحليل عناوين URL بشكل مختلف.

  • مثال على CVE-2020-0696: باستخدام ترميزات أحرف معينة أو مخططات URI غير القياسية، يمكن للمهاجمين أن يتسببوا في "رؤية" بوابة البريد الإلكتروني لنطاقٍ ما بينما ينتقل المتصفح إلى نطاقٍ آخر.
دليل هندسة الأمان لتجاوز الروابط والتشويش على الروابط

الهجوم والدفاع: التطبيقات الهندسية

مثال 1: تجاوز الماسحات الضوئية محدودة العمق

العديد من الماسحات الضوئية الآلية تتبع فقط 2 أو 3 عمليات إعادة توجيه لتوفير الموارد. يستغل المهاجمون ذلك من خلال "غسل" الرابط عبر عدة قفزات.

هجوم إعادة توجيه المغسلة

نص عادي

القفزة 1: مُختصِر موثوق به (bit.ly) القفزة 2: موقع ووردبريس المخترق (wp-admin/redirect.php) القفزة 3: بكسل تتبع التسويق (ads.example.com) القفزة 4: صفحة الهبوط النهائية الخبيثة

الدفاع كشف إعادة التوجيه الشامل (بايثون)

بايثون

'طلبات الاستيراد

def unravel_link(url, max_hops=10): جرب: # نحن نستخدم وكيل مستخدم مخصص لمحاكاة متصفح حقيقي رؤوس الرؤوس = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'} استجابة = requests.get(url, headers=headers, allow_redirects=True, timeout=5)

    hop_count = len(response.history)
    طباعة(و"إجمالي القفزات: {hop_count}")
    
    بالنسبة إلى i، قفزة في تعداد(response.history):
        طباعة(و"قفزة {i+1}: {hop.url} ({hop.status_code})")
        
    إذا كان عدد القفزات > 5:
        إرجاع "تنبيه: تم اكتشاف سلسلة إعادة توجيه عالية الإنتروبيا (غسيل محتمل)"
    إرجاع response.url
باستثناء الاستثناء كـ e:
    إرجاع f"خطأ: {e}"`

مثال 2: الكشف عن التخفي المشروط

يقدم المهاجمون محتوى مختلفًا لـ الضفيرة (الماسحات الضوئية) مقابل كروم (المستخدمون).

الدفاع تحليل الاستجابة التفاضلية

بايثون

`Def check_for_cloaking(url): # الملف الشخصي 1: Headless/Scanner r1 = requests.get(url, headers={'User-Agent': 'Security-Scanner/1.0'}) # الملف الشخصي 2: مستخدم واقعي r2 = طلبات.get(url, headers={'User-Agent': 'Mozilla/5.0 Chrome/120.0.0.0'0'})

# قياس الفرق الدلالي (فحص الطول البسيط أو التجزئة)
diff_ratio = abs(len(len(r1.text) - len(r2.text)) / الحد الأقصى (len(len(r1.text), len(r2.text), 1)

إذا كان diff_ratio > 0.2: # 20% الفرق في محتوى الصفحة
    إرجاع "حالة حرجة: تم اكتشاف منطق شرطي (إخفاء)."
إرجاع "محتوى مستقر">
دليل هندسة الأمان لتجاوز الروابط والتشويش على الروابط

مثال 3: منع عدم تطابق المُعَرِّف (التحويل المتعارف عليه)

يستخدم المهاجمون %2e%2e/ (نقاط مشفرة) لإرباك المرشحات حول المسار الفعلي الذي يتم الوصول إليه.

الدفاع خط أنابيب التطبيع العدواني

بايثون

' من urllib.parse استيراد urlparse، unquote استيراد نظام التشغيل

def sanitize_and_canonicalize(url): # 1. Double Decode to catch nested encoding (%252e) decoded_url = unquote(unquote(url))

# 2. تحليل وتطبيع المسار
مُحلل = تحليل = URLparse(فك تشفير_url)
# استخدام نظام التشغيل os.path.normpath لحل مقاطع /.../
مسار نظيف = os.path.path.normpath(parsed.path)

إرجاع f"{parsed.sche}://{parsed.netloc}{cleanpath}"

المدخلات: https://example.com/login/..%2F..%2Fadmin

المخرجات: https://example.com/admin`

تسليم عنوان URL Sucutiry

الموقف الدفاعي الاستراتيجي

طبقة الدفاعالآليةالتركيز على الهندسة
تصفية الدخولبصمة JA3/TLSتحديد مكتبة العميل (على سبيل المثال، بايثون الطلبات) بدلاً من وكيل المستخدم.
التحليل الديناميكيتفجير المتصفح مقطوع الرأستنفيذ الروابط في صندوق رمل لمراقبة تغييرات DOM، وليس فقط رؤوس HTTP.
طبقة المنطقتوقيع عناوين URL بدون ثقةبالنسبة لحالات استخدام التجاوز الداخلي، استخدم عناوين URL الموقعة بتوقيع HMAC لضمان النزاهة
طبقة المستخدمالمؤشرات المرئيةانشر ملحقات المتصفح التي "تلغي إخفاء" عناوين URL المختصرة قبل أن ينقر المستخدم.

الخاتمة: ما بعد القائمة السوداء

انتهى عصر القائمة السوداء الثابتة لعناوين URL الثابتة. مع تحرك المهاجمين نحو روابط تجاوز سريعة الزوال ومشروطة ومتعددة المراحل، يجب أن تتحول فرق الأمن نحو تحليل الروابط السلوكية.

من خلال التعامل مع كل عنوان URL على أنه "برنامج" يتطلب التنفيذ في بيئة محكومة (وضع الحماية) وتطبيع جميع المدخلات لسد "الفجوة الدلالية"، يمكن للمؤسسات تفكيك البنية التحتية للهجمات القائمة على الروابط قبل أن يرى المستخدم حتى زر "انقر هنا".

شارك المنشور:
منشورات ذات صلة
arArabic