מעקב וניטור PowerShell Security

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

המאמר הנוכחי הוא הקדמה למעקב וניטור PowerShell Security.

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

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

הקדמה

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

בין היתר אותן פעולות יכולות להיות פעולות מסוג Reverse Shell ,UAC Bypass וכן פעולות אחרות אשר מעניקות לתוקף שטח מתקפה פנוי ללא אפשרות לזיהוי וגילוי הפעולות.

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

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

ישנן מתקפות שונות שניתן להריץ באמצעות PowerShell, בין היתר:

  • Reverse Shell
  • Download malicious payload and execute
  • Mimikatz
  • UAC Bypass
  • Embed PowerShell scripts in images
  • Bypass UAC and quietly run scripts elevated
  • Write a complete RansomWare implementation in PowerShell
  • Fileless attacks

וכאן נכנס לתמונה PowerShell כי החל מגרסת PowerShell 5 ניתן להפעיל לוגים ומעקב וכן לבצע ניטור פעולות חשודות ולגלות סיכונים שאינם מתגלים ע"י מערכות אבטחה שונות בארגון.

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

אז כן, החל משנת 2016 ישנה עליה של התקפות מבוססות PowerShell וזאת בגלל הפופולריות של הכלי, אבל חשוב לציין כי הסיבה העיקרית היא: הכלי אינו מוקשח כלל ואפילו לא באופן הבסיסי.

ולכן לא סוגרים PowerShell לכלל הארגון וישנם דרכים שונות לאפשר עבודה מאובטחת ולבצע הקשחות שונות, בין היתר עם JEA. (נעבור על האפשרויות באחד המאמרים).

מעבר לכך, אם נסגור PowerShell תוקף ינסה וימצא דרך אחרת לבצע התקפה, ואז מה???

כיום בכדי להגן על שרתים ותחנות קצה מפני סיכונים מתקדמים משתמשים במערכות הגנה מבוססות EDR, וישנם מספר שחקנים בולטים בינהם: Sentinel, Symantec, Defender ATP ונוספים. אומנם מערכת EDR היא חיונית אך עדיין בחלקה קופסה שחורה שאינה נותנת מענה לכלל הסיכונים הקיימים ובמקרים מסוימים גם ניתנת לעקיפה (אותם סיכונים שהוזכרו קודם לכן), ולכן החלק אשר יכול לתת ערך מוסף הוא PowerShell.

PowerShell ואבטחת מידע

ישנם דרכים רבות לעבוד עם PowerShell לטובת אבטחת מידע, החל מהפעלת Audit על רכיב ופעולות PowerShell, ניהול באמצעות DSC, הקשחת באמצעות JEA, הגדרת Constrained Mode, ניטור כל פעולה ברמת מערכת הפעלה, אוטומציה לאירועי אבטחה ועד חיבור מול SIEM ארגוני.

בכדי לבצע מעקב, ניטור והקשחה באמצעות PowerShell ניתן להתחיל באפשרויות Audit השונות על רכיבי PowerShell, על Command Line ולכל תהליך ורכיב ברמת מערכת ההפעלה.

הדוגמה הבאה הינה דוגמה כללית לאפשרויות Audit שניתן לבצע עם PowerShell עם רכיבים מובנים ושילוב מול Command Line.

גרסאות PowerShell

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

1.0 – Windows Server 2008
2.0 – Windows 7 & Windows Server 2008 R2 – .NET Framework 2.0.50727
3.0 – Windows 8 & Windows Server 2012 – .NET Framework 4
4.0 – Windows 8.1 & Windows Server 2012 R2 – .NET Framework 4.5
5.0 – Windows 10 -.NET Framework 4.5
5.1 – Windows Server 2016 -.NET Framework 4.5.2

ישנן גרסאות PowerShell שניתנות לשדרוג

Windows Vista (SP2) 2.0 – Highest Supported PowerShell Version 2.0
Windows Server 2008 (SP2) 2.0 – Highest Supported PowerShell Version 3.0
Windows 7 (SP1) 2.0 – Highest Supported PowerShell Version 5.1
Windows 2008 R2 (SP1) 5.1 – Highest Supported PowerShell Version 5.1
Windows 8 3.0 – Highest Supported PowerShell Version 5.1
Windows 2012 3.0 – Highest Supported PowerShell Version 5.1
Windows 8.1 4.0 – Highest Supported PowerShell Version 5.1
Windows 2012 R2 4.0 – Highest Supported PowerShell Version 5.1
Windows 10 5.0 – Highest Supported PowerShell Version 5.1
Windows 2016 5.1 – Highest Supported PowerShell Version 5.1

PoweShell מתסמך על NET Framework ולכן חשוב לעדכן לגרסת Net מותאמת.

סוגי לוגים PowerShell Logging

ניתן להפעיל לוגים שונים של PowerShell:

Module Logging – מכיוון שכל פעולת PowerShell מתבססת על Module למינהם, ניתן לדעת לפי module logging פעילות אשר מתבצעת בכל מודול ובהתאם לכך לקבל תמונת מצב של איזה פקודה הופעלה ופרטים שונים על הפעלת הקוד, הלוגים שמופעלים ברמת מודול מספקים לפחות לוגים ברמת audit trail.

Script Block Logging – לוגים יותר מפורטים ברמת Verbose והרבה יותר מאשר לוגים ברמת מודול, לוגים אלה מספקים בין היתר תיעוד לגבי קריאה והפעלה של פונקציות עד למצב שבו ניתן לקבל טקסט אשר רץ בתחנה כולל מצבים בשהם ישנו Obfuscation.

Transcription – לוגים מלאים של כלל הפעולות אשר בוצעו מתוך PowerShell ברמת קלט ופלט של הפעולות.

הפעלת לוגים של PowerShell נעשית ע"י Group Policy אך רגע לפני הפעלה חשוב לוודא מספר דגשים חשובים:

  • מערכות הפעלה נדרשות וגרסאות PowerShell
  • תכנון כמויות להפעלת לוגים
  • נפח דיסק ומקום לכל אותם לוגים של הרכיבים השונים
  • הגנה על המידע (הלוגים) אשר נשמר בדיסק המקומי
  • מומלץ לנהל את כלל הלוגים מול מערכת SIEM
  • במידה ואין מערכת SIEM כדאי להשתמש עם Event Collector

לסיכום

הפעלת לוגים באמצעות PowerShell מביא ערך מוסף למעקב וניטור אחר פעולות שונות וסיכונים בשרתים ותחנות קצה, מכיוון שישנם סוגי לוגים שונים מומלץ לוודא מהם הדרישות ובהתם לכך להפעיל את הלוגים הנדרשים. במידה ואפשר, מומלץ להפעיל את כלל הלוגים.

מאמרים נוספים

  • הפעלת PowerShell Logging ותחקור התראות
  • הפעלת לוגים מול תהליכים ורכיבי מערכת
  • איסוף לוגים ושליחה אל Azure Sentinel

 

מה דעתך?

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