במאמר הזה מתואר סוג של ממצא איום ב-Security Command Center. ממצאי האיומים נוצרים על ידי מזהי איומים כשהם מזהים איום פוטנציאלי במשאבי הענן שלכם. רשימה מלאה של ממצאי האיומים הזמינים מופיעה באינדקס של ממצאי האיומים.
סקירה כללית
כדי לזהות העברה לא מורשית של נתונים מ-Cloud SQL שבוצעה על ידי סוכן AI, צריך לבדוק את יומני הביקורת של נתוני המכונה בזמן אמת שיוצאו לקטגוריה ב-Cloud Storage שנמצאת בבעלות הארגון ונגישה לציבור.
כל סוגי המכונות של Cloud SQL נתמכים.
אם הפעלתם את מהדורת הפרימיום של Security Command Center ברמת הפרויקט, הממצא הזה זמין רק אם מהדורת Standard-legacy מופעלת בארגון האב.
Event Threat Detection הוא המקור של הממצא הזה.
איך מגיבים
כדי להגיב לממצא הזה:
שלב 1: בדיקת פרטי הממצא
- פותחים ממצא של
Exfiltration: AI Agent Initiated CloudSQL Exfiltration to Public Bucketלפי ההוראות שבקטע בדיקת ממצאים. חלונית הפרטים של הממצא נפתחת בכרטיסייה סיכום. בכרטיסייה Summary (סיכום), בודקים את המידע בקטעים הבאים:
- מה זוהה, במיוחד השדות הבאים:
- כתובת האימייל העיקרית : החשבון ששימש להעברת הנתונים.
- מקורות של העברת נתונים לא מורשית: פרטים על מכונת 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-
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 לגבי סוג הממצא הזה: העברה של נתונים אל 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/locations/global/findings/FINDING_ID", "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global", "resourceName": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "state": "ACTIVE", "category": "Exfiltration: AI Agent Initiated CloudSQL Exfiltration to Public Bucket", "securityMarks": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global/findings/FINDING_ID/securityMarks" }, "eventTime": "TIMESTAMP", "createTime": "TIMESTAMP", "severity": "HIGH", "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/locations/global/findings/FINDING_ID", "findingClass": "THREAT", "access": { "callerIp": "IP_ADDRESS", "callerIpGeo": { "regionCode": "COUNTRY_CODE" }, "serviceName": "cloudsql.googleapis.com", "methodName": "cloudsql.instances.export", "principalSubject": "principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/REASONING_ENGINE_ID" }, "mitreAttack": { "primaryTactic": "EXFILTRATION", "primaryTechniques": [ "EXFILTRATION_OVER_WEB_SERVICE", "EXFILTRATION_TO_CLOUD_STORAGE" ] }, "exfiltration": { "sources": [ { "name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "components": [ "Databases: DATABASE_NAME" ] } ], "targets": [ { "name": "//storage.googleapis.com/TARGET_STORAGE_BUCKET_NAME", "components": [ "TARGET_FILE_NAME" ] } ] }, "parentDisplayName": "Event Threat Detection", "domains": [ { "category": "AI" }, { "category": "IDENTITY_AND_ACCESS" } ], "logEntries": [ { "cloudLoggingEntry": { "insertId": "INSERT_ID", "logId": "cloudaudit.googleapis.com/data_access", "resourceContainer": "projects/PROJECT_ID", "timestamp": "TIMESTAMP" } } ] }, "resource": { "name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "displayName": "INSTANCE_NAME", "type": "google.cloud.sql.Instance", "cloudProvider": "GOOGLE_CLOUD_PLATFORM", "service": "sqladmin.googleapis.com", "location": "LOCATION", "gcpMetadata": { "project": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "projectDisplayName": "PROJECT_ID", "parent": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "parentDisplayName": "PROJECT_ID", "organization": "organizations/ORGANIZATION_ID" }, "resourcePath": { "nodes": [ { "nodeType": "GCP_PROJECT", "id": "projects/PROJECT_NUMBER", "displayName": "PROJECT_ID" }, { "nodeType": "GCP_ORGANIZATION", "id": "organizations/ORGANIZATION_ID" } ] }, "resourcePathString": "organizations/ORGANIZATION_ID/projects/PROJECT_NUMBER" }, "sourceProperties": { "sourceId": { "projectNumber": "PROJECT_NUMBER", "customerOrganizationNumber": "ORGANIZATION_ID" }, "detectionCategory": { "ruleName": "agent_engine_cloudsql_exfil", "subRuleName": "agent_engine_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": "TIMESTAMP_SECONDS", "nanos": TIMESTAMP_NANOS }, "insertId": "INSERT_ID", "logId": "cloudaudit.googleapis.com/data_access" } } ], "properties": { "exportToGcs": { "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": "ONE_OR_MORE_DATABASES" } }, "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%22TIMESTAMP%22%0AinsertId%3D%22INSERT_ID%22?project=PROJECT_ID" } ] }, "domains": [ { "category": "AI" }, { "category": "IDENTITY_AND_ACCESS" } ] } }
המאמרים הבאים
- איך עובדים עם ממצאי איומים ב-Security Command Center
- אפשר לעיין באינדקס של ממצאי איומים.
- איך בודקים ממצא דרך מסוף Google Cloud .
- מידע על השירותים שמפיקים ממצאים לגבי איומים