במסמך הזה מתואר סוג של ממצא איום ב-Security Command Center. ממצאי איומים נוצרים על ידי מזהי איומים כשהם מזהים איום פוטנציאלי במשאבי הענן שלכם. רשימה מלאה של ממצאי האיומים הזמינים מופיעה במאמר אינדקס ממצאי האיומים.
סקירה כללית
כדי לזהות העברת נתונים לא מורשית מ-Cloud SQL, בודקים את יומני הביקורת בשני תרחישים:
- נתונים של מופע פעיל שמיוצאים לקטגוריה של Cloud Storage מחוץ לארגון.
- נתונים של מופע פעיל שמיוצאים לקטגוריה של Cloud Storage שבבעלות הארגון ונגישה באופן ציבורי.
יש תמיכה בכל סוגי המופעים של Cloud SQL.
אם הפעלתם את מסלול הפרימיום של Security Command Center ברמת הפרויקט, הממצא הזה זמין רק אם מסלול Standard-legacy מופעל בארגון האב.
המקור של הממצא הזה הוא Event Threat Detection.
איך מגיבים
כדי להגיב לממצא הזה:
שלב 1: בדיקת פרטי הממצא
- פותחים ממצא של
Exfiltration: Cloud SQL Data Exfiltrationלפי ההוראות שבקטע בדיקת ממצאים. חלונית הפרטים של הממצא נפתחת בכרטיסייה סיכום. בכרטיסייה סיכום, בודקים את המידע בקטעים הבאים:
- מה זוהה, במיוחד השדות הבאים:
- כתובת האימייל העיקרית : החשבון ששימש להעברת הנתונים.
- מקורות של העברת נתונים לא מורשית: פרטים על מכונת Cloud SQL שהנתונים שלה הועברו לא מורשית.
- יעדי אקספילטרציה: פרטים על הקטגוריה של Cloud Storage שאליה יוצאו הנתונים.
- מקור המידע שהושפע, במיוחד השדות הבאים:
- השם המלא של המשאב: שם המשאב של Cloud SQL שממנו בוצעה גניבת הנתונים.
- השם המלא של הפרויקט: Google Cloud הפרויקט שמכיל את נתוני המקור של Cloud SQL.
- קישורים רלוונטיים, כולל:
- Cloud Logging URI: קישור לרשומות ב-Logging.
- שיטת MITRE ATT&CK: קישור למסמכי התיעוד של MITRE ATT&CK.
- ממצאים קשורים: קישורים לממצאים קשורים.
- מה זוהה, במיוחד השדות הבאים:
לוחצים על הכרטיסייה JSON.
בשדה ה-JSON של הממצא, שימו לב לשדות הבאים:
sourceProperties:evidence:sourceLogId:-
projectId: הפרויקט ב- Google Cloud שמכיל את מופע Cloud SQL של המקור.
-
properties-
bucketAccess: האם יש גישה ציבורית לקטגוריה של Cloud Storage או שהיא חיצונית לארגון -
exportScope: כמה נתונים יוצאו, למשל, המופע כולו, מסד נתונים אחד או יותר, טבלה אחת או יותר או קבוצת משנה שצוינה על ידי שאילתה)
שלב 2: בדיקת ההרשאות וההגדרות
נכנסים לדף IAM במסוף Google Cloud .
אם צריך, בוחרים את הפרויקט של המופע שמופיע בשדה
projectIdב-JSON של הממצא (משלב 1).בדף שמופיע, בתיבה Filter, מזינים את כתובת האימייל שמופיעה בשורה Principal email בכרטיסייה Summary בפרטי הממצאים (משלב 1). בודקים אילו הרשאות משויכות לחשבון.
שלב 3: בדיקת היומנים
- במסוף Google Cloud , לוחצים על הקישור ב-Cloud Logging URI (משלב 1) כדי לעבור אל Logs Explorer. הדף Logs Explorer כולל את כל היומנים שקשורים למופע הרלוונטי של Cloud SQL.
שלב 4: מחקר על שיטות תקיפה ותגובה
- כדאי לעיין בערך של מסגרת MITRE ATT&CK לגבי סוג הממצא הזה: Exfiltration Over Web Service: Exfiltration to Cloud Storage (העברה לא מורשית דרך שירות אינטרנט: העברה לא מורשית אל Cloud Storage).
- כדי לעיין בממצאים קשורים, לוחצים על הקישור בשורה ממצאים קשורים שמתוארת בשלב 1. לממצאים קשורים יש את אותו סוג ממצא באותה מכונת Cloud SQL.
- כדי לפתח תוכנית תגובה, משלבים את תוצאות החקירה עם מחקר של MITRE.
שלב 5: הטמעה של התגובה
תוכנית התגובה הבאה עשויה להתאים לממצא הזה, אבל היא עלולה גם להשפיע על הפעולות. חשוב לבדוק בקפידה את המידע שאספתם במהלך הבדיקה כדי להבין מהי הדרך הטובה ביותר לפתור את הבעיות.
- צריך לפנות לבעלים של הפרויקט עם הנתונים שחולצו.
- מומלץ לבטל את ההרשאות של
access.principalEmailעד לסיום החקירה. - כדי למנוע העברה נוספת של נתונים, מוסיפים מדיניות IAM מגבילה למופעי Cloud SQL שהושפעו.
- כדי להגביל את הגישה ל-Cloud SQL Admin API ואת הייצוא ממנו, משתמשים ב-VPC Service Controls.
- כדי לזהות ולתקן תפקידים עם יותר מדי הרשאות, אפשר להשתמש בשירות המלצות של IAM.
דוגמה למציאת JSON
הנה דוגמה ל-JSON של הממצא.
{ "finding": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID", "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID", "resource_name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "state": "ACTIVE", "category": "Exfiltration: CloudSQL Data Exfiltration", "sourceProperties": { "sourceId": { "projectNumber": "PROJECT_NUMBER", "customerOrganizationNumber": "ORGANIZATION_ID" }, "detectionCategory": { "technique": "storage_bucket_exfiltration", "indicator": "audit_log", "ruleName": "cloudsql_exfil", "subRuleName": "export_to_public_gcs" }, "detectionPriority": "HIGH", "affectedResources": [ { "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER" }, { "gcpResourceName": "//storage.googleapis.com/TARGET_STORAGE_BUCKET_NAME" }, { "gcpResourceName": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME" } ], "evidence": [{ "sourceLogId": { "projectId": "PROJECT_ID", "resourceContainer": "projects/PROJECT_ID", "timestamp": { "seconds": "0", "nanos": 0.0 }, "insertId": "INSERT_ID" } }], "properties": { "exportToGcs": { "principalEmail": "PRINCIPAL_EMAIL", "cloudsqlInstanceResource": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "gcsUri": "gs://TARGET_STORAGE_BUCKET_NAME/TARGET_FILE_NAME", "bucketAccess": "PUBLICLY_ACCESSIBLE", "bucketResource": "//storage.googleapis.com/TARGET_STORAGE_BUCKET_NAME", "exportScope": "WHOLE_INSTANCE" } }, "findingId": "FINDING_ID", "contextUris": { "mitreUri": { "displayName": "MITRE Link", "url": "https://attack.mitre.org/techniques/T1567/002/" }, "cloudLoggingQueryUri": [{ "displayName": "Cloud Logging Query Link", "url": "LOGGING_LINK" }], "relatedFindingUri": { "displayName": "Related CloudSQL Exfiltration findings", "url": "RELATED_FINDINGS_LINK" } } }, "securityMarks": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks" }, "eventTime": "2021-10-11T16:32:59.828Z", "createTime": "2021-10-11T16:33:00.229Z", "severity": "HIGH", "workflowState": "NEW", "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID" "mute": "UNDEFINED", "findingClass": "THREAT", "mitreAttack": { "primaryTactic": "EXFILTRATION", "primaryTechniques": ["EXFILTRATION_OVER_WEB_SERVICE", "EXFILTRATION_TO_CLOUD_STORAGE"] }, "access": { "principalEmail": "PRINCIPAL_EMAIL", "callerIp": "IP", "callerIpGeo": { }, "serviceName": "cloudsql.googleapis.com", "methodName": "cloudsql.instances.export" }, "exfiltration": { "sources": [ { "name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "components": [] } ], "targets": [ { "name": "//storage.googleapis.com/TARGET_STORAGE_BUCKET_NAME", "components": [ "TARGET_FILE_NAME" ] } ] }, }, "resource": { "name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "projectDisplayName": "PROJECT_ID", "parentName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "parentDisplayName": "PROJECT_ID", "type": "google.cloud.sql.Instance", "folders": [{ "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_NUMBER", "resourceFolderDisplayName": "FOLDER_NAME" }], "displayName": "INSTANCE_NAME" } }
המאמרים הבאים
- איך עובדים עם ממצאי איומים ב-Security Command Center
- אפשר לעיין באינדקס של ממצאי איומים.
- איך בודקים ממצא דרך מסוף Google Cloud .
- מידע על השירותים שמפיקים ממצאים לגבי איומים