
ioc2rpz هو المكان الذي يلتقي فيه استخبارات التهديدات مع DNS.
ioc2rpz™: حل أمان DNS - ioc2rpz™ هو خادم DNS قوي يحول مؤشرات التهديد إلى خلاصات منطقة سياسة الاستجابة (RPZ) قابلة للتنفيذ. يقوم بأتمتة عملية التحديث، مما يضمن حماية شبكتك من أحدث التهديدات، بما في ذلك النطاقات الضارة وعناوين IP. من خلال تحويل خلاصات IOC إلى RPZ، يعمل ioc2rpz™ كحلقة وصل حاسمة بين استخبارات التهديدات وأمان DNS، متوافقاً مع خوادم DNS التي تدعم RPZ مثل ISC Bind أو PowerDNS.
DNS هو مستوى التحكم في الإنترنت. عادةً ما يُستخدم DNS للأغراض الجيدة ولكن:

ISC Bind هو المعيار الفعلي لخادم الأسماء. مع إدخال مناطق سياسة الاستجابة في ISC BIND 9.8 أصبحت مراقبة البرامج الضارة واحتوائها على طبقة DNS مهمة بسيطة. يتم دعم RPZ في PowerDNS recursor 4.0.0 والإصدارات الأحدث. كما يدعم Knot DNS RPZ جزئياً.
بالمقارنة مع حلول حماية الشبكة التقليدية، يمكن لخادم DNS التعامل مع ملايين المؤشرات دون تأثير على الأداء، لكن لم تكن هناك طريقة آلية وفعالة للحفاظ على مناطق سياسة الاستجابة على خوادم DNS الأساسية.
عادةً ما يتم توزيع مؤشرات الاختراق بنص عادي ولكن بتنسيقات مختلفة، ولا يتوفر سوى عدد قليل من مزودي IOC لها عبر RPZ.
ioc2rpz™ هو خادم DNS مخصص يقوم تلقائياً بتحويل المؤشرات (مثل أسماء النطاقات الكاملة المؤهلة الخبيثة، عناوين IP) من مصادر مختلفة إلى خلاصات RPZ ويحافظ عليها/يحدّثها تلقائياً. يمكن توزيع الخلاصات على أي خوادم DNS مفتوحة المصدر و/أو تجارية تدعم RPZ، مثل ISC Bind و PowerDNS. يمكنك تشغيل خادم DNS الخاص بك مع تصفية RPZ على جهاز التوجيه أو سطح المكتب أو الخادم وحتى Raspberry Pi. ذاكرة النظام هي القيد الوحيد.
مع ioc2rpz™ يمكنك تحديد الخلاصات والإجراءات الخاصة بك ومنع الاتصالات غير المرغوب فيها.
يقوم ioc2rpz™ بتحويل خلاصات IOC إلى مناطق سياسة الاستجابة (RPZ). يمكنك خلط الخلاصات لإنشاء RPZ واحد أو عدة RPZs. يمكن إدراج النطاقات وعناوين IP الموثوقة في القائمة البيضاء. يدعم ioc2rpz™ انتهاء صلاحية المؤشرات ويعيد بناء المناطق وفقاً لذلك.
يدعم الإصدار الحالي: الملفات المحلية، الملفات/الطلبات عبر http/https/ftp والنصوص البرمجية shell للوصول إلى أنواع الموارد الأخرى. يمكنك استخدام أي تنسيق ملف إذا كان بإمكانك كتابة REGEX لاستخراج المؤشرات، ويتم فصل المؤشرات بحرف سطر جديد و/أو إرجاع العربة (/n, /r, /r/n).
تم بناء ioc2rpz على Erlang/OTP مع شجرة إشراف تضمن تحمل الأخطاء والاسترداد التلقائي. انظر docs/architecture.md للحصول على التفاصيل الكاملة.``` ioc2rpz_app (application) └── ioc2rpz_sup (supervisor) ├── ioc2rpz_db_sup — ETS table heir process ├── ioc2rpz_tcp_sup — TCP listener pool (5 workers) ├── ioc2rpz_udp_sup — UDP listener ├── ioc2rpz_tls_sup — TLS/DoT listener pool (5 workers) [if cert configured] └── ioc2rpz_rest_sup — Cowboy HTTPS (REST API + DoH) [if cert configured]
الوحدات الأساسية:
| الوحدة | المسؤولية |
|--------|---------------|
| `ioc2rpz.erl` | عامل DNS TCP/TLS — استقبال، تحليل، تحقق، استجابة |
| `ioc2rpz_udp.erl` | مستمع DNS UDP — استعلامات SOA |
| `ioc2rpz_conn.erl` | جلب مصدر IOC (HTTP/HTTPS/ملف/شل) |
| `ioc2rpz_db.erl` | ذاكرة تخزين مؤقت للمناطق والحزم قائمة على ETS |
| `ioc2rpz_sup.erl` | المشرف الرئيسي، تحميل التكوين، جدولة المناطق |
| `ioc2rpz_rest.erl` | واجهة برمجة تطبيقات إدارة REST (Cowboy) |
| `ioc2rpz_doh.erl` | معالج DNS عبر HTTPS |
## كيفية استخدام ioc2rpz™
يمكنك استخدام ioc2rpz™ مع أي خادم DNS يدعم مناطق سياسة الاستجابة (Response Policy Zones) مثل الإصدارات الحديثة من ISC BIND و PowerDNS وأي خادم DNS تجاري مبني على هذه المنتجات (مثل Infoblox و Blue Cat و Efficient IP). يتم توفير ملف تكوين نموذجي لـ BIND (named.conf) في مجلد cfg.
<p align="center"><a href="http://www.youtube.com/watch?feature=player_embedded&v=bvhyMFa_mBM" target="_blank"><img src="https://raw.githubusercontent.com/Homas/ioc2rpz/master/ioc2rpz_demo.png"></a></p>
## واجهة الويب لـ ioc2rpz™
[ioc2rpz.gui](https://github.com/Homas/ioc2rpz.gui) هي واجهة ويب إدارية تم تطويرها كمشروع منفصل. لا تتطلب تشغيل ioc2rpz™.
## دعم البروتوكولات
يستمع ioc2rpz™ على بروتوكولات نقل متعددة. تشترك جميع بروتوكولات النقل في نفس خط أنابيب معالجة الاستعلام: تحديد المعدل، التحقق من TSIG، البحث في المنطقة، وتوليد الاستجابة. راجع [docs/protocols.md](https://github.com/homas/ioc2rpz/blob/master/docs/protocols.md) للوثائق الكاملة للبروتوكولات.
### ملخص المنافذ
| المنفذ | البروتوكول | الخدمة | الشرط |
|------|----------|---------|-----------|
| 53 | UDP | استعلامات DNS (SOA فقط) | دائمًا |
| 53 | TCP | استعلامات DNS، نقل المناطق AXFR/IXFR، الإدارة | دائمًا |
| 853 | TCP+TLS | DoT — نفس TCP ولكن مشفر | يتطلب تكوين `cert` |
| 443/8443 | TCP+TLS | DoH (`/dns-query`) و REST API | يتطلب تكوين `cert` |
### UDP (المنفذ 53)
يستخدم UDP للاستعلامات الخفيفة DNS، بشكل أساسي استعلامات SOA. الاستجابات التي تتجاوز 512 بايت (أو حجم المخزن المؤقت المعلن عنه في EDNS0) تقوم بتعيين بت الاقتطاع (TC) وفقًا لـ RFC 1035 §4.2.1، مما يدفع العملاء إلى إعادة المحاولة عبر TCP. لا يتم دعم أوامر الإدارة عبر UDP.```bash
dig @127.0.0.1 zone.ioc2rpz SOA -y hmac-sha256:keyname:base64key