איומים ב-Linux
במסמך הזה מפורטות קבוצות הכללים בקטגוריה Linux Threats (איומים ב-Linux), מקורות הנתונים הנדרשים וההגדרות שבהן אפשר להשתמש כדי לכוונן את ההתראות שנוצרות על ידי קבוצות הכללים האלה.
ערכות הכללים בקטגוריה Linux Threats (איומים ב-Linux) עוזרות לזהות איומים בסביבות Linux באמצעות CrowdStrike Falcon, מערכת הביקורת של Linux (AuditD) ויומני המערכת של Unix. הקטגוריה הזו כוללת את קבוצות הכללים הבאות:
- כלים להסלמת הרשאות במערכת ההפעלה: מזהה התנהגות שנפוצה בכלים להסלמת הרשאות ב-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 Campaigns וב-Significant Events, שכוללים פעילות גיאופוליטית ופעילות איומים בעלת השפעה רבה, כפי שהוערכה על ידי Mandiant. הפעילות הזו עשויה לכלול סכסוכים גיאו-פוליטיים, ניצול, פישינג, פרסום של תוכנות זדוניות, תוכנות כופר ופריצות לשרשרת האספקה.
מכשירים נתמכים וסוגי יומנים
ערכות הכללים בקטגוריה Linux Threats (איומים ב-Linux) נבדקו והן נתמכות על ידי מקורות הנתונים הבאים שנתמכים ב-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 -p 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 -p wa -k systemd
-w /etc/systemd/user-generators -p wa -k systemd
-w /usr/local/lib/systemd/user-generators -p wa -k systemd
-w /usr/lib/systemd/user-generators -p 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 (שבו הנתונים מאוחסנים) |
הגדרה |
|---|---|---|
נתיב התהליך העיקרי |
|
המיקום בדיסק של התהליך הנוכחי שפועל, אם זמין. |
שורת הפקודה של תהליך המנהל |
|
פרמטרים של שורת הפקודה של התהליך, אם זמינים. |
נתיב תהליך היעד |
|
המיקום של תהליך היעד בדיסק, אם זמין. |
שורת הפקודה של תהליך היעד |
|
שורת הפקודה |
דומיין של שאילתת DNS ברשת |
|
שם הדומיין של שאילתות DNS, אם זמין. |
שינוי ההגדרות של ההתראות שמוחזרות מהקטגוריה Linux Threats
אפשר לצמצם את מספר הזיהויים שכלל או קבוצת כללים יוצרים באמצעות החרגות של כללים.
בהחרגה של הכלל, מגדירים את הקריטריונים של אירוע UDM שגורמים להחרגת האירוע מההערכה של קבוצת הכללים.
יוצרים החרגה אחת או יותר של כללים כדי לזהות קריטריונים באירוע UDM שמוציאים את האירוע מההערכה על ידי קבוצת הכללים הזו או על ידי כללים ספציפיים בקבוצת הכללים. הסבר איך לעשות זאת מופיע במאמר בנושא הגדרת החרגות של כללים.
לדוגמה, אפשר להחריג אירועים על סמך השדות הבאים של UDM:
principal.hostnametarget.user.useridprincipal.process.command_linetarget.domain.nametarget.process.command_line
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.