במסמך הזה מתואר סוג של ממצא איום ב-Security Command Center. ממצאי האיומים נוצרים על ידי מזהי איומים כשהם מזהים איום פוטנציאלי במשאבי הענן שלכם. רשימה מלאה של ממצאי האיומים הזמינים מופיעה באינדקס של ממצאי האיומים.
סקירה כללית
הממצאים שמוחזרים על ידי Exfiltration: BigQuery
Data Exfiltration מכילים אחד משני כללי משנה אפשריים. לכל כלל משנה יש רמת חומרה שונה:
- כלל משנה
exfil_to_external_tableעם חומרה =HIGH:- משאב נשמר מחוץ לארגון או לפרויקט שלכם.
- כלל משנה
vpc_perimeter_violationעם חומרה =LOW:- VPC Service Controls חסם פעולת העתקה או ניסיון גישה למשאבים של BigQuery.
המקור של הממצא הזה הוא Event Threat Detection.
איך מגיבים
כדי להגיב לממצא הזה:
שלב 1: בדיקת פרטי הממצא
- פותחים את
Exfiltration: BigQuery Data Exfiltrationהממצא לפי ההוראות שבקטע בדיקת הממצאים. בכרטיסייה Summary (סיכום) בחלונית הפרטים של הממצא, בודקים את הערכים שמופיעים בקטעים הבאים:
- מה זוהה:
- מידת החומרה: מידת החומרה היא
HIGHעבור כלל המשנהexfil_to_external_tableאוLOWעבור כלל המשנהvpc_perimeter_violation. - כתובת האימייל העיקרית: החשבון ששימש להעברת הנתונים.
- מקורות של אקספילטרציה: פרטים על הטבלאות שמהן בוצעה אקספילטרציה של נתונים.
- יעדי אקספילטרציה: פרטים על הטבלאות שבהן אוחסנו הנתונים שחולצו.
- מידת החומרה: מידת החומרה היא
- מקור המידע שהושפע:
- השם המלא של המשאב: השם המלא של המשאב של הפרויקט, התיקייה או הארגון שממנו בוצעה גניבת הנתונים.
- קישורים רלוונטיים:
- Cloud Logging URI: קישור לרשומות ב-Logging.
- שיטת MITRE ATT&CK: קישור למסמכי התיעוד של MITRE ATT&CK.
- ממצאים קשורים: קישורים לממצאים קשורים.
- מה זוהה:
לוחצים על הכרטיסייה נכסי מקור ובודקים את השדות שמוצגים, ובמיוחד את השדות הבאים:
detectionCategory:-
subRuleName:exfil_to_external_tableאוvpc_perimeter_violation.
-
evidence:sourceLogId:-
projectId: הפרויקט Google Cloud שמכיל את מערך הנתונים של BigQuery כמקור.
-
propertiesdataExfiltrationAttempt-
jobLink: הקישור לעבודת BigQuery שדרכה בוצעת גניבת הנתונים. -
query: שאילתת ה-SQL שמופעלת במערך הנתונים של BigQuery.
-
אפשר גם ללחוץ על הכרטיסייה JSON כדי לראות את הרשימה המלאה של מאפייני ה-JSON של הממצא.
שלב 2: בדיקת ההרשאות וההגדרות
נכנסים לדף IAM במסוף Google Cloud .
אם צריך, בוחרים את הפרויקט שמופיע בשדה
projectIdבקובץ ה-JSON של הממצא.בדף שמופיע, בתיבה Filter, מזינים את כתובת האימייל שמופיעה בPrincipal email ובודקים אילו הרשאות הוקצו לחשבון.
שלב 3: בדיקת היומנים
- בכרטיסיית הסיכום של חלונית פרטי הממצא, לוחצים על הקישור Cloud Logging URI כדי לפתוח את Logs Explorer.
כדי למצוא יומני פעילות של אדמין שקשורים למשימות BigQuery, משתמשים במסננים הבאים:
protoPayload.methodName="Jobservice.insert"protoPayload.methodName="google.cloud.bigquery.v2.JobService.InsertJob"
שלב 4: מחקר על שיטות תקיפה ותגובה
- כדאי לעיין בערך של מסגרת MITRE ATT&CK לגבי סוג הממצא הזה: Exfiltration Over Web Service: Exfiltration to Cloud Storage (העברה לא מורשית דרך שירות אינטרנט: העברה לא מורשית אל Cloud Storage).
- כדי לעיין בממצאים קשורים, לוחצים על הקישור ממצאים קשורים בשורה ממצאים קשורים בכרטיסייה סיכום של פרטי הממצא. ממצאים קשורים הם ממצאים מאותו סוג באותו מופע ובאותה רשת.
- כדי לפתח תוכנית תגובה, משלבים את תוצאות החקירה עם מחקר של MITRE.
שלב 5: הטמעת התגובה
תוכנית התגובה הבאה עשויה להתאים לממצא הזה, אבל היא עלולה גם להשפיע על הפעולות. חשוב לבדוק בקפידה את המידע שאספתם במהלך הבדיקה כדי להבין מהי הדרך הטובה ביותר לפתור את הבעיות.
- צריך לפנות לבעלים של הפרויקט עם הנתונים שחולצו.
- מומלץ לבטל את ההרשאות של
userEmailעד לסיום החקירה. - כדי למנוע חילוץ נתונים נוסף, מוסיפים מדיניות IAM מגבילה למערכי הנתונים המושפעים ב-BigQuery (
exfiltration.sourcesו-exfiltration.targets). - כדי לסרוק מערכי נתונים מושפעים ולחפש בהם מידע רגיש, משתמשים ב-Sensitive Data Protection. אפשר גם לשלוח נתונים של Sensitive Data Protection אל Security Command Center. העלויות של Sensitive Data Protection יכולות להיות משמעותיות, בהתאם לכמות המידע. חשוב לפעול לפי השיטות המומלצות לשמירה על עלויות השימוש ב-Sensitive Data Protection.
- כדי להגביל את הגישה ל-BigQuery API, משתמשים ב-VPC Service Controls.
- כדי לזהות ולתקן תפקידים עם יותר מדי הרשאות, אפשר להשתמש בשירות המלצות של IAM.
דוגמה למציאת 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": {} } } }
המאמרים הבאים
- איך עובדים עם ממצאי איומים ב-Security Command Center
- אפשר לעיין באינדקס של ממצאי איומים.
- איך בודקים ממצא דרך מסוף Google Cloud .
- מידע על השירותים שמפיקים ממצאים לגבי איומים