docs(releases): v1.35 release notes (cumulative since v1.34)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014jDYM1nnoZZ3vFz23DDaV1
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
f38fb2de69
commit
21670801f3
@@ -0,0 +1,57 @@
|
|||||||
|
# logpile v1.35
|
||||||
|
|
||||||
|
Дата релиза: 2026-09-03
|
||||||
|
Тег: `v1.35`
|
||||||
|
|
||||||
|
Накопительный список изменений с версии v1.34.
|
||||||
|
|
||||||
|
## Обезличивание логов на месте (ADL-067)
|
||||||
|
|
||||||
|
Кнопка **«Обезличить и скачать копию»** в панели Customer data и режим
|
||||||
|
`logpile -sanitize <file> [-sanitize-out <file>]`. Строит де-идентифицированную
|
||||||
|
копию загруженного файла: замены той же длины, формат не меняется.
|
||||||
|
|
||||||
|
- Замены сохраняют длину байт-в-байт: `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.
|
||||||
Reference in New Issue
Block a user