zlatimirpetrov/prompt-injection-in-orbit
GitHub: zlatimirpetrov/prompt-injection-in-orbit
一个模拟卫星任务运营环境的 LLM agent prompt injection 攻防测试平台,用于评估攻击威胁程度及各类防御措施的实际效果。
Stars: 1 | Forks: 0
# 轨道中的 Prompt Injection
在卫星任务运营中评估和防御 LLM agent。
NSRI 2026 夏季研究黑客马拉松,赛道:AI、数据科学与计算。
人们开始将 LLM agent 接入卫星任务运营:读取遥测数据、分类异常、起草和调度命令。问题在于,要做到这些,agent 必须读取不受信任的数据、地面站消息、遥测流和操作员文档。这些地方中的任何一个都有可能被人隐藏指令。埋藏在遥测帧中的 prompt injection 可以诱导 agent 发出无人要求的命令,而在轨道上,一个错误的命令就可能导致航天器损毁。
本代码库是一个用于探究以下两个问题的测试平台:这种风险有多严重,以及那些显而易见的防御措施实际上能发挥多大作用?这里的一切都是模拟的。没有真实的航天器,项目中也没有任何部分涉及真实的硬件。
## 功能说明
该测试框架将四个动态部分相互结合运行:
- 一个模拟的任务运营 agent,配备少量真实的工具 (`src/agent/`)。
- 一个 injection 场景语料库,根据 payload 的搭载位置进行分组:遥测、地面消息或文档 (`src/attacks/`)。
- 作为拦截手段的防御机制:隔离不受信任的数据、剥离祈使句文本,以及执行时的命令 allowlist (`src/defenses/`)。
- 评分系统,将每种攻击与每种防御组合进行对抗测试,并在报告攻击成功率的同时,显示仍能完成多少合法工作 (`src/eval/`)。
## 快速开始
你需要 Python 3.10 或更高版本。默认的 (mock) backend 没有依赖项,因此只需运行:
```
python -m src.eval.harness
```
你会得到这样一个表格:
```
data_defense allowlist ASR utility
none False 1.0 1.0 <- fully vulnerable baseline
none True 0.0 1.0 <- allowlist alone blocks the bad calls
delimiter False 1.0 1.0 <- delimiting alone is not enough
sanitize False 0.0 0.5 <- stops attacks but costs utility
```
ASR 代表攻击成功率 (attack success rate),因此越低越好。Utility 代表合法任务是否仍然完成(越高越好)。有趣的是两者之间的矛盾关系:allowlist 可以直接扼杀攻击,但过于严格的 sanitizer 也会破坏真正的工作。该测试框架的存在就是为了展示哪些防御措施物有所值,以及它们的代价是什么。
## 接入真实模型
默认的 `MockBrain` 是一个确定性的替代品,以便测试平台能够在无需 API key 的情况下离线运行。如果你想要实际的科学结果,请编写一个具有相同接口的 backend,并将其传递给 `MissionAgent(brain=...)`:
```
class RealBrain:
def decide(self, system_prompt, benign_action, data):
# call your LLM (e.g. the Anthropic API), parse out the tool calls it
# wants to make, and return them as a list of command strings.
...
```
重新运行测试框架,这些数字现在就反映了真实模型的结果。
## 完整性说明(根据黑客马拉松 AI 使用政策)
mock backend 提供的是说明性数字,而非科学数字。可以将其视为证明该框架可用的、可重复的基线下限。最终出现在 Research Brief 中的任何内容均来自真实的测试框架运行(mock 和/或真实模型),并已明确标注。详情请参阅 `AI_USE_STATEMENT.md`。
## 代码库布局
```
src/agent/ simulated mission-ops agent + mock tools
src/attacks/ injection corpus (red team owns)
src/defenses/ defense strategies (blue team owns)
src/eval/ harness + metrics (lead owns)
docs/ threat model, research brief outline
data/injections sample payloads
tests/ smoke test
results/ harness output (results.json)
```
## 团队
- 负责人:agent 测试平台、eval 测试框架、集成、报告。
- 红队:injection 语料库 + 威胁模型。
- 蓝队:防御机制 + utility/安全性分析。
`CONTRIBUTING.md` 中包含了完整的分工和工作流程。
标签:DLL 劫持, Web报告查看器, 反取证, 大语言模型, 安全评估, 搜索语句(dork), 智能体安全, 航天系统