إجراء الكشف عن اختراق الشبكة باستخدام Azure Network Watcher والأدوات مفتوحة المصدر
تعد عمليات التقاط الحزم مكونا رئيسيا لتنفيذ أنظمة الكشف عن اختراق الشبكة (IDSs) وتنفيذ مراقبة أمان الشبكة. تقوم العديد من أدوات IDS مفتوحة المصدر بمعالجة التقاط حزمة البيانات والبحث عن تواقيع الاختراقات المحتملة للشبكة والنشاط الضار. باستخدام التقاطات الحزمة التي يوفرها Azure Network Watcher، يمكنك تحليل شبكتك بحثا عن الاختراقات أو الثغرات الأمنية الضارة.
إحدى هذه الأدوات مفتوحة المصدر هي Suricata، وهو محرك IDS يستخدم مجموعات القواعد لمراقبة حركة مرور الشبكة ويشغل التنبيهات كلما حدثت أحداث مشبوهة. توفر Suricata محركا متعدد الأقراص لإجراء تحليل حركة مرور الشبكة مع زيادة السرعة والكفاءة. لمزيد من المعلومات حول Suricata وقدراتها، انتقل إلى موقع Suricata على الويب.
السيناريو
توضح هذه المقالة كيفية إعداد بيئتك لإجراء الكشف عن اختراق الشبكة باستخدام Network Watcher و Suricata و Elastic Stack.
يمنحك Network Watcher التقاطات الحزمة لإجراء الكشف عن اختراق الشبكة. تعالج Suricata التقاط الحزمة وتشغيل التنبيهات استنادا إلى الحزم التي تطابق مجموعة قواعدها من التهديدات. يخزن Suricata هذه التنبيهات في ملف سجل على جهازك المحلي.
باستخدام Elastic Stack، يمكنك فهرسة السجلات التي تنشئها Suricata ثم استخدامها لإنشاء لوحة معلومات Kibana. توفر لوحة المعلومات تمثيلا مرئيا للسجلات وطريقة للحصول بسرعة على رؤى حول الثغرات الأمنية المحتملة في الشبكة.
يمكنك إعداد كل من الأدوات مفتوحة المصدر على جهاز Azure الظاهري (VM)، حتى تتمكن من إجراء هذا التحليل داخل بيئة شبكة Azure الخاصة بك.
تثبيت Suricata
في المحطة الطرفية سطر الأوامر للجهاز الظاهري الخاص بك، قم بتشغيل الأوامر التالية:
sudo add-apt-repository ppa:oisf/suricata-stable sudo apt-get update sudo apt-get install suricata
للتحقق من التثبيت، شغّل الأمر
suricata -h
لمشاهدة القائمة الكاملة للأوامر.
للحصول على طرق أخرى للتثبيت، راجع دليل التشغيل السريع لتثبيت Suricata.
تنزيل مجموعة قواعد التهديدات الناشئة
في هذه المرحلة، ليس لديك أي قواعد لتشغيل Suricata. يمكنك إنشاء القواعد الخاصة بك إذا كنت تريد الكشف عن تهديدات محددة لشبكتك. يمكنك أيضا استخدام مجموعات القواعد المطورة من موفرين مختلفين، مثل التهديدات الناشئة أو قواعد Talos من Snort. في هذه المقالة، يمكنك استخدام مجموعة قواعد التهديدات الناشئة المتوفرة مجانا.
قم بتنزيل مجموعة القواعد وانسخها في الدليل:
wget https://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
tar zxf emerging.rules.tar.gz
sudo cp -r rules /etc/suricata/
معالجة التقاط حزمة البيانات باستخدام Suricata
لمعالجة التقاطات الحزمة باستخدام Suricata، قم بتشغيل الأمر التالي:
sudo suricata -c /etc/suricata/suricata.yaml -r <location_of_pcapfile>
للتحقق من التنبيهات الناتجة، اقرأ ملف fast.log :
tail -f /var/log/suricata/fast.log
إعداد Elastic Stack
تحتوي السجلات التي تنتجها Suricata على معلومات قيمة حول ما يحدث على شبكتك، ولكن ملفات السجل هذه ليست أسهل قراءة وفهم. من خلال توصيل Suricata ب Elastic Stack، يمكنك إنشاء لوحة معلومات Kibana للبحث عن الرؤى من سجلاتك ورسمها البياني وتحليلها واستخلاصها.
تثبيت Elasticsearch
يتطلب الإصدار 5.0 من Elastic Stack والإصدارات الأحدث Java 8. شغّل الأمر
java -version
للتحقق من إصدارك. إذا لم يكن لديك Java مثبتا، فراجع الوثائق على مجموعات تطوير Java المدعومة من Azure.نزّل الحزمة الثنائية الصحيحة لنظامك:
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.0.deb sudo dpkg -i elasticsearch-5.2.0.deb sudo /etc/init.d/elasticsearch start
يمكنك العثور على أساليب التثبيت الأخرى على صفحة ويب Elastic لتثبيت Elasticsearch.
تحقق من تشغيل Elasticsearch باستخدام هذا الأمر:
curl http://127.0.0.1:9200
يجب أن تحصل على استجابة مشابهة لهذا المثال:
{ "name" : "Angela Del Toro", "cluster_name" : "elasticsearch", "version" : { "number" : "5.2.0", "build_hash" : "8ff36d139e16f8720f2947ef62c8167a888992fe", "build_timestamp" : "2016-01-27T13:32:39Z", "build_snapshot" : false, "lucene_version" : "6.1.0" }, "tagline" : "You Know, for Search" }
لمزيد من الإرشادات حول تثبيت Elasticsearch، راجع صفحة الويب Elastic حول التثبيت.
تثبيت Logstash
تثبيت Logstash عن طريق تشغيل الأوامر التالية:
curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-5.2.0.deb sudo dpkg -i logstash-5.2.0.deb
تكوين Logstash للقراءة من إخراج ملف eve.json . إنشاء ملف logstash.conf باستخدام هذا الأمر:
sudo touch /etc/logstash/conf.d/logstash.conf
أضف المحتوى التالي إلى الملف. تأكد من صحة المسار إلى ملف eve.json .
input { file { path => ["/var/log/suricata/eve.json"] codec => "json" type => "SuricataIDPS" } } filter { if [type] == "SuricataIDPS" { date { match => [ "timestamp", "ISO8601" ] } ruby { code => " if event.get('[event_type]') == 'fileinfo' event.set('[fileinfo][type]', event.get('[fileinfo][magic]').to_s.split(',')[0]) end " } ruby{ code => " if event.get('[event_type]') == 'alert' sp = event.get('[alert][signature]').to_s.split(' group ') if (sp.length == 2) and /\A\d+\z/.match(sp[1]) event.set('[alert][signature]', sp[0]) end end " } } if [src_ip] { geoip { source => "src_ip" target => "geoip" #database => "/opt/logstash/vendor/geoip/GeoLiteCity.dat" add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { convert => [ "[geoip][coordinates]", "float" ] } if ![geoip.ip] { if [dest_ip] { geoip { source => "dest_ip" target => "geoip" #database => "/opt/logstash/vendor/geoip/GeoLiteCity.dat" add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { convert => [ "[geoip][coordinates]", "float" ] } } } } } output { elasticsearch { hosts => "localhost" } }
امنح الأذونات الصحيحة لملف eve.json بحيث يمكن ل Logstash استيعاب الملف:
sudo chmod 775 /var/log/suricata/eve.json
ابدأ تشغيل Logstash عن طريق تشغيل هذا الأمر:
sudo /etc/init.d/logstash start
لمزيد من الإرشادات حول تثبيت Logstash، راجع وثائق Elastic الرسمية.
تثبيت Kibana
شغّل الأوامر التالية لتثبيت Kibana:
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-5.2.0-linux-x86_64.tar.gz tar xzvf kibana-5.2.0-linux-x86_64.tar.gz
قم بتشغيل Kibana باستخدام هذه الأوامر:
cd kibana-5.2.0-linux-x86_64/ ./bin/kibana
اعرض واجهة ويب Kibana بالانتقال إلى
http://localhost:5601
.لهذا السيناريو، نمط الفهرس المستخدم لسجلات Suricata هو
logstash-*
.إذا كنت تريد عرض لوحة معلومات Kibana عن بعد، فقم بإنشاء قاعدة مجموعة أمان شبكة واردة (NSG) تسمح بالوصول إلى المنفذ 5601.
أنشئ لوحة معلومات Kibana
توفر هذه المقالة نموذج لوحة معلومات لعرض الاتجاهات والتفاصيل في التنبيهات الخاصة بك. لاستخدامه:
قم بتنزيل ملف لوحة المعلومات وملف المرئيات وملف البحث المحفوظ.
في علامة التبويب Management في Kibana، انتقل إلى الكائنات المحفوظة واستورد جميع الملفات الثلاثة. بعد ذلك، في علامة التبويب لوحة المعلومات ، يمكنك فتح نموذج لوحة المعلومات وتحميلها.
يمكنك أيضا إنشاء المرئيات ولوحات المعلومات الخاصة بك المصممة خصيصا للمقاييس التي تهمك. اقرأ المزيد حول إنشاء مرئيات Kibana من وثائق Kibana الرسمية.
تصور سجلات تنبيه أنظمة الكشف عن اختراق الشبكة (IDS)
يوفر نموذج لوحة المعلومات عدة مرئيات لسجلات تنبيه Suricata:
التنبيه بواسطة GeoIP: خريطة توضح توزيع التنبيهات حسب بلدها/منطقتها الأصلية استنادا إلى الموقع الجغرافي (يحددها IP).
أهم 10 تنبيهات: ملخص للتنبيهات العشرة الأكثر تشغيلا ووصفها. يؤدي تحديد تنبيه فردي إلى تصفية لوحة المعلومات إلى المعلومات المتعلقة بهذا التنبيه المحدد.
عدد التنبيهات: العدد الإجمالي للتنبيهات التي تم تشغيل مجموعة القواعد لها.
Top 20 ScrIP - Alerts, Top 20 DestIP - Alerts, Top 20 SrcPort - Alerts, Top 20 DestPort - Alerts: المخططات الدائرية التي تعرض المصادر والوجهات لأعلى 20 IPs والمنافذ التي تم تشغيل التنبيهات عليها. يمكنك التصفية على عناوين IP أو منافذ معينة لمعرفة عدد وأنواع التنبيهات التي يتم تشغيلها.
ملخص التنبيه: جدول يلخص تفاصيل محددة لكل تنبيه. يمكنك تخصيص هذا الجدول لإظهار معلمات أخرى ذات أهمية لكل تنبيه.
لمزيد من المعلومات حول إنشاء مرئيات ولوحات معلومات مخصصة، راجع وثائق Kibana الرسمية.
الخاتمة
من خلال الجمع بين التقاطات الحزمة من Network Watcher وأدوات IDS مفتوحة المصدر مثل Suricata، يمكنك إجراء الكشف عن اختراق الشبكة لمجموعة واسعة من التهديدات.
تساعدك لوحات المعلومات على اكتشاف الاتجاهات والشذوذ بسرعة داخل شبكتك. يمكنك أيضا استخدام لوحات المعلومات لفحص البيانات لاكتشاف الأسباب الجذرية للتنبيهات، مثل وكلاء المستخدمين الضارين أو المنافذ الضعيفة. باستخدام هذه البيانات المستخرجة، يمكنك اتخاذ قرارات مستنيرة حول كيفية:
- التفاعل مع شبكتك وحمايتها من محاولات التسلل الضارة.
- إنشاء قواعد لمنع عمليات الاختراق المستقبلية إلى شبكتك.
الخطوة التالية
تعرف على كيفية تشغيل التقاطات الحزمة استنادا إلى التنبيهات: