Cheat sheet по безопасности веб-сайтов

Авторка: Kateryna Ivanenko, Brand Manager (Invicti & Acunetix) в CoreWin

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

1. Безопасность сервера и хостинга

  • Применение HTTPS для всех страниц; рекомендуется также включать HSTS (HTTP Strict Transport Security).
  • Обновление операционной системы и программного обеспечения сервера.
  • Ограничение доступа с помощью брандмауэров, белого списка IP-адресов и аутентификации по ключам SSH.
  • Выключение ненужных служб и портов.

2. Аутентификация и контроль доступа

  • Применение политик надежных паролей.
  • Внедрение многофакторной аутентификации.
  • OAuth 2.0 и OpenID Connect обеспечивают безопасную стороннюю аутентификацию при условии правильной проверки токенов и защиты механизмов переадресации.
  • Ограничение количества попыток входа и блокировка учетной записи помогают защититься от brute-force атак.
  • Установка тайм-аутов сессий и использование безопасных параметров cookie (HttpOnly, Secure, SameSite=Lax или Strict) для предотвращения кражи или злоупотребления.

3. Предотвращение распространенных атак

  • Очистка всех входящих данных пользователя.
  • Экранирование или кодирование исходных данных на основе их контекста (HTML, JavaScript, CSS, URL и т.д.) для предотвращения уязвимостей инъекций.
  • XSS (межсайтовый скриптинг): кодирование исходных данных с учетом контекста и применение заголовков политики безопасности содержимого (CSP, Content Security Policy).
  • SQL-инъекция: использование параметризированных запросов и безопасных фреймворков ORM.
  • CSRF (межсайтовая подделка запроса): применение анти-CSRF токенов и установка атрибутов cookie SameSite (Lax или Strict).
  • Обход каталога: проверка путей (paths) к файлам, ограничение безопасными каталогами и избегание прямого использования путей, предоставленных пользователем.
  • Инъекция команд: никогда не передавать входящие данные пользователя непосредственно системным командам.

4. Безопасная обработка файлов

  • Проверка типов файлов и MIME (медиа).
  • Использование рандомизированных и очищенных названий файлов.
  • Сохранение загруженных файлов вне доступного веб-каталога для предотвращения прямого доступа.
  • Установка строгих разрешений на доступ к файлам (например, 0644) и отключение разрешений на выполнение загруженных файлов.
  • Ограничение размера файла.

5. Безопасные конфигурации и секреты

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

6. Заголовки (хедеры) и безопасность содержимого

  • Установка надежных заголовков безопасности:

Content-Security-Policy
Strict-Transport-Security
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Referrer-Policy: no-referrer

  • Выключение ненужных функций браузера с помощью Permissions-Policy.

7. Мониторинг и логирование

  • Ведение журнала попыток входа, изменений и ошибок, но без логирования конфиденциальных данных.
  • Использование WAF (брандмауэров веб-приложений).
  • Мониторинг изменений файлов, аномалий трафика и попыток вторжения.

8. Тестирование безопасности и исправление

  • Регулярное тестирование безопасности с помощью инструментов DAST, таких как Invicti (ранее Netsparker) и решений SAST, как Mend.io. Если вы хотите бесплатно протестировать эти решения, вы можете связаться с нами удобным для вас способом.
  • Использование инструментов проверки зависимостей, таких как Mend.io.
  • Своевременное применение исправлений.

9. Безопасный жизненный цикл разработки ПО (SDLC)

  • Учет безопасности на ранних этапах.
  • Внедрение рекомендаций по безопасному написанию кода.
  • Создание конвейеров DevSecOps с автоматизированным сканированием безопасности.

Таким образом, команды могут улучшить уровень безопасности веб-сайтов компании и обеспечить их устойчивость в современном ландшафте угроз.

Подписаться на новости