Пройдя чек-листа, вы поймете, что необходимо менять в вашей веб-разработке для повышения безопасности.
Если вы хотите получить полноценный IT-аудит с разбором состояния вашей инфраструктуры и нашими рекомендациями, то запишитесь на бесплатную диагностическую встречу по ссылке https://ininsys.ru/kontakty/
Базы данных
- Данные идентификации пользователей и конфиденциальные данные (токены, адреса электронной почты, платежные реквизиты) хранятся в зашифрованном виде?
- Используется наименьший уровень привилегий для доступа к учетным записям пользователей в базе данных?
- Не используется учётная запись root базы данных?
- Хранение и распространение секретных данных происходит с помощью keystore, предназначенного для этих целей. Не используется хардкод в приложениях?
- Используются исключительно подготовленные SQL-запросы для предотвращения SQL-инъекции?
Разработка
- Все компоненты приложения проверены на наличие уязвимостей для каждой версии, переданной в продакшн? Сюда входят O/S, библиотеки и пакеты. Проверка должна быть автоматизирована в процессе CI-CD (CI — continuous integration — непрерывная интеграция, CD — continuous delivery — постоянная поставка, прим. перев.).
- Программное обеспечение создается в защищенной изолированной среде разработки?
- В API нет общедоступных ресурсов?
- При использовании ваших API пользователи полностью идентифицированы и авторизованы?
Идентификация и валидация
- Все пароли хэшируются с использованием соответствующей криптографической функции, например, bcrypt?
- Работают адекватные правила паролей, которые побуждают пользователей вводить длинные уникальные пароли?
- Во всех сервисах используется многофакторная аутентификация для входа в систему?
- Проводится проверка входных данных на стороне клиента для быстрой обратной связи с пользователем?
- Подтверждается каждый бит пользовательского ввода, используя белые списки на сервере?
Защита от DDoS-атак
- «Узкие» места API, такие как процедуры генерации логина и токена, проверены на защиту от DDoS-атак?
- Действуют разумные ограничения по размеру и структуре предоставляемых пользователем данных и запросов?
- Для защиты от DDoS-атак используется глобальный сервис с кэширующим прокси, например, CloudFlare? Он включается, когда вы находитесь под DDOS-атакой, а в обычном режиме функционирует как DNS lookup.
Веб-трафик
- Используется TLS для всего сайта, а не только для форм входа и ответов?
- Куки являются «безопасными» (secure) и httpOnly, а область видимости определяется атрибутами path и domain?
- Используется CSP (Content Security Policy), не допуская небезопасных бэкдоров?
- Используются заголовки X-Frame-Option, X-XSS-Protection в клиентских ответах?
- Используется механизм HSTS для принудительного доступа через TLS-протокол?
- Используются токены CSRF во всех формах и новый заголовок ответа Cookie SameSite, который фиксирует CSRF единоразово для всех браузеров?
Облачная конфигурация
- Все сервисы имеют минимальное количество открытых портов?
- База бекэнда размещена на серверах, которые не видны в публичной сети?
- Логические службы изолированы в отдельных VPC и одноранговых VPC для обеспечения межсервисной связи?
- Все службы принимают данные только с минимального набора IP-адресов?
- Исходящий трафик IP и портов ограничен, чтобы минимизировать APT и «ботификацию»?
- Используются роли AWS IAM, а не учетные данные root?
- Используются минимальные права доступа для всех сотрудников и разработчиков?
- Пароли и ключи доступа регулярно меняются в соответствии с расписанием?
Инфраструктура
- Апгрейды делаются без простоя, а ПО обновляется автоматически?
- Создание инфраструктуры идет с помощью инструментов вроде Terraform, а не через облачную консоль? Инфраструктура определяется как «код» и воссоздаётся одним нажатием кнопки?
- Используется централизованное логирование для всех служб?
- Не используется SSH для доступа или получения логов?
- Не используется SSH в службах, кроме разве что разовой диагностики?
- Порт 22 не является постоянно открытым на любых сервисных группах AWS?
- Создаются неизменяемые хосты вместо долгоживущих серверов, которые вы патчите и обновляете?
- Используется система обнаружения вторжений для минимизации APT?
- Неиспользуемые службы и серверы выключены?
Cколько пунктов набрали «Нет»? Если больше 25%, то это свидетельствует о структурных проблемах в Вашей IT-инфраструктуре.Если вы хотите получить полноценный IT-аудит с разбором состояния вашей инфраструктуры и нашими рекомендациями, то запишитесь на бесплатную диагностическую встречу по ссылке https://ininsys.ru/kontakty/.