ההשפעה: ייבוא מסמכים ממשאב חיצוני ל-Gemini Discovery Engine API

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

סקירה כללית

ניסיון לייבא מסמכים למאגר מידע ב-Gemini Enterprise ממשאב חיצוני Google Cloud מחוץ לארגון או לפרויקט, כמו קטגוריה חיצונית של Cloud Storage או מערך נתונים חיצוני של BigQuery. כברירת מחדל, הממצאים מסווגים ברמת חומרה Medium.

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

איך להגיב

כדי להגיב לממצא הזה, צריך לבצע את הפעולות הבאות:

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

  1. פותחים את הממצא Impact: Gemini Discovery Engine API Document Import from External Resource לפי ההוראות שבקטע בדיקת הממצאים. חלונית הפרטים של הממצא נפתחת בכרטיסייה Summary.

  2. בכרטיסייה סיכום, בודקים את המידע בקטעים הבאים:

    • מה זוהה, במיוחד בשדות הבאים:
      • כתובת האימייל של חשבון המשתמש: כתובת האימייל של המשתמש, חשבון השירות או סוכן ה-AI שהתחילו את ייבוא המסמך.
      • שם ה-method: ה-method של ה-API שנשלחה אליה קריאה (google.cloud.discoveryengine.v1.DocumentService.ImportDocuments).
    • המשאב המושפע:
      • ‫Resource full name: השם המלא של המשאב של הפרויקט, התיקייה או הארגון שבהם נמצא מאגר הנתונים של Gemini Enterprise.
    • קישורים רלוונטיים, במיוחד השדות הבאים:
      • Cloud Logging URI: קישור לרשומות ב-Logging.
      • שיטת MITRE ATT&CK: קישור למסמכי התיעוד של MITRE ATT&CK.

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

  1. בכרטיסייה Summary בחלונית הפרטים של הממצא, לוחצים על הקישור Cloud Logging URI כדי לפתוח את Logs Explorer.
  2. בדף שנטען, מחפשים פעולות ייבוא של מסמכים ב-Gemini Enterprise באמצעות המסננים הבאים:
    • protoPayload.serviceName="discoveryengine.googleapis.com"
    • protoPayload.methodName="google.cloud.discoveryengine.v1.DocumentService.ImportDocuments"
  3. בודקים את protoPayload.request כדי לזהות את מאגר הנתונים של היעד (parent) ואת המשאב של המקור החיצוני (למשל gcsSource.inputUris,‏ bigquerySource,‏ cloudSqlSource,‏ spannerSource,‏ firestoreSource,‏ alloyDbSource,‏ bigtableSource או fhirStoreSource).

שלב 3: חקירת שיטות התקיפה והתגובה

  1. כדאי לעיין ברשומות של מסגרת MITRE ATT&CK שרלוונטיות לסוג הממצא הזה: Data Manipulation: Stored Data Manipulation.
  2. כדי לפתח תוכנית תגובה, שלבו את תוצאות החקירה עם מחקר של MITRE.

שלב 4: מיישמים את התגובה

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

  1. פנו לבעלים של הפרויקט שמכיל את מאגר הנתונים המושפע ב-Gemini Enterprise, כדי לוודא שהייבוא מהמשאב החיצוני אושר. אם הפעולה לגיטימית, צריך להגדיר גישה מהימנה למשאבים בפרויקטים שונים או להטמיע מקטגוריה פנימית.
  2. מומלץ לבטל את ההרשאות של חשבון המשתמש שהתחיל את הייבוא עד לסיום הבדיקה.
  3. כדי למנוע הרעלה של מאגר הידע או החדרת פרומפטים עקיפה, בדקו והסירו מסמכים לא מורשים או לא מהימנים שיובאו למאגר הנתונים של Gemini Enterprise.
  4. כדי למנוע העברת נתונים בין גבולות הארגון, צריך להגדיר גבולות גזרה לשירות של VPC Service Controls מסביב למשאבי האחסון ול-Gemini Enterprise.

במאמר תגובה לממצאי איומים של AI מפורטות המלצות לתגובה.

דוגמה לממצא בפורמט 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": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "state": "ACTIVE",
    "category": "Impact: Gemini Discovery Engine API Document Import from External Resource",
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global/findings/FINDING_ID/securityMarks"
    },
    "eventTime": "TIMESTAMP",
    "createTime": "TIMESTAMP",
    "severity": "MEDIUM",
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/locations/global/findings/FINDING_ID",
    "findingClass": "THREAT",
    "access": {
      "principalEmail": "PRINCIPAL_EMAIL",
      "callerIp": "IP_ADDRESS",
      "callerIpGeo": {
        "regionCode": "COUNTRY_CODE"
      },
      "userAgent": "USER_AGENT",
      "serviceName": "discoveryengine.googleapis.com",
      "methodName": "google.cloud.discoveryengine.v1.DocumentService.ImportDocuments",
      "principalSubject": "user:PRINCIPAL_EMAIL"
    },
    "mitreAttack": {
      "primaryTactic": "IMPACT",
      "additionalTactics": [
        "DEFENSE_EVASION",
        "PERSISTENCE"
      ]
    },
    "parentDisplayName": "Event Threat Detection",
    "domains": [
      {
        "category": "AI"
      }
    ],
    "logEntries": [
      {
        "cloudLoggingEntry": {
          "insertId": "INSERT_ID",
          "logId": "cloudaudit.googleapis.com/data_access",
          "resourceContainer": "projects/PROJECT_ID",
          "timestamp": "TIMESTAMP"
        }
      }
    ]
  },
  "resource": {
    "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "displayName": "PROJECT_ID",
    "type": "google.cloud.resourcemanager.Project",
    "cloudProvider": "GOOGLE_CLOUD_PLATFORM",
    "service": "cloudresourcemanager.googleapis.com",
    "gcpMetadata": {
      "project": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
      "projectDisplayName": "PROJECT_ID",
      "parent": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
      "parentDisplayName": "ORGANIZATION_DISPLAY_NAME",
      "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": "gemini_enterprise_document_import_attempt_from_external_resource"
    },
    "detectionPriority": "MEDIUM",
    "affectedResources": [
      {
        "gcpResourceName": "//discoveryengine.googleapis.com/projects/PROJECT_NUMBER/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID/branches/0"
      },
      {
        "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"
      }
    ],
    "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"
        }
      }
    ],
    "findingId": "FINDING_ID",
    "contextUris": {
      "mitreUri": {
        "displayName": "MITRE Link",
        "url": "https://attack.mitre.org/techniques/T1565/001/"
      },
      "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"
      }
    ]
  }
}

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