זליגת נתונים: זליגת נתונים מ-BigQuery

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

סקירה כללית

הממצאים שמוחזרים על ידי Exfiltration: BigQuery Data Exfiltration מכילים אחד משני כללי משנה אפשריים. לכל כלל משנה יש רמת חומרה שונה:

  • כלל משנה exfil_to_external_table עם חומרה = HIGH:
    • משאב נשמר מחוץ לארגון או לפרויקט שלכם.
  • כלל משנה vpc_perimeter_violation עם חומרה = LOW:
    • VPC Service Controls חסם פעולת העתקה או ניסיון גישה למשאבים של BigQuery.

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

איך מגיבים

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

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

  1. פותחים את Exfiltration: BigQuery Data Exfiltration הממצא לפי ההוראות שבקטע בדיקת הממצאים.
  2. בכרטיסייה Summary (סיכום) בחלונית הפרטים של הממצא, בודקים את הערכים שמופיעים בקטעים הבאים:

    • מה זוהה:
      • מידת החומרה: מידת החומרה היא HIGH עבור כלל המשנה exfil_to_external_table או LOW עבור כלל המשנה vpc_perimeter_violation.
      • כתובת האימייל העיקרית: החשבון ששימש להעברת הנתונים.
      • מקורות של אקספילטרציה: פרטים על הטבלאות שמהן בוצעה אקספילטרציה של נתונים.
      • יעדי אקספילטרציה: פרטים על הטבלאות שבהן אוחסנו הנתונים שחולצו.
    • מקור המידע שהושפע:
      • השם המלא של המשאב: השם המלא של המשאב של הפרויקט, התיקייה או הארגון שממנו בוצעה גניבת הנתונים.
    • קישורים רלוונטיים:
      • ‫Cloud Logging URI: קישור לרשומות ב-Logging.
      • שיטת MITRE ATT&CK: קישור למסמכי התיעוד של MITRE ATT&CK.
      • ממצאים קשורים: קישורים לממצאים קשורים.
  3. לוחצים על הכרטיסייה נכסי מקור ובודקים את השדות שמוצגים, ובמיוחד את השדות הבאים:

    • detectionCategory:
      • ‫subRuleName: exfil_to_external_table או vpc_perimeter_violation.
    • evidence:
      • sourceLogId:
        • ‫projectId: הפרויקט Google Cloud שמכיל את מערך הנתונים של BigQuery כמקור.
    • properties
      • dataExfiltrationAttempt
        • ‫jobLink: הקישור לעבודת BigQuery שדרכה בוצעת גניבת הנתונים.
        • ‫query: שאילתת ה-SQL שמופעלת במערך הנתונים של BigQuery.
  4. אפשר גם ללחוץ על הכרטיסייה JSON כדי לראות את הרשימה המלאה של מאפייני ה-JSON של הממצא.

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

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

    כניסה לדף IAM

  2. אם צריך, בוחרים את הפרויקט שמופיע בשדה projectId בקובץ ה-JSON של הממצא.

  3. בדף שמופיע, בתיבה Filter, מזינים את כתובת האימייל שמופיעה בPrincipal email ובודקים אילו הרשאות הוקצו לחשבון.

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

  1. בכרטיסיית הסיכום של חלונית פרטי הממצא, לוחצים על הקישור Cloud Logging URI כדי לפתוח את Logs Explorer.
  2. כדי למצוא יומני פעילות של אדמין שקשורים למשימות BigQuery, משתמשים במסננים הבאים:

    • protoPayload.methodName="Jobservice.insert"
    • protoPayload.methodName="google.cloud.bigquery.v2.JobService.InsertJob"

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

  1. כדאי לעיין בערך של מסגרת MITRE ATT&CK לגבי סוג הממצא הזה: Exfiltration Over Web Service: Exfiltration to Cloud Storage (העברה לא מורשית דרך שירות אינטרנט: העברה לא מורשית אל Cloud Storage).
  2. כדי לעיין בממצאים קשורים, לוחצים על הקישור ממצאים קשורים בשורה ממצאים קשורים בכרטיסייה סיכום של פרטי הממצא. ממצאים קשורים הם ממצאים מאותו סוג באותו מופע ובאותה רשת.
  3. כדי לפתח תוכנית תגובה, משלבים את תוצאות החקירה עם מחקר של MITRE.

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

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

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

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

