الأمن السيبراني الأدلة التقنية

MITRE ATT&CK: كيف يفكر المهاجم خطوة بخطوة

لغة موحدة لسلوك المهاجمين مبنية على حوادث موثقة، نقرأ بها هجوم فدية حقيقياً مرحلة بمرحلة ونربط كل خطوة بالدفاع المقابل.

MITRE ATT&CK: كيف يفكر المهاجم خطوة بخطوة

عندما تقرأ نشرة عن هجوم جديد تجد كل كاتب يصفه بكلماته: أحدهم يقول «دخلوا عبر VPN»، وآخر «استغلوا ثغرة في بوابة الدخول»، وثالث «سرقوا كلمات المرور ثم انتشروا». والوصف نفسه يختلف من تقرير إلى آخر، فلا تستطيع أن تقارن هجومين، ولا أن تجيب على السؤال الذي يهم فريقك فعلاً: هل دفاعنا يرى هذه الخطوة أم لا؟ ولحل هذه المشكلة بالضبط بنت مؤسسة MITRE قاعدة ATT&CK، وهي قاموس موحد لما يفعله المهاجمون في الواقع، مبني على حوادث موثقة، يعطي كل خطوة اسماً ورقماً ثابتاً يستخدمه الجميع.

وهذا المقال هو الثاني في مرحلة الأمن السيبراني، وقد شرحنا في مقال مصطلحات الأمن السيبراني الفرق بين الفريق الأحمر والأزرق والبنفسجي، وهذه القاعدة هي اللغة المشتركة التي يتحدثون بها جميعاً. وسوف نتناول في هذا المقال ما يلي:

  • ما هي ATT&CK، والفرق بين الهدف Tactic والتقنية Technique والتقنية الفرعية Sub-technique.
  • كيف تقرأ المصفوفة Matrix، ولماذا ليست ترتيباً ثابتاً للهجوم.
  • هجوم حقيقي موثق، فدية Akira من نشرة مشتركة لـ CISA وFBI، نربط كل خطوة فيه برقمها في ATT&CK.
  • كيف تحول هذه الخريطة إلى دفاع: مقابل كل خطوة ضابط Control.
  • تجربة عملية: نقرأ بيانات ATT&CK الرسمية بأنفسنا، ونكتشف أن نشرة الهجوم استخدمت أرقاماً تغيرت في النسخة الحالية.

ما هي ATT&CK؟ هدف وتقنية وتقنية فرعية

الاسم ATT&CK اختصار Adversarial Tactics, Techniques, and Common Knowledge، أي التكتيكات والتقنيات والمعرفة المشتركة عن الخصوم، وهي قاعدة معرفة تصف سلوك المهاجم على ثلاث مستويات:

  • الهدف Tactic: لماذا يفعل المهاجم ما يفعله في هذه اللحظة، أي هدفه المرحلي، مثل «الوصول الأولي Initial Access» أو «سحب البيانات Exfiltration». وعدد الأهداف في منظومة المؤسسات Enterprise خمسة عشر، ولكل هدف رقم مثل TA0001.
  • التقنية Technique: كيف يحقق المهاجم ذلك الهدف، مثل «استغلال خدمة مكشوفة للعامة Exploit Public-Facing Application» برقم T1190، وهي إحدى طرق تحقيق هدف الوصول الأولي.
  • التقنية الفرعية Sub-technique: تفصيل أدق لتقنية، مثل «التصيد: مرفق خبيث» برقم T1566.001 تحت تقنية التصيد T1566.

وكل تقنية في القاعدة ليست رأياً، بل مبنية على حوادث موثقة ومجموعات مهاجمين معروفة ومصادر منشورة، ولهذا صارت اللغة التي يتحدث بها الفريق الأزرق والأحمر والمحقق والمدقق، فبدلاً من «دخلوا بطريقة ما» يقول الجميع T1133 ويفهمون الشيء نفسه.

المصفوفة Matrix: كيف تقرؤها؟

تعرض ATT&CK أهدافها وتقنياتها في جدول اسمه المصفوفة، أعمدته هي الأهداف الخمسة عشر مرتبة من الاستطلاع حتى الأثر، وتحت كل عمود التقنيات التي تحقق ذلك الهدف، والصورة التالية تبين ستة أعمدة منها على سبيل المثال:

مصفوفة ATT&CK بستة أعمدة: الوصول الأولي والتنفيذ والوصول إلى بيانات الدخول والحركة الجانبية وسحب البيانات والأثر، تحت كل عمود ثلاث تقنيات بأرقامها، وسهم أحمر يبين اتجاه تقدم الهجوم، وأسفلها أرقام النسخة 20.0: خمسة عشر هدفاً و227 تقنية و479 تقنية فرعية
أعمدة المصفوفة أهداف المهاجم، والخلايا تحتها طرقه، والأرقام من النسخة 20.0

