面向不可预测自动化的操作系统级运行时审计。
logira 是一个仅观察的 Linux CLI,通过 eBPF 记录运行时的 exec、file 和 net 事件。它帮助你了解 AI 代理运行及其他形式自动化过程中实际发生的情况,提供每次运行的本地存储,用于审计、运行后审查、搜索和检测分类。
codex --yolo 或 claude --dangerously-skip-permissions)。logira 包含一套有观点、仅观察的默认规则集,旨在审计 AI 代理运行。
你也可以通过 logira run --rules <file> 添加自己的每次运行规则 YAML。
~/.ssh、~/.aws、kube/gcloud/docker 配置、.netrc、.git-credentials、注册表凭据。.netrc、.git-credentials。/etc 下的写入、systemd 单元、cron、用户自启动项、Shell 启动文件。/tmp、/dev/shm、/var/tmp 下创建的可执行文件。curl|sh、wget|sh、隧道/反向 Shell 工具和参数、base64 解码带 Shell 提示。rm -rf、git clean -fdx、、、 及类似命令。选项1:通过便捷脚本安装:
curl -fsSL https://raw.githubusercontent.com/melonattacker/logira/main/install.sh | sudo bash
选项2:通过发布压缩包手动安装:
tar -xzf logira_vX.Y.Z_linux-<arch>.tar.gz
cd logira_vX.Y.Z_linux-<arch>
sudo ./install-local.sh
重新安装/升级后:
install.sh 会运行 systemctl enable --now)。logirad 以确保新二进制文件正在运行。sudo systemctl daemon-reload
sudo systemctl restart logirad.service
sudo systemctl status logirad.service --no-pager
构建:
make build
启动根守护进程(需要用于跟踪):
sudo ./logirad
要让根守护进程在后台运行,安装来自 packaging/systemd/logirad.service 的单元文件。
# 1) 生成 eBPF 对象(仅当缺失时需要)
make generate
# 2) 安装 systemd 单元
sudo install -D -m 0644 packaging/systemd/logirad.service /etc/systemd/system/logirad.service
# 3) 安装守护进程二进制文件(单元默认路径为 /usr/local/bin/logirad)
sudo install -m 0755 ./logirad /usr/local/bin/logirad
# 4) (推荐)通过环境文件将 systemd 指向 eBPF .o 文件。
# 这样可以避免依赖服务工作目录。
sudo mkdir -p /etc/logira
sudo tee /etc/logira/logirad.env >/dev/null <<'EOF'
LOGIRA_EXEC_BPF_OBJ=/absolute/path/to/collector/linux/exec/trace_bpfel.o
LOGIRA_NET_BPF_OBJ=/absolute/path/to/collector/linux/net/trace_bpfel.o
LOGIRA_FILE_BPF_OBJ=/absolute/path/to/collector/linux/filetrace/trace_bpfel.o
EOF
# 5) 启用 + 启动
sudo systemctl daemon-reload
sudo systemctl enable --now logirad
# 查看日志
sudo journalctl -u logirad -f
# 检查状态
systemctl status logirad --no-pager
# 停止 + 禁用
sudo systemctl stop logirad
sudo systemctl disable --now logirad
以普通用户身份运行受审计的代理(事件会自动保存):
./logira run -- bash -lc 'echo hi > x.txt; curl -s https://example.com >/dev/null'
./logira run --rules ./my-rules.yaml -- bash -lc 'cat ~/.aws/credentials >/dev/null'
运行 Codex CLI:
./logira run -- codex --yolo "Update the README to be clearer and add examples."
运行 Claude Code CLI:
./logira run -- claude --dangerously-skip-permissions "Find and fix flaky tests."
列出运行记录:
./logira runs
查看并解释上一次运行:
./logira view last
./logira view last --ts both
./logira view last --color always
./logira explain last
./logira explain last --show-related
./logira explain last --drill 35
查询事件:
./logira query last --type detection
./logira query last --type net --dest 140.82.121.4:443
./logira query last --related-to-detections --type net
./logira query last --contains curl
logira run -- <command...>:在审计下运行命令并自动保存为新运行logira runs:列出已保存的运行logira view [last|<run-id>]:运行仪表盘(使用 --raw 获取传统文本)logira query [last|<run-id>] [filters...]:按类型搜索事件,以表格形式输出logira explain [last|<run-id>]:按默认分组显示检测结果(--show-related、--drill)规则:
internal/detect/rules/default_rules.yaml)logira run --rules <yaml-file> 添加每次运行的自定义规则examples/rules/README.md--watch 仅为向后兼容性而弃用默认主目录:~/.logira(可通过 LOGIRA_HOME 覆盖)
每次运行存储于:
~/.logira/
runs/<run-id>/
events.jsonl
index.sqlite
meta.json
run-id 格式:YYYYMMDD-HHMMSS-<tool>
docs/jsonl.mddocs/sqlite.mddocs/rules.mddocs/development.mdlogirad 应在 systemd 下运行)。logira status 检查)。logirad 正在运行;logira run 本身不需要 sudo。LOGIRA_EXEC_BPF_OBJ / LOGIRA_NET_BPF_OBJ / LOGIRA_FILE_BPF_OBJ。安装程序放置:
/usr/local/bin/logira、/usr/local/bin/logirad/usr/local/lib/logira/bpf//etc/systemd/system/logirad.service/etc/logira/logirad.env(设置 LOGIRA_EXEC_BPF_OBJ、LOGIRA_NET_BPF_OBJ、LOGIRA_FILE_BPF_OBJ)Apache License 2.0。详情见 LICENSE。
collector/linux/ 下的 eBPF 程序采用双重许可:Apache-2.0 或 GPL-2.0-only。
这确保了在加载需要仅 GPL 助手的 eBPF 程序时与 Linux 内核的兼容性。
find -deletemkfsterraform destroy