From 21670801f317c8f97535ecf61caae00013cb646e Mon Sep 17 00:00:00 2001 From: Mikhail Chusavitin Date: Thu, 3 Sep 2026 10:11:07 +0300 Subject: [PATCH] docs(releases): v1.35 release notes (cumulative since v1.34) Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014jDYM1nnoZZ3vFz23DDaV1 --- releases/v1.35/RELEASE_NOTES.md | 57 +++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 releases/v1.35/RELEASE_NOTES.md diff --git a/releases/v1.35/RELEASE_NOTES.md b/releases/v1.35/RELEASE_NOTES.md new file mode 100644 index 0000000..77b6753 --- /dev/null +++ b/releases/v1.35/RELEASE_NOTES.md @@ -0,0 +1,57 @@ +# logpile v1.35 + +Дата релиза: 2026-09-03 +Тег: `v1.35` + +Накопительный список изменений с версии v1.34. + +## Обезличивание логов на месте (ADL-067) + +Кнопка **«Обезличить и скачать копию»** в панели Customer data и режим +`logpile -sanitize [-sanitize-out ]`. Строит де-идентифицированную +копию загруженного файла: замены той же длины, формат не меняется. + +- Замены сохраняют длину байт-в-байт: `sigma.sbrf.ru` → `xxxxx.xxxx.xx` + (точки на местах), e-mail → `xxxxx@xxxx.xxxx.xx`, публичный IP + `93.184.216.34` → `00.000.000.00` (`net.ParseIP` → nil, не перематчится), + `TimeZone=Europe/Moscow` → `TimeZone=Etc/Universal` — валидная нейтральная + IANA-зона той же длины из таблицы `len → zone`, `SELTimeUTCOffset=180` → + `000`. Таймстемпы событий не пересчитываются. +- Архивы (`.tar` / `.sds` / `.gz` / `.tgz` / `.zip`) разбираются рекурсивно + без потерь: имена записей, права и все встроенные даты (tar mtime/atime/ + ctime, gzip Name/ModTime, zip Modified) сохраняются; нетронутые zip-записи + копируются сырыми; длина содержимого не меняется → tar-заголовки и + контрольные суммы байт-идентичны, пересобирается только слой сжатия. + Если чистить нечего — выход байт-в-байт равен входу. +- Не редактируется (в отчёте, чистить вручную): бинарные члены (`FRU.bin`, + `localtime`, `redis-dump.rdb`, SOL-логи), битые вложенные архивы, HPE `.ahs`. +- Приватные IP, `pool.ntp.org` и остальной allowlist не трогаются; + вендорские шаблоны (`*_tianyiyun`, `*.conf_bak`, `raw_export.json`, …) + пропускаются целиком. +- Проверено: повторный разбор обезличенного Dell TSR / xFusion / Inspur + onekeylog / H3C `.sds` даёт идентичный инвентарь; повторный скан — чисто. + +Точки входа: `POST /api/sanitize` + `GET /api/sanitize/download`. Детали — +`bible-local/docs/log-sanitization.md`. + +## Детектор уже обезличенного файла + +`privacy.Scan` сообщает `PrivacyScan.Sanitized {detected, markers, strong, +files, evidence}`. Распознаёт *форму* заглушки (слот значения, заполненный +одним повторяющимся символом и разделителями), а не буквальный `x`, поэтому +смена символа-заглушки в будущем не сломает детект. `detected` требует +подтверждения (`strong ≥ 2`, либо `strong ≥ 1 && markers ≥ 3`, либо +`markers ≥ 4`) — одно вхождение выдаётся в отчёте, но не считается за +«уже обезличено». UI прячет кнопку обезличивания и показывает пометку. + +## Калибровка privacy-скана + +Починены ложные срабатывания, найденные на корпусе RMA и nvidia-bug-report: +syslog-селекторы (`local7.info`), firmware-квады `MEVersion`, `*.conf_bak` +вендорские шаблоны, домены bundled-вьюеров (github.com, typoland.com, +schemas.dell.com и т.п.). + +## Запуск на macOS + +Снимите карантинный атрибут через терминал: `xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64` +После этого бинарник запустится без предупреждения Gatekeeper.