وهنا نقطة يخطئ فيها كثيرون: المصفوفة ليست ترتيباً ثابتاً يمر به كل هجوم من اليمين إلى اليسار. فالمهاجم لا يستخدم كل الأهداف، وقد يقفز، وقد يكرر هدفاً، وقد يبدأ من المنتصف إذا اشترى وصولاً جاهزاً. اقرأ المصفوفة على أنها قائمة بكل ما قد يفعله مهاجم، لا سيناريو واحد، فائدتها أنك تضع عليها ما يراه دفاعك اليوم، فتظهر الأعمدة التي لا تملك فيها أي كشف Detection، وهي ثغرتك الحقيقية.

💡
هناك ثلاث منظومات Matrices: Enterprise للأنظمة المكتبية والسحابة، وMobile للهواتف، وICS لأنظمة التحكم الصناعي. وهذا المقال يستخدم منظومة المؤسسات Enterprise، وهي الأكثر استخداماً في الدفاع عن الخوادم والشبكات.

هجوم حقيقي خطوة بخطوة: فدية Akira

أفضل طريقة لفهم ATT&CK أن تقرأ بها هجوماً موثقاً. وقد اخترنا فدية Akira لأن وكالة الأمن السيبراني الأمريكية CISA ومكتب التحقيقات الفيدرالي FBI نشرا عنها نشرة مشتركة مفصلة AA24-109A، تصف كل خطوة بتقنيتها في ATT&CK بناءً على حوادث حقيقية حققوا فيها، فالأرقام التالية ليست تخميناً منا بل منقولة من النشرة الرسمية. والصورة التالية تلخص السلسلة ومقابلها الدفاع:

خمس مراحل لهجوم Akira من اليمين: الدخول عبر VPN بلا تحقق ثنائي، ثم سرقة بيانات الدخول من ذاكرة LSASS، ثم مسح الشبكة وتعطيل الـ EDR، ثم الانتشار وسحب البيانات، ثم التشفير والابتزاز، وتحت كل مرحلة ضابط دفاعي مقابل: التحقق الثنائي وإدارة الحسابات المميزة وتجزئة الشبكة وتقييد RDP والنسخ الاحتياطية غير القابلة للتعديل
سلسلة Akira من نشرة AA24-109A، وتحت كل مرحلة الضابط الذي يوقفها

ونقرأ السلسلة مرحلة بمرحلة:

  1. الوصول الأولي Initial Access، عبر VPN بلا تحقق ثنائي: بحسب النشرة دخل المهاجمون عبر خدمة وصول عن بعد خارجية (T1133) لا تفرض تحققاً ثنائياً MFA، مستخدمين حسابات صحيحة مسروقة (T1078)، وأحياناً عبر رش كلمات المرور (T1110.003)، وهو تجربة كلمة مرور شائعة واحدة على عدد كبير من الحسابات.
  2. الوصول إلى بيانات الدخول Credential Access: بعد الدخول استخرجوا كلمات المرور من ذاكرة عملية LSASS (T1003.001)، وهي العملية التي تحفظ بيانات الدخول في نظام Windows.
  3. الاستكشاف Discovery وإضعاف الدفاع: رسموا الشبكة بالبحث عن الأنظمة البعيدة (T1018) وعلاقات الثقة بين النطاقات (T1482)، ثم عطلوا أدوات الحماية بما فيها الـ EDR، وهذه الخطوة أهم ما سوف نعود إليه في التجربة العملية لأن رقمها تغير.
  4. الحركة الجانبية والسحب Lateral Movement & Exfiltration: انتقلوا بين الأجهزة عبر سطح المكتب البعيد RDP (T1021.001)، وجمعوا البيانات بأداة ضغط (T1560.001)، ثم سحبوها إلى تخزين سحابي (T1567.002). وتذكر النشرة أن السحب تم في إحدى الحوادث خلال ساعتين فقط من الدخول الأول.
  5. الأثر Impact، التشفير والابتزاز المزدوج: حذفوا نسخ الاستعادة (T1490) ثم شفروا الملفات للابتزاز (T1486)، وهددوا بنشر البيانات المسروقة إن لم تدفع الضحية، وهو ما يسمى الابتزاز المزدوج Financial Theft (T1657).

من الخريطة إلى الدفاع: مقابل كل خطوة ضابط

قد يتساءل البعض: ما فائدة معرفة أرقام الهجوم للمدافع؟ والإجابة أن كل تقنية في ATT&CK مرتبطة بضوابط Mitigations تقلل منها، فتتحول الخريطة من وصف للهجوم إلى قائمة أعمال للدفاع، والأهم أن إغلاق خطوة مبكرة واحدة يوقف السلسلة كلها:

مرحلة الهجومالضابط المقابل في ATT&CKكيف تطبقه عملياً
الدخول عبر VPN (T1133 وT1078)التحقق متعدد العوامل Multi-factor Authenticationافرض MFA على كل دخول عن بعد، وراجع الدخول دون كلمة مرور Passkeys وتأمين VPS
سرقة بيانات الدخول (T1003.001)إدارة الحسابات المميزة Privileged Account Managementقلل عدد الحسابات الإدارية، وافصل حساب العمل اليومي عن حساب الإدارة
تعطيل الدفاع (T1685)تنبيه عند التعطيل، وتجزئة الشبكة Network Segmentationاجعل الـ SIEM ينبه عند توقف وكيل الحماية، وافصل الشبكات حتى لا ينتشر المهاجم بحرية
سحب البيانات (T1567.002)تقييد المحتوى على الويب Restrict Web-Based Contentراقب أو امنع الرفع إلى خدمات التخزين السحابي غير المصرح بها
التشفير ومنع الاستعادة (T1486 وT1490)النسخ الاحتياطي Data Backupنسخ احتياطية غير قابلة للتعديل Immutable وخارج الشبكة، وفق قاعدة 3-2-1

ولاحظ الفكرة المهمة: المهاجم يحتاج أن تنجح كل خطواته، والمدافع يحتاج أن يوقف خطوة واحدة. فلو كان التحقق الثنائي مفعلاً على الـ VPN لتوقف الهجوم في مرحلته الأولى، ولو كانت النسخة الاحتياطية غير قابلة للتعديل لما نجح الابتزاز بالتشفير مهما وصل المهاجم.

🛑
هذا المقال يقرأ هجوماً موثقاً ليعلمك الدفاع، وليس دليل تنفيذ. فالأرقام تشير إلى سلوك عام معروف للجميع، ولا يوجد هنا أمر أو أداة لتنفيذ أي خطوة، وكل الأدوات الهجومية في هذه المرحلة تجرب على مختبر Lab تملكه أنت فقط وبإذن مكتوب.

تجربة عملية: اقرأ بيانات ATT&CK بنفسك

الجميل في ATT&CK أنها مفتوحة بالكامل، فكل التقنيات والعلاقات والضوابط منشورة بصيغة STIX على GitHub، ويمكنك أن تبني أدواتك فوقها دون أي حساب أو مفتاح. وسوف ننزل أحدث نسخة ونتحقق منها، ثم نكتشف شيئاً مهماً: نشرة الهجوم التي قرأناها بنيت على نسخة أقدم من ATT&CK، وبعض أرقامها تغير.

ننزل أولاً حزمة منظومة المؤسسات للنسخة 20.0، وهي ملف JSON واحد:

curl -sL -o enterprise-attack-20.0.json \
  https://raw.githubusercontent.com/mitre-attack/attack-stix-data/master/enterprise-attack/enterprise-attack-20.0.json

ثم نتأكد من محتواها، فنطبع اسم النسخة وعدد الأهداف والتقنيات، باستخدام مكتبة Python القياسية فقط:

import json
objs = json.load(open("enterprise-attack-20.0.json", encoding="utf-8"))["objects"]
coll = next(o for o in objs if o["type"] == "x-mitre-collection")
print(coll["name"], coll["x_mitre_version"], coll["modified"][:10])

active = [o for o in objs if o["type"] == "attack-pattern"
          and not o.get("revoked") and not o.get("x_mitre_deprecated")]
top = [a for a in active if not a.get("x_mitre_is_subtechnique")]
sub = [a for a in active if a.get("x_mitre_is_subtechnique")]
tactics = [o for o in objs if o["type"] == "x-mitre-tactic"]
print(f"tactics={len(tactics)} techniques={len(top)} sub-techniques={len(sub)}")

والمخرج سوف يكون كما يلي:

Enterprise ATT&CK 20.0 2026-10-13
tactics=15 techniques=227 sub-techniques=479

وهذه هي الأرقام نفسها التي وضعناها في صورة المصفوفة، أخذناها من المصدر لا من ذاكرتنا.

الاكتشاف المهم: أرقام النشرة تغيرت في النسخة الحالية

