כיצד ליצור כללים, קו זמן ומקרים מאירועי Suricata באמצעות אפליקציות SIEM של Kibana

הקדמה

המדריכים הקודמים ב סדרת פרסומות זו הדריכו אותך דרך התקנה והגדרת Suricata. הם גם הסבירו כיצד להשתמש ב-Filebeat כדי לשלוח התראות משרת ה-Suricata שלך אל שרת Elastic Stack, לשימוש עם פונקציות מנהל מידע ואירועים בטבעי (SIEM) המובנות בו.

במדריך האחרון בסדרה זו, תיצור כללים מותאמים אישית של Kibana ותייצר התראות בלוחות המחוונים של SIEM של Kibana. לאחר שיש לך כללים במקום ואתה מבין איפה וכיצד לסנן את לוחות היומנים של Suricata באמצעות Kibana, תבדוק כיצד ליצור ולנהל מקרים באמצעות כלי ניתוח זמן של Kibana.

עד סיום המדריך הזה יהיה לך מערכת SIEM שבאמצעותה תוכל לעקוב ולחקור אירועי אבטחה בכל השרתים ברשת שלך.

דרישות מוקדמות

אם עקבת אחרי סדרת ההדרכה הזו, כבר עליך לקבוע שרת עם לפחות 4GB זיכרון RAM ו־2 יחידות עיבוד מרכזיות (CPUs), ומשתמש לא-רוט מוגדר. לצורך המדריך הזה, תוכל להגדיר זאת על ידי עקיפת המדריכים המקוריים שלנו להגדרת שרת ראשונית עבור Ubuntu 20.04, Debian 11, או Rocky Linux 8, בהתאם למערכת ההפעלה שבחרת.

תצטרך גם להתקין ולהפעיל את Suricata על השרת שלך. אם נדרש לך להתקין את Suricata על השרת שלך, תוכל לעשות זאת באמצעות אחד מהמדריכים הבאים בהתאם למערכת ההפעלה שלך:

תצטרך גם שרת הרץ את Elastic Stack ושהוא מוגדר כך ש־Filebeat יכול לשלוח יומנים מהשרת של Suricata אל Elasticsearch. אם נדרש לך ליצור שרת Elastic Stack, השתמש באחד מהמדריכים מהרשימה הבאה שתואמת את מערכת ההפעלה שלך:

וודא שניתן להתחבר ל-Kibana בשרת ה-Elasticsearch שלך ושיש אירועים בלוחות המחוונים שונים של אזהרות ואירועים של Suricata.

לאחר שיש לך את כל הדרישות הנדרשות, פתח טונל SSH אל שרת ה-Kibana שלך והתחבר ל-Kibana בדפדפן שלך באמצעות האישורים שיצרת בשלב הקודם.

שלב 1 — הפעלת מפתחות API ב-Elasticsearch

לפני שתוכל ליצור כללים, התראות, וצירים ב-Kibana, עליך לאפשר הגדרת מודול אבטחה של xpack.

פתח את קובץ ה- /etc/elasticsearch/elasticsearch.yml שלך עם nano או העורך שאתה מעדיף.

  1. sudo nano /etc/elasticsearch/elasticsearch.yml

הוסף את השורה המודגשת הבאה לסוף הקובץ:

/etc/elasticsearch/elasticsearch.yml
. . .
discovery.type: single-node
xpack.security.enabled: true
xpack.security.authc.api_key.enabled: true

שמור וסגור את הקובץ כאשר אתה מסיים לערוך. אם אתה משתמש ב- nano, אתה יכול לעשות זאת עם CTRL+X, אז Y ולאחר מכן ENTER לאישור.

עכשיו אתה יכול לאתחל מחדש את Elasticsearch כדי שההגדרה החדשה תיכנס לתוקף.

  1. sudo systemctl restart elasticsearch.service

כעת אתה מוכן להגדיר כללים, לבדוק התראות, וליצור צירים ומקרים ב-Kibana.

שלב 2 — הוספת כללים ל-Kibana

כדי להשתמש בתכונת ה-SIEM של Kibana עם נתוני אירועי Suricata, עליך ליצור כללים שיגרמו להתראות על אירועים נכנסים. בקר בדף ה- לוח כללים בדף האפליקציה לאבטחה של Kibana כדי ליצור או לייבא כללים.

