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

הגדרה

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

principal.process.file.full_path

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

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

principal.process.command_line

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

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

target.process.file.full_path

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

שורת הפקודה של Target Process

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.