Russian (Русский) - Change language

Настройка безопасности в IIS

Развертывание ABBYY FlexiCapture 12 происходит в пользовательской среде со стандартной конфигурацией безопасности. При необходимости вы можете задать дополнительный набор правил для определенных запросов в Internet Information Services (IIS), чтобы повысить уровень безопасности веб-сервера.

Внимание! Если при работе на веб-станциях у вас возникает ошибка  «Due to browser policy restrictions, this URL cannot be opened using the insecure HTTP protocol. Please use the secure HTTPS protocol or change your browser policy.», то значит вы используете продукт в iFrame по небезопасному протоколу HTTP. Подробнее о причинах ошибки и путях ее обхода, см. в статье Ограничения при использовании iFrame.

Заголовок Content-Security-Policy

Content-Security-Policy (CSP) — это стандарт политики безопасности, который используется современными браузерами для защиты от атак внедрения данных, например, межсайтового скриптинга (Cross-Site Scripting). Суть работы CSP состоит в определении безопасных источников загрузки ресурсов, которые внесены в список разрешенных источников, игнорировании загрузки ресурсов из непроверенных источников и сборе данных о попытках нарушения установленной политики безопасности.

Для использования данной политики на сервере должен быть настроен HTTP-заголовок Content-Security-Policy c одной или более директивами, каждая из которых отвечает за определенный вид ресурсов. Директивы описывают необходимую политику безопасности, объявляя правила для ресурсов.

Для того, чтобы настроить CSP на вашем браузере, пропишите в файле web.config следующее:

<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="Content-Security-Policy" value="default-src https: 'unsafe-inline' 'unsafe-eval'" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer>  
    

Замечание. Если вы используете встраивание ABBYY FlexiCapture в сторонние системы и доступ к другим хостам, укажите их в файле web-config тоже. После применения любых настроек в конфигурации безопасности необходимо убедиться в работоспособности комплекса.

Подробнее о Content-Security-Policy см. на официальном сайте заголовка.

Заголовок HTTP Strict-Transport-Security

HTTP Strict-Transport-Security (HSTS) — это механизм защиты веб-сайта, при котором взаимодействие браузера с сайтом происходит только через безопасное соединение c помощью протокола SSL. Веб-сервер, который настроен на HSTS, содержит указание для браузера использовать только HTTPS-соединение и запрещает использование протокола HTTP. Главной задачей HSTS является защита от атак перехвата запросов и ответов между серверами и клиентами, например, MITM-атак (Man-In-The-Middle).

Для использования данной политики безопасности необходимо к HTTP-ответам добавить заголовок Strict-Transport-Security (STS), используя правила перезаписи URL-адресов. Это нужно для того, чтобы остановить нежелательные HTTP-запросы и перенаправить весь HTTP-трафик на HTTPS, основываясь на логике, изложенной в правилах. Для настройки правил перезаписи требуется установка модуля URL Rewrite. Подробнее об этом см. на официальном сайте Microsoft.

Для того, чтобы настроить HSTS на вашем браузере, пропишите в файле web.config следующее:

<rule name="Add the STS header in HTTPS responses">
<match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" />
<conditions>
<add input="{HTTPS}" pattern="on" />
</conditions>
<action type="Rewrite" value="max-age=31536000" />
</rule>
    

Замечание. Директива max-age измеряется в секундах и указывает срок, на который распространяется правило. Данное значение соответствует одному году.

Подробнее о HSTS см. на официальном сайте Microsoft.

Заголовки X-Powered-By и X-AspNet-Version

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

К таким заголовкам относятся:

  • X-Powered-By — это HTTP-заголовок, который содержит информацию о технологиях, используемых веб-сервером.
  • X-AspNet-Version — это HTTP-заголовок, который содержит информацию о версии ASP.NET, используемого для развертывания приложения на веб-сервере.

По умолчанию, X-Powered-By и X-AspNet-Version включены в ответах сервера. Мы рекомендуем отключать данные заголовки, так как предоставление идентифицирующей информации может являться угрозой безопасности.

Чтобы удалить заголовок X-Powered-By из конфигурации IIS, пропишите в файле web.config следующее:

<httpProtocol> 
<customHeaders> 
<remove name="X-Powered-By" />   
</customHeaders></httpProtocol> 
    

Чтобы удалить заголовок X-AspNet-Version из конфигурации IIS, пропишите в файле web.config следующее:

<httpRuntime enableVersionHeader="false" />
    

Заголовок X-XSS-Protection

X-XSS-Protection — это HTTP-заголовок, используемый веб-браузерами для предотвращения атак межсайтового скриптинга (Cross-Site Scripting). Суть работы заголовка заключается во включении XSS фильтра, который перехватывает попытки злоумышленника внедрить вредоносный код в страницы веб-браузера.

X-XSS-Protection совместим с браузерами: Internet Explorer 8+, Chrome, Safari. Но большинство современных браузеров использует более сильную политику безопасности контента (например, Content-Security-Policy), что делает данный заголовок необходимым только для более ранних версий браузеров, которые не поддерживают CSP.

