وفقًا للإحصاءات ، يزداد حجم حركة مرور الشبكة بحوالي 50٪ كل عام. هذا يؤدي إلى زيادة الحمل على المعدات ، وعلى وجه الخصوص ، يزيد من متطلبات أداء IDS / IPS. يمكنك شراء أجهزة متخصصة باهظة الثمن ، ولكن هناك خيار أرخص - إدخال أحد الأنظمة مفتوحة المصدر. يجد العديد من المسؤولين المبتدئين صعوبة في تثبيت وتكوين IPS المجاني. في حالة Suricata ، هذا ليس صحيحًا تمامًا - يمكنك تثبيته والبدء في صد الهجمات النموذجية بمجموعة من القواعد المجانية في بضع دقائق.
لماذا نحتاج IPS مفتوحة أخرى؟
يعتبر Snort هو المعيار منذ فترة طويلة ، وقد تم تطويره منذ أواخر التسعينيات ، لذلك كان في الأصل خيطًا واحدًا. على مر السنين ، ظهرت جميع الميزات الحديثة فيه ، مثل دعم IPv6 ، والقدرة على تحليل البروتوكولات على مستوى التطبيق ، أو وحدة الوصول إلى البيانات الشاملة.
لقد تعلم محرك Snort 2.X الأساسي العمل مع نوى متعددة ، لكنه ظل ذو ترابط واحد ، وبالتالي لا يمكنه الاستفادة على النحو الأمثل من الأنظمة الأساسية للأجهزة الحديثة.
تم حل المشكلة في الإصدار الثالث من النظام ، لكن الأمر استغرق وقتًا طويلاً لإعداد Suricata ، المكتوب من الصفر ، والذي تمكن من الظهور في السوق. في عام 2009 ، بدأ تطويره على وجه التحديد كبديل متعدد الخيوط لـ Snort ، والذي يحتوي على وظائف IPS خارج الصندوق. يتم توزيع الكود بموجب ترخيص GPLv2 ، لكن الشركاء الماليين للمشروع يمكنهم الوصول إلى نسخة مغلقة من المحرك. ظهرت بعض مشكلات قابلية التوسع في الإصدارات الأولى من النظام ، ولكن تم حلها بسرعة.
لماذا سوريكا؟
يحتوي Suricata على عدة وحدات (على غرار Snort): الالتقاط والتقاط وفك التشفير والكشف والإخراج. بشكل افتراضي ، تذهب حركة المرور الملتقطة قبل فك التشفير في دفق واحد ، على الرغم من أن هذا يؤدي إلى تحميل النظام أكثر. إذا لزم الأمر ، يمكن تقسيم الخيوط في الإعدادات وتوزيعها بين المعالجات - تم تحسين Suricata جيدًا لأجهزة معينة ، على الرغم من أن هذا لم يعد مستوى HOWTO للمبتدئين. من الجدير بالذكر أيضًا أن Suricata لديها أدوات فحص HTTP متقدمة بناءً على مكتبة HTP. يمكن استخدامها أيضًا لتسجيل حركة المرور دون اكتشافها. يدعم النظام أيضًا فك تشفير IPv6 ، بما في ذلك أنفاق IPv4-in-IPv6 وأنفاق IPv6-in-IPv6 والمزيد.
يمكن استخدام واجهات متنوعة لاعتراض حركة البيانات (NFQueue، IPFRing، LibPcap، IPFW، AF_PACKET، PF_RING)، وفي وضع Unix Socket، يمكن تحليل ملفات PCAP التي يلتقطها برنامج تحليل الشبكة تلقائيًا. علاوة على ذلك، تُسهّل بنية Suricata المعيارية إضافة عناصر جديدة لالتقاط حزم الشبكة وفك تشفيرها وتحليلها ومعالجتها. ومن الجدير بالذكر أيضًا أن Suricata تحظر حركة البيانات باستخدام مُرشِّح نظام التشغيل المُدمج. في GNU/Linux يوجد نمطان لنظام منع الاختراق (IPS): عبر قائمة انتظار NFQUEUE (نمط NFQ) وعبر النسخ الصفري (نمط AF_PACKET). في النمط الأول، تُرسل الحزمة الداخلة إلى iptables إلى قائمة انتظار NFQUEUE، حيث تتم معالجتها على مستوى المستخدم. يقوم برنامج Suricata بمعالجتها وفقًا لقواعده، ويعيد أحد ثلاثة قرارات: NF_ACCEPT، NF_DROP، وNF_REPEAT. القراران الأولان واضحان، بينما يسمح القرار الأخير بتحديد الحزم وإرسالها إلى أعلى جدول iptables الحالي. يوفر نمط AF_PACKET أداءً أعلى، ولكنه يفرض قيودًا عديدة على النظام: إذ يجب أن يحتوي على واجهتي شبكة وأن يعمل كبوابة. ببساطة، لا يتم توجيه الحزمة المحظورة إلى الواجهة الثانية.
ميزة هامة في Suricata هي القدرة على استخدام التطورات في Snort. يمتلك المسؤول حق الوصول ، على وجه الخصوص ، إلى مجموعات قواعد Sourcefire VRT و OpenSource الناشئة للتهديدات ، بالإضافة إلى Emerging Threats Pro التجاري. يمكن تحليل الإخراج الموحد باستخدام الخلفيات الشائعة ، كما يتم دعم إخراج PCAP و Syslog. يتم تخزين إعدادات وقواعد النظام في ملفات YAML ، والتي يسهل قراءتها ويمكن معالجتها تلقائيًا. يتعرف محرك Suricata على العديد من البروتوكولات ، لذلك لا يلزم ربط القواعد برقم منفذ. بالإضافة إلى ذلك ، يتم ممارسة مفهوم التدفق بنشاط في قواعد Suricata. لتتبع المشغل ، تُستخدم متغيرات الجلسة لإنشاء عدادات وأعلام مختلفة وتطبيقها. تعامل العديد من أنظمة كشف التسلل (IDS) اتصالات TCP المختلفة ككيانات منفصلة وقد لا ترى اتصالاً بينها يشير إلى بدء الهجوم. يحاول Suricata رؤية الصورة كاملة وفي كثير من الحالات يتعرف على حركة المرور الضارة الموزعة عبر اتصالات مختلفة. يمكنك التحدث عن مزاياها لفترة طويلة ، فمن الأفضل أن ننتقل إلى التثبيت والتكوين.
كيفية التثبيت؟
سنقوم بتثبيت برنامج Suricata على خادم افتراضي يعمل Ubuntu 18.04 LTS. يجب تشغيل جميع الأوامر بصلاحيات المستخدم الجذر. الخيار الأكثر أمانًا هو الاتصال بالخادم عبر SSH كمستخدم عادي، ثم استخدام sudo لرفع الصلاحيات. أولًا، عليك تثبيت الحزم اللازمة:
sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-httpsتوصيل مستودع خارجي:
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get updateقم بتثبيت أحدث إصدار مستقر من Suricata:
sudo apt-get install suricataإذا لزم الأمر ، فقم بتحرير اسم ملفات التكوين ، واستبدل eth0 الافتراضي بالاسم الفعلي للواجهة الخارجية للخادم. يتم تخزين الإعدادات الافتراضية في ملف / etc / default / suricata ، ويتم تخزين الإعدادات المخصصة في /etc/suricata/suricata.yaml. تكوين IDS يقتصر في الغالب على تحرير ملف التكوين هذا. لديها الكثير من المعلمات التي ، بالاسم والغرض ، تتطابق مع نظائرها من Snort. ومع ذلك ، فإن بناء الجملة مختلف تمامًا ، ولكن الملف أسهل في القراءة من تكوينات Snort ويتم التعليق عليه جيدًا.
sudo nano /etc/default/suricata 
и
sudo nano /etc/suricata/suricata.yaml 
انتباه! قبل البدء ، يجدر التحقق من قيم المتغيرات من قسم vars.
لإكمال الإعداد ، ستحتاج إلى تثبيت تحديث suricata لتحديث القواعد وتحميلها. من السهل جدًا القيام بذلك:
sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-updateبعد ذلك ، نحتاج إلى تشغيل الأمر suricata-update لتثبيت مجموعة قواعد Emerging Threats Open:
sudo suricata-update 
لعرض قائمة مصادر القواعد ، قم بتشغيل الأمر التالي:
sudo suricata-update list-sources 
تحديث مصادر القاعدة:
sudo suricata-update update-sources 
إعادة النظر في المصادر المحدثة:
sudo suricata-update list-sourcesإذا لزم الأمر ، يمكنك تضمين المصادر المجانية المتاحة:
sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklistبعد ذلك ، تحتاج إلى تحديث القواعد مرة أخرى:
sudo suricata-updateبهذا يكتمل تثبيت برنامج سوريكاتا وإعداده الأولي. Ubuntu يمكن اعتبار الإصدار 18.04 LTS مكتملاً. الآن نأتي إلى الجزء الممتع: في المقال التالي، سنقوم بتوصيل خادم افتراضي بشبكة المكتب عبر VPN ونبدأ بتحليل جميع البيانات الواردة والصادرة. سنركز على حجب هجمات DDoS، ونشاط البرامج الضارة، ومحاولات استغلال الثغرات الأمنية في الخدمات التي يمكن الوصول إليها من الشبكات العامة. ولتوضيح الأمر، سنقوم بمحاكاة أكثر أنواع الهجمات شيوعًا.
المصدر: www.habr.com
