Reverse Shell

במסמך הזה מתואר סוג של ממצא איום ב-Security Command Center. ממצאי איומים נוצרים על ידי מזהי איומים כשהם מזהים איום פוטנציאלי במשאבי הענן שלכם. רשימה מלאה של ממצאי האיומים הזמינים מופיעה באינדקס ממצאי האיומים.

סקירה כללית

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

זיהוי איומים בקונטיינר הוא המקור של הממצא הזה.

איך מגיבים

כדי להגיב לממצא הזה:

שלב 1: בדיקת פרטי הממצא

  1. פותחים Reverse Shellממצא לפי ההוראות שבמאמר בדיקת ממצאים. חלונית הפרטים של הממצא תיפתח בכרטיסייה סיכום.

  2. בכרטיסייה סיכום, בודקים את המידע בקטעים הבאים:

    • מה זוהה, במיוחד השדות הבאים:
      • קובץ בינארי של התוכנית: הנתיב המוחלט של התהליך שהתחיל בהפניה של הזרם לשקע מרוחק.
      • ארגומנטים: הארגומנטים שסופקו כשמפעילים את הקובץ הבינארי של התהליך.
    • מקור המידע שהושפע, במיוחד השדות הבאים:
      • שם המשאב המלא: שם המשאב המלא של האשכול.
      • השם המלא של הפרויקט: הפרויקט המושפע Google Cloud .
    • קישורים רלוונטיים, במיוחד השדות הבאים:
      • אינדיקטור של VirusTotal: קישור לדף הניתוח של VirusTotal.
  3. בתצוגת הפרטים של הממצא, לוחצים על הכרטיסייה JSON.

  4. שימו לב לשדות הבאים ב-JSON.

    • resource:
      • project_display_name: שם הפרויקט שמכיל את הנכס.
    • sourceProperties:
      • Pod_Namespace: השם של מרחב השמות של ה-Pod ב-Kubernetes.
      • Pod_Name: השם של ה-Pod ב-GKE.
      • Container_Name: השם של הקונטיינר המושפע.
      • VM_Instance_Name: השם של צומת GKE שבו ה-Pod הופעל.
      • Reverse_Shell_Stdin_Redirection_Dst_Ip: כתובת ה-IP המרוחקת של החיבור
      • Reverse_Shell_Stdin_Redirection_Dst_Port: היציאה המרוחקת
      • Reverse_Shell_Stdin_Redirection_Src_Ip: כתובת ה-IP המקומית של החיבור
      • Reverse_Shell_Stdin_Redirection_Src_Port: היציאה המקומית
      • Container_Image_Uri: השם של קובץ האימג' בקונטיינר שמופעל.

שלב 2: בדיקת האשכול והצומת

  1. נכנסים לדף Kubernetes clusters במסוף Google Cloud .

    מעבר אל Kubernetes clusters

  2. בסרגל הכלים של המסוף Google Cloud , בוחרים את הפרויקט שמופיע ב-resource.project_display_name, אם צריך.

  3. בוחרים את האשכול שמופיע ב-resource.name. חשוב לרשום את המטא-נתונים לגבי האשכול והבעלים שלו.

  4. לוחצים על הכרטיסייה Nodes. בוחרים את הצומת שמופיע ב-VM_Instance_Name.

  5. לוחצים על הכרטיסייה פרטים ורושמים את ההערה container.googleapis.com/instance_id.

שלב 3: בדיקת הפודקאסט

  1. נכנסים לדף Kubernetes Workloads במסוף Google Cloud .

    עוברים אל Kubernetes Workloads

  2. בסרגל הכלים של המסוף Google Cloud , בוחרים את הפרויקט שמופיע ב-resource.project_display_name, אם צריך.

  3. אם צריך, מסננים לפי האשכול שמופיע ב-resource.name ומרחב השמות של ה-Pod שמופיע ב-Pod_Namespace.

  4. בוחרים את ה-Pod שמופיע ב-Pod_Name. שימו לב לכל מטא-נתונים לגבי הפוד והבעלים שלו.

