Руководства по безопасности

Базовая безопасность для инди-разработчиков и малых операторов: стандартные меры в порядке приоритета

Базовые меры безопасности для инди-разработчиков в порядке приоритета: админ-аккаунты и MFA, домен и почта, секреты и код, приложение, патчи и резервные копии.

Опубликовано 2026-06-11 Обновлено 2026-10-05 9 мин чтения
На этой странице

Для инди-разработчиков и малых операторов, не уверенных, «сколько же минимум» для безопасности. Здесь нет шагов атаки — лишь базовые меры, считающиеся отраслевым стандартом, в порядке приоритета. Каждый пункт ссылается на более глубокую статью, так что можно начать здесь и читать только нужное.

Взгляд этого сайта: не «делать всё», а «заполнять в этом порядке»

Одиночка или малая команда не могут сделать всё сразу — именно поэтому порядок важнее всего. Если верхний слой (админ-аккаунты, домен и почта) захвачен, любая мера ниже него становится бессмысленной (атакующий сбросит всё от вашего имени). Двигайтесь от самого важного слоя вниз — и вы сильнее всего снизите вероятность инцидента за имеющееся время. Эта статья написана не как исчерпывающее знание, а как список, позволяющий быстро решить, что заполнять дальше.

Уровень 0 — админ-аккаунты, домен, почта

MFA · домен · DNS · почта · платежи

Уровень 1 — секреты и код

секреты вне git · обнаружение в pre-commit · разделение/ротация ключей

Уровень 2 — само приложение

валидация ввода · аутентификация/сессии · TLS/заголовки · аутентификация почты

Уровень 3 — патчи, обнаружение, восстановление

CVE зависимостей · обновления ОС · SSH/FW · логи · резервные копии

Порядок приоритетов этого сайта. Чем выше слой, тем сильнее его захват обнуляет все остальные меры. Двигайтесь сверху вниз.
минуты
до эксплуатации открытого секрета
известные уязвимости
причина большинства серьёзных взломов
одно место
потеряете админ-аккаунты или почту — и любая другая мера обходится
порядок
то, что делает ограниченное время результативным

Уровень 0: защитите админ-аккаунты, домен и почту (первым делом)

Это предпосылка для всего остального. Если ваш домен, почта или панель хостинга захвачены, любая другая мера обнуляется. Атакующий сбрасывает пароли от вашего имени, переписывает DNS, входит на ваш сервер. Поэтому это вы запираете в первую очередь.

1

Поставьте устойчивую к фишингу MFA

Требуйте MFA на регистраторе домена, DNS, панели хостинга, почте и платежах. По силе: passkey/аппаратные ключи (FIDO2) > приложение-аутентификатор (TOTP) > SMS. SMS взламывается через подмену SIM — только как крайнее средство.
2

Защищайте почту строже всего

Сброс пароля почти каждого сервиса приходит на почту. Если почту захватят, ваши остальные аккаунты можно захватить один за другим. Одна только почта стоит аппаратного ключа.
3

Храните коды восстановления и резервные коды безопасно

Держите коды восстановления MFA в менеджере паролей или физически безопасном месте. Потеряете их — заблокируете себя сами.
4

Разделяйте аккаунты, чтобы снизить единые точки отказа

Избегайте переиспользованных паролей на критичных аккаунтах; сделайте каждый уникальным с менеджером паролей, чтобы один взлом не распространялся на другие сервисы.

Уровень 1: не дайте утечь секретам или коду

Учредительный инцидент этого сайта, как и многие в мире, происходит из пробела здесь: секреты вроде файлов .env и API-ключей, проскальзывающие в код или публичный репозиторий.

1

Держите секреты вне исходников и документов

Выносите API-ключи, пароли и строки подключения в .env и исключайте их из git (.gitignore). Вообще не вписывать их — сильнейшая мера.
2

Останавливайте секреты машинно до коммита

Хук pre-commit (gitleaks и т. п.) автоматически блокирует коммиты с секретами — та же проверка, что даёт push protection в GitHub, настроенная самостоятельно (→ самохостинг Git vs GitHub).
3

Если утекло, считайте, что утекло ВСЁ — ротируйте всё

При любом подозрении немедленно отзывайте и переиздавайте затронутые ключи/токены. Не оставляйте на «вероятно, нормально». Это лучше всего работает в реальном реагировании на инциденты (→ ключ утёк и пошли мошеннические счета).
4

Ограничивайте токены узко и держите их короткоживущими

Не выпускайте один всемогущий токен. Используйте наименьшие привилегии, короткий срок жизни и отдельные токены на сервис, чтобы одна утечка осталась локализованной.

Самохостинг Git? Дополнительная осторожность

Самохостинг из-за того, что «случайно публичный» в GitHub пугает, не убирает случайный коммит. Без встроенной блокировки секретов GitHub хук pre-commit для секретов обязателен на самохостинге. См. самохостинг Git vs GitHub: что безопаснее.

Уровень 2: укрепите само приложение

Минимум для веб-приложения, которое вы выставляете наружу. Суть не в остановке новых атак, а в закрытии распространённых, хорошо известных уязвимостей. Этот сайт переформулирует каждую в защиту на своих страницах глоссария.

