במסמך הזה מתואר סוג של ממצא איום ב-Security Command Center. ממצאי האיומים נוצרים על ידי מזהי איומים כשהם מזהים איום פוטנציאלי במשאבי הענן שלכם. רשימה מלאה של ממצאי האיומים הזמינים מופיעה באינדקס של ממצאי האיומים.
סקירה כללית
חשבון הסופר-משתמש במסד הנתונים של Cloud SQL (postgres ל-PostgreSQL ו-root ל-MySQL) כתב לטבלאות משתמשים. בדרך כלל לא מומלץ להשתמש במשתמש על (תפקיד עם גישה רחבה מאוד) כדי לכתוב לטבלאות משתמשים. צריך להשתמש בחשבון משתמש עם גישה מוגבלת יותר לפעילות היומיומית הרגילה. כשמשתמש על כותב לטבלת משתמשים, זה יכול להצביע על כך שתוקף העלה את ההרשאות שלו או פגע במשתמש ברירת המחדל של מסד הנתונים ומשנה את הנתונים. יכול להיות גם שהיא מצביעה על שיטות רגילות אבל לא בטוחות.
המקור של הממצא הזה הוא Event Threat Detection.
איך מגיבים
כדי להגיב לממצא הזה:
שלב 1: בדיקת פרטי הממצא
- פותחים ממצא של
Initial Access: Database Superuser Writes to User Tablesכמו שמתואר במאמר בדיקת ממצאים. בכרטיסייה Summary (סיכום) בחלונית הפרטים של הממצא, בודקים את המידע בקטעים הבאים:
- מה זוהה, במיוחד השדות הבאים:
- השם המוצג של מסד הנתונים: השם של מסד הנתונים במכונה של Cloud SQL PostgreSQL או MySQL שהושפעה.
- שם המשתמש במסד הנתונים: משתמש העל.
- שאילתת מסד נתונים: שאילתת ה-SQL שמופעלת בזמן הכתיבה לטבלאות המשתמשים.
- מקור המידע שהושפע, במיוחד השדות הבאים:
- השם המלא של המשאב: שם המשאב של מופע Cloud SQL שהושפע.
- שם מלא של ההורה: שם המשאב של מופע Cloud SQL.
- השם המלא של הפרויקט: Google Cloud הפרויקט שמכיל את המופע של Cloud SQL.
- קישורים רלוונטיים, במיוחד השדות הבאים:
- Cloud Logging URI: קישור לרשומות ב-Logging.
- שיטת MITRE ATT&CK: קישור למסמכי התיעוד של MITRE ATT&CK.
- ממצאים קשורים: קישורים לממצאים קשורים.
- מה זוהה, במיוחד השדות הבאים:
כדי לראות את ה-JSON המלא של הממצא, לוחצים על הכרטיסייה JSON.
שלב 2: בדיקת היומנים
- במסוף Google Cloud , לוחצים על הקישור ב-
cloudLoggingQueryURI(משלב 1) כדי לעבור אל Logs Explorer. הדף Logs Explorer כולל את כל היומנים שקשורים למופע הרלוונטי של Cloud SQL. - כדי לבדוק את היומנים של PostgreSQL pgaudit או את יומני הביקורת של Cloud SQL ל-MySQL, שמכילים את השאילתות שהופעלו על ידי משתמש העל, משתמשים במסננים הבאים:
protoPayload.request.user="SUPERUSER"
שלב 3: מחקר של שיטות התקפה ותגובה
- כדאי לעיין בערך של מסגרת MITRE ATT&CK לגבי סוג הממצא הזה: Exfiltration Over Web Service (העברה לא מורשית של נתונים דרך שירות אינטרנט).
- כדי לקבוע אם יש צורך בפעולות נוספות לתיקון הבעיה, כדאי לשלב את תוצאות הבדיקה עם מחקר של MITRE.
שלב 4: מטמיעים את התגובה
תוכנית התגובה הבאה עשויה להתאים לממצא הזה, אבל היא עלולה גם להשפיע על הפעולות. חשוב לבדוק בקפידה את המידע שאספתם במהלך הבדיקה כדי להבין מהי הדרך הטובה ביותר לפתור את הבעיות.
בודקים את המשתמשים שמורשים להתחבר למסד הנתונים.
- ל-PostgreSQL, אפשר לעיין במאמר בנושא יצירה וניהול של משתמשים
- ל-MySQL, אפשר לעיין במאמר בנושא ניהול משתמשים באמצעות אימות מובנה
כדאי לשנות את הסיסמה של משתמש העל.
- ב-PostgreSQL, אפשר לעיין במאמר בנושא הגדרת הסיסמה למשתמש ברירת המחדל
- ב-MySQL, אפשר לעיין במאמר בנושא הגדרת הסיסמה למשתמש ברירת המחדל
כדאי ליצור משתמש חדש עם גישה מוגבלת לסוגים השונים של שאילתות שמשמשות במופע.
נותנים למשתמש החדש רק את ההרשאות הנדרשות להרצת השאילתות שלו.
- לגבי PostgreSQL, אפשר לעיין במאמר בנושא Grant (פקודה)
- לגבי MySQL, אפשר לעיין במאמר בנושא בקרת גישה וניהול חשבונות
עדכון פרטי הכניסה של הלקוחות שמתחברים למכונה של Cloud SQL
דוגמה למציאת 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": "Initial Access: Database Superuser Writes to User Tables", "sourceProperties": { "sourceId": { "projectNumber": "PROJECT_NUMBER", "customerOrganizationNumber": "ORGANIZATION_ID" }, "detectionCategory": { "ruleName": "cloudsql_superuser_writes_to_user_tables", }, "detectionPriority": "LOW", "affectedResources": [ { "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER" }, { "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" } }], "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" } } }, "eventTime": "2022-01-19T21:36:07.901Z", "createTime": "2022-01-19T21:36:08.695Z", "severity": "LOW", "workflowState": "NEW", "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID" "mute": "UNDEFINED", "findingClass": "THREAT", "mitreAttack": { "primaryTactic": "INITIAL_ACCESS", "primaryTechniques": ["DEFAULT_ACCOUNTS"] }, "database": { "displayName": "DATABASE_NAME", "userName": "USER_NAME", "query": "QUERY", }, "access": { "serviceName": "cloudsql.googleapis.com", "methodName": "cloudsql.instances.query" } }, "resource": { "name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "projectDisplayName": "PROJECT_ID", "parentName": "//cloudsql.googleapis.com/projects/PROJECT_NUMBER", "parentDisplayName": "PROJECT_ID", "type": "google.cloud.sql.Instance", "folders": [{ "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_NUMBER", "resourceFolderDisplayName": "FOLDER_ID" }], "displayName": "INSTANCE_NAME" } }
המאמרים הבאים
- איך עובדים עם ממצאי איומים ב-Security Command Center
- אפשר לעיין באינדקס של ממצאי איומים.
- איך בודקים ממצא דרך מסוף Google Cloud .
- מידע על השירותים שמפיקים ממצאים לגבי איומים