{
  "findings": {
    "access": {
      "principalEmail": "PRINCIPAL_EMAIL",
      "callerIp": "IP",
      "callerIpGeo": {
        "regionCode": "REGION_CODE"
      },
      "serviceName": "bigquery.googleapis.com",
      "methodName": "google.cloud.bigquery.v2.JobService.InsertJob"
    },
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID",
    "category": "Exfiltration: BigQuery Data Exfiltration",
    "cloudDlpDataProfile": {},
    "cloudDlpInspection": {},
    "createTime": "2023-05-30T15:49:59.709Z",
    "database": {},
    "eventTime": "2023-05-30T15:49:59.432Z",
    "exfiltration": {
      "sources": [
        {
          "name": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID"
        }
      ],
      "targets": [
        {
          "name": "//bigquery.googleapis.com/projects/TARGET_PROJECT_ID/datasets/TARGET_DATASET_ID/tables/TARGET_TABLE_ID"
        }
      ]
    },
    "findingClass": "THREAT",
    "findingProviderId": "organizations/ORGANIZATION_ID/firstPartyFindingProviders/etd",
    "indicator": {},
    "kernelRootkit": {},
    "kubernetes": {},
    "mitreAttack": {
      "primaryTactic": "EXFILTRATION",
      "primaryTechniques": [
        "EXFILTRATION_OVER_WEB_SERVICE",
        "EXFILTRATION_TO_CLOUD_STORAGE"
      ]
    },
    "mute": "UNDEFINED",
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "parentDisplayName": "Event Threat Detection",
    "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "severity": "HIGH",
    "state": "ACTIVE",
    "vulnerability": {}
  },
  "resource": {
    "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "display_name": "PROJECT_ID",
    "project_name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "project_display_name": "PROJECT_ID",
    "parent_name": "//cloudresourcemanager.googleapis.com/folders/FOLDER_ID",
    "parent_display_name": "FOLDER_NAME",
    "type": "google.cloud.resourcemanager.Project",
    "folders": [
      {
        "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_ID",
        "resourceFolderDisplayName": "FOLDER_NAME"
      }
    ]
  },
  "sourceProperties": {
    "sourceId": {
      "projectNumber": "PROJECT_NUMBER",
      "customerOrganizationNumber": "ORGANIZATION_ID"
    },
    "detectionCategory": {
      "technique": "org_exfiltration",
      "indicator": "audit_log",
      "ruleName": "big_query_exfil",
      "subRuleName": "exfil_to_external_table"
    },
    "detectionPriority": "HIGH",
    "affectedResources": [
      {
        "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"
      }
    ],
    "evidence": [
      {
        "sourceLogId": {
          "projectId": "PROJECT_ID",
          "resourceContainer": "projects/PROJECT_ID",
          "timestamp": {
            "seconds": "1685461795",
            "nanos": 341527000
          },
          "insertId": "INSERT_ID"
        }
      }
    ],
    "properties": {
      "dataExfiltrationAttempt": {
        "jobState": "SUCCEEDED",
        "jobLink": "https://console.cloud.google.com/bigquery?j=bq:BIGQUERY_JOB_LOCATION:BIGQUERY_JOB_ID&project=PROJECT_ID&page=queryresults",
        "job": {
          "projectId": "PROJECT_ID",
          "jobId": "BIGQUERY_JOB_ID",
          "location": "BIGQUERY_JOB_LOCATION"
        },
        "query": "QUERY",
        "sourceTables": [
          {
            "resourceUri": "https://console.cloud.google.com/bigquery?p=PROJECT_ID&d=DATASET_ID&t=TABLE_ID&page=table",
            "projectId": "PROJECT_ID",
            "datasetId": "DATASET_ID",
            "tableId": "TABLE_ID"
          }
        ],
        "destinationTables": [
          {
            "resourceUri": "https://console.cloud.google.com/bigquery?p=TARGET_PROJECT_ID&d=TARGET_DATASET_ID&t=TARGET_TABLE_ID&page=table",
            "projectId": "TARGET_PROJECT_ID",
            "datasetId": "TARGET_DATASET_ID",
            "tableId": "TARGET_TABLE_ID"
          }
        ],
        "userEmail": "e2etest@PROJECT_ID.iam.gserviceaccount.com"
      },
      "principalEmail": "PRINCIPAL_EMAIL"
    },
    "findingId": "FINDING_ID",
    "contextUris": {
      "mitreUri": {
        "displayName": "MITRE Link",
        "url": "https://attack.mitre.org/techniques/T1567/002/"
      },
      "cloudLoggingQueryUri": [
        {
          "displayName": "Cloud Logging Query Link",
          "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%222023-05-30T15:49:55.341527Z%22%0AinsertId%3D%22INSERT_ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID"
        }
      ],
      "relatedFindingUri": {}
    }
  }
}

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