主動掃描:Log4j 容易受到 RCE 攻擊

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

總覽

支援的 Log4j 漏洞掃描器會在 HTTP 參數、網址和文字欄位中插入模糊化的 JNDI 查詢,並回呼掃描器控管的網域。如果發現未經過模糊處理的網域 DNS 查詢,就會產生這項發現項目。只有在 JNDI 查閱成功時,才會發生這類查詢,表示 Log4j 存在有效漏洞。

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

回應方式

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

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

  1. 按照「查看發現項目詳細資料」一文的說明,開啟 Active Scan: Log4j Vulnerable to RCE 發現項目。系統會開啟發現項目的詳細資料面板,並顯示「摘要」分頁。

  2. 在「摘要」分頁中,查看下列各節的資訊:

    • 偵測到的內容
    • 受影響的資源,尤其是下列欄位:
      • 資源完整名稱:易受 Log4j RCE 攻擊的 Compute Engine 執行個體的完整資源名稱
    • 相關連結,尤其是下列欄位:
      • Cloud Logging URI:記錄項目連結。
      • MITRE ATT&CK 方法:連結至 MITRE ATT&CK 文件。
      • 相關發現項目:任何相關發現項目的連結。
  3. 在調查結果的詳細資料檢視畫面中,按一下「JSON」分頁標籤。

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

    • properties
      • scannerDomain:掃描器在 JNDI 查閱程序中使用的網域。這會顯示找出安全漏洞的掃描器。
      • sourceIp:用於發出 DNS 查詢的 IP 位址
      • vpcName:執行個體上進行 DNS 查詢的網路名稱。

步驟 2:檢查記錄

  1. 在 Google Cloud 控制台中,按一下步驟 1「Cloud Logging URI」欄位中的連結,前往「Logs Explorer」
  2. 在隨即載入的頁面中,檢查 httpRequest 欄位是否有字串權杖 (例如 ${jndi:ldap://),這可能表示有人試圖進行濫用。

    如需搜尋字串範例和查詢範例,請參閱 Logging 說明文件中的「CVE-2021-44228:偵測 Log4Shell 弱點」。

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

  1. 查看這類發現項目的 MITRE ATT&CK 架構項目: Exploitation of Remote Services
  2. 按一下發現項目詳細資料「摘要」分頁中「相關發現項目」列的連結,即可查看相關發現項目。相關發現項目是指類型相同,且屬於相同執行個體和網路的發現項目。
  3. 如要制定回應計畫,請將調查結果與 MITRE 研究結合。

步驟 4:實作回應

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

發現項目 JSON 範例

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

{
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resourceName": "//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID",
    "state": "ACTIVE",
    "category": "Active Scan: Log4j Vulnerable to RCE",
    "sourceProperties": {
      "sourceId": {
        "projectNumber": "PROJECT_NUMBER",
        "customerOrganizationNumber": "ORGANIZATION_ID"
      },
      "detectionCategory": {
        "ruleName": "log4j_scan_success"
      },
      "detectionPriority": "HIGH",
      "affectedResources": [{
        "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"
      }, {
        "gcpResourceName": "//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID"
      }],
      "evidence": [{
        "sourceLogId": {
          "projectId": "PROJECT_ID",
          "resourceContainer": "projects/PROJECT_ID",
          "timestamp": {
            "seconds": "1639701222",
            "nanos": 7.22988344E8
          },
          "insertId": "INSERT_ID"
        }
      }],
      "properties": {
        "scannerDomain": "SCANNER_DOMAIN",
        "sourceIp": "SOURCE_IP_ADDRESS",
        "vpcName": "default"
      },
      "findingId": "FINDING_ID",
      "contextUris": {
        "mitreUri": {
          "displayName": "MITRE Link",
          "url": "https://attack.mitre.org/techniques/T1210/"
        },
        "cloudLoggingQueryUri": [{
          "displayName": "Cloud Logging Query Link",
          "url": "https://console.cloud.google.com/logs/query;query\u003dtimestamp%3D%222021-12-17T00:33:42.722988344Z%22%0AinsertId%3D%22INSERT_ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project\u003dPROJECT_ID"
        }],
        "relatedFindingUri": {
        }
      }
    },
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
    },
    "eventTime": "2021-12-17T00:33:42.722Z",
    "createTime": "2021-12-17T00:33:44.633Z",
    "severity": "HIGH",
    "workflowState": "NEW",
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID",
    "mute": "UNDEFINED",
    "findingClass": "THREAT"
  },
  "resource": {
    "name": "//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID",
    "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "projectDisplayName": "PROJECT_ID",
    "parentName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "parentDisplayName": "PROJECT_ID",
    "type": "google.compute.Instance",
    "folders": [{
      "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_ID",
      "resourceFolderDisplayName": "FOLDER_DISPLAY_NAME"
    }],
    "displayName": "INSTANCE_ID"
  }
}

後續步驟