Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

В المادة السابقة لقد غطينا كيفية تشغيل الإصدار الثابت من Suricata على Ubuntu 18.04 LTS. يعد إعداد IDS على عقدة واحدة وتمكين مجموعات القواعد المجانية أمرًا سهلاً للغاية. سنكتشف اليوم كيفية حماية شبكة الشركة باستخدام أكثر أنواع الهجمات شيوعًا باستخدام Suricata المثبت على خادم افتراضي. للقيام بذلك ، نحتاج إلى VDS على نظام Linux مع مركزين للحوسبة. يعتمد حجم ذاكرة الوصول العشوائي (RAM) على التحميل: 2 غيغابايت كافية لشخص ما ، وقد تكون هناك حاجة إلى 4 أو حتى 6 لمهام أكثر جدية.تتمثل ميزة الجهاز الظاهري في القدرة على التجربة: يمكنك البدء بأدنى حد من التكوين وزيادة الموارد حسب الحاجة.

Snort أو Suricata. الجزء 3: حماية شبكة المكاتبالصورة: رويترز

ربط الشبكات

قد تكون هناك حاجة لإزالة IDS إلى جهاز افتراضي في المقام الأول لإجراء الاختبارات. إذا لم تكن قد تعاملت مع مثل هذه الحلول مطلقًا ، فلا يجب أن تتسرع في طلب الأجهزة المادية وتغيير بنية الشبكة. من الأفضل تشغيل النظام بأمان وفعالية من حيث التكلفة لتحديد احتياجاتك الحسابية. من المهم أن نفهم أن كل حركة مرور الشركة يجب أن تمر عبر عقدة خارجية واحدة: لتوصيل شبكة محلية (أو عدة شبكات) بـ VDS مع تثبيت IDS Suricata ، يمكنك استخدام سوفتثير - خادم VPN سهل التكوين وعبر الأنظمة الأساسية يوفر تشفيرًا قويًا. قد لا يحتوي اتصال الإنترنت في المكتب على عنوان IP حقيقي ، لذا من الأفضل إعداده على خادم VPS. لا توجد حزم جاهزة في مستودع Ubuntu ، سيتعين عليك تنزيل البرنامج إما من موقع المشروع، أو من مستودع خارجي على الخدمة انطلاق (إذا كنت تثق به):

sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update

يمكنك عرض قائمة الحزم المتوفرة باستخدام الأمر التالي:

apt-cache search softether

Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

سنحتاج إلى softether-vpnserver (الخادم في تكوين الاختبار يعمل على VDS) ، وكذلك softether-vpncmd - أدوات مساعدة لسطر الأوامر لتكوينه.

sudo apt-get install softether-vpnserver softether-vpncmd

يتم استخدام أداة سطر أوامر خاصة لتكوين الخادم:

sudo vpncmd

Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

لن نتحدث بالتفصيل عن الإعداد: الإجراء بسيط للغاية ، وهو موصوف جيدًا في العديد من المنشورات ولا يتعلق مباشرة بموضوع المقالة. باختصار ، بعد بدء vpncmd ، تحتاج إلى تحديد العنصر 1 للانتقال إلى وحدة تحكم إدارة الخادم. للقيام بذلك ، تحتاج إلى إدخال اسم المضيف المحلي والضغط على إدخال بدلاً من إدخال اسم المحور. يتم تعيين كلمة مرور المسؤول في وحدة التحكم باستخدام الأمر serverpasswordset ، ويتم حذف DEFAULT virtual hub (الأمر hubdelete) ويتم إنشاء كلمة مرور جديدة باسم Suricata_VPN ، كما يتم تعيين كلمة المرور الخاصة بها (الأمر hubcreate). بعد ذلك ، تحتاج إلى الانتقال إلى وحدة التحكم الإدارية للمحور الجديد باستخدام الأمر hub Suricata_VPN لإنشاء مجموعة ومستخدم باستخدام أوامر groupcreate و usercreate. يتم تعيين كلمة مرور المستخدم باستخدام userpasswordset.

