
Аудит на уровне ОС для непредсказуемой автоматизации.
Аудит на уровне ОС для непредсказуемой автоматизации.
logira — это Linux CLI только для наблюдения, который записывает события exec, file и net во время выполнения через eBPF. Он помогает увидеть, что на самом деле произошло во время выполнения AI-агентов и других форм автоматизации, с локальным хранением данных каждого запуска для аудита, последующего анализа, поиска и триажа детекций.
codex --yolo или claude --dangerously-skip-permissions).logira включает в себя многовекторный, только наблюдающий набор правил по умолчанию, ориентированный на аудит AI-агентов.
Вы также можете добавить свои собственные YAML-правила для каждого запуска с помощью logira run --rules <file>.
~/.ssh, ~/.aws, конфиги kube/gcloud/docker, .netrc, .git-credentials, учётные данные реестров..netrc, .git-credentials./etc, юниты systemd, cron, автозапуск пользователя, файлы инициализации оболочки./tmp, /dev/shm, /var/tmp.curl|sh, wget|sh, туннелирование/обратная оболочка и их флаги, декодирование base64 с признаками оболочки.rm -rf, , , , и подобные команды.Вариант 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
Запуск root-демона (требуется для трассировки):
sudo ./logirad
Чтобы запустить root-демон в фоновом режиме, установите unit-файл из packaging/systemd/logirad.service.
# 1) Создать объекты eBPF (только если они отсутствуют)
make generate
# 2) Установить systemd unit
sudo install -D -m 0644 packaging/systemd/logirad.service /etc/systemd/system/logirad.service
# 3) Установить бинарный файл демона (unit по умолчанию использует /usr/local/bin/logirad)
sudo install -m 0755 ./logirad /usr/local/bin/logirad
# 4) (Рекомендуется) Указать systemd расположение .o файлов eBPF через файл окружения.
# Это позволяет не полагаться на рабочую директорию службы.
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.
eBPF-программы из collector/linux/ распространяются по двойной лицензии: Apache-2.0 ИЛИ GPL-2.0-only.
Это обеспечивает совместимость с ядром Linux при загрузке eBPF-программ, требующих хелперов, доступных только по GPL.
git clean -fdxfind -deletemkfsterraform destroy