跳转至

Security


Beacon Security 是各语言现有零代码软件包中的可选能力。它默认关闭,不会引入第二个 Agent、包装命令或独立版本生命周期。

语言 运行时范围 部署方式
Java 完整 Java Agent 单个 Agent JAR
Python 标准 GIL 的 CPython 3.11–3.14 现有 beacon 命令
Node.js Node.js 22.22.3+ 或 24.11.1+ 现有软件包加 ESM 预加载

启用后,Security 通过应用现有的 OpenTelemetry Logs 管道发送安全发现和运行时软件 清单。运行时 SBOM 在 Security 生命周期中默认开启;进程本地诊断文件仍保持关闭, 除非显式启用。

安全发现表示有边界的已建模数据流观测或候选风险,并不确认应用存在漏洞。请先选择 应用运行时对应的指南,并在扩大配置范围前验证已导出的 Logs 记录。

.NET 和 PHP 当前没有已发布的 Beacon Security 能力。

接入 DataKit

先按公共配置开启 DataKit OpenTelemetry 采集器,并完成对应语言的零代码安装。Security 通过 OTLP Logs 上报,在观测云「日志」中验证记录。以下示例假设应用与 DataKit 位于同一主机。

Java

Beacon Java 已将 Security 嵌入完整 Agent JAR。继续使用 Java 零代码指南中的同一个 -javaagent 配置;无需安装或维护 独立的 Security JAR。

启用 Java Security

export BEACON_SECURITY_ENABLED=true
export OTEL_SERVICE_NAME=orders
export OTEL_RESOURCE_ATTRIBUTES=service.namespace=shop
export OTEL_LOGS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:9529/otel
java -javaagent:./beacon-javaagent.jar -jar orders.jar

Agent 通过 OpenTelemetry Logs 导出安全发现和运行时 CycloneDX SBOM。Security 默认关闭。 安全发现表示已建模的运行时观测或候选风险,并非已经确认的漏洞。

Java 参数参考

环境变量 默认值 用途
BEACON_SECURITY_ENABLED false 启用 Security 生命周期和运行时观测。
BEACON_SECURITY_SBOM_ENABLED true 在 Security 启用时采集运行时 SBOM。
BEACON_SECURITY_LOCAL_OUTPUT_ENABLED false 启用进程本地诊断快照。
BEACON_SECURITY_OUTPUT ./beacon-security-output/<instance-id> 设置诊断快照目录。
BEACON_SECURITY_EVIDENCE_FILE 未设置 设置可选的诊断 JSONL 文件。

常规 OpenTelemetry 变量负责资源身份、传输与认证。本地输出仅用于诊断,不是持久化或 集群级投递机制。

Python

Beacon Python 已在 beacon-otel wheel 中包含 Security。它支持标准 GIL 的 CPython 3.11 至 3.14,并继续使用现有 beacon 命令,无需独立 Security 发行包。

启用 Python Security

export BEACON_SECURITY_ENABLED=true
export BEACON_SECURITY_PYTHON_INCLUDE=orders
export OTEL_SERVICE_NAME=orders
export OTEL_RESOURCE_ATTRIBUTES=service.namespace=shop
export OTEL_LOGS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=grpc
export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4317
beacon uvicorn orders.asgi:application --host 0.0.0.0 --port 8000

BEACON_SECURITY_PYTHON_INCLUDE 填写 Python 模块前缀,而不是文件系统路径。未设置时, 已启用的生命周期仍可导出运行时 SBOM,但不会转换应用模块或产生已建模数据流发现。

Python 参数参考

环境变量 默认值 用途
BEACON_SECURITY_ENABLED false 启用 Security 生命周期和运行时 SBOM。
BEACON_SECURITY_PYTHON_INCLUDE 空 选择参与安全发现采集的应用模块前缀。
BEACON_SECURITY_PYTHON_EXCLUDE 空 排除模块前缀,优先级高于 include。
BEACON_SECURITY_SBOM_ENABLED true 在 Security 启用时采集运行时 SBOM。
BEACON_SECURITY_LOCAL_OUTPUT_ENABLED false 启用进程本地诊断文件。
BEACON_SECURITY_OUTPUT ./beacon-security-output/<instance-id> 设置诊断目录。
BEACON_SECURITY_EVIDENCE_FILE 未设置 设置可选的诊断 JSONL 文件。

安全发现与 SBOM 记录使用 OpenTelemetry Logs 管道。本地输出是诊断证据,默认保持关闭。

Node.js

Beacon Node.js 已在 @beacon-observability/nodejs 中包含 Security。应用通常只需 安装这个完整软件包。Security 使用同步模块 Hook 进行限定范围的源码转换,因此要求 Node.js 22.22.3+ 或 24.11.1+。

启用 Node.js Security

必须使用 ESM --import 预加载。CommonJS --require 预加载仍可启动常规遥测与 Profile,但不能启用 Security 源码转换。

npm install @beacon-observability/nodejs

export NODE_OPTIONS="--import @beacon-observability/nodejs/register"
export BEACON_SECURITY_ENABLED=true
export BEACON_SECURITY_NODE_INCLUDE=/srv/app
export OTEL_SERVICE_NAME=orders
export OTEL_RESOURCE_ATTRIBUTES=service.namespace=shop
export OTEL_LOGS_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:9529/otel
node /srv/app/server.mjs

BEACON_SECURITY_NODE_INCLUDE 用于选择应用源码根目录。依赖包、Node.js 内置模块和 显式排除的根目录不会被转换。

Node.js 参数参考

环境变量 默认值 用途
BEACON_SECURITY_ENABLED false 启用 Security 生命周期和运行时 SBOM。
BEACON_SECURITY_NODE_INCLUDE 空 选择参与安全发现采集的应用源码根目录。
BEACON_SECURITY_NODE_EXCLUDE 空 排除源码根目录,优先级高于 include。
BEACON_SECURITY_SBOM_ENABLED true 在 Security 启用时采集运行时 SBOM。
BEACON_SECURITY_LOCAL_OUTPUT_ENABLED false 启用进程本地诊断文件。
BEACON_SECURITY_OUTPUT ./beacon-security-output/<instance-id> 设置诊断目录。

安全发现与 SBOM 记录使用 OpenTelemetry Logs 管道。本地输出是诊断证据,默认保持关闭。

将 BEACON_SECURITY_ENABLED 设为 false 并重启应用即可关闭 Security,同时保留常规零代码遥测。

文档评价

文档内容是否对您有帮助?