שלב 4: בדיקת היומנים

  1. במסוף Google Cloud , עוברים אל Logs Explorer.

    כניסה לדף Logs Explorer

  2. בסרגל הכלים של המסוף Google Cloud , בוחרים את הפרויקט שמופיע ב-resource.project_display_name, אם צריך.

  3. מגדירים את בחירת טווח זמן לתקופה הרצויה.

  4. בדף שנטען, מבצעים את הפעולות הבאות:

    1. כדי למצוא את היומנים של Pod‏ Pod_Name, משתמשים במסנן הבא:
      • resource.type="k8s_container"
      • resource.labels.project_id="resource.project_display_name"
      • resource.labels.location="location"
      • resource.labels.cluster_name="cluster_name"
      • resource.labels.namespace_name="Pod_Namespace"
      • resource.labels.pod_name="Pod_Name"
    2. כדי למצוא יומני ביקורת של אשכול, משתמשים במסנן הבא:
      • logName="projects/resource.project_display_name/logs/cloudaudit.googleapis.com%2Factivity"
      • resource.type="k8s_cluster"
      • resource.labels.project_id="resource.project_display_name"
      • resource.labels.location="location"
      • resource.labels.cluster_name="cluster_name"
      • Pod_Name
    3. כדי למצוא יומני מסוף של צומתי GKE, משתמשים במסנן הבא:
      • resource.type="gce_instance"
      • resource.labels.instance_id="instance_id"

שלב 5: בדיקת קונטיינר שפועל

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

  1. נכנסים למסוף Google Cloud .

    פתיחת Google Cloud מסוף

  2. בסרגל הכלים של המסוף Google Cloud , בוחרים את הפרויקט שמופיע ב-resource.project_display_name, אם צריך.

  3. לוחצים על הפעלת Cloud Shell.

  4. מריצים את הפקודות הבאות כדי לקבל את פרטי הכניסה של GKE לאשכול.

    באשכולות אזוריים:

      gcloud container clusters get-credentials cluster_name --zone location --project resource.project_display_name
    

    באשכולות אזוריים:

      gcloud container clusters get-credentials cluster_name --region location --project resource.project_display_name
    
  5. מריצים את הפקודה הבאה כדי להפעיל מעטפת בסביבת הקונטיינר:

      kubectl exec --namespace=Pod_Namespace -ti Pod_Name -c Container_Name -- /bin/sh
    

    כדי להשתמש בפקודה הזו, צריך להתקין מעטפת במיקום /bin/sh במאגר.

    כדי לראות את כל התהליכים שפועלים בקונטיינר, מריצים את הפקודה הבאה במעטפת של הקונטיינר:

      ps axjf
    

    כדי להשתמש בפקודה הזו, צריך להתקין את /bin/ps בקונטיינר.

שלב 6: מחקר של שיטות התקפה ותגובה

  1. כדאי לעיין בערכים של מסגרת MITRE ATT&CK לגבי סוג הממצא הזה: Command and Scripting Interpreter (מפרש פקודות וסקריפטים), Ingress Tool Transfer (העברת כלי חדירה).
  2. כדי לבדוק את ערך הגיבוב (hash) ‏SHA-256 של הקובץ הבינארי שסומן כזדוני ב-VirusTotal, לוחצים על הקישור באינדיקטור של VirusTotal. ‫VirusTotal הוא שירות בבעלות Alphabet שמספק הקשר לגבי קבצים, כתובות URL, דומיינים וכתובות IP שעלולים להיות זדוניים.
  3. כדי לפתח תוכנית תגובה, משלבים את תוצאות החקירה עם המחקר של MITRE והניתוח של VirusTotal.

שלב 7: מיישמים את התגובה

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

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

המאמרים הבאים