Политика безопасности контента (CSP)

Политика безопасности контента (CSP)

by moiseevrus

Что такое политика безопасности контента?

Политика защиты контента (CSP) — это стандарт безопасности, обеспечивающий дополнительный уровень защиты от межсайтового скриптинга (XSS), кликджекинга и других атак путем внедрения кода. Это защитная мера против любых атак, основанных на выполнении вредоносного контента в доверенном веб-контексте или других попытках обойти политику того же источника.

С помощью CSP вы можете ограничить, какие источники данных разрешены веб-приложению, определив соответствующую директиву CSP в заголовке ответа HTTP.

Политика безопасности контента оценивает и блокирует запросы на активы

Политика безопасности контента оценивает и блокирует запросы на активы

Почему важна политика безопасности контента?

Смягчение межсайтового скриптинга

Основная цель CSP — смягчить и обнаружить XSS-атаки. XSS-атаки используют доверие браузера к содержимому, полученному с сервера. Браузер жертвы подвергается выполнению вредоносных скриптов , поскольку браузер доверяет источнику контента.

CSP позволяет администраторам серверов уменьшать или устранять возможность злоумышленника запускать XSS, указывая, какие домены Интернета браузеры должны рассматривать в качестве законных источников исполняемых сценариев. CSP-совместимые браузеры запускают только сценарии, содержащие исходные файлы, полученные из доменов из белого списка, и игнорируют все остальные сценарии (включая встроенный сценарий и атрибуты обработки событий HTML).

Смягчение перехвата пакетов и принудительное использование HTTPS

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

Комплексная политика защиты передачи данных включает не только внедрение HTTPS при передаче данных, но и пометку всех файлов cookie атрибутом безопасности и автоматическое перенаправление страниц HTTP на HTTPS. Кроме того, сайты могут использовать заголовки HTTP Strict-Transport-Security, чтобы браузеры подключались к сайту только через зашифрованные каналы.

Примеры заголовков CSP

Веб-сервер может добавлять к каждому ответу HTTP-заголовок Content-Security-Policy. Вы можете установить следующие свойства в заголовке CSP:

  • default-src — необязательный метод, если другие атрибуты не определены. В большинстве случаев значение этого свойства равнозначно тому, что браузер может загружать ресурсы только с текущего веб-сайта.
  • script-src — места, из которых могут быть загружены внешние скрипты. Если ваш веб-сайт или приложение не использует сценарии на стороне клиента, установите значение none.
  • img-src — места, из которых можно получить изображения.
  • media-src — места, из которых можно извлечь мультимедийные файлы, такие как видео.
  • object-src — места, из которых можно получить плагины.
  • manifest-src — места, из которых можно получить манифесты приложений.
  • предки фреймов — места, из которых можно загрузить другую веб-страницу с помощью фрейма, iframe, объекта, встраивания или элемента апплета.
  • form-action — URL-адреса, которые можно использовать как часть действия в теге <form>, что означает, что браузер ограничивает отправку результатов формы. Действие формы не возвращается к исходному по умолчанию, поэтому это обязательное свойство, если вы используете элементы формы на своем сайте.
  • типы подключаемых модулей — набор подключаемых модулей, которые можно вызывать через объекты, встраивания или апплеты, определенные с использованием типов MIME.
  • base-uri — разрешает URL-адреса в атрибуте src любого тега.

 

Какие уязвимости может предотвратить CSP?

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

Вы можете использовать CSP для принудительного применения протокола HTTPS к любому значению, определенному в атрибутах *-src, добавив префикс https:// к любому URL-адресу в вашем белом списке. Таким образом, ресурсы никогда не будут загружаться через незашифрованное HTTP-соединение. Вы можете добиться того же эффекта, добавив свойство block-all-mixed-content.

Кроме того, CSP может предотвратить следующие распространенные уязвимости:

  • Неподписанные встроенные операторы CSS в тегах <style>
  • Неподписанный встроенный Javascript в тегах <script>
  • Динамический CSS с использованием CSSStyleSheet.insertRule()
  • Динамический код Javascript с использованием eval()

Лучше всего хранить скрипт и CSS в отдельных файлах, на которые ссылается HTML-страница. Если ваш сайт должен разрешить это, вы можете включить его, используя ключевые слова unsafe-eval и unsafe-inline.

Когда использовать CSP

Как правило, сложные веб-приложения более чувствительны к XSS, что делает важным использование CSP.

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

Когда не использовать CSP

CSP может быть не лучшим выбором в следующих случаях:

  • Статические приложения , размещенные на собственных доменах или поддоменах, без входа в систему или файлов cookie.
  • Приложения, которые сталкивались с XSS в прошлом или имеют известные уязвимости в шаблонах или платформах, которые они используют. В этом случае лучше всего инвестировать в исправление или исправление уязвимого кода, потому что CSP сам по себе не обеспечит достаточную защиту. CSP следует добавлять поверх защищенного приложения без известных уязвимостей.

Реализация политики безопасности контента

Лучший способ добавить CSP задним числом ко всему веб-сайту — это определить полностью пустой белый список, по существу блокирующий все. Сначала запустите CSP только в режиме отчетов, что означает, что браузер оценивает правила, но еще не блокирует содержимое.

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

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

Запуск CSP в режиме отчета в течение нескольких недель или, самое большее, нескольких месяцев должен выявить все возможные случаи ошибок. Когда вы почувствуете, что ваш набор правил охватывает все соответствующие варианты использования, отключите только отчеты и начните блокировать ресурсы, которых нет в белом списке.

Защита от XSS с помощью Imperva Application Security

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

Помимо защиты от XSS, Imperva обеспечивает многоуровневую защиту, чтобы веб-сайты и приложения были доступны, легко доступны и безопасны. Решение для обеспечения безопасности приложений Imperva включает в себя:

  • Защита от DDoS-атак — поддерживайте бесперебойную работу в любых ситуациях. Предотвратите любой тип DDoS-атаки любого размера, чтобы предотвратить доступ к вашему веб-сайту и сетевой инфраструктуре.
  • CDN — повысьте производительность веб-сайта и сократите расходы на пропускную способность с помощью CDN, предназначенной для разработчиков. Кэшируйте статические ресурсы на периферии, ускоряя API и динамические веб-сайты.
  • Управление ботами — анализирует трафик ваших ботов для выявления аномалий, выявляет плохое поведение ботов и проверяет его с помощью механизмов проверки, которые не влияют на пользовательский трафик.
  • Безопасность API — защищает API, гарантируя, что только желаемый трафик может получить доступ к вашей конечной точке API, а также обнаруживая и блокируя использование уязвимостей.
  • Защита от захвата учетных записей — использует процесс обнаружения на основе намерений для выявления и защиты от попыток захвата учетных записей пользователей в злонамеренных целях.
  • RASP — защитите свои приложения изнутри от известных атак и атак нулевого дня . Быстрая и точная защита без подписи или режима обучения.
  • Аналитика атак — эффективно и точно нейтрализуйте реальные угрозы безопасности и реагируйте на них с помощью действенной аналитики на всех уровнях защиты.

Статья является переводом сайта www.imperva.com

You may also like

Leave a Comment