לצורך הדרכה זו, נשתמש בחתימות הבאות כדי לזהות תעבורה שנשלחת לשרת בפורטים שונים (SSH, HTTP, ו-TLS תעבורה בהתאמה):

Example Suricata Signature
alert ssh any any -> 203.0.113.5 !22 (msg:"SSH TRAFFIC on non-SSH port"; classtype: misc-attack; target: dest_ip; sid:1000000;)
alert ssh any any -> 2001:DB8::1/32 !22 (msg:"SSH TRAFFIC on non-SSH port"; classtype: misc-attack; target: dest_ip; sid:1000001;)

alert http any any -> 203.0.113.5 !80 (msg:"HTTP REQUEST on non-HTTP port"; classtype:misc-activity; sid:1000002;)
alert http any any -> 2001:DB8::1/32 !80 (msg:"HTTP REQUEST on non-HTTP port"; classtype:misc-activity; sid:1000003;)

alert tls any any -> 203.0.113.5 !443 (msg:"TLS TRAFFIC on non-TLS HTTP port"; classtype:misc-activity; sid:1000004;)
alert tls any any -> 2001:DB8::1/32 !443 (msg:"TLS TRAFFIC on non-TLS HTTP port"; classtype:misc-activity; sid:1000005;)

אם אתה משתמש בחתימות משלך, או מאוסף כללים, ודא שאתה יכול ליצור התראות ושאתה יכול לגשת לאירועים המתאימים בלוחות הברירת מחדל של Suricata ב-Kibana.

עכשיו בקר בעמוד החוקים באפליקציית האבטחה של Kibana http://localhost:5601/app/security/rules/. לחץ על הכפתור צור חוק חדש בפינה הימנית העליונה של העמוד.

ודא שסוג החוק שאילתה מותאמת אישית נבחר. גלה לשדה ה שאילתה מותאמת אישית והדבק את הטקסט הבא בתוכו:

Kibana Query Language Input
rule.id: "1000000" or rule.id :"1000001"

ודא שערכי ה rule.id שלך תואמים לערך sid של Suricata עבור התקפה או התקפות עליהן ברצונך להתריע.

שנה את תצורת התצוגה המהירה של השאילתה ל חודש האחרון ולאחר מכן לחץ על תצוגת תוצאות. בהנחה שיש לך אירועים תואמים בלוגי Suricata שלך, העמוד יתעדכן במקום עם גרף שמציג התרעות מהחודש האחרון. העמוד שלך צריך להיראות דומה לצילום המסך הבא:

לחץ המשך כדי להמשיך להוספת שם לשדה שם החוק, שנדרש לכל חוק שתוסיף. הוסף שם לשדה שם החוק. בדוגמה זו נשתמש בתיאור ההודעה מהחוק של Suricata תעבורת SSH על פורט לא-SSH. הוסף גם תיאור לחוק. נשתמש ב בדוק את ניסיונות החיבור SSH על פורטים לא-תקניים בדוגמה זו.

ניתן גם להרחיב את חלק ה הגדרות מתקדמות ולהוסיף פרטים נוספים על החוק. לדוגמה, ניתן להוסיף הסבר על אופן הטיפול בהתרעה שנוצרה על ידי החוק, או לקשר למאמרים של חוקרי אבטחה על סוג התקפה מסוים.

כאשר אתה מסיים להוסיף את שם הכלל, התיאור, ושדות נוספים אופציונליים, לחץ המשך כדי להמשיך לשלב 3 ביצירת הכלל.

השאר את ההגדרות במקטע השלב הבא קבע כלל זמנים עם הערכים ברירת מחדל שלהם ולחץ המשך.

לבסוף, בשלב פעולות הכלל, לחץ צור והפעל כלל.

תופנה לדף חדש המציג פרטים על הכלל:

הערה: ייתכן ויהיה צורך במספר דקות עד שנתוני ההתראה יתמלאו בהתחלה. העיכוב הזה הוא מכיוון שלוחות הזמן הברירת מחדל של הכלל הוא להפעיל כל 5 דקות.

אם ישנם כללים אחרים של Suricata שתרצה התראות עליהם, חזור על השלבים למעלה, בהחלפת ה-sid של החתימה לשדה שאילתה מותאמת אישית של Kibana rule.id.

כאשר יש לך כלל או כללים במקום, אתה מוכן להמשיך לשלב הבא שבו תבדוק התראות ותיצור מקרה או מקרים כדי לנהל אותם.