نشرة Akira تقول في مقدمتها إنها تستخدم النسخة 18 من ATT&CK، ونحن نقرأ النسخة 20.0. فهل بقيت كل الأرقام كما هي؟ لنكتب سكربتاً صغيراً يأخذ كل تقنيات النشرة ويقارن هدفها وحالتها بما في النسخة الجديدة، ونحفظ تقنيات النشرة مجمعة حسب الهدف في ملف advisory-all.txt (السطر: اسم الهدف ثم أرقام تقنياته). ثم:

import json
objs = json.load(open("enterprise-attack-20.0.json", encoding="utf-8"))["objects"]
by_id = {o["id"]: o for o in objs}
eid = lambda o: next((r["external_id"] for r in o.get("external_references", [])
                      if r.get("source_name") == "mitre-attack"), None)
tech = {}
for o in objs:
    if o["type"] == "attack-pattern" and eid(o):
        tech.setdefault(eid(o), []).append(o)

def status(tid):
    for o in tech.get(tid, []):
        if o.get("revoked"):
            nw = next((by_id[r["target_ref"]] for r in objs if r.get("type") == "relationship"
                       and r["relationship_type"] == "revoked-by" and r["source_ref"] == o["id"]), None)
            return "REVOKED -> " + (eid(nw) if nw else "?"), o
        if o.get("x_mitre_deprecated"):
            return "DEPRECATED", o
        return "ok", o
    return "NOT FOUND", None

for line in open("advisory-all.txt", encoding="utf-8"):
    want, *ids = line.split()
    for tid in ids:
        st, o = status(tid)
        phases = {p["phase_name"] for p in (o.get("kill_chain_phases", []) if o else [])}
        if st != "ok" or (o and want not in phases):
            print(tid, "->", st, "| tactic now", sorted(phases) or "-", "| advisory said", want)

والمخرج سوف يكون كما يلي:

T1027 -> ok | tactic now ['stealth'] | advisory said defense-evasion
T1027.015 -> ok | tactic now ['stealth'] | advisory said defense-evasion
T1036 -> ok | tactic now ['stealth'] | advisory said defense-evasion
T1222.001 -> ok | tactic now ['defense-impairment'] | advisory said defense-evasion
T1562.001 -> REVOKED -> T1685 | tactic now ['stealth'] | advisory said defense-evasion
T1562.004 -> REVOKED -> T1686 | tactic now ['stealth'] | advisory said defense-evasion
T1604 -> NOT FOUND | tactic now - | advisory said defense-evasion

في المخرج أعلاه لاحظ التالي:

  • هدف «التهرب من الدفاع Defense Evasion» أعيد تنظيمه: فالنسخة 20.0 وزعت تقنياته على هدفين جديدين هما «التخفي Stealth» و«إضعاف الدفاع Defense Impairment»، ولهذا تظهر T1027 وT1036 الآن تحت Stealth، وT1222.001 تحت Defense Impairment.
  • التقنية التي عطل بها المهاجمون الـ EDR تغير رقمها: ففي النشرة هي T1562.001 «تعطيل أو تعديل الأدوات»، لكن النسخة 20.0 ألغت هذا الرقم Revoked واستبدلته بـ T1685، ولهذا كتبنا T1685 في صورة سلسلة الهجوم بدلاً من رقم النشرة.
  • رقم واحد لم يعد موجوداً: فـ T1604 لا يظهر في بيانات النسخة 20.0 إطلاقاً.

وهذا الدرس العملي أهم من الأرقام نفسها: ATT&CK تتطور، والنشرة التي تقرؤها قد تشير إلى أرقام من نسخة قديمة، فإذا بنيت قواعد كشفك على أرقام ثابتة دون مراجعة، فسوف تشير يوماً إلى تقنيات ألغيت أو نقلت. لذلك اربط قواعدك بنسخة محددة من ATT&CK، وراجعها عند كل نسخة جديدة، وأداة تحديثات ATT&CK تنشر قائمة بما تغير في كل إصدار.

عرض خريطتك: ATT&CK Navigator

لا تحتاج أن ترى كل هذا في JSON، فمشروع ATT&CK Navigator يعرض المصفوفة كاملة في المتصفح، ويلون التقنيات التي تختارها في طبقة Layer تحفظها كملف JSON، فتصنع طبقة «ما يراه دفاعنا» وطبقة «تقنيات Akira» وتضعهما فوق بعضهما لترى أين تتقاطع تغطيتك مع سلوك هذا المهاجم، وأين الفجوة. وهذه هي الطريقة التي يعمل بها الفريق البنفسجي الذي شرحناه في مقال المصطلحات.