1

Никогда не доверяйте вводу (предотвращайте распространённые уязвимости)

Останавливайте порождаемые вводом пользователя SQL-инъекцию, XSS, SSRF и обход пути экранированием, параметризацией и белыми списками.
2

Сделайте правильными аутентификацию, сессии и доступ

Защищайтесь от CSRF, проверяйте доступ против IDOR (просмотр чужих данных) и ставьте контроль фреймов против кликджекинга.
3

Сделайте TLS и заголовки безопасности значимыми

Требуйте HTTPS, ставьте HSTS, CSP и подобное. Оцените свой сайт проверкой заголовков безопасности (соберите CSP с помощью конструктора CSP).
4

Предотвратите подделку почты

Если вы отправляете почту со своего домена, настройте SPF/DKIM/DMARC. Найдите пробелы проверкой аутентификации почты.

Уровень 3: патчи, обнаружение, восстановление

Фундамент для «держать ущерб малым и быстро восстановиться даже после взлома». Мониторинг зависимостей вроде osv-scanner живёт здесь.

1

Машинно отслеживайте CVE зависимостей непрерывно

Заброшенные опубликованные CVE — главная причина инцидентов. Запускайте osv-scanner или pnpm audit в CI/cron (→ не отставать от CVE).
2

Автообновляйте ОС и сервер

Автоматизируйте обновления безопасности ОС (unattended-upgrades и т. п.). Не забывайте и патчи для вашего Git-сервера и промежуточного ПО.
3

Укрепите SSH и фаервол

Только SSH-ключи (аутентификация по паролю выключена, нет прямого входа под root), фаервол открывает только нужные порты, fail2ban замедляет перебор.
4

Используйте наименьшие привилегии, чтобы ограничить распространение взлома

Запускайте сервисы не от root, никогда не выставляйте БД/внутренние сервисы, отдельный SSH-ключ на хост — чтобы один взлом не каскадировал.
5

Резервные копии 3-2-1 + проверенное восстановление

Три копии, два носителя, одна вне площадки. Зашифрованные. И не просто «работает» — реально попробуйте восстановление хоть раз.
6

Храните логи, чтобы замечать аномалии

Сохраняйте логи доступа, аутентификации и ошибок, чтобы странные признаки были видны. Чем позже обнаружите, тем шире ущерб.

С чего начать

«Всё, прямо сейчас» нереалистично. Сравните порядок, который люди обычно берут, с тем, что рекомендует этот сайт.

Порядок, который люди обычно берут (неэффективно)

  • начинают с эффектной работы над уязвимостями приложения
  • оставляют MFA «на потом» бесконечно
  • есть резервные копии, но восстановление ни разу не пробовали
  • секреты в .env, но нет хука обнаружения

Порядок, который рекомендует этот сайт

  • Уровень 0: сначала защитить админ-аккаунты, почту и домен с помощью MFA
  • Уровень 1: структурно остановить утечки секретов (обнаружение в pre-commit + политика ротировать-всё)
  • Уровень 2: закрыть распространённые уязвимости приложения
  • Уровень 3: дойти до «восстановимого» через мониторинг зависимостей, обновления, проверенные восстановлением резервные копии

Этот сайт тоже защищается в этом порядке

Этот сайт применяет те же меры к себе: приложение и БД в отдельных контейнерах, БД только во внутренней сети (ограничение масштаба последствий на уровне контейнеров/сети) / отдельный ключ на хост / секреты никогда в git или документах / мониторинг CVE зависимостей перед каждым развёртыванием и ежедневно / резервные копии вне площадки на отдельный сервер / внешние запросы через границу безопасности. Сайт, который учит безопасности, не может оставлять уязвимости в собственной конфигурации, поэтому мы прогоняем этот порядок приоритетов на себе первыми. Наш учредительный инцидент тоже произошёл не из новой атаки, а из единственного пробела в этих базовых мерах. Поэтому мы и повторяем: основы прежде эффектной работы.

Читать дальше

FAQ

QКакую меру безопасности инди-разработчику настроить первой?
A

Защитить аккаунты, захват которых обнуляет всё остальное: поставить устойчивую к фишингу MFA (passkey/аппаратные ключи) на регистратора домена, DNS, панель хостинга, почту и платёжные аккаунты. Если их захватят, любая другая мера обнуляется — поэтому они идут первыми.

QВсе базовые меры одинаково важны?
A

Нет. Есть чёткий порядок. Этот сайт рекомендует заполнять так: 1) админ-аккаунты, домен и почта, 2) секреты и код, 3) само приложение, 4) патчи/обнаружение/восстановление. При конечных ресурсах сверху вниз снижает число инцидентов сильнее всего.

QСчитается ли мониторинг CVE зависимостей базой?
A

Да. Непрерывная машинная проверка зависимостей на известные уязвимости с помощью osv-scanner или pnpm audit теперь отраслевой стандарт. Большинство серьёзных взломов происходит из заброшенных известных уязвимостей (CVE), а не из новых атак.