עכשיו שיש לך כלל או כללים מוגדרים ליצירת התראות באפליקציית SIEM של Kibana, תצטרך דרך לקבץ ולנהל התראות נוספות. כדי להתחיל, בקר בלוח המחוונים של התראות ב-Kibana: http://127.0.0.1:5601/app/security/alerts.

ודא שיצרת מספר טראפיק לא תקין התואם לחתימת Suricata או חתימות שאתה משתמש בהן. לדוגמה, תוכל להפעיל את כלל הדוגמה sid:1000000 של Suricata על ידי הרצת פקודה דומה לזו מהמכונה המקומית שלך:

  1. ssh -p 80 your_server_ip

פקודה זו תנסה להתחבר לשרת שלך באמצעות SSH בפורט 80, במקום הפורט המוגדר כברירת מחדל 22 וצריך להפעיל התראה. עשוי לקחת כמה דקות עד שההתראה תופיע ב-Kibana, מאחר והיא צריכה להיעבר על ידי Elasticsearch והכלל שיצרת ב-Kibana.

בשלב הבא, תוסיף את השדה comnunity_id לטבלת ההתראות שמוצגת בתחתית העמוד. זכור מהמדריך הראשון ששדה זה נוצר על ידי Suricata ומייצג את כתובות ה-IP והפורטים הייחודיים המוכלים בזרימת הרשת. לחץ על הכפתור Fields ובתיבת הדו-שיח שמופיעה, הזן network.community_id ואז סמן את תיבת הסימון ליד שם השדה:

סגור את הדו-שיח והשדה יתווסף לטבלת ההתראות. כעת העבר את העכבר מעל לאחת מההתראות שיש להן את אותו ערך community_id ולחץ על סמל ה-Add to timeline investigation. זה יוודא שכל ההתראות שמשתפות את אותו community_id שהוסיף Suricata לאירוע יתווספו לציר זמן למחקר נוסף:

לחץ על הקישור ציר זמן שאינו מכונת בתחתית השמאלית של הדפדפן שלך. הקישור יפנה אותך לעמוד המציג רק התראות עם שדה Suricata community_id שברצונך לחקור.

עמוד הציר מציג לך פרטים נוספים על חבילות אינדיבידואליות המקושרות להתראה או זרימת רשת. באפשרותך להשתמש בציר כדי להבין יותר טוב מתי התחילה זרימת רשת חשודה, מאיפה היא התחילה וכמה זמן היא החזיקה.

לחץ על הלחצן כל מקורי הנתונים בצד הימני של העמוד ובחר בלחצן התראות זיהוי, ואז לחץ על שמור. אפשרות זו תגביל את הציר להצגת התראות שקיבנה יוצרת. בלעדיה, התראות של Suricata ייכללו גם בציר.

כדי לשמור את הציר החדש שלך, לחץ על סמל העפרון בחלק השמאלי העליון של עמוד הציר. התמונה מציינת את מיקום סמל העפרון ואת לחצן כל מקורי הנתונים:

אפשר להוסיף טקסט לשדה התיאור אם יש מידע נוסף שתרצה להוסיף לציר. לאחר שתסיים לערוך את שם הציר והתיאור, לחץ על לחצן שמור בחלון הדו-שיח המודאלי בצד ימין למטה.

חזור על השלבים לעיל כדי ליצור צירים נוספים עבור התראות אחרות שתרצה לבדוק בעומק מאוחר יותר.

בשלב הבא, תשתמש בתצוגות הציר של האירועים שלך כדי לקשר התראות ליישום Cases של קיבנה באפליקציית ה-SIEM בסיימת הכלים.

שלב 4 — יצירת וניהול תיקי SIEM

בשלב הקודם, יצרתם ציר זמן לקיבוץ אזעקות וחבילות פרטיות על פי שדה ה־community_id של Suricata. בסעיף זה של המדריך תיצרו תיק כדי למעקב וניהול האזעקות בציר הזמן שלכם.

כדי ליצור תיק חדש מהציר הזמן שלך, וודאו שאתם בדף הציר הזמן בדפדפן שלכם. לחצו על הכפתור הצרף לתיק בחלקו הימני העליון של דף הציר הזמן, ואז על הכפתור הצרף לתיק חדש מהרשימה שמופיעה.

תועברו לדף שבו תוכלו להזין מידע אודות התקרית שאתם מחקרים. בדוגמה הבאה מסך התצוגה, שם התיק הוא האזהרה המסומנת שלנו על תנועת SSH דוגמתית בין מתחנת SSH לפורט לא־SSH:

מלאו את השדות עם שם מתאר ותג או תגיות אופציונליים. בדוגמה זו, שם התיק הוא תנועת SSH בפורט לא־SSH מ־203.0.113.5 מאחר שזו הסוג המקורי של תנועה ומארח שאנו חוקרים. עם הרבה אירועים לחקר במערכת ה־SIEM שלכם, תבנית שם כזו תעזור לך לעקוב אחרי תיקים, צירי זמן ואזעקות מאחר שהשם יתאים לאזהרת Kibana ולשדה ההודעה של חתימת Suricata.

גלולו לתחתית העמוד ולחצו על כפתור צור מקרה. הדפדפן שלך יהיה בעמוד שמציג את המקרה שנשמר. ניתן להוסיף הערות בפורמט Markdown עם מידע נוסף, וכן לערוך את המקרה מהעמוד הזה.

לאחר מכן, לחצו על הקישור בתיאור כדי לעבור לציר הזמן של המקרה שהוספתם בשלב הקודם של המדריך הזה.

עבור כל התראה שברצונכם לכלול במקרה, לחצו על סמל פעולות נוספות על ההתראה. לחצו על הוסף למקרה קיים.

לחצו על שם המקרה בחלון המודאלי שמופיע כדי להוסיף את ההתראה למקרה. וודאו שבחרתם את המקרה המתאים לציר הזמן וההתראות שאתם מחקרים. חזרו והוסיפו כל התראה ברשימה למקרה הקיים.

עכשיו עברו לאפליקציית מקרים שוב ב-Kibana](http://localhost:5601/app/security/cases) על ידי התפריט בצד שמאל של העמוד. לחצו על המקרה שלכם ושימו לב איך ההתראות שהוספתם מופיעות בפרטי המקרה:

מכאן תוכלו לגלול לתחתית המקרה ולהוסיף מידע נוסף שתרצו. לדוגמה, כל השלבים שביצעתם כדי לחקור התראה או התראות, שינויים בתצורה של Suricata כמו כלל חדש או נערך, העלאה של דרגה לחבר צוות אחר או כל דבר אחר הרלוונטי למקרה.

כאשר תרגישו נוחים עם יצירת מקרים עבור סוגי ההתראות השונים שברצונכם לעקוב אחריהם, תוכלו כעת להשתמש בכלי SIEM של Kibana כדי לארגן ולתאם חקירת כל התראה במקום אחד מרכזי.

סיכום

במדריך זה בנית על מערכת ה- SIEM של Suricata ו- Elastic Stack הקיימת על ידך על ידי הוספת כללים ל- Kibana היוצרים התרעות אודות תעבורה ספציפית של עניין. יצרת גם ציר זמן או צירים כדי לקבץ סטים של התרעות בהתבסס על ה־community_id שלהן. לבסוף, יצרת מקרה וקישרת את הציר שלך אליו, יחד עם התרעות היחיד של עניין.

עם מערכת ה- SIEM הזו במקום, כעת ניתן לעקוב אחר אירועי האבטחה בכל מערכותיך בכמעט כל מדרגה. ככל שתתמכר ל- Suricata ותעקוב אחר ההתרעות שהיא יוצרת ב- Kibana SIEM שלך, תוכל להתאים אישית את ההתרעות של Suricata ואת הפעולות הברירת מחדל שהיא מבצעת כדי להתאים אותן לרשת המקומית שלך.

למידע נוסף על כלי ה- SIEM של Kibana, עיין ב- מסמכי התיעוד הרשמיים של Elastic Security. המדריכים שם מסבירים כיצד להשתמש בכללים, התרעות, צירים ומקרים בפרטיות רבה יותר.

לממשק SIEM קל משקל יותר, ייתכן גם שתהיה מעוניין ב- EveBox, שמציג את כל נתוני האירועים של Suricata ופונקציות ה- SIEM על דף אחד.

Source:
https://www.digitalocean.com/community/tutorials/how-to-create-rules-timelines-and-cases-from-suricata-events-using-kibana-s-siem-apps