Ця сторінка описує політику безпеки, межі дозволеного тестування, модель безпеки сайту та процес відповідального повідомлення про технічні проблеми ZVM Labs.

Коротко

  • ZVM Labs - статичний Hugo-сайт без акаунтів, платежів, коментарів або особистих кабінетів.
  • Зворотний зв’язок працює через mailto: і не зберігає повідомлення в базі даних сайту.
  • Сайт використовує заголовки безпеки, security.txt і мінімальний набір зовнішніх сервісів.
  • Агресивне сканування, експлуатація вразливостей, перебір паролів, соціальна інженерія і порушення роботи заборонені.
  • Повідомлення про проблеми безпеки приймаються на [email protected].

Межі

У межах цієї політики:

  • основний домен zvm.uk;
  • сторінки, ресурси й статичні файли, опубліковані цим репозиторієм;
  • /.well-known/security.txt;
  • сценарій зворотного зв’язку, який відкриває поштовий клієнт користувача.

Поза межами:

  • сторонні платформи, на які сайт посилається: GitHub, LinkedIn, Discord, X, Bluesky, Mastodon, TryHackMe, HackTheBox, pwn.college, Telegram, Facebook;
  • інфраструктура поштових провайдерів, хостингу, DNS або аналітики, якщо проблема не спричинена конфігурацією ZVM Labs;
  • профілі автора на зовнішніх сервісах, якщо вони не є частиною цього сайту.

Дозволене тестування

Дозволено:

  • пасивний перегляд публічного HTML, CSS, JS, заголовків і security.txt;
  • перевірка битих посилань, mixed content, некоректних заголовків безпеки або розкриттів щодо приватності;
  • неінвазивна перевірка CSP, політики referrer, захисту від clickjacking і доступності статичних ресурсів;
  • повідомлення про вразливість без експлуатації реальних користувачів або сторонніх сервісів.

Заборонені дії

Заборонено:

  • DoS/DDoS, навантажувальне тестування, агресивне сканування або fuzzing проти робочого середовища;
  • експлуатація, закріплення в системі, підвищення привілеїв або спроби несанкціонованого доступу;
  • фішинг, соціальна інженерія або атаки на поштові акаунти чи акаунти в соціальних мережах;
  • підставляння викрадених облікових даних, перебір паролів або password spraying;
  • спроби отримати, змінити, видалити або опублікувати дані третіх осіб;
  • публічне розкриття потенційної вразливості до узгодження.

Якщо ви не впевнені, чи дія дозволена, спочатку напишіть на [email protected].

Процес повідомлення

Надішліть повідомлення на [email protected] з темою:

1
Security report - zvm.uk - [короткий опис]

Бажано додати:

  • URL або ресурс, якого стосується проблема;
  • короткий опис ризику;
  • кроки відтворення без руйнівних дій;
  • браузер, версія інструмента або приклад запиту, якщо доречно;
  • вплив і запропоноване виправлення;
  • чи потрібне вам згадування після виправлення.

Не надсилайте паролі, приватні ключі, токени, session cookies, персональні дані або конфіденційні дані третіх сторін. Якщо для пояснення проблеми потрібен чутливий артефакт, спочатку узгодьте безпечний спосіб передачі.

Очікування щодо відповіді

ZVM Labs є персональним блогом, тому час відповіді не гарантується як у комерційній bug bounty-програмі.

Орієнтир:

  • первинний перегляд повідомлення - за можливості протягом 7 днів;
  • уточнення меж або впливу - залежно від складності;
  • виправлення - залежно від ризику, доступності автора та технічної складності.

ZVM Labs не є bug bounty-програмою і не гарантує винагороду за повідомлення.

Модель безпеки сайту

Архітектурна модель:

  • статична Hugo-збірка;
  • немає серверного входу, коментарів, платежів або зберігання користувацького контенту;
  • зворотний зв’язок реалізований через mailto:;
  • пошук працює по згенерованому JSON-індексу;
  • лічильник переглядів використовує GoatCounter для агрегованої статистики переглядів статей;
  • публічні профілі й соціальні посилання ведуть на зовнішні платформи.

Основні ризики:

  • ризик ланцюга постачання в темі, інструментах збірки, ресурсах і зовнішніх скриптах;
  • помилки CSP або заголовків безпеки;
  • компрометація DNS, хостингу або електронної пошти поза кодом сайту;
  • випадкове розкриття інформації у статтях, скриншотах, фрагментах коду або зворотному зв’язку;
  • застарілі правові розкриття, розкриття щодо приватності або безпеки.

Поточні засоби контролю:

  • заголовки безпеки у static/_headers;
  • security.txt з контактом і канонічною політикою;
  • CI-скрипт scripts/security-check.sh для перевірки збірки, security.txt, заголовків, CSP, PWA-файлів, офлайн-кешу і базових secret-патернів;
  • сторінки приватності, права й безпеки;
  • редакційний контрольний список для розкриттів, секретів, персональних даних і меж безпеки;
  • мінімізація функціональності: немає акаунтів, платежів, коментарів або серверного зберігання форм.

Заголовки й CSP

Сайт використовує HSTS, nosniff, DENY для захисту від framing, політику referrer, permissions policy та CSP.

Поточний CSP залишає unsafe-inline, тому що тема і локальні Hugo-шаблони все ще мають inline-скрипти для перемикача теми, поведінки навігації, візуальної теми, PWA install prompt, service worker registration, обробки mailto: і інтеграції GoatCounter. Це тимчасовий виняток, який відстежується в docs/csp-hardening-backlog.md.

Security CI не дозволяє unsafe-eval, wildcard-джерела в CSP або відсутність ключових директив. Якщо unsafe-inline залишається в політиці, backlog має існувати й містити критерії виходу.

Наступний бажаний крок:

  • винести власні inline-скрипти в окремий пакет ресурсів;
  • мінімізувати inline JavaScript теми;
  • перейти на CSP на основі хешів або nonce, якщо процес хостингу це дозволить;
  • зменшити script-src до self і явно дозволених зовнішніх джерел без unsafe-inline.

Security CI

Скрипт scripts/security-check.sh виконує:

  • production-збірку Hugo з --panicOnWarning;
  • перевірку security.txt, дати Expires, Policy і Canonical;
  • перевірку обов’язкових заголовків у static/_headers;
  • перевірку CSP-директив, заборону unsafe-eval і wildcard-джерел;
  • контроль, що unsafe-inline описаний у CSP backlog;
  • перевірку PWA manifest, service worker і ключових офлайн-сторінок;
  • легкий пошук типових секретів у репозиторії.

Цей скрипт запускається в GitHub Actions через .github/workflows/site-security.yml.

Аналітика та сторонні скрипти

GoatCounter використовується для приватної агрегованої статистики переглядів статей, не для реклами або поведінкового профілювання.

Варіанти для майбутнього посилення захисту:

  • самостійно розміщувати GoatCounter;
  • або вимкнути зовнішній скрипт і покладатися на серверні журнали;
  • або залишити GoatCounter, але регулярно перевіряти CSP, повідомлення про приватність і поведінку залежностей.

Мітки безпеки для постів

Публікації з кібербезпеки можуть містити мітки безпеки у front matter:

1
2
3
4
security:
  scope: "Лише лабораторія"
  intent: "Освітня / захисна мета"
  disclosure: "Без реальних цілей"

Ці мітки мають допомагати читачу швидко зрозуміти межі матеріалу: лабораторія, захисна мета, концептуальний матеріал, відповідальне розкриття або без деталей експлуатації.

Пов’язані сторінки

Дата останнього оновлення: 5 червня 2026 року.