أخطاء شائعة Common Mistakes

  • قراءة المصفوفة كترتيب ثابت: المهاجم لا يمر بكل الأعمدة ولا بالترتيب، فالمصفوفة قائمة احتمالات لا سيناريو.
  • تثبيت الأرقام دون ربطها بنسخة: الأرقام تلغى وتنقل بين الأهداف، فسجل دائماً نسخة ATT&CK التي تعمل عليها.
  • محاولة تغطية كل تقنية: لا يمكن ذلك ولا يفيد، فابدأ من التقنيات التي تستخدمها المجموعات التي تهدد قطاعك فعلاً.
  • الخلط بين ATT&CK وسلسلة القتل Cyber Kill Chain: الأخيرة نموذج من سبع مراحل عامة، أما ATT&CK فأدق بكثير وتصف تقنيات محددة بأرقام، والنموذجان يكمل أحدهما الآخر.

الخلاصة

وصلنا لنهاية الموضوع، وأهم ما ظهر:

  • ATT&CK لغة موحدة لسلوك المهاجم على ثلاثة مستويات: الهدف Tactic والتقنية Technique والتقنية الفرعية Sub-technique.
  • المصفوفة قائمة بما قد يفعله المهاجم، تضع عليها ما يراه دفاعك فتظهر الفجوات.
  • قراءة هجوم موثق مثل Akira برقم كل خطوة تحول الوصف الغامض إلى خريطة دفاع، ومقابل كل خطوة ضابط.
  • المهاجم يحتاج نجاح كل خطواته، والمدافع يكفيه أن يوقف واحدة مبكرة.
  • البيانات مفتوحة بالكامل، وقراءتها بنفسك كشفت أن أرقام النشرة تغيرت في النسخة الحالية، فاربط قواعدك بنسخة وراجعها.

وفي المقال القادم ننتقل إلى الجانب العملي للدفاع: تقوية السيرفر Hardening وقياسها بأداة Lynis ومعايير CIS.

دليلمصطلحات الأمن السيبراني للمبتدئين: من CVE إلى Purple Teamماذا تعني الكلمات التي تتكرر في كل عرض أمني، من رقم الثغرة وخطورتها إلى أدوات المراقبة SOC والفرق الحمراء والزرقاء.دليلتقوية السيرفر Hardening وقياسها مع Lynis ومعايير CISالتقوية حالة تقاس برقم لا شعور، فنقيس خادم Debian قبل وبعد بأداتي Lynis وCIS ونرى الفرق على السيرفر نفسه.دليلCrowdSec: اكتشاف هجمات التخمين وحظرها جماعياًنبني مختبراً من حاويتين، نشن تخميناً حقيقياً على SSH، ونرى CrowdSec يكتشفه ويصدر قرار حظر ينفذه الجدار الناري.دليلاختبار الاختراق المصرح به: المنهجية والإذن والتقريرالأمر الذي ينفذه المختبر هو نفسه أمر المهاجم، والفرق ورقة: الإذن والنطاق وقواعد الاشتباك، ثم تقرير يصلح الفريق على أساسه.دليلإدارة الثغرات Vulnerability Management: هل سيرفرك متأثر؟كيف تعرف خلال ساعات أن ثغرة جديدة تمس سيرفراتك، ولماذا يخدعك رقم الإصدار، وكيف ترتب الإصلاح وتتأكد أنه تم فعلاً.

تدريب عملي Practice

  • اختر هجوماً نشرت عنه CISA نشرة فيها جدول ATT&CK، ونزل حزمة النسخة الحالية، وشغل سكربت المقارنة أعلاه على تقنياته لترى هل تغير شيء منذ كتابة النشرة.
  • افتح ATT&CK Navigator، ولون التقنيات التي تملك لها كشفاً في الـ SIEM اليوم، ثم لون تقنيات Akira بلون آخر، واكتب ثلاث تقنيات لا تراها أنت، وابدأ منها.

سجل التحديثات

  • أكتوبر 2026: كتابة المقال، وقراءة حزمة Enterprise ATT&CK 20.0 (الصادرة 13 أكتوبر 2026) ومقارنتها بتقنيات النشرة AA24-109A يوم 25 أكتوبر 2026.
نشرة عرب رووت | ArabRoot

معرفة تستحق مكاناً في بريدك.

مقالات مختارة وأدوات مفيدة وأفكار لمشروعك القادم، في رسالة واحدة كل أسبوع.

يمكنك إلغاء الاشتراك متى شئت. الخصوصية

تم استلام طلبك. افتح بريدك واضغط رابط التأكيد لإتمام الاشتراك.