ביצוע: זוהה ביצוע אפשרי של פקודה מרחוק

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

סקירה כללית

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

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

איך מגיבים

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

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

  1. פותחים ממצא של Execution: Possible Remote Command Execution Detected לפי ההוראות במאמר בדיקת הממצאים. חלונית הפרטים של הממצא נפתחת בכרטיסייה סיכום.

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

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

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

    • resource:
      • project_display_name: השם של הפרויקט שמכיל את האשכול.
    • finding:
      • processes:
      • binary:
        • path: הנתיב המלא של הקובץ הבינארי שהופעל.
      • args: הארגומנטים שסופקו במהלך ההפעלה של הקובץ הבינארי.
    • sourceProperties:
      • Pod_Namespace: השם של מרחב השמות של ה-Pod ב-Kubernetes.
      • Pod_Name: השם של ה-Pod ב-GKE.
      • Container_Name: השם של הקונטיינר המושפע.
      • Container_Image_Uri: השם של קובץ אימג' של קונטיינר שפורס.
      • VM_Instance_Name: השם של צומת GKE שבו ה-Pod הופעל.
  5. זיהוי ממצאים אחרים שהתרחשו בזמן דומה במאגר הזה. ממצאים קשורים עשויים להצביע על כך שהפעילות הזו הייתה זדונית, במקום על אי-עמידה בשיטות המומלצות.

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

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

    מעבר אל Kubernetes clusters

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

  3. בוחרים את האשכול שמופיע בשורה Resource full name בכרטיסייה Summary בפרטי הממצא. שימו לב למטא-נתונים לגבי האשכול והבעלים שלו.

  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 full name בכרטיסייה Summary בפרטי הממצא, ולפי מרחב השמות של ה-Pod שמופיע ב-Pod_Namespace.

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

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

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

    כניסה לדף Logs Explorer

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

  3. מגדירים את Select time range לתקופה הרצויה.

  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 PROJECT_NAME
    

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

    gcloud container clusters get-credentials CLUSTER_NAME \
          --region LOCATION \
          --project PROJECT_NAME
    

    מחליפים את מה שכתוב בשדות הבאים:

    • CLUSTER_NAME: האשכול שמופיע ב-resource.labels.cluster_name
    • LOCATION: המיקום שמופיע ב-resource.labels.location
    • PROJECT_NAME: שם הפרויקט שמופיע ב-resource.project_display_name
  5. אחזור הקובץ הבינארי שהופעל:

    kubectl cp \
          POD_NAMESPACE/POD_NAME:PROCESS_BINARY_FULLPATH \
          -c CONTAINER_NAME \
          LOCAL_FILE
    

    מחליפים את local_file בנתיב לקובץ מקומי שבו רוצים לאחסן את הקובץ הבינארי שנוסף.

  6. מריצים את הפקודה הבאה כדי להתחבר לסביבת הקונטיינר:

    kubectl exec \
          --namespace=POD_NAMESPACE \
          -ti POD_NAME \
          -c CONTAINER_NAME \
          -- /bin/sh
    

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

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

  1. כדאי לעיין בערכים של מסגרת MITRE ATT&CK לגבי סוג הממצא הזה: Command and Scripting Interpreter (מפרש פקודות וסקריפטים).
  2. כדי לפתח תוכנית תגובה, משלבים את תוצאות החקירה עם מחקר של MITRE.

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

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

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