
أنفيل هي أداة تقييم سطح الهجوم تعتمد على وقت التشغيل في المقام الأول لتطبيقات العميل السميك على ويندوز، صُممت لمختبرَي الاختراق وباحثي الأمن الذين يقومون بتقييمات أمنية مستهدفة للتطبيقات. تغطي الأداة فئات هجوم متعددة في تشغيل مستهدف واحد.
تقييم تصعيد الامتيازات وسطح الهجوم المعتمد على وقت التشغيل لتطبيقات ويندوز السميكة.
Anvil هي أداة لتقييم تصعيد الامتيازات وسطح الهجوم المعتمدة على وقت التشغيل لتطبيقات ويندوز السميكة. بدلاً من مسح نظام الملفات بشكل أعمى، فإنها تقترن بين التقاط Procmon وWindows AccessCheck للإبلاغ فقط عن المسارات التي يتم ملاحظتها في وقت التشغيل و يتم التأكد من قابليتها للكتابة من قبل المستخدمين القياسيين، مما يزيل الضوضاء الناتجة عن النتائج الإيجابية الخاطئة التي تعاني منها أدوات التعداد العامة.
تغطي معظم أدوات تقييم التطبيقات السميكة فئة أو اثنتين من فئات الهجوم. تم بناء Anvil حول فكرة أن المراقبة في وقت التشغيل، وقابلية الاستغلال المؤكدة عبر قوائم التحكم بالوصول (ACL)، وسطح الهجوم الواسع يجب أن تتعايش في نفس التشغيل المستهدف — مع خط أنابيب مُبوَّب يُبقي المخرجات قابلة للتنفيذ.
يمر كل مرشح بأربع بوابات متتالية قبل الإبلاغ عنه.
بوابات صلبة
AccessCheckبوابات منطق الوحدة
Supersede، OverwriteIf، إلخ) + حماية قابلية الكتابة عبر المستخدمين.sys الخاصة بالنواةتحديد الهدف
تقوم الأداة بتحديد مسار التنفيذ للهدف (من --exe أو --service أو --pid). إذا كانت خدمة، يتم استرداد ServiceInfo مع PID والحالة الحالية.
التقاط Procmon
تتم قراءة مستوى سلامة العملية مباشرة بعد الإطلاق (أثناء بقاء العملية على قيد الحياة) ويتم تخزينه في السياق.
التحليل المفلتر حسب الوحدة
تطلب كل وحدة تصدير CSV مفلتر من Procmon باستخدام مرشح .pmc الخاص بها (المخزن في filters/). يتم تحليل CSV، ويتم تطبيق سلسلة من البوابات:
الارتباط الثابت
تقوم وحدة com بتمريرة ثابتة إضافية — مسح الثنائي الهدف بحثًا عن CLSIDs مضمنة وفحص كل منها مقابل HKLM و HKCU — لكشف فرص الاختطاف التي لم يتم ممارستها أثناء نافذة الالتقاط. يتم وضع علامة عليها بـ [Static Correlation].
إعداد التقارير
تتم طباعة النتائج على الطرفية (مع ترميز الألوان) واختياريًا كتابتها إلى JSON أو تقرير HTML مستقل.
flowchart TB
%% Phase 1
subgraph Phase1["المرحلة 1: الهدف واكتشاف وقت التشغيل"]
TR["محلل الهدف<br/>--exe / --service / --pid"] -->
IL["بوابة السلامة<br/>إطلاق Medium-IL / إعادة تشغيل الخدمة"] -->
PM["محرك Procmon<br/>أحداث وقت التشغيل FS / Reg / Pipe"]
end
%% Phase 2
subgraph Phase2["المرحلة 2: تقليل الإشارات"]
direction LR
PF["مرشحات PMC لكل وحدة<br/>آثار عالية الإشارة فقط"] -->
CSV["تصدير CSV مفلتر"]
end
%% Phase 3
subgraph Phase3["المرحلة 3: بوابات قابلية الاستغلال"]
HG["بوابات صلبة<br/>هدف عالي السلامة<br/>ليس مسارًا محميًا"] -->
ACL["التحقق عبر AccessChk<br/>قابل للكتابة من قبل مستخدم قياسي"] -->
LG["بوابات منطق<br/>قواعد خاصة بالوحدة"]
end
%% Phase 4
subgraph Phase4["المرحلة 4: الارتباط"]
RT["نتائج وقت التشغيل"]
ST["الارتباط الثابت<br/>COM: مسح CLSID الثنائي / السجل"]
end
%% Phase 5
subgraph Phase5["المرحلة 5: التقارير"]
SV["محرك الشدة<br/>P1–P5"] --> OUT["مخرجات الطرفية"]
SV --> JSON["تقرير JSON"]
SV --> HTML["تقرير HTML"]
end
%% Cross-phase flow
PM --> PF
CSV --> HG
LG --> RT
ST -.-> RT
RT --> SV
%% Styling
classDef p1 fill:#0f2a44,stroke:#4cc9f0,color:#e6f1ff
classDef p2 fill:#2b193d,stroke:#f72585,color:#fde8f3
classDef p3 fill:#1f2d1c,stroke:#7ae582,color:#eaf7ea
classDef p4 fill:#3a1f1f,stroke:#ffb703,color:#fff3d6
classDef p5 fill:#0b2e2a,stroke:#00f5d4,color:#e6fffb
class Phase1 p1
class Phase2 p2
class Phase3 p3
class Phase4 p4
class Phase5 p5
linkStyle default stroke:#9aa4b2,stroke-width:2px