يدعم SoftEther وضعي نقل حركة المرور: SecureNAT و Local Bridge. الأول عبارة عن تقنية مملوكة ملكية خاصة لبناء شبكة خاصة افتراضية باستخدام NAT و DHCP الخاصين بها. لا يتطلب SecureNAT TUN / TAP أو Netfilter أو إعدادات جدار الحماية الأخرى. لا يؤثر التوجيه على جوهر النظام ، وجميع العمليات افتراضية وتعمل على أي VPS / VDS ، بغض النظر عن برنامج Hypervisor المستخدم. ينتج عن هذا زيادة حمل وحدة المعالجة المركزية وسرعة أبطأ مقارنة بوضع الجسر المحلي ، الذي يربط محور SoftEther الظاهري بمحول شبكة فعلي أو جهاز TAP.

يصبح التكوين في هذه الحالة أكثر تعقيدًا ، نظرًا لأن التوجيه يحدث على مستوى النواة باستخدام Netfilter. تم بناء VDS الخاص بنا على Hyper-V ، لذلك في الخطوة الأخيرة ، نقوم بإنشاء جسر محلي وتنشيط جهاز TAP باستخدام bridgecreate Suricate_VPN -device: suricate_vpn -tap: yes command. بعد الخروج من وحدة تحكم إدارة المحور ، سنرى واجهة شبكة جديدة في النظام لم يتم تعيين IP لها بعد:

ifconfig

Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

بعد ذلك ، سيتعين عليك تمكين توجيه الحزمة بين الواجهات (ip forward) ، إذا كان غير نشط:

sudo nano /etc/sysctl.conf

قم بإلغاء التعليق على السطر التالي:

net.ipv4.ip_forward = 1

احفظ التغييرات التي تم إجراؤها على الملف ، واخرج من المحرر وقم بتطبيقها بالأمر التالي:

sudo sysctl -p

بعد ذلك ، نحتاج إلى تحديد شبكة فرعية للشبكة الافتراضية باستخدام عناوين IP وهمية (على سبيل المثال ، 10.0.10.0/24) وتعيين عنوان للواجهة:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

فأنت بحاجة إلى كتابة قواعد Netfilter.

1. إذا لزم الأمر ، اسمح بالحزم الواردة على منافذ الاستماع (يستخدم بروتوكول SoftEther الاحتكاري HTTPS والمنفذ 443)

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT

2. قم بإعداد NAT من الشبكة الفرعية 10.0.10.0/24 إلى عنوان IP للخادم الرئيسي

sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140

3. السماح بتمرير الحزم من الشبكة الفرعية 10.0.10.0/24

sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT

4. السماح بتمرير الحزم للاتصالات القائمة بالفعل

sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

سنترك أتمتة العملية عند إعادة تشغيل النظام باستخدام البرامج النصية للتهيئة للقراء كواجب منزلي.

إذا كنت ترغب في منح IP للعملاء تلقائيًا ، فستحتاج أيضًا إلى تثبيت نوع من خدمة DHCP للجسر المحلي. هذا يكمل إعداد الخادم ويمكنك الذهاب إلى العملاء. يدعم SoftEther العديد من البروتوكولات ، والتي يعتمد استخدامها على إمكانيات معدات الشبكة المحلية.

netstat -ap |grep vpnserver

Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

نظرًا لأن جهاز التوجيه الخاص بنا يعمل أيضًا تحت Ubuntu ، فلنقم بتثبيت حزم softether-vpnclient و softether-vpncmd من مستودع خارجي عليه لاستخدام بروتوكول الملكية. سوف تحتاج إلى تشغيل العميل:

sudo vpnclient start

للتكوين ، استخدم الأداة المساعدة vpncmd ، مع تحديد المضيف المحلي باعتباره الجهاز الذي يعمل عليه vpnclient. يتم إجراء جميع الأوامر في وحدة التحكم: ستحتاج إلى إنشاء واجهة افتراضية (NicCreate) وحساب (AccountCreate).

في بعض الحالات ، يجب عليك تحديد طريقة المصادقة باستخدام أوامر AccountAnonymousSet و AccountPasswordSet و AccountCertSet و AccountSecureCertSet. نظرًا لأننا لا نستخدم DHCP ، يتم تعيين عنوان المحول الظاهري يدويًا.

