תוכנה זדונית: כתובת IP של כריית מטבעות וירטואליים

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

סקירה כללית

תוכנות זדוניות מזוהות על ידי בדיקת VPC Flow Logs ויומנים של Cloud DNS כדי למצוא חיבורים לדומיינים ולכתובות IP ידועים של שליטה ובקרה.

המקור של הממצא הזה הוא Event Threat Detection.

איך מגיבים

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

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

  1. פותחים ממצא Malware: Cryptomining Bad IP כמו שמתואר במאמר בדיקת ממצאים. חלונית הפרטים של הממצא נפתחת בכרטיסייה סיכום.

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

    • מה זוהה, במיוחד השדות הבאים:
      • כתובת ה-IP של המקור: כתובת ה-IP החשודה של כריית הקריפטו.
      • ‫Source port (יציאת המקור): יציאת המקור של החיבור, אם זמינה.
      • כתובת ה-IP של היעד: כתובת ה-IP של היעד.
      • יציאת היעד: יציאת היעד של החיבור, אם היא זמינה.
      • פרוטוקול: הפרוטוקול של IANA שמשויך לחיבור.
    • מקור המידע שהושפע
    • קישורים רלוונטיים, כולל השדות הבאים:
      • URI של רישום ביומן: קישור לרשומות ב-Logging.
      • שיטת MITRE ATT&CK: קישור למסמכי התיעוד של MITRE ATT&CK.
      • ממצאים קשורים: קישורים לממצאים קשורים.
      • ‫Flow Analyzer: קישור לתכונה Flow Analyzer של Network Intelligence Center. השדה הזה מוצג רק אם מופעלת האפשרות 'יומני תעבורה של VPC'.
  3. בתצוגת הפרטים של הממצא, לוחצים על הכרטיסייה נכסי מקור.

  4. מרחיבים את properties ורושמים את ערכי הפרויקט והמופע בשדה הבא:

    • ‫instanceDetails: רושמים את מזהה הפרויקט ואת השם של מופע Compute Engine. מזהה הפרויקט ושם המופע מופיעים כמו בדוגמה הבאה:

      /projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
  5. כדי לראות את ה-JSON המלא של הממצא, לוחצים על הכרטיסייה JSON.

שלב 2: בדיקת ההרשאות וההגדרות

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

    כניסה ללוח הבקרה

  2. בוחרים את הפרויקט שצוין ב-properties_project_id.

  3. עוברים לכרטיס משאבים ולוחצים על Compute Engine.

  4. לוחצים על מכונת ה-VM שתואמת ל-properties_sourceInstance. בודקים אם יש תוכנה זדונית במופע שנפרץ.

  5. בחלונית הניווט, לוחצים על VPC Network (רשת VPC) ואז על Firewall (חומת אש). מסירים או משביתים כללים מתירניים מדי בחומת האש.

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

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

    כניסה לדף Logs Explorer

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

  3. בדף שנטען, מחפשים את יומני הזרימה של VPC שקשורים ל-Properties_ip_0 באמצעות המסנן הבא:

    • logName="projects/properties_project_id/logs/compute.googleapis.com%2Fvpc_flows"
    • (jsonPayload.connection.src_ip="Properties_ip_0" OR jsonPayload.connection.dest_ip="Properties_ip_0")

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

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

שלב 5: הטמעת התגובה

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

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

    כדי להפעיל את Cloud Armor במסוף Google Cloud , נכנסים לדף Integrated Services.

    כניסה לדף Integrated Services

דוגמה למציאת JSON

הנה דוגמה ל-JSON של הממצא.

{
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "state": "ACTIVE",
    "category": "Malware: Cryptomining Bad IP",
    "sourceProperties": {
      "sourceId": {
        "projectNumber": "PROJECT_NUMBER",
        "customerOrganizationNumber": "ORGANIZATION_ID"
      },
      "detectionCategory": {
        "technique": "cryptomining",
        "indicator": "ip",
        "ruleName": "bad_ip",
        "subRuleName": "cryptomining"
      },
      "detectionPriority": "LOW",
      "affectedResources": [{
        "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"
      }],
      "evidence": [{
        "sourceLogId": {
          "projectId": "PROJECT_ID",
          "resourceContainer": "projects/PROJECT_ID",
          "timestamp": {
            "seconds": "1636566005",
            "nanos": 9.74622832E8
          },
          "insertId": "INSERT_ID"
        }
      }],
      "properties": {
        "ips": ["DESTINATION_IP_ADDRESS"],
        "instanceDetails": "/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID",
        "network": {
          "project": "PROJECT_ID",
          "location": "ZONE",
          "subnetworkId": "SUBNETWORK_ID",
          "subnetworkName": "default"
        },
        "ipConnection": {
          "srcIp": "SOURCE_IP_ADDRESS",
          "destIp": "DESTINATION_IP_ADDRESS",
          "protocol": 1.0
        },
        "indicatorContext": [{
          "ipAddress": "DESTINATION_IP_ADDRESS",
          "countryCode": "FR",
          "reverseDnsDomain": "REVERSE_DNS_DOMAIN",
          "carrierName": "CARRIER_NAME",
          "organizationName": "ORGANIZATION_NAME",
          "asn": "AUTONOMOUS_SYSTEM_NUMBERS"
        }],
        "srcVpc": {
        },
        "destVpc": {
          "projectId": "PROJECT_ID",
          "vpcName": "default",
          "subnetworkName": "default"
        }
      },
      "findingId": "FINDING_ID",
      "contextUris": {
        "mitreUri": {
          "displayName": "MITRE Link",
          "url": "https://attack.mitre.org/techniques/T1496/"
        },
        "virustotalIndicatorQueryUri": [{
          "displayName": "VirusTotal IP Link",
          "url": "https://www.virustotal.com/gui/ip-address/DESTINATION_IP_ADDRESS/detection"
        }],
        "cloudLoggingQueryUri": [{
          "displayName": "Cloud Logging Query Link",
          "url": "https://console.cloud.google.com/logs/query;query\u003dtimestamp%3D%222021-11-10T17:40:05.974622832Z%22%0AinsertId%3D%22INSERT_ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project\u003dPROJECT_ID"
        }],
        "relatedFindingUri": {
        }
      }
    },
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
    },
    "eventTime": "2021-11-10T17:40:38.048Z",
    "createTime": "2021-11-10T17:40:38.472Z",
    "severity": "LOW",
    "workflowState": "NEW",
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID",
    "mute": "UNDEFINED",
    "findingClass": "THREAT",
    "indicator": {
      "ipAddresses": ["DESTINATION_IP_ADDRESS"]
    }
  },
  "resource": {
    "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "projectDisplayName": "PROJECT_ID",
    "parentName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
    "parentDisplayName": "PARENT_NAME",
    "type": "google.cloud.resourcemanager.Project",
    "displayName": "PROJECT_ID"
  }
}

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