הקדמה
המדריכים הקודמים ב סדרה זו הדריכו אותך דרך התקנת, הגדרה והפעלת Suricata כמערכת זיהוי תוקפים (IDS) ומניעת תוקפים (IPS). למדת גם על כללי Suricata וכיצד ליצור את שלך.
במדריך זה תחקור איך לאינטגרציה של Suricata עם Elasticsearch, Kibana, ו- Filebeat כדי להתחיל ליצור כלי ניהול אירועים ומידע אבטחתי (SIEM) באמצעות מערכת ה-Elastic stack ו-Rocky Linux 8. כלי SIEM משמשים לאיסוף, איגוד, אחסון וניתוח נתוני אירועים על מנת לחפש אחר מקרים של איומים אבטחתיים ופעילות חשודה ברשתות ושרתים שלך.
הרכיבים שתשתמש בהם כדי לבנות את SIEM האישי שלך הם:
- Elasticsearch לאחסון, אינדקסציה, קירוב וחיפוש של אירועי האבטחה שמגיעים משרת ה-Suricata שלך.
- Kibana להצגה וניווט בין קבצי הלוג של אירועי האבטחה שמאוחסנים ב-Elasticsearch.
- Filebeat לניתוח קובץ הלוג
eve.json
של Suricata ולשליחת כל אירוע אל Elasticsearch לעיבוד. - Suricata לסריקת תעבורת הרשת שלך לאירועים חשודים, וללוג או לזרוק חבילות לא תקינות.
תחל את תהליך ההתקנה והתצורה של Elasticsearch ו-Kibana עם הגדרות אימות מסוימות. לאחר מכן, הוסף את Filebeat למערכת Suricata שלך כדי לשלוח את לוגי ה-eve.json שלה ל-Elasticsearch.
לבסוף, למד כיצד להתחבר ל-Kibana באמצעות SSH ודפדפן האינטרנט שלך, ואז טען והתקשר עם לוחות המחוונים של Kibana שמציגים אירועים והתראות של Suricata.
דרישות מוקדמות
אם עקבת אחרי סדרת המדריכים הזו, כבר עליך להפעיל את Suricata על שרת Rocky Linux. השרת הזה ייכנס לפה שלך כשרת Suricata שלך.
- אם עדיין עליך להתקין את Suricata, תוכל לעקוב אחרי המדריך הזה שמסביר כיצד להתקין Suricata על Rocky Linux 8.
תצטרך גם שרת שני כדי לארח את Elasticsearch ו-Kibana. השרת הזה ייכנס לפה שלך כשרת Elasticsearch שלך. יש להיות לו שרת Rocky Linux 8 עם:
- 4GB זיכרון RAM ו-2 יחידות עיבוד CPU שהוגדרו עם משתמש sudo לא ראשי. תוכל להשיג זאת על ידי עקיפת הגדרת שרת ראשונית עם Rocky Linux 8.
למטרות הדרכה זו, יש לאפשר תקשורת בין שני השרתים באמצעות כתובות IP פרטיות. ניתן להשתמש ב-VPN כמו WireGuard על מנת לחבר את השרתים שלך, או להשתמש בספק שירות ענן שזקוק לתקשורת פרטית בין המארחים. ניתן גם לבחור להריץ את Elasticsearch, Kibana, Filebeat ו-Suricata על אותו השרת לצורך ניסויים.
שלב 1 — התקנת Elasticsearch ו-Kibana
השלב הראשון בהדרכה זו הוא להתקין את Elasticsearch ו-Kibana על השרת שלך. כדי להתחיל, יש להוסיף את מפתח ה-GPG של Elastic לשרת שלך בעזרת הפקודה הבאה:
בשלב הבא, יש ליצור קובץ elasticsearch.repo
בתיקיית /etc/yum/yum.repos.d
שלך עם התוכן הבא, בעזרת vi
או העורך שאתה מעדיף שלך. פעולה זו מבטיחה שמאגרי המידע של Elasticsearch יישמרו בעת התקנת חבילות חדשות באמצעות yum
:
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
אם אתה משתמש ב-vi
, לאחר שתסיים לבצע שינויים, יש ללחוץ ESC
ואז :x
כדי לשמור את השינויים בקובץ ולצאת.
עכשיו יש להתקין את Elasticsearch ו-Kibana באמצעות הפקודה dnf
. יש ללחוץ Y
כדי לקבל כל הצעות אודות טביעות אצבע של מפתח ה-GPG:
האפשרות --enablerepo
משמשת לעקיפת הגדרת המושבת כברירת מחדל בקובץ /etc/yum.repos.d/elasticsearch.repo
. גישה זו מבטיחה שחבילות ה־Elasticsearch ו־Kibana לא יתעדכנו בטעות בעת התקנת עדכוני חבילות אחרות בשרת שלך.
לאחר התקנת החבילות, יש למצוא ולרשום את כתובת ה־IP הפרטית של השרת שלך באמצעות הפקודה ip address show
:
תקבל פלט כמו בדוגמה הבאה:
Outputlo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 159.89.122.115/20 10.20.0.8/16 2604:a880:cad:d0::e56:8001/64 fe80::b832:69ff:fe46:7e5d/64
eth1 UP 10.137.0.5/16 fe80::b883:5bff:fe19:43f3/64
ממשק הרשת הפרטי בפלט זה הוא המסומן eth1
, עם כתובת IPv4 10.137.0.5
. שם המכשיר וכתובות ה־IP שלך יהיו שונים. למרות שמה שונה והכתובת הפרטית שונה, הכתובת תהיה מתוך הקבוצות הבאות:
10.0.0.0
עד10.255.255.255
(קידומת 10/8)172.16.0.0
עד172.31.255.255
(קידומת 172.16/12)192.168.0.0
עד192.168.255.255
(קידומת 192.168/16)
אם ברצונך למדע נוסף על איך הקבוצות הללו מוקצות, בקר במפרט RFC 1918.
רשום את כתובת ה־IP הפרטית של שרת ה־Elasticsearch שלך (במקרה זה 10.137.0.5
). ברמת השאריות של המדריך זה, תופנה אליה כ־your_private_ip
. יש לשים לב גם לשם של ממשק הרשת, במקרה זה eth1
. בחלק הבא של המדריך תגדיר את Elasticsearch ואת Kibana להאזין לחיבורים בכתובת ה־IP הפרטית המגיעים משרת ה־Suricata שלך.
שלב 2 — הגדרת Elasticsearch
כרגע, Elasticsearch מוגדרת לקבל חיבורים מקומיים בברירת המחדל. בנוסף, אין כל הפעלת אימות מאופשרת, לכן כלים כמו Filebeat לא יוכלו לשלוח לוגים אליה. בחלק זה של המדריך תגדיר את הגדרות הרשת עבור Elasticsearch ולאחר מכן תפעיל את מודול האבטחה המובנה של Elasticsearch, xpack
.
הגדרת רשת ב־Elasticsearch
מאחר ושרתי Elasticsearch ו־Suricata הם נפרדים, יהיה עליך להגדיר את Elasticsearch כך שתאזין לחיבורים בממשק הרשת הפרטי שלה.
פתח את קובץ /etc/elasticsearch/elasticsearch.yml
באמצעות vi
או העורך שלך לבחירה:
# בדרך כלל, Elasticsearch זמין רק ב localhost. הגדר כתובת שונה כאן כדי לחשוף את הצומת הזו ברשת:
# הגדר את הכתובת network.bind_host כך שיהיה ניתן להתחבר אליה ממקומות אחרים:
#
# הגדר את הכתובת network.bind_host כך שיהיה ניתן להתחבר אליה ממקומות אחרים:
network.bind_host: ["127.0.0.1", "your_private_ip"]
#
#network.bind_host: 192.168.0.1
# בדרך כלל, Elasticsearch מאזין לתעבורת HTTP בפורט הראשון שהוא מוצא פנוי מ-9200 ומעלה. הגדר פורט HTTP ספציפי כאן:
החלף את כתובת ה-your_private_ip
בכתובת ה-IP הפרטית שלך. שורה זו תוודא ש- Elasticsearch עדיין יהיה זמין בכתובת המקומית שלו כך ש-Kibana תוכל להגיע אליו, וגם בכתובת ה-IP הפרטית של השרת שלך.
באחרית הקובץ, השתמש בקיצור המקלדת SHIFT+G
כדי לנווט לסופו.
הוסף את השורות המודגשות הבאות לסוף הקובץ:
. . .
discovery.type: single-node
xpack.security.enabled: true
הגדרת discovery.type מאפשרת ל- Elasticsearch לרוץ כצומת יחידה, להבדיל מקבוצה של שרתי Elasticsearch אחרים. הגדרת xpack.security.enabled מפעילה חלק מהתכונות האבטחתיות הכלולות ב- Elasticsearch.
שמור וסגור את הקובץ כאשר אתה מסיים לערוך אותו.
לבסוף, הוסף כללי חומת אש כדי לוודא שהשרת שלך Elasticsearch נגיש על ממשק הרשת הפרטי שלו. אם עקבת אחר המדריכים הנדרשים ומשתמש ב- firewalld, הפעל את הפקודות הבאות:
החליפו את שם ממשק הרשת הפרטי שלכם במקום eth1
בפקודה הראשונה אם שלכם שונה. הפקודה הזו משנה את כללי הממשק כך שישתמשו באזור ה־internal
של Firewalld, המאפשר יותר מאשר האזור המוגדר כברירת מחדל של public
.
הפקודות הבאות מוסיפות כללים שמאפשרים תעבורת Elasticsearch בפורט 9200 ו־9300, וכן תעבורת Kibana בפורט 5601.
הפקודה הסופית מטעינה מחדש את שירות Firewalld עם הכללים הקבועים החדשים שהוזנו.
השלב הבא הוא להתחיל את תהליך העבודה עם Elasticsearch ולהגדיר סיסמאות לשימוש עם מודול האבטחה xpack
.
מתחילים את Elasticsearch
עכשיו שהגדרתם את הרשת והגדרות האבטחה של xpack
עבור Elasticsearch, עליכם להתחיל אותו כדי שהשינויים ייכנסו לתוקף.
הריצו את הפקודת systemctl
הבאה כדי להתחיל את Elasticsearch:
כאשר Elasticsearch תסיים את ההתחלה, תוכלו להמשיך לחלק הבא של המדריך, בו תפיקו סיסמאות עבור המשתמשים הברירתיים שמוגדרים מראש בElasticsearch.
מגדירים סיסמאות לElasticsearch
עכשיו שהפעלת את ההגדרה xpack.security.enabled
, עליך ליצור סיסמאות עבור משתמשי Elasticsearch בריריים. Elasticsearch כולל כלי בתיקיית /usr/share/elasticsearch/bin
שיכול ליצור אוטומטית סיסמאות אקראיות עבור משתמשים אלו.
הרץ את הפקודה הבאה כדי cd
אל התיקייה ולאחר מכן ליצור סיסמאות אקראיות עבור כל המשתמשים בריריים:
תקבל פלט כמו בדוגמה הבאה. כאשר יתבקש ממך להמשיך, לחץ על y
ואז על RETURN
או ENTER
:
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y
Changed password for user apm_system
PASSWORD apm_system = eWqzd0asAmxZ0gcJpOvn
Changed password for user kibana_system
PASSWORD kibana_system = 1HLVxfqZMd7aFQS6Uabl
Changed password for user kibana
PASSWORD kibana = 1HLVxfqZMd7aFQS6Uabl
Changed password for user logstash_system
PASSWORD logstash_system = wUjY59H91WGvGaN8uFLc
Changed password for user beats_system
PASSWORD beats_system = 2p81hIdAzWKknhzA992m
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = 85HF85Fl6cPslJlA8wPG
Changed password for user elastic
PASSWORD elastic = 6kNbsxQGYZ2EQJiqJpgl
לא תוכל להפעיל את הכלי שוב, לכן ודא שתרשום את הסיסמאות הללו במקום מאובטח. תצטרך להשתמש בסיסמת המשתמש kibana_system
בשלב הבא של המדריך הזה, ובסיסמת המשתמש elastic
בשלב הConfiguring Filebeat של המדריך הזה.
בנקודה זו במדריך סיימת את הגדרת Elasticsearch. החלק הבא מסביר איך להגדיר את הגדרות הרשת של Kibana ואת מודול האבטחה xpack
שלו.
שלב 3 — הגדרת Kibana
בסעיף הקודם של המדריך הזה, הגדרת Elasticsearch כך שהיא תקשיב לחיבורים על כתובת ה-IP הפרטית של שרת ה-Elasticsearch שלך. עליך לעשות אותו דבר עבור Kibana כדי ש-Filebeats בשרת Suricata שלך יוכלו להגיע אליו.
תחילה תאפשר את פונקציית האבטחה של xpack
ב-Kibana על ידי יצירת סודות ש-Kibana תשתמש בהם כדי לאחסן נתונים ב-Elasticsearch. לאחר מכן תגדיר את הגדרות הרשת והאימות של Kibana כדי להתחבר אל Elasticsearch.
הפעלת xpack.security
ב-Kibana
כדי להתחיל עם הגדרות האבטחה של xpack
ב-Kibana, עליך ליצור מפתחות הצפנה. Kibana משתמשת באלו כדי לאחסן נתוני הסשן (כמו עוגיות), וגם דשבורדים שמורים שונים ותצורות של נתונים ב-Elasticsearch.
ניתן ליצור את המפתחות לצורך זה באמצעות הכלי kibana-encryption-keys
הכלול בספריית /usr/share/kibana/bin
. הרץ את הפקודה הבאה כדי להתמקד בספרייה ולאחר מכן ליצור את המפתחות:
הדגל -q
מושתק את ההוראות של הכלי, והדגל --force
יוודא שתיצור מפתחות חדשים. עליך לקבל פלט דומה לזה:
Outputxpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585
xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef
xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
העתק את שלושת המפתחות האלו למקום מאובטח. עכשיו עליך להוסיף אותם לקובץ התצורה /etc/kibana/kibana.yml
של Kibana.
פתח את הקובץ בעזרת vi
או העורך שאתה מעדיף:
עבור לסוף הקובץ באמצעות הקיצור דרך של vi
SHIFT+G
. הדבק את שלושת השורות של xpack
שהעתקת לסוף הקובץ:
. . .
# מציין את המקום המקומי שישמש עבור כל מחרוזות הניתנות לתרגום, תאריכים ופורמטים של מספרים.
# השפות הנתמכות הן: אנגלית - en , כברירת מחדל , סינית - zh-CN .
#i18n.locale: "en"
xpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585
xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef
xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
המשך לפתוח את הקובץ ולהמשיך להגדיר את הגדרות הרשת של Kibana.
הגדרת רשת עבור Kibana
כדי להגדיר את הרשת של Kibana כך שהיא תהיה זמינה בכתובת ה-IP הפרטית של שרת ה- Elasticsearch שלך, יש למצוא את השורה שמסומנת בהערה #server.host: "localhost"
בקובץ /etc/kibana/kibana.yml
. השורה נמצאת ליד תחילת הקובץ. יש להוסיף שורה חדשה אחריה עם כתובת ה-IP הפרטית של השרת שלך, כפי שמסומן למטה:
# Kibana משרת על ידי שרת צד אחורי. הגדרה זו מציינת את היציאה שיש להשתמש בה.
#server.port: 5601
# מציין את הכתובת אליה יקשור שרת ה- Kibana. כתובות IP ושמות מארח יכולים להיות ערכים חוקיים.
# הכתובת המוגדרת כברירת מחדל היא 'localhost', שכמעט תמיד אומרת שמכונות מרוחקות לא יוכלו להתחבר.
# כדי לאפשר חיבורים ממשתמשים מרוחקים, יש להגדיר פרמטר זה לכתובת שאינה loopback.
#server.host: "localhost"
server.host: "your_private_ip"
יש להחליף את כתובת ה-IP הפרטית שלך במקום הכתובת your_private_ip
.
שמור וסגור את הקובץ כאשר תסיים לערוך אותו. לאחר מכן, עליך להגדיר את שם המשתמש והסיסמה שבהם קיבאנה משתמשת כדי להתחבר לאלסטיקסרץ'.
הגדרת פרטי הכניסה של קיבאנה
ישנם שני דרכים להגדיר את שם המשתמש והסיסמה שבהם קיבאנה מאומתת לאלסטיקסרץ'. הדרך הראשונה היא לערוך את קובץ התצורה /etc/kibana/kibana.yml
ולהוסיף את הערכים שם. הדרך השנייה היא לאחסן את הערכים ב־מחסנית המפתחות של קיבאנה, שהיא קובץ מעורפל שבו קיבאנה יכולה לאחסן סודות.
נשתמש בשיטת ה־keystore במדריך זה מאחר והיא ממנה את עריכת קובץ התצורה של קיבאנה ישירות.
אם אתה מעדיף לערוך את הקובץ במקום זאת, ההגדרות שיש להגדיר בו הן elasticsearch.username
ו־elasticsearch.password
.
אם בחרת לערוך את קובץ ההגדרות, דלג על שאר השלבים בסעיף זה.
כדי להוסיף סוד למחסנית באמצעות הכלי kibana-keystore
, תחילה cd
אל תיקיית /usr/share/kibana/bin
. לאחר מכן, הרץ את הפקודה הבאה כדי להגדיר את שם המשתמש עבור קיבאנה:
תקבל הודעת הוראה כזו:
Enter value for elasticsearch.username: *************
הזן את kibana_system
כאשר יתבקש, באמצעות העתקה והדבקה, או הקלדה זהירה של שם המשתמש. כל תו שתקליד יכוסה בתו *
כוכב. לחץ על ENTER
או RETURN
כאשר תסיים להזין את שם המשתמש.
עכשיו חזור על התהליך, הפעם כדי לשמור את הסיסמה. וודא שאתה מעתיק את הסיסמה עבור משתמש ה־kibana_system
שיצרת בקטע הקודם של המדריך. למען התיחסות, במדריך זה סיסמת הדוגמה היא 1HLVxfqZMd7aFQS6Uabl
.
הרץ את הפקודה הבאה כדי להגדיר את הסיסמה:
כאשר יתבקש, הדבק את הסיסמה כדי למנוע שגיאות של טרנסקריפציה:
Enter value for elasticsearch.password: ********************
מתחיל את Kibana
עכשיו שהגדרת את הרשתות ואת הגדרות האבטחה של xpack עבור Kibana, וגם הוספת פרטי כניסה ל־keystore, עליך להתחיל אותו כדי שהשינויים ייכנסו לתוקף.
הרץ את הפקודת systemctl הבאה כדי לאתחל את Kibana מחדש:
כאשר Kibana מתחיל, תוכל להמשיך לקטע הבא של המדריך שבו תגדיר את Filebeat על השרת שלך Suricata כדי לשלוח את הלוגים שלו אל Elasticsearch.
שלב 4 — התקנת Filebeat
עכשיו שתהליכי ה-Elasticsearch וה-Kibana שלך מוגדרים עם הגדרות רשת ואימות נכונות, השלב הבא הוא להתקין ולהגדיר את Filebeat בשרת ה-Suricata שלך.
כדי להתחיל להתקין את Filebeat, הוסף את מפתח GPG של Elastic לשרת ה-Suricata שלך עם הפקודה הבאה:
לאחר מכן, צור קובץ elasticsearch.repo בתיקיית /etc/yum/yum.repos.d שלך עם התוכן הבא, באמצעות vi או העורך שאתה מעדיף שלך:
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
כאשר אתה מסיים לבצע שינויים שמור וצא מהקובץ. כעת התקן את חבילת Filebeat באמצעות הפקודה dnf:
בשלב הבא תצטרך להגדיר את Filebeat כך שיתחבר לשני Elasticsearch ו-Kibana. פתח את קובץ התצורה /etc/filebeat/filebeat.yml באמצעות vi או העורך שאתה מעדיף שלך:
מצא את סעיף ה-Kibana של הקובץ סביב השורה 100. הוסף שורה לאחר השורה המפורטת בהערה #host: "localhost:5601" המפנה לכתובת ה-IP הפרטית ולפורט של מופע ה-Kibana שלך:
. . .
# החל מגרסת Beats 6.0.0, הדשבורדים נטענים דרך ה- API של Kibana.
# זה מחייב הגדרת קצה קיבאנה.
setup.kibana:
# מארח Kibana
# הסכמה ופורט ניתן להשאיר מחוץ ויהיה מוגדר כברירת המחדל (http ו- 5601)
# במקרה של הגדרת נתיב נוסף, הסכמה דרושה: http://localhost:5601/path
# כתובות IPv6 תמיד צריכות להיות מוגדרות כך: https://[2001:db8::1]:5601
# host: "localhost:5601"
host: "your_private_ip:5601"
. . .
השינוי הזה יבטיח כי Filebeat יכול להתחבר ל-Kibana כדי ליצור את האינדקסים, הלוחות וצינורות העיבוד השונים ב-Elasticsearch כדי לעסוק בלוגי Suricata שלך.
הבא, מצא את קטע ה-Elasticsearch Output
בקובץ בקרבת השורה 130 וערוך את ההגדרות של hosts
, username
ו-password
כך שיתאימו לערכים של השרת שלך ב-Elasticsearch:
output.elasticsearch:
# מערך של מארחים להתחברות.
hosts: ["your_private_ip:9200"]
# פרוטוקול - האם `http` (ברירת מחדל) או `https`.
#protocol: "https"
# זיהוי התעודה - מפתח API או שם משתמש/סיסמה.
#api_key: "id:api_key"
username: "elastic"
password: "6kNbsxQGYZ2EQJiqJpgl"
. . .
החלף את כתובת ה-IP הפרטית של שרת ה-Elasticsearch שלך בשורת ה-hosts
. הסר את ההערה משדה ה-username
והשאר אותו כשהוא, ושנה את הערך של שדה ה-password
מ-changeme
לסיסמה של משתמש ה-elastic
שיצרת בקטע התצורה של סיסמאות Elasticsearch במדריך זה.
שמור וסגור את הקובץ כאשר אתה מסיים לערוך אותו. הבא, הפעל את מודול ה-Suricata המובנה של Filebeat עם הפקודה הבאה:
עכשיו ש-Filebeat מוגדר להתחבר ל-Elasticsearch ול-Kibana, עם מודול ה-Suricata מופעל, השלב הבא הוא לטעון את הלוחות והצינורות של SIEM לתוך Elasticsearch.
הפעל את הפקודה filebeat setup
. ייתכן שיקח מספר דקות לטעון את הכל:
כאשר הפקודה מסתיימת, אתה צריך לקבל פלט כמו הבא:
OutputOverwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/machine-learning/current/index.html
It is not possble to load ML jobs into an Elasticsearch 8.0.0 or newer using the Beat.
Loaded machine learning job configurations
Loaded Ingest pipelines
אם אין שגיאות, השתמש בפקודת systemctl
כדי להתחיל את Filebeat. זה יתחיל לשלוח אירועים מיומנו של Suricata מלוג eve.json ל-Elasticsearch כאשר הוא מופעל.
עכשיו שיש לך את Filebeat, Kibana, ו-Elasticsearch מוגדרים כדי לעבד את לוגי ה-Suricata שלך, השלב האחרון במדריך זה הוא להתחבר אל Kibana ולחקור את לוחות המחוות האיתוריות המאובטחים.
שלב 5 — ניווט בלוחות המחוות האיתוריות של Kibana
Kibana היא הרכיב הגרפי של חבילת ה-Elastic. תשתמש ב-Kibana עם הדפדפן שלך כדי לחקור את נתוני האירועים וההתראות של Suricata. מאחר והגדרת את Kibana להיות זמין רק דרך כתובת ה-IP הפרטית של שרת ה-Elasticsearch שלך, תצטרך להשתמש בטונל SSH כדי להתחבר ל-Kibana.
התחברות ל-Kibana דרך SSH
SSH כולל אפשרות -L
המאפשרת לך להעביר תעבורת רשת בפורט מקומי דרך החיבור שלו אל כתובת ה-IP והפורט המרוחקים של שרת. תשתמש באפשרות זו כדי להעביר תעבורת מהדפדפן שלך למופע Kibana שלך.
על לינוקס, macOS, וגרסאות מעודכנות של Windows 10 ומעלה, ניתן להשתמש בלקוח SSH המובנה כדי ליצור את הטונל. יש להשתמש בפקודה זו כל פעם שתרצו להתחבר אל Kibana. ניתן לסגור את החיבור הזה בכל עת ולהריץ שוב את פקודת ה-SSH כדי להקים מחדש את הטונל.
הריצו את הפקודה הבאה בטרמינל במחשב השולחן או הנייד המקומי שלכם כדי ליצור את הטונל SSH אל Kibana:
הארגומנטים השונים ל-SSH הם:
- הדגל
-L
מעביר תעבורת אל מערכת המקומית שלכם בפורט5601
אל השרת המרוחק. - חלק הפקודה
your_private_ip:5601
מציין את השירות בשרת ה-Elasticsearch שלכם שבו תופנה התעבורת שלכם. במקרה זה השירות הוא Kibana. יש לוודא להחליף את כתובת ה-IP הפרטית של שרת ה-Elasticsearch שלכם במקוםyour_private_ip
. - הכתובת
203.0.113.5
היא כתובת ה-IP הציבורית שתשתמשו בה כדי להתחבר ולנהל את השרת שלכם. יש להחליף את כתובת ה-IP הציבורית של שרת ה-Elasticsearch שלכם במקום. - הדגל
-N
מורה ל-SSH לא להריץ פקודה כמו תסריט אינטראקטיבי של/bin/bash
, ובמקום זאת להחזיק פתוח את החיבור. הוא נהוג בדרך כלל כאשר מופנים פורטים כמו בדוגמה זו.
אם ברצונכם לסגור את הטונל בכל עת, יש ללחוץ על CTRL+C
.
בווינדוס, הטרמינל שלכם צריך להיות דומה לצילום המסך הבא:
הערה: עשוי להתבקש ממך להזין סיסמה אם אינך משתמש במפתח SSH. הקלד או הדבק את הסיסמה בתוך התיבה ולחץ ENTER
או RETURN
.
במערכות ההפעלה macOS ו-Linux, הטרמינל שלך יהיה דומה לצילום המסך הבא:
לאחר שהתחברת לשרת Elasticsearch שלך דרך SSH והפורט הופעל, פתח את הדפדפן שלך ובקר בכתובת הבאה: http://127.0.0.1:5601. תופנה לדף ההתחברות של Kibana:
אם הדפדפן שלך לא יכול להתחבר ל-Kibana, תקבל הודעה דומה לזו בטרמינל שלך:
Outputchannel 3: open failed: connect failed: No route to host
השגיאה הזו מציינת שהמנה שלך ב-SSH לא מצליחה להגיע לשירות ה-Kibana בשרת שלך. וודא שציינת את כתובת ה-IP הפרטית הנכונה עבור שרת ה-Elasticsearch שלך וטען מחדש את הדף בדפדפן שלך.
התחבר לשרת ה-Kibana שלך באמצעות elastic
כשם המשתמש, והסיסמה שהעתקת מאוחר יותר במדריך זה למשתמש.
גלישה בדפסי SIEM של Kibana
לאחר התחברותך ל-Kibana, אפשר לחקור את הדפדפנים של Suricata ש-Filebeat הגדיר עבורך.
בשדה החיפוש בחלק העליון של דף הבית של Kibana, הזן את מונחי החיפוש type:dashboard suricata
. חיפוש זה יחזיר שני תוצאות: דפי האירועים של Suricata וההתראות של Suricata כפי שמוצג בצילום המסך הבא:
לחץ על התוצאה [Filebeat Suricata] Events Overview
כדי לבקר בלוח המחוונים של Kibana שמציג סקירה על כל האירועים שנרשמו של Suricata:
כדי לבקר בלוח המחוונים של Suricata Alerts, חזור על החיפוש או לחץ על הקישור Alerts
שמופיע בלוח המחוונים של האירועים. הדף שלך צריך להיראות כמו בצילום המסך הבא:
אם ברצונך לבדוק את האירועים וההתראות שכל לוח מחוונים מציג, גלול לתחתית הדף כאשר תמצא טבלה שמפרטת כל אירוע והתראה. באפשרותך להרחיב כל רשומה כדי לראות את הרשומה המקורית מ Suricata, ולבחון בפרטים את השדות השונים כמו כתובות IP מקור ויעד עבור התראה, סוג התקפה, זיהוי חתימת Suricata, ואחרים.
כמו כן, Kibana כוללת סט מובנה של לוחות מחוונים בתחום האבטחה שבאפשרותך לגשת אליהם באמצעות התפריט בצד שמאל של חלון הדפדפן. נווט ללוח המחוונים Network עבור סקירה על האירועים שמוצגים על מפה, וגם על נתונים כוללים על אירועים ברשת שלך. הלוח שלך צריך להיראות כמו בצילום המסך הבא:
ניתן לגלול לתחתית הלוח של רשת על מנת לראות טבלה שמפרטת את כל האירועים שתואמים לטווח הזמן שהוגדר על ידך. בנוסף, באפשרותך לבחון כל אירוע בפרטים, או לבחור אירוע כדי ליצור ציר זמן של Kibana, שתוכל להשתמש בו לחקירת זרימות תנועה מסוימות, התראות, או זיהויים של הקהילה.
מסקנה
xpack
הכלול עם כל כלי.
לאחר השלמת שלבי ההגדרה של Elasticsearch ו-Kibana, התקנת והגדרת Filebeat על שרת ה-Suricata שלך. השתמשת ב-Filebeat כדי למלא את דפי הלוחות של Kibana ולהתחיל לשלוח יומני Suricata ל-Elasticsearch.
לבסוף, יצרת טונל SSH אל שרת ה-Elasticsearch שלך ונכנסת ל-Kibana. מצאת את לוחות המחוונים החדשים של אירועים והתראות של Suricata, וכן את לוח המחוונים של הרשת.
המדריך האחרון בסדרה זו ידריך אותך דרך שימוש ביכולות ה-SIEM של Kibana לעיבוד ההתראות שלך של Suricata. בו תתמקד ביצירת מקרים למעקב אחר התראות ספציפיות, צירי זמן לקישור זרימות הרשת, וכללים להתאמת אירועי Suricata ספציפיים שתרצה לעקוב או לנתח אותם בעומק יותר.