بالإضافة إلى ذلك ، نحتاج إلى تمكين ip forward (المعلمة net.ipv4.ip_forward = 1 في الملف /etc/sysctl.conf) وتكوين المسارات الثابتة. إذا لزم الأمر ، في VDS مع Suricata ، يمكنك تكوين إعادة توجيه المنفذ لاستخدام الخدمات المثبتة على الشبكة المحلية. في هذا الصدد ، يمكن اعتبار دمج الشبكة مكتملاً.

سيبدو التكوين المقترح كما يلي:

Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

إنشاء Suricata

В المادة السابقة تحدثنا عن وضعين لتشغيل IDS: من خلال قائمة انتظار NFQUEUE (وضع NFQ) ومن خلال نسخة صفرية (وضع AF_PACKET). الثانية تتطلب واجهتين ، لكنها أسرع - سنستخدمها. يتم تعيين المعلمة افتراضيًا في / etc / default / suricata. نحتاج أيضًا إلى تعديل قسم vars في /etc/suricata/suricata.yaml ، مع تعيين الشبكة الفرعية الافتراضية هناك كموطن.

Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

لإعادة تشغيل IDS ، استخدم الأمر:

systemctl restart suricata

الحل جاهز ، الآن قد تحتاج إلى اختباره لمقاومة الأعمال الخبيثة.

محاكاة الهجمات

يمكن أن يكون هناك عدة سيناريوهات للاستخدام القتالي لخدمة IDS خارجية:

الحماية ضد هجمات DDoS (الغرض الأساسي)

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

الحماية من الهجمات الخارجية بأنواع أخرى

Suricata قادر على التعامل مع محاولات استغلال نقاط الضعف المختلفة في خدمات شبكة الشركة التي يمكن الوصول إليها من الإنترنت (خادم البريد وخادم الويب وتطبيقات الويب ، إلخ). عادة ، لهذا ، يتم تثبيت IDS داخل الشبكة المحلية بعد الأجهزة الحدودية ، ولكن إخراجها إلى الخارج له الحق في الوجود.

الحماية من المطلعين

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

بادئ ذي بدء ، سننشئ اختبارًا آخر يهاجم VPS ، وعلى جهاز توجيه الشبكة المحلية سنقوم برفع Apache بالتكوين الافتراضي ، وبعد ذلك سنقوم بإعادة توجيه المنفذ 80 إليه من خادم IDS. بعد ذلك ، سنحاكي هجوم DDoS من مضيف مهاجم. للقيام بذلك ، قم بالتنزيل من GitHub ، وقم بتجميع وتشغيل برنامج xerxes صغير على العقدة المهاجمة (قد تحتاج إلى تثبيت حزمة gcc):

git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes 
./xerxes 45.132.17.140 80

وكانت نتيجة عملها على النحو التالي:

Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

يقطع Suricata الشرير ، وتفتح صفحة Apache افتراضيًا ، على الرغم من هجومنا المرتجل والقناة الميتة إلى حد ما لشبكة "المكتب" (في الواقع المنزل). للمهام الأكثر جدية ، يجب عليك استخدام Metasploit Framework. إنه مصمم لاختبار الاختراق ويسمح لك بمحاكاة مجموعة متنوعة من الهجمات. تعليمات التحميل متاح على موقع المشروع. بعد التثبيت ، التحديث مطلوب:

sudo msfupdate

للاختبار ، قم بتشغيل msfconsole.

Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

لسوء الحظ ، تفتقر أحدث إصدارات إطار العمل إلى القدرة على الاختراق تلقائيًا ، لذلك يجب فرز عمليات الاستغلال يدويًا وتشغيلها باستخدام الأمر use. بادئ ذي بدء ، من المفيد تحديد المنافذ المفتوحة على الجهاز المهاجم ، على سبيل المثال ، باستخدام nmap (في حالتنا ، سيتم استبدالها بالكامل بـ netstat على المضيف المهاجم) ، ثم تحديد واستخدام العنصر المناسب وحدات Metasploit

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

Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

Snort أو Suricata. الجزء 3: حماية شبكة المكاتب

المصدر: www.habr.com

إضافة تعليق