איומים ב-Linux
במסמך הזה מפורטות קבוצות הכללים בקטגוריה Linux Threats (איומים ב-Linux), מקורות הנתונים הנדרשים וההגדרות שבהן אפשר להשתמש כדי לכוונן את ההתראות שנוצרות על ידי קבוצות הכללים האלה.
ערכות הכללים בקטגוריה Linux Threats (איומים ב-Linux) עוזרות לזהות איומים בסביבות Linux באמצעות CrowdStrike Falcon, מערכת הביקורת של Linux (AuditD) ויומני המערכת של Unix. הקטגוריה הזו כוללת את קבוצות הכללים הבאות:
- OS Privilege Escalation Tools: מזהה התנהגות שנפוצה בכלי קוד פתוח להסלמת הרשאות ב-Linux.
- מנגנוני התמדה: פעילות שמשמשת את התוקפים כדי ליצור ולשמור על גישה מתמשכת למארחי Linux.
- שינויים בהרשאות: פעילות שמשויכת לניסיונות אימות ולפעולות עם הרשאות מיוחדות, שמשמשות בדרך כלל להעלאת רמת ההרשאות או להתמדה במארחי Linux.
- אותות של תוכנות זדוניות – פעילות חשודה של קובץ בינארי מסוג LOTL: זיהוי תרחישים חשודים של שימוש בכלי מובנה (Living Off the Land) על סמך הפעילות שנצפתה של תוכנות זדוניות ב-Linux בסביבות מהעולם האמיתי.
- אותות של תוכנות זדוניות – פעילות חשודה של הורדות: זיהוי התנהגות שקשורה לפעילות זדונית של הורדות ב-Linux בסביבות מהעולם האמיתי.
- אותות של תוכנות זדוניות – ביצוע חשוד: זיהוי אותות שנוצרים מהתנהגויות שנצפו של תוכנות זדוניות ל-Linux שזוהו בסביבות בעולם האמיתי, עם התמקדות בהתנהגויות של ביצוע (TA0002).
- Mandiant Front-Line Threats - קבוצת הכללים הזו מכילה כללים שנגזרים מהחקירה והתגובה של Mandiant לאירועים פעילים ברחבי העולם. הכללים האלה כוללים TTPs נפוצים כמו ביצוע באמצעות מפענחי סקריפטים (T1059), שימוש בשירותי אינטרנט לצורך שליטה (T1102) ושימוש במשימות מתוזמנות כדי לשמור על התמדה (T1053).
- Mandiant Intel Emerging Threats – קבוצת הכללים הזו מכילה כללים שמקורם בקמפיינים ובאירועים משמעותיים של Mandiant Intelligence, שכוללים פעילות גיאופוליטית ופעילות איומים בעלות השפעה רבה, כפי שמוערך על ידי Mandiant. הפעילות הזו עשויה לכלול סכסוכים גיאו-פוליטיים, ניצול, פישינג, פרסום עם תוכנות זדוניות, תוכנות כופר ופרצות אבטחה בשרשרת האספקה.
מכשירים נתמכים וסוגי יומנים
ערכות הכללים בקטגוריה Linux Threats נבדקו והן נתמכות במקורות הנתונים הבאים שנתמכים ב-Google Security Operations:
- מערכת הביקורת של Linux (
AUDITD) - מערכת Unix (
NIX_SYSTEM) - CrowdStrike Falcon (
CS_EDR)
רשימה של כל מקורות הנתונים הנתמכים ב-Google SecOps זמינה במאמר בנושא מנתחי ברירת מחדל נתמכים.
הגדרת מכשירים ליצירת נתוני יומן נכונים
כדי שהכללים בקטגוריה Linux Threats יפעלו כמו שתוכנן, המכשירים צריכים ליצור נתוני יומן בפורמט הצפוי. צריך להגדיר את כללי הביקורת הקבועים הבאים עבור Linux Audit Daemon בכל מכשיר שבו אתם רוצים לאסוף יומנים ולשלוח אותם ל-Google SecOps.
לפרטים על הטמעה של כללי ביקורת קבועים עבור Linux Audit Daemon, אפשר לעיין במסמכים שספציפיים למערכת ההפעלה.
# Inserts the machine hostname into each log event
name_format = hostname
# Process creation (32 and 64-bit)
-a exit,always -F arch=b32 -S execve
-a exit,always -F arch=b64 -S execve
# Persistence: Cron
-w /etc/cron.allow -p wa -k cron
-w /etc/cron.d/ -p wa -k cron
-w /etc/cron.daily/ -p wa -k cron
-w /etc/cron.deny -p wa -k cron
-w /etc/cron.hourly/ -p wa -k cron
-w /etc/cron.monthly/ -p wa -k cron
-w /etc/cron.weekly/ -p wa -k cron
-w /etc/crontab -p wa -k cron
-w /var/spool/cron/ -p wa -k cron
# Persistence: System Startup
-w /etc/init/ -p wa -k init
-w /etc/init.d/ -p wa -k init
-w /etc/inittab -p wa -k init
# Persistence: Systemd Units and Generators
-w /etc/systemd/user -p wa -k systemd
-w /usr/lib/systemd/user -p wa -k systemd
-w /var/lib/systemd/linger -p wa -k systemd
-w /root/.config/systemd/user -pa wa -k systemd
-w /etc/systemd/system -p wa -k systemd
-w /usr/lib/systemd/system -p wa -k systemd
-w /run/systemd/system-generators -p wa -k systemd
-w /etc/systemd/system-generators -p wa -k systemd
-w /usr/local/lib/systemd/system-generators -p wa -k systemd
-w /usr/lib/systemd/system-generators -p wa -k systemd
-w /run/systemd/user-generators -pa wa -k systemd
-w /etc/systemd/user-generators -pa wa -k systemd
-w /usr/local/lib/systemd/user-generators -pa wa -k systemd
-w /usr/lib/systemd/user-generators -pa wa -k systemd
# Persistence: IAM
-w /etc/group -p wa -k iam_etcgroup
-w /etc/passwd -p wa -k iam_etcpasswd
-w /etc/gshadow -k iam_etcgroup
-w /etc/shadow -k iam_etcpasswd
-w /etc/sudoers -p wa -k iam_sudoers
-w /etc/sudoers.d/ -p wa -k iam_sudoers_d
-w /usr/bin/passwd -p x -k iam_passwd
-w /usr/sbin/groupadd -p x -k iam_groupmod
-w /usr/sbin/groupmod -p x -k iam_groupmod
-w /usr/sbin/addgroup -p x -k iam_groupmod
-w /usr/sbin/useradd -p x -k iam_usermod
-w /usr/sbin/userdel -p x -k iam_usermod
-w /usr/sbin/usermod -p x -k iam_usermod
-w /usr/sbin/adduser -p x -k iam_usermod
# Privilege Escalation
-w /bin/su -p x -k privesc
-w /usr/bin/sudo -p x -k privesc
# Persistence: Libraries
-w /etc/ld.so.conf -p wa -k libmod
-w /etc/ld.so.conf.d -p wa -k libmod
-w /etc/ld.so.preload -p wa -k libmod
# Persistence: PAM
-w /etc/pam.d/ -p wa -k pam
-w /etc/security/ -p wa -k pam
# Persistence: SSH
-w /etc/ssh/ -p wa -k sshconfig
-w /root/.ssh/ -p wa -k sshconfig
# Persistence: Shell Configuration
-w /etc/bashrc -p wa -k shellconfig
-w /etc/csh.cshrc -p wa -k shellconfig
-w /etc/csh.login -p wa -k shellconfig
-w /etc/fish/ -p wa -k shellconfig
-w /etc/profile -p wa -k shellconfig
-w /etc/profile.d/ -p wa -k shellconfig
-w /etc/shells -p wa -k shellconfig
-w /etc/zsh/ -p wa -k shellconfig
# Injection
-a always,exit -F arch=b32 -S ptrace
-a always,exit -F arch=b64 -S ptrace
# Failed Access Attempts
-a always,exit -F arch=b64 -S open -F dir=/bin -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/etc -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/home -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/sbin -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/srv -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/usr/bin -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/usr/sbin -F success=0 -k file_err
-a always,exit -F arch=b64 -S open -F dir=/var -F success=0 -k file_err
# Network connections
-a always,exit -F arch=b64 -S connect -F a2=16 -F success=1 -k net_v4
-a always,exit -F arch=b32 -S connect -F a2=16 -F success=1 -k net_v4
-a always,exit -F arch=b64 -S connect -F a2=28 -F success=1 -k net_v6
-a always,exit -F arch=b32 -S connect -F a2=28 -F success=1 -k net_v6
-a always,exit -F arch=b32 -S socket -F a0=2 -k sock_v4
-a always,exit -F arch=b64 -S socket -F a0=2 -k sock_v4
-a always,exit -F arch=b32 -S socket -F a0=10 -k sock_v6
-a always,exit -F arch=b64 -S socket -F a0=10 -k sock_v6
השדות שנדרשים לקטגוריה Linux Threats
בקטע הבא מתואר מידע ספציפי שנדרש כדי להפיק את התועלת המרבית ממערכות כללים בקטגוריה Linux Threats (איומים ב-Linux). חשוב לוודא שהמכשירים מוגדרים כך שיתעדו את הנתונים הבאים ביומני האירועים של המכשיר.
קבוצת הנתונים |
שדה UDM (שבו הנתונים מאוחסנים) |
הגדרה |
|---|---|---|
נתיב התהליך העיקרי |
|
המיקום בדיסק של התהליך הפועל הנוכחי, אם זמין. |
שורת הפקודה של התהליך העיקרי |
|
פרמטרים של שורת הפקודה של התהליך, אם זמינים. |
נתיב תהליך היעד |
|
המיקום בדיסק של תהליך היעד, אם זמין. |
שורת הפקודה של Target Process |
|
שורת הפקודה |
דומיין של שאילתת DNS ברשת |
|
שם הדומיין של שאילתות DNS, אם זמין. |
שינוי ההתראות שמוחזרות מהקטגוריה Linux Threats
אפשר לצמצם את מספר הזיהויים שנוצרים על ידי כלל או קבוצת כללים באמצעות החרגות של כללים.
בהחרגה של הכלל, מגדירים את הקריטריונים של אירוע UDM שגורם להחרגת האירוע מההערכה של קבוצת הכללים.
יוצרים החרגה אחת או יותר של כללים כדי לזהות קריטריונים באירוע UDM שמוציאים את האירוע מההערכה על ידי קבוצת הכללים הזו או על ידי כללים ספציפיים בקבוצת הכללים. הוראות איך לעשות זאת מופיעות במאמר בנושא הגדרת החרגות של כללים.
לדוגמה, אפשר להחריג אירועים על סמך השדות הבאים של UDM:
principal.hostnametarget.user.useridprincipal.process.command_linetarget.domain.nametarget.process.command_line
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.