
Auditoría de tiempo de ejecución a nivel de sistema operativo para automatización impredecible.
Auditoría en tiempo de ejecución a nivel de SO para automatización impredecible.
logira es una CLI de Linux de solo observación que registra eventos de exec, file y net en tiempo de ejecución mediante eBPF. Te ayuda a ver lo que realmente sucedió durante las ejecuciones de agentes de IA y otras formas de automatización, con almacenamiento local por ejecución para auditoría, revisión posterior, búsqueda y triage de detecciones.
codex --yolo o claude --dangerously-skip-permissions).logira incluye un conjunto de reglas predeterminadas opinadas y de solo observación orientadas a auditar ejecuciones de agentes de IA. También puedes agregar tu propio archivo YAML de reglas por ejecución con logira run --rules <file>.
~/.ssh, ~/.aws, configuración de kube/gcloud/docker, .netrc, .git-credentials, credenciales de registro..netrc, .git-credentials./etc, unidades de systemd, cron, entradas de inicio automático de usuario, archivos de inicio de shell./tmp, /dev/shm, /var/tmp.curl|sh, wget|sh, herramientas y banderas de túnel/shell inversa, decodificación base64 con indicios de shell.Opción 1. Instalar mediante el script conveniente:
curl -fsSL https://raw.githubusercontent.com/melonattacker/logira/main/install.sh | sudo bash
Opción 2. Instalación manual desde un tarball de lanzamiento:
tar -xzf logira_vX.Y.Z_linux-<arch>.tar.gz
cd logira_vX.Y.Z_linux-<arch>
sudo ./install-local.sh
Después de reinstalar/actualizar:
install.sh ejecuta systemctl enable --now).logirad para asegurarse de que el nuevo binario esté funcionando.sudo systemctl daemon-reload
sudo systemctl restart logirad.service
sudo systemctl status logirad.service --no-pager
Compilar:
make build
Iniciar el daemon raíz (requerido para el rastreo):
sudo ./logirad
Para ejecutar el daemon raíz en segundo plano, instala el archivo de unidad desde packaging/systemd/logirad.service.
# 1) Generar objetos eBPF (solo necesario si faltan)
make generate
# 2) Instalar la unidad systemd
sudo install -D -m 0644 packaging/systemd/logirad.service /etc/systemd/system/logirad.service
# 3) Instalar el binario del daemon (la unidad predeterminada es /usr/local/bin/logirad)
sudo install -m 0755 ./logirad /usr/local/bin/logirad
# 4) (Recomendado) Apuntar systemd a los archivos .o de eBPF mediante un archivo de entorno.
# Esto evita depender del directorio de trabajo del servicio.
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) Habilitar + iniciar
sudo systemctl daemon-reload
sudo systemctl enable --now logirad
# Seguir registros
sudo journalctl -u logirad -f
# Verificar estado
systemctl status logirad --no-pager
# Detener + deshabilitar
sudo systemctl stop logirad
sudo systemctl disable --now logirad
Ejecuta un agente bajo auditoría como tu usuario normal (los eventos se guardan automáticamente):
./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'
Ejecutar Codex CLI:
./logira run -- codex --yolo "Update the README to be clearer and add examples."
Ejecutar Claude Code CLI:
./logira run -- claude --dangerously-skip-permissions "Find and fix flaky tests."
Listar ejecuciones:
./logira runs
Ver y explicar la última ejecución:
./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
Consultar eventos:
./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...>: ejecutar un comando bajo auditoría y guardar automáticamente una nueva ejecuciónlogira runs: listar ejecuciones guardadaslogira view [last|<run-id>]: ejecutar panel (usar --raw para texto heredado)logira query [last|<run-id>] [filtros...]: buscar eventos con salida de tabla específica por tipologira explain [last|<run-id>]: detecciones agrupadas por defecto (--show-related, --drill)Reglas:
internal/detect/rules/default_rules.yaml)logira run --rules <archivo-yaml>examples/rules/README.md--watch está obsoleto solo por compatibilidadDirectorio de inicio predeterminado: ~/.logira (anular: LOGIRA_HOME)
Cada ejecución se almacena en:
~/.logira/
runs/<run-id>/
events.jsonl
index.sqlite
meta.json
Formato run-id: YYYYMMDD-HHMMSS-<tool>
docs/jsonl.mddocs/sqlite.mddocs/rules.mddocs/development.mdlogirad se ejecute bajo systemd para instalaciones normales).logira status).logirad esté en ejecución; logira run en sí no requiere sudo.LOGIRA_EXEC_BPF_OBJ / LOGIRA_NET_BPF_OBJ / LOGIRA_FILE_BPF_OBJ.El instalador coloca:
/usr/local/bin/logira, /usr/local/bin/logirad/usr/local/lib/logira/bpf//etc/systemd/system/logirad.service/etc/logira/logirad.env (establece LOGIRA_EXEC_BPF_OBJ, LOGIRA_NET_BPF_OBJ, LOGIRA_FILE_BPF_OBJ)Licencia Apache 2.0. Consulta LICENSE para más detalles.
Los programas eBPF en collector/linux/ tienen doble licencia: Apache-2.0 O GPL-2.0-only.
Esto garantiza la compatibilidad con el kernel de Linux al cargar programas eBPF que requieren ayudantes solo GPL.
rm -rfgit clean -fdxfind -deletemkfsterraform destroy