From 6de46550eaec8f342ff217845deff59993911dd6 Mon Sep 17 00:00:00 2001 From: byrsapty Date: Sat, 29 Aug 2026 00:30:54 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=96=D1=81=D0=BE=D1=87=D0=BD=D0=B8?= =?UTF-8?q?=D1=86=D1=8F:=20=D0=BF=D0=BE=D1=8F=D1=81=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D0=B8=20=D0=BD=D1=83=D0=BB=D1=8C=20=D0=B2=20=D0=B0=D1=83=D0=B4?= =?UTF-8?q?=D0=B8=D1=82=D1=96=20=D0=B9=20=D0=B4=D0=BE=D0=B4=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B1=D1=83,=20=D1=8F=D0=BA=D0=B0?= =?UTF-8?q?=20=D1=89=D0=BE=D1=81=D1=8C=20=D0=B4=D0=BE=D0=B2=D0=BE=D0=B4?= =?UTF-8?q?=D0=B8=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit «журнал аудиту 0 → 0 ok» читалось як доказ роботи журналу. Насправді установник робить рівно три речі, і всі три — у переліку сліпих зон (store.AuditBlindSpots): власник, строки зберігання, локальний зонд. Дані пісочниця наливає прямим SQL, повз API. Нуль тут очікуваний. Пробу лишено (покаже, якщо колись почнуть писати), але поруч тепер сказано, що правило min на нулі не доводить нічого. І додано пробу, яка доводить: спроби входу — самоперевірка заходить у продукт, порожня таблиця означала б, що записування входів відвалилось. Co-Authored-By: Claude Opus 5 --- netpulse | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/netpulse b/netpulse index 3780ff9..769f453 100644 --- a/netpulse +++ b/netpulse @@ -2902,6 +2902,20 @@ SQL # звуження вона потрапила б у ті самі лічильники. Алерти рахуються по # ДВОХ таблицях одразу — фоновий такт переносить погашені в # alr.alerts_history, і рядок, що переїхав, це не втрачений рядок. +# ЧОМУ «журнал аудиту» тут ЗАВЖДИ НУЛЬ, і це не поломка. +# +# Установник робить рівно три речі, і всі три — у переліку сліпих зон +# журналу (store.AuditBlindSpots): заводить власника (склад команди), +# ставить строки зберігання й підключає локальний зонд (дії системи). +# Дані пісочниця наливає прямим SQL, повз API. Тобто нуль — очікуваний +# результат, а не ознака, що аудит зламався. +# +# Проба лишена навмисно: якщо колись хтось почне писати аудит на +# установці, рядок це покаже. Але читати «0 → 0 ok» як доказ роботи +# журналу не можна — правило min на нулі не доводить нічого. +# +# А от «спроби входу» — доводять: самоперевірка заходить у продукт, і +# порожня таблиця тут означала б, що записування входів відвалилось. sandbox_up_probes() { cat <<'EOF' хости_пісочниці|exact|SELECT count(*) FROM inv.devices WHERE name LIKE 'sb-sw-%' @@ -2921,6 +2935,7 @@ sandbox_up_probes() { типи_перевірок|min|SELECT count(*) FROM core.check_types права|min|SELECT count(*) FROM core.permissions журнал_аудиту|min|SELECT count(*) FROM core.audit_log +спроби_входу|min|SELECT count(*) FROM core.login_attempts EOF }