規避防護功能:修改 VPC Service Controls

本文說明 Security Command Center 中的威脅發現項目類型。威脅偵測工具偵測到雲端資源中可能存在威脅時,就會產生威脅發現項目。如需可用威脅發現項目的完整清單,請參閱威脅發現項目索引

總覽

這項發現項目不適用於專案層級的啟用作業。

系統會檢查稽核記錄,偵測 VPC Service Controls perimeter 的變更,這些變更可能會導致該 perimeter 提供的保護機制減少。以下列舉幾個範例:

Event Threat Detection 是這項發現項目的來源。

回應方式

如要回應這項發現項目,請按照下列步驟操作:

步驟 1:查看調查結果詳細資料

  1. 按照「查看發現項目」一文的指示,開啟 Defense Evasion: Modify VPC Service Control 發現項目。系統會開啟發現項目的詳細資料面板,並顯示「摘要」分頁。
  2. 在「摘要」分頁中,查看下列各節的資訊:

    • 偵測到的內容,尤其是下列欄位:
      • 主體電子郵件地址:執行修改作業的帳戶。
    • 受影響的資源,尤其是下列欄位:
      • 資源完整名稱:已修改的 VPC Service Controls 範圍名稱。
    • 相關連結
      • Cloud Logging URI:記錄項目連結。
      • MITRE ATT&CK 方法:連結至 MITRE ATT&CK 文件。
      • 相關發現項目:任何相關發現項目的連結。
  3. 按一下「JSON」分頁標籤。

  4. 請注意 JSON 中的下列欄位。

    • sourceProperties
      • properties
        • name:已修改的 VPC Service Controls 範圍名稱
        • policyLink:控管 perimeter 的存取權政策連結
        • delta:對周邊防護範圍所做的變更 (REMOVEADD),導致防護範圍縮小
        • restricted_resources:遵守這個範圍限制的專案。移除專案會降低保護力
        • restricted_services:受這個 perimeter 限制而無法執行的服務。如果移除受限制的服務,保護效果會降低
        • allowed_services:允許在該安全範圍限制下執行的服務。新增允許的服務會降低保護力
        • access_levels:設定允許存取 perimeter 下資源的存取層級。新增更多存取層級會降低保護力

步驟 2:檢查記錄

  1. 在發現項目詳細資料面板的「摘要」分頁中,按一下「Cloud Logging URI」連結,開啟「Logs Explorer」
  2. 使用下列篩選器,找出與 VPC Service Controls 變更相關的管理員活動記錄:
    • protoPayload.methodName:"AccessContextManager.UpdateServicePerimeter"
    • protoPayload.methodName:"AccessContextManager.ReplaceServicePerimeters"

步驟 3:研究攻擊和回應方法

  1. 請參閱這類發現項目的 MITRE ATT&CK 框架項目: 規避防禦措施:修改驗證程序
  2. 如要查看相關發現項目,請在發現項目詳細資料的「摘要」分頁中,點選「相關發現項目」列的「相關發現項目」連結。
  3. 如要制定回應計畫,請將調查結果與 MITRE 研究結合。

步驟 4:實作回應

下列應變計畫可能適用於這項發現,但也可能影響作業。 請仔細評估調查期間收集到的資訊,找出解決問題的最佳方式。

  • 請與 VPC Service Controls 政策和範圍的擁有者聯絡。
  • 建議您在調查完成前,先還原周邊裝置的變更。
  • 在調查完成前,請考慮撤銷修改安全範圍主體的 Access Context Manager 角色
  • 調查保護措施降低後的使用情形。舉例來說,如果啟用「BigQuery 資料移轉服務 API」或將其新增為允許的服務,請檢查是誰開始使用該服務,以及他們要移轉的內容。

發現項目 JSON 範例

以下是發現項目 JSON 的範例。

{
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resourceName": "//accesscontextmanager.googleapis.com/accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER",
    "state": "ACTIVE",
    "category": "Defense Evasion: Modify VPC Service Control",
    "sourceProperties": {
      "sourceId": {
        "organizationNumber": "ORGANIZATION_ID",
        "customerOrganizationNumber": "ORGANIZATION_ID"
      },
      "detectionCategory": {
        "technique": "modify_auth_process",
        "indicator": "audit_log",
        "ruleName": "vpcsc_changes",
        "subRuleName": "reduce_perimeter_protection"
      },
      "detectionPriority": "LOW",
      "affectedResources": [
        {
          "gcpResourceName": "//accesscontextmanager.googleapis.com/accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER"
        },
        {
          "gcpResourceName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID"
        }
      ],
      "evidence": [{
        "sourceLogId": {
          "resourceContainer": "organizations/ORGANIZATION_ID",
          "timestamp": {
            "seconds": "1633625631",
            "nanos": 1.78978E8
          },
          "insertId": "INSERT_ID"
        }
      }],
      "properties": {
        "name": "accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER",
        "policyLink": "LINK_TO_VPC_SERVICE_CONTROLS",
        "delta": {
          "restrictedResources": [{
            "resourceName": "PROJECT_NAME",
            "action": "REMOVE"
          }],
          "restrictedServices": [{
            "serviceName": "SERVICE_NAME",
            "action": "REMOVE"
          }],
          "allowedServices": [{
            "serviceName": "SERVICE_NAME",
            "action": "ADD"
          }],
          "accessLevels": [{
            "policyName": "ACCESS_LEVEL_POLICY",
            "action": "ADD"
          }]
        }
      },
      "findingId": "FINDING_ID",
      "contextUris": {
        "mitreUri": {
          "displayName": "MITRE Link",
          "url": "https://attack.mitre.org/techniques/T1556/"
        },
        "cloudLoggingQueryUri": [{
          "displayName": "Cloud Logging Query Link",
          "url": "https://console.cloud.google.com/logs/query;query\u003dtimestamp%3D%222021-10-07T16:53:51.178978Z%22%0AinsertId%3D%22-INSERT_ID%22%0Aresource.labels.project_id%3D%22%22?project\u003d"
        }]
      }
    },
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
    },
    "eventTime": "2021-10-07T16:53:53.875Z",
    "createTime": "2021-10-07T16:53:54.411Z",
    "severity": "MEDIUM",
    "workflowState": "NEW",
    "canonicalName": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "mute": "UNDEFINED",
    "findingClass": "THREAT",
    "access": {
      "principalEmail": "PRINCIPAL_EMAIL",
      "callerIp": "IP",
      "callerIpGeo": {},
      "serviceName": "accesscontextmanager.googleapis.com",
      "methodName": "google.identity.accesscontextmanager.v1.AccessContextManager.UpdateServicePerimeter"
    }
  },
  "resource": {
    "name": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
    "type": "google.cloud.resourcemanager.Organization",
    "displayName": "RESOURCE_DISPLAY_NAME"
  }
}

後續步驟