
أداة اكتشاف سطح الهجوم مبنية على نهج الخدمات المصغرة، وتستخدم تعدد الخيوط لتحقيق فهرسة سريعة للأصول على نطاق الإنترنت.
سياق المشروع: هذا المشروع هو قطعة من ملف الأعمال توضح مفاهيم في الأمن الهجومي والتزامن والهندسة الموزعة.
خلال أيامي الأولى في عالم الأمن الهجومي، كنت دائمًا مفتونًا بكيفية فهرسة محركات البحث الكبرى مثل Shodan للمعلومات من ملايين الأجهزة. ظل هذا المفهوم يدور في ذهني؛ كنت بحاجة لفهم الهندسة وراءه من خلال محاكاته بنفسي.
Kimi هي نتيجة هذا الفضول. وهي ماسح استطلاع مستمر مصمم لإعطاء الأولوية لتحليل التعرض لسطح الهجوم الخارجي. يقوم بمسح واسع النطاق موجه للمنافذ لجمع المعلومات من الخدمات المتصلة بالإنترنت.
كان هدفي هو إنشاء هندسة فعالة: تم تصميم تنفيذ الخيوط والطوابير لتعظيم الأداء لكل دورة مسح، مما يقلل بشكل كبير من وقت التنفيذ لنطاقات IP الضخمة.
تعمل Kimi كدليل على المفهوم في مجالات حاسمة:
التزامن: استخدام الخيوط والطوابير في Python لتنسيق ما يصل إلى ≈500 عملية إدخال/إخراج شبكة متزامنة.
هندسة مفصولة: تصميم نظام موزع (محرك ← API ← قاعدة بيانات)، يفصل تنفيذ المسح عن استمرار البيانات.
الشبكات: برمجة مآخذ توصيل منخفضة المستوى لمصافحات TCP/UDP وإدارة دقيقة لوقت الانتهاء.
قواعد بيانات NoSQL: تنفيذ MongoDB لتخزين نتائج المسح، والتي تكون متغيرة وغير منظمة بطبيعتها.
إعادة النظر في Kimi اليوم تسمح لي بتطبيق منظور هندسي وأخلاقي حديث على عملي الأولي:
التطور التقني: كان التحدي الأكبر هو إتقان threading في Python. اليوم، أدرك أن الحل الأكثر قابلية للتوسع سيكون ترحيل المحرك إلى البرمجة غير المتزامنة (asyncio) لتجنب عبء GIL وزيادة التزامن بشكل أكبر.
النضج الأخلاقي: كان الدرس الأكثر أهمية هو المسؤولية المهنية. تطور المشروع من تجربة مدفوعة بالفضول إلى أداة عرض توضيحي. Kimi مقيدة بشكل صارم بالاختبار الأخلاقي على الشبكات الخاضعة للسيطرة، مما يبرز التزامي بممارسات أمنية قانونية ومسؤولة.
ينقسم النظام إلى المحرك (الماسح) والـ API (استمرار البيانات).
تعمل MongoDB كمخزن إدخال أساسي. تم تصميم الهندسة لتكون متوافقة مع تكامل Elasticsearch / Kibana (ELK)، مما يتيح إمكانيات البحث بالنص الكامل والتصورات التحليلية للبيانات التي تم جمعها.
| السيناريو | مثال الأمر | الوصف |
|---|---|---|
| مسح سريع | python3 engine.py -r 192.168.0.0,192.168.0.255 -t 150 --top-ports |
النشر: المشروع محتوى بالكامل باستخدام Docker.
الترخيص: Apache 2.0.
الاتصال: [email protected]
إخلاء المسؤولية القانوني: Kimi معروضة لأغراض تعليمية وعرض تقني فقط. الاستخدام خارج البيئات الخاضعة للسيطرة هو مسؤولية المستخدم وحده.
| يمسح نطاقًا باستخدام 150 خيطًا. |
| CIDR مخصص | python3 engine.py -r 192.168.0.0/24 -t 350 -C 80 443 21 | يمسح منافذ محددة باستخدام 350 خيطًا. |