מעבדה ראשונה שיש לבצע תחילה:
Syslog
הוא פרוטוקול סנטדרטי לקבלת לוגים ממערכות שונות, החל מאפליקציות המותקנות במערכת ההפעלה ווינדוס ועד מערכות המותקנות על לינוקס
המטרה של Syslog היא לשלוח אירועים שמערכת מסוימת מייצרת אל שרת לוגים מרכזי, דוגמה קלאסית זה Firewall , ניתן להגדיר ל FW לשלוח Syslog אל שרת מרכזי, זאת אומרת שנניח כל הלוגים על חסימות או פאקטות שעברו וכך להעבירם למיקום מרכזי אחד.
כל מערכת אבטחת מידע יודעת להעביר Syslog ממערכות NAC, EDR, Firewall, VPN ועוד
ה Syslog שכל מערכת שולחת חייב להיות מורכב בצורה מאוד מסוימת, דוגמה לSyslog
<30>Jan 14 12:00:05 CheckPoint-Firewall: [FW1] 192.168.1.10 192.168.2.10 80 Block
המספר 30 הוא "דחיפות" הלוג – Priority
התאריך זה כמובן תאריך יצירת הלוג
CheckPoint-Firewall זה מקור ההודעה
[FW1] – הקטגוריה של הלוג – במקרה כאן זה שם ה FW
192.168.1.10 192.168.2.10 80 Block – תוכן הלוג עצמו
Syslog עובד בפרוטוקול 514 וברוב המקרים השימוש שלו יהיה כאשר ישנם מערכות אבטחה רבות בארגון ונרצה להעביר מכל מערכת את הלוגים שלה אל מערכת SIEM מרכזית וכך בלוח בקרה אחד מקבלים למשל את כל אירוע ה EDR או את החסימות שביצעה מערכת NAC וכו'
במאמר ומדריך זה אציג שליחת Syslog מFirewall מסוג pfSense אל ELK והצגתו ב Dashbaord
קבלת Syslog מ pfSense
במאמר זה השתמשתי בשני מדריכים האחד
ב pfsense נעבור ל Status ושם ל System Logs
נוכל לסמן ב V את Log Packtes matched from the default block rules in the ruleset שכן זה יעביר גם לוגים של חסימות שבוצע על FW בחוקים שהגדרתם
בחלון של Remote Logging Options נסמן ב V על מנת להפעיל את שליחת הלוגים של Syslog
נגדיר שהשרת שיקבל את הלוגים הוא שרת ה ELK שאצלי הכתובת היא 192.168.19.140:1200
נסמן גם את Everything ונשמור
אם אתם שואלים את עצמכם מודע פורט 1200 אם פרוטוקול syslog הוא 514, אז התשובה היא יחסית פשוטה
כיוון שאנחנו מעבירים את הלוגים ל ELK, ELK עצמו לא מאפשר ב Logstash לפתוח פרוטוקול 512, הוא מגדיר את הפרוטוקולים הללו כמוגנים ולכן הגדרתי 1200
הפורט 1200 הגדרתי כבר במעבדה של ELK, בקובץ ה Config של logstash
זה צילום מסך מהמעבדה של ELK שם הגדרתי ש logastsh יקבל את הפרוטוקול מ 1200
כעת נחזור ל ELK ונעבור ל Stack Managment
נבדוק שאכן הגיעו לוגים מ pfsense
אם לא הגיעו, בדקו ששרת ה ELK מאזין לפרוטוקול 1200 ע"י פתיחת CMD או טרמינל בלינוקס
telnet 192.168.19.140:1200
אחרי שבדקנו שהגיעו לוגים, הגיע הזמן לייצר data view, זה אומר הצגה של הלוגים
נחזור למסך ה Discover ושם נלחץ על ה data view שכבר מוצג ואז Create a data view
ניתן שם שזהה ללוג שמתקבל מ syslog
כמו בתמונה
חשוב מאוד, לוודא ש pfsense לא חוסם שום דבר (אנחנו בסביבת מעבדה אז מותר 🙂 )
***נוודא ש Snort עובד ומוגדר***
כעת נפתח Kali ונבצע Nmap על pfsense
תחילה נשנה את כתובת ה IP של קאלי שתיהיה סטטית והכי חשוב זה ה Default Gateway שיפנה אל הכתובת IP של pfsense
לא לשכוח בקאלי להגדיר Manual ולאחר ההגדרה לנתק את כרטיס הרשת ולהחזיר אותו
כעת נבצע nmap
בביצוע NMAP גרמתם לIPS ב pfSense לחסום אותכם
כעת עברו ל Discover ושם וודאו כי מוצג ה Syslog-pfsense שיצרתם קודם
ב pfsense ראינו שהמערכת שחסמה אותנו היא IPS בעזרת ET Open ולכן נחפש ET SCAN בחיפוש
נפתח את כל הלוג – בכפתור הקטן בצד שמאל
ונקבל את ה syslog בשלמותו
כעת נעתיק את ההודעה עצמה
[1:2010937:3] ET SCAN Suspicious inbound to mySQL port 3306 [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 192.168.19.128:48354 -> 192.168.1.10:3306
Grok
ועכשיו בשביל להתקדם , תכירו את grok
GROK הוא למעשה Parser , זאת אומרת שהוא ע"פ קרטריונים, יכול לקחת מידע ו"לקטלג" אותו כך שנוכל לעבוד מול ה ELK
כמו שהבחנתם ה syslog שלח הודעה ארוכה מאוד
[1:2010937:3] ET SCAN Suspicious inbound to mySQL port 3306 [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 192.168.19.128:48354 -> 192.168.1.10:3306
להודעה הזו צריך לבצע Parsing שכן אני רוצה לחלק את זה בצורה הבאה (לצורך הדוגמא)
Time: [1:2010937:3]
Origin: ET SCAN Suspicious inbound
protocol: mySQL
port: 3306
Class:: [Classification: Potentially Bad Traffic] [Priority: 2] {TCP}
Source IP: 192.168.19.128:48354
Destination IP: 192.168.1.10:3306
ולמה לעשות את זה? זה כמובן בגלל ה ELK, על מנת שנוכל לקחת כל חלק מההודעה ולהציג בטבלה בצורה מסודרת, אני צריך שזה יגיע בצורה מסודרת ולזה קוראים Parsing שכן , ברגע שההודעה מתקבלת, ה ELK יסדר את ההודעה ויציג אותה בלוגים שלו בצורה מסודרת
ל GROK יש כמה מאפיינים
תוכלו להרחיב מה כל אופרטור עושה באתר של EKL
בחיפוש למעלה בELK נרשום GROK ונכנס ל GROK Debugger
נדביק את הלוג שהגיע
[1:2010937:3] ET SCAN Suspicious inbound to mySQL port 3306 [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 192.168.19.128:48354 -> 192.168.1.10:3306
נדביק את ה Parsing שהכנתי, או שאתם כתבתם
%{WORD:et_scan_id} %{WORD:et_scan_event} %{WORD:et_scan_traffic} inbound to %{WORD:et_scan_service} port %{NUMBER:et_scan_port} %{GREEDYDATA:et_scan_classification} %{GREEDYDATA:et_scan_priority} {%{WORD:et_scan_protocol}} %{IP:et_src_ip}:%{NUMBER:et_src_port} -> %{IP:et_dst_ip}:%{NUMBER:et_dst_port}
נוכל כעת להבחין (אם הכל תקין) שהתוצאה היא שהכל מסודר לפי הקטגוריות שרצינו
כעת צריך לזכור, שאנחנו רוצים שהlogstash יבצע את ה parsing עוד שההודעה מגיעה
נעבור לשרת הELK, נתחבר אליו ב Putty
אז נערוך את קובץ הקונפיג שלו שיצרנו במעבדה הקודמת של ELK
sudo nano /etc/logstash/conf.d/syslog.conf
בדיוק איפה שכתוב # add any filters here
נוסיף את ה פילטר של גרוק
grok { match => { "message" => "%{WORD:et_scan_id} %{WORD:et_scan_event} %{WORD:et_scan_traffic} inbound to %{WORD:et_scan_service} port %{NUMBER:et_scan_port} %{GREEDYDATA:et_scan_classification} %{GREEDYDATA:et_scan_priority} {%{WORD:et_scan_protocol}} %{IP:et_src_ip}:%{NUMBER:et_src_port} -> %{IP:et_dst_ip}:%{NUMBER:et_dst_port}" } }
נשמור ונצא
כעת נבצע ריסטארט לשירות ה logstash שיטען את ה GROK parsing שהכנו
sudo systemctl restart logstash
המלצה: עברו לווינדוס שלכם ובדקו ע"י telnet שפרוטוקול 1200 עובד
telnet 192.168.19.140 1200
אם לא עובד, בדקו שה{ } שהסוגריים המסולסלים נכונים
אם הכל עובד , נמשיך
כעת ב ELK נקבל לוגים חדשים והפעם לפי הסדר הנכון וה Parsing של grok
- אם לא מגיעים לוגים חדשים – תגדירו יותר מ15 דקות אחרונות
- ואם עדיין לא מגיע – הסירו את החסימה מ pfsense snort ובצעו בקאלי שוב סריקה ע"י Nmap
כעת נעבור ל dashboard
13 מELK
ניצור Dashboard
14 מ ELK
וכעת בצד שמאל נרשום כל אירוע ואירוע ונלחץ על ה +
עד שכולם יהיו בטבלה
- לא לשכוח לשנות את התצוגה של החלון לטבלה – סימנתי לכם באדום
אחרי שהכל התווסף נוכל בצד ימין ללחוץ על כל אחד ולשנות את שמו כמו למשל Source IP וכן הלאה
לסיום, נקבל Visualize שיציג לנו את כל החסימות IPS ב pfSense מבצע!