איומים ב-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 (שבו הנתונים מאוחסנים)

הגדרה

נתיב התהליך העיקרי

principal.process.file.full_path

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

שורת הפקודה של תהליך המנהל

principal.process.command_line

פרמטרים של שורת הפקודה של התהליך, אם זמינים.

נתיב תהליך היעד

target.process.file.full_path

המיקום של תהליך היעד בדיסק, אם זמין.

שורת הפקודה של תהליך היעד

target.process.command_line

שורת הפקודה

דומיין של שאילתת DNS ברשת

network.dns.questions.name

שם הדומיין של שאילתות DNS, אם זמין.

שינוי ההגדרות של ההתראות שמוחזרות מהקטגוריה Linux Threats

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

בהחרגה של הכלל, מגדירים את הקריטריונים של אירוע UDM שגורמים להחרגת האירוע מההערכה של קבוצת הכללים.

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

לדוגמה, אפשר להחריג אירועים על סמך השדות הבאים של UDM:

  • principal.hostname
  • target.user.userid
  • principal.process.command_line
  • target.domain.name
  • target.process.command_line

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.