Топ 5 ошибок в конфигурации приложений

Неправильные конфигурации – основной путь атак на веб-приложения. Независимо от безопасности кода, некорректно настроенная среда выполнения может сделать программу уязвимой. В этот месяц осведомленности о кибербезопасности Invicti подготовил подборку пяти категорий неправильных настроек приложений.

В широком смысле неправильные конфигурации приложения – это любой дефект безопасности, напрямую вызванный настройками приложения или его среды, а не уязвимостью в нем самом. Например, если оно не является уязвимым в среде разработки, но становится таковым после внедрения в продакшн, вероятно, проблема заключается в неправильных конфигурациях безопасности.

icon problem

1. Уязвимые компоненты технологического стека

Любое веб-приложение – это лишь внешний слой технологического стека, который достигает операционной системы. В зависимости от его современности и архитектуры, в веб-технологический стек могут входить веб-сервер, сервер приложений, сервер баз данных, веб-фреймворк, динамические зависимости и другие компоненты. Если они не обслуживаются должным образом, отсутствие патча или обновления безопасности может дать злоумышленникам возможность эксплуатировать уязвимую версию продукта и потенциально скомпрометировать систему, не используя для этого само приложение (например, путем выполнения удаленного кода сервером программы).

secure

2. Отсутствующий или недостаточный контроль доступа

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

tools

3. Настройки по умолчанию или для разработки

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

icon listing

4. Отсутствующие или неправильные HTTP заголовки безопасности

Внедрение HTTP заголовков безопасности является одним из простейших способов предотвращения целых классов веб-атак, не касаясь ни одной строки кода приложения. Среди них обязательны заголовки Политики Безопасности Содержимого (CSP) для уменьшения уязвимости к cross-site scripting и заголовок Суровой Безопасности Передачи HTTP (HSTS) для обеспечения зашифрованной связи и предотвращения man-in-the-middle атак. Их внедрение – это важная фундаментальная практика, но неправильная конфигурация этих заголовков может стать риском: от ложного чувства безопасности, когда правила CSP не выполняют свою задачу, до того, что домен становится недоступным из-за некорректного заголовка HSTS.

badge

5. Избыточные привилегии процессов

Повышение привилегий обычно является первой целью любого злоумышленника, которому удалось сделать первый шаг для компрометации сервера. Чтобы предотвратить это, усиление защиты приложения должно включать разделение всех процессов в стеке (если это возможно и уместно) для уменьшения риска расширения атаки и предоставление им только минимальных необходимых для функционирования привилегий. Например, объединенный запуск всех серверов с полным доступом к файлам удобен для разработки на локальном компьютере, но если это делается в среде продакшна, то это создает риск компрометации всей системы путем одной успешной инъекции команды.

Повышение осведомленности об основах безопасности приложений

Правильные конфигурации приложения – это фундаментальная часть его безопасности. Оно должно оставлять разработку без известных уязвимостей, а затем его нужно поместить в защищенную и проверенную среду выполнения. Только чего-то одного недостаточно – нужно обеспечить и протестовать все.

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