執行作業:偵測到可能的遠端指令執行作業

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

總覽

系統偵測到程序透過網路通訊端產生常見的 UNIX 指令,可能是在模擬反向殼層。這種行為表示有人試圖建立未經授權的系統遠端存取權,讓攻擊者能夠執行任意指令,就像直接與遭入侵的電腦互動一樣。對手經常利用反向 Shell 繞過防火牆限制,持續控制目標。透過通訊端啟動的指令執行作業偵測結果,代表存在重大安全風險,因為這類作業允許各種惡意活動,包括資料外洩、橫向移動和進一步的攻擊行為,因此這項重大發現需要立即調查,以找出連線來源和執行的動作。

回應方式

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

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

  1. 按照「查看結果」一文的指示,開啟 Execution: Possible Remote Command Execution Detected 發現項目。系統會開啟該發現項目的詳細資料面板,並顯示「摘要」分頁。

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

    • 偵測到的內容,特別是下列欄位:
      • 程式二進位檔:執行的二進位檔絕對路徑。
      • 引數:在二進位檔執行期間傳遞的引數。
    • 受影響的資源,尤其是下列欄位:
      • 資源全名:叢集的完整資源名稱,包括專案編號、位置和叢集名稱。
  3. 在調查結果的詳細資料檢視畫面中,按一下「JSON」分頁標籤。

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

    • resource
      • project_display_name:包含叢集的專案名稱。
    • finding
      • processes
      • binary
        • path:執行的二進位檔完整路徑。
      • args:執行二進位檔時提供的引數。
    • sourceProperties
      • Pod_Namespace:Pod 的 Kubernetes 命名空間名稱。
      • Pod_Name:GKE Pod 的名稱。
      • Container_Name:受影響的容器名稱。
      • Container_Image_Uri:要部署的容器映像檔名稱。
      • VM_Instance_Name:執行 Pod 的 GKE 節點名稱。
  5. 找出這個容器在類似時間發生的其他發現項目。 相關發現可能指出這項活動是惡意行為,而非未遵循最佳做法。

步驟 2:檢查叢集和節點

  1. 在 Google Cloud 控制台中,前往「Kubernetes clusters」(Kubernetes 叢集) 頁面。

    前往 Kubernetes 叢集

  2. 在 Google Cloud 控制台工具列中,視需要選取 resource.project_display_name 中列出的專案。

  3. 在調查結果詳細資料的「摘要」分頁中,選取「資源完整名稱」列出的叢集。請記下叢集及其擁有者的任何中繼資料。

  4. 按一下「Nodes」(節點) 分頁標籤。選取 VM_Instance_Name 中列出的節點。

  5. 按一下「詳細資料」分頁標籤,並注意 container.googleapis.com/instance_id 註解。

步驟 3:檢查 Pod

  1. 前往 Google Cloud 控制台的「Kubernetes Workloads」(Kubernetes 工作負載) 頁面。

    前往 Kubernetes 工作負載

  2. 在 Google Cloud 控制台工具列中,視需要選取 resource.project_display_name 中列出的專案。

  3. 如有需要,請在調查結果詳細資料的「摘要」分頁中,依「資源全名」列出的叢集和 Pod_Namespace 中列出的 Pod 命名空間進行篩選。

  4. 選取 Pod_Name 中列出的 Pod。記下 Pod 和擁有者的任何中繼資料。

步驟 4:檢查記錄

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面。

    前往記錄檔探索工具

  2. 在 Google Cloud 控制台工具列中,視需要選取 resource.project_display_name 中列出的專案。

  3. 將「選取時間範圍」設為感興趣的時間範圍。

  4. 在隨即載入的頁面中,執行下列操作:

    1. 使用下列篩選器,找出 Pod_Name 的 Pod 記錄:
      • resource.type="k8s_container"
      • resource.labels.project_id="RESOURCE.PROJECT_DISPLAY_NAME"
      • resource.labels.location="LOCATION"
      • resource.labels.cluster_name="CLUSTER_NAME"
      • resource.labels.namespace_name="POD_NAMESPACE"
      • resource.labels.pod_name="POD_NAME"
    2. 使用下列篩選器尋找叢集稽核記錄:
      • logName="projects/RESOURCE.PROJECT_DISPLAY_NAME/logs/cloudaudit.googleapis.com%2Factivity"
      • resource.type="k8s_cluster"
      • resource.labels.project_id="RESOURCE.PROJECT_DISPLAY_NAME"
      • resource.labels.location="LOCATION"
      • resource.labels.cluster_name="CLUSTER_NAME"
      • POD_NAME
    3. 使用下列篩選器,找出 GKE 節點控制台記錄:
      • resource.type="gce_instance"
      • resource.labels.instance_id="INSTANCE_ID"

步驟 5:調查執行中的容器

如果容器仍在執行,或許可以直接調查容器環境。

  1. 前往 Google Cloud 控制台。

    開啟 Google Cloud 控制台

  2. 在 Google Cloud 控制台工具列中,視需要選取 resource.project_display_name 中列出的專案。

  3. 按一下「Activate Cloud Shell」(啟用 Cloud Shell)

  4. 執行下列指令,取得叢集的 GKE 憑證。

    區域叢集:

    gcloud container clusters get-credentials CLUSTER_NAME \
          --zone LOCATION \
          --project PROJECT_NAME
    

    地區叢集:

    gcloud container clusters get-credentials CLUSTER_NAME \
          --region LOCATION \
          --project PROJECT_NAME
    

    更改下列內容:

    • CLUSTER_NAMEresource.labels.cluster_name中列出的叢集
    • LOCATIONresource.labels.location 中列出的位置
    • PROJECT_NAMEresource.project_display_name 中列出的專案名稱
  5. 擷取執行的二進位檔:

    kubectl cp \
          POD_NAMESPACE/POD_NAME:PROCESS_BINARY_FULLPATH \
          -c CONTAINER_NAME \
          LOCAL_FILE
    

    請將 local_file 改為本機檔案路徑,用於儲存新增的二進位檔。

  6. 執行下列指令,連線至容器環境:

    kubectl exec \
          --namespace=POD_NAMESPACE \
          -ti POD_NAME \
          -c CONTAINER_NAME \
          -- /bin/sh
    

    這項指令需要容器在 /bin/sh 安裝 Shell。

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

  1. 查看這類發現項目的 MITRE ATT&CK 架構項目:「命令和指令碼解譯器」
  2. 如要制定回應計畫,請將調查結果與 MITRE 研究結合。

步驟 7:實作回應

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

  • 與遭入侵的容器所屬專案擁有者聯絡。
  • 停止或刪除遭入侵的容器,並換成新容器

後續步驟