Для того, чтобы включить заголовок X-XSS-Protection на вашем браузере, пропишите в файле web.config следующее:

<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="X-XSS-Protection" value="1; mode=block" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer>
    

Заголовок X-Content-Type-Options

X-Content-Type-Options — это HTTP-заголовок, используемый веб-браузерами для предотвращения атак с подменой типов MIME (Multipurpose Internet Mail Extensions). MIME представляет собой стандарт типов контента, передаваемого через интернет. Все файлы, которые обслуживает веб-сервер, обрабатываются веб-браузерами в зависимости оттого, какой у файла MIME-тип. Браузеры определяют тип ресурса либо с помощью заголовков ответа Content-Type, либо путем самостоятельного изучения содержимого ресурса. В последнем случае появляется уязвимость, при котором злоумышленник маскирует HTML-файл под файл другого типа.

Единственная возможная директива данного заголовка — nosniff. Она указывает браузерам на то, что надо использовать только MIME-тип, отправленный веб-сервером.

Для того, чтобы включить заголовок X-Content-Type-Options на вашем браузере, пропишите в файле web.config следующее:

<system.webServer> 
<httpProtocol> 
<customHeaders> 
<add name="X-Content-Type-Options" value="nosniff" /> 
</customHeaders> 
</httpProtocol> 
</system.webServer> 
    

Заголовок Server

Server Header — это заголовок ответа, который содержит информацию о программном обеспечении (например, версия ПО), используемом исходным сервером для обработки запроса. Утечка такого рода данных небезопасна, поэтому рекомендуется удалить содержимое заголовка.

Для того, чтобы удалить содержимое заголовка Server, пропишите в файле web.config следующее:

<rewrite>  
     <outboundRules rewriteBeforeCache="true"> 
    <rule name="Remove Server header"> 
      <match serverVariable="RESPONSE_Server" pattern=".+" /> 
      <action type="Rewrite" value="" /> 
    </rule>   
</outboundRules> 
</rewrite> 
    

Для IIS 10.0, Windows Server 2016, Windows Server 2019:

Set-WebConfigurationProperty  
-pspath 'MACHINE/WEBROOT/APPHOST'   
-filter "system.webServer/security/requestFiltering"  
-name "removeServerHeader"  
-value "True" 
    

Замечание. Для данной настройки требуется установка модуля URL Rewrite. Подробнее об этом см. на официальном сайте Microsoft.

Защита от DDoS-атак

При DDoS-атаках (distributed denial-of-service) злоумышленники перегружают доступ к приложению HTTP-запросами, вызывая тем самым всплеск трафика и делая приложение недоступным для пользователей. Сложность выявления такого рода атак состоит в том, что не всегда удается отличить легитимный трафик от злонамеренного.

Для того, чтобы защитить веб-сервер от DDoS-атак, рекомендуется настроить сервер IIS таким образом, чтобы он блокировал доступ к приложению на основе ограниченного числа запросов в единицу времени или ограниченного числа одновременных запросов.

Для данной настройки IIS, выполните следующее:

  1. Откройте IIS Manager
  2. Выберите веб-сайт и на панели функций нажмите IP Address and Domain Restrictions.
  3. На панели справа выберите Edit Dynamic Restriction Settings.
  4. В открывшемся окне выберите Deny IP Address based on the number of concurrent requests, если хотите ограничить количество одновременных запросов, и Deny IP Address based on the number of requests over a period of time, если хотите ограничить количество запросов в единицу времени.
  5. Нажмите ОК.  

В настройках сервера IIS вы также можете запретить доступ к приложению для определенных IP-адресов и выбрать поведение сервера при запрете. Для этого выполните следующее:

  1. Откройте IIS Manager
  2. Выберите веб-сайт и на панели функций нажмите IP Address and Domain Restrictions.
  3. На панели справа выберите Edit Dynamic Restriction Settings.
  4. В открывшемся окне выберите в ниспадающем меню Deny Action Type желаемое поведение сервера.  
  5. Нажмите ОК.

В случае если с одного IP-адреса выполняется множество HTTP-запросов к веб-серверу от разных пользователей, необходимо в настройках сервера IIS включить прокси-режим. В этом случае прокси-сервер передают веб-серверу заголовок x-forwarded-for для идентификации конкретного пользователя.  

Чтобы настроить прокси-режим, выполните следующее:

  1. Откройте IIS Manager
  2. Выберите веб-сайт и на панели функций нажмите IP Address and Domain Restrictions.
  3. На панели справа выберите Edit Feature Settings.
  4. В окне Edit IP and Domain Restriction Settings выберите Enable Proxy Mode.  
  5. Нажмите ОК.

Подробнее об ограничении доступа по IP в IIS, см. на официальном сайте Microsoft.

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

14.01.2021 14:17:24


Please leave your feedback about this article