版本:v1.0 | 日期:2026-07-15 对应需求:SVR-8 远程命令执行安全
StarAgent 支持通过星尘平台远程执行 bash/cmd 命令。由于 Agent 是开源的,客户端可修改源码绕过限制,因此安全重点在平台侧。
核心原则:
- 客户端可被攻破 — 攻击者可修改 Agent 源码去除限制
- 平台是安全边界 — 所有安全策略在平台侧实施
- 审计重于防御 — 无法阻止时确保可追溯
使用 WriteEvent 上报执行日志:
| 字段 | 说明 |
|---|---|
| 级别 | warn(执行前)/ info(成功)/ error(失败) |
| 事件 | RunBash / RunCmd |
| 命令 | 执行的命令内容 |
| 超时 | 超时时间(毫秒) |
| 耗时 | 实际执行时间(毫秒) |
| 结果长度 | 返回结果长度 |
| 时间戳 | 执行时间 |
WriteEvent直接上报到星尘平台数据库,Agent 无法删除- 使用
Stopwatch记录精确耗时 - 日志长度超过1000字符自动截断
NodeCommand(节点命令执行记录):
| 字段 | 说明 |
|---|---|
| NodeId | 节点ID |
| Command | 执行的命令 |
| Type | bash/cmd |
| OperatorId | 操作人ID |
| OperatorName | 操作人名称 |
| ClientIP | 操作人IP |
| Success | 是否成功 |
| Duration | 耗时(ms) |
| ErrorMessage | 错误信息 |
| ExecuteTime | 执行时间 |
NodeCommandAlert(异常操作告警):
| 字段 | 说明 |
|---|---|
| AlertType | 告警类型(dangerous_command/abnormal_time/abnormal_ip) |
| AlertLevel | 告警级别(info/warn/error/critical) |
| Status | 状态(pending/confirmed/ignored) |
- 危险命令:包含 rm -rf、dd、mkfs 等危险操作时触发 critical 告警
- 批量操作:同时对多台节点执行命令时触发 warn 告警
- 异常时间:非工作时间执行命令时触发 info 告警
- 异常 IP:从非常用 IP 执行命令时触发 warn 告警