Для обеспечения безопасности ArcGIS Server важно, чтобы среда, в которой запускается ArcGIS Server, также была безопасной. Существует ряд рекомендаций, которым можно следовать для обеспечения максимальной безопасности.
Запрос и настройка собственного сертификата сервера
ArcGIS Server поставляется с готовым самозаверенным сертификатом, который позволяет сразу тестировать портал и помогает вам быстро убедиться, что установка прошла успешно. Однако в большинстве случаев организации следует запросить сертификат у доверенного центра сертификации (CA) и настроить сервер на работу с ним. Это может быть доменный сертификат, выпущенный вашей организацией, или сертификат, подписанный центром сертификации.
Как и ArcGIS Server, портал ArcGIS Enterprise также включает готовый самозаверенный сертификат. Если вы собираетесь интегрировать свой сайт с порталом, необходимо запросить сертификат у доверенного центра сертификации (CA) и настроить портал на работу с ним.
Настройка сертификата от доверенного центра авторизации является обычной мерой безопасности для веб-систем и избавляет пользователей от получения предупреждений в браузере или непредвиденного поведения. Если вы используете самозаверенный сертификат, включенный в ArcGIS Server и портал ArcGIS Enterprise во время тестирования, вы увидите следующее:
- Предупреждения от вашего веб-браузера, от ArcGIS Desktop и от ArcGIS Pro о том, что сайт является ненадежным. При обнаружении самозаверенного сертификата веб-браузер обычно выдает предупреждение и просит подтвердить переход на сайт. Если вы используете самозаверенный сертификат, многие браузеры предупреждают об этом с помощью значков или красного цвета в адресной строке.
- Невозможно открыть интегрированный сервис в Map Viewer или Map Viewer Classic портала, добавить элемент защищенного сервиса к порталу, войти в ArcGIS Server Manager на интегрированном сервере и подключиться к порталу из ArcGIS for Office.
- Непредвиденное поведение при настройке служебных сервисов, печати размещённых сервисов и доступе к порталу из клиентских приложений.
Внимание:
Выше приведен частичный список проблем, которые могут возникнуть при использовании самозаверенного сертификата. Неукоснительно требуется использовать сертификат, подписанный центром сертификации (CA) для полного тестирования и развертывания вашего портала.
В следующих разделах приведены инструкции по настройке ArcGIS Enterprise с вашим собственным сертификатом:
Сканирование на наличие атак с использованием межсайтового скриптинга
Атаки с использованием межсайтового скриптинга внедряют и запускают код на существующих веб-страницах. Злоумышленник часто вводит пользователя в заблуждение, в результате чего пользователь открывает страницу с данными или параметрами ввода, предоставленную самим злоумышленником. На сайтах ArcGIS Server эти параметры ввода или данные могут быть объектами, возвращаемыми сервисом объектов.
ArcGIS Server может сканировать объекты на наличие потенциальных атак с использованием межсайтового скриптинга. Он может сканировать объекты, когда они добавляются или обновляются через сервис объектов, а также когда эти объекты отправляются в клиентские приложения. Однако сканирование вредоносного кода в объекте может привести к ложным срабатываниям или отключению разрешенного HTML во всплывающих окнах объектов. Поведение сканирования настраивается для каждого сервиса.
По умолчанию при создании сервиса он настроен на проверку изменений возможных скриптов и их блокировку, а не на проверку объектов, полученных из сервиса объектов. Злоумышленник может обойти это сканирование изменений путем редактирования объектов способами, которые нельзя проверить, например, редактируя базу данных непосредственно через SQL. Самый безопасный способ настройки ваших сервисов - это сканирование всех объектов. Сканирование каждого объекта, извлекаемого для скриптов, может снизить производительность, но это является хорошей практикой безопасности.
Изменение значений для отдельных сервисов может оказаться сложным в управлении, поэтому предпочтительным является определение значения по умолчанию с помощью системного свойства featureServiceXSSFilter. Это системное свойство, которое используется при создании новых сервисов. Оно не влияет на существующие сервисы и может быть переопределено после создания сервиса.
Чтобы задать это системное свойство, войдите в ArcGIS Server Administrator Directory и щелкните Система > Свойства. Свойства представлены объектом JSON. Скопируйте существующий объект JSON и измените его, добавив свойство featureServiceXSSFilter для этого существующего объекта JSON.
Свойство featureServiceXSSFilter может быть установлено как input или inputOutput. Значение input является значением по умолчанию; оно указывает ArcGIS Server на настройку нового сервиса объектов для сканирования изменений. Значение inputOutput указывает ArcGIS Server настроить новые сервисы объектов для сканирования изменений и сканирования возвращенных объектов.
Чтобы переопределить параметры определенного сервиса, необходимо использовать ArcGIS Server Administrator Directory, найти нужный сервис и отредактировать его. Ниже приведены три свойства, используемые для отдельных сервисов объектов:
- xssPreventionEnabled позволяет сканировать скрипты и код в объектах. Задать как true.
- xssPreventionRule может быть установлено как input или inputOutput. Изменения всегда сканируются, но исходящие объекты проверяются только для скриптов, если inputOutput это значение. Это переопределяет общесистемное свойство featureServiceXSSFilter.
- xssInputRule задает ответ при обнаружении кода. Возможные опции: rejectInvalid или sanitizeInvalid. Значение rejectInvalid используется по умолчанию и рекомендуется к использованию.
Ограничение прав доступа к файлам
Настройте права доступа к файлам таким образом, чтобы оставить только минимально необходимый доступ к директории установки ArcGIS Server, хранилищу конфигураций и директориям сервера. Единственная учетная запись ArcGIS Server, доступ к которой требуется программному обеспечению – это учетная запись ArcGIS Server. Это учетная запись используется для запуска программного обеспечения. Для получения доступа вашей организации могут потребоваться дополнительные учетные записи. Помните, что учетная запись ArcGIS Server должна иметь полный доступ к директории установки, хранилищу конфигураций и директориям сервера, чтобы сайт нормально функционировал.
ArcGIS Server устанавливается с правами доступа, позволяющими учетной записи, запускающей ArcGIS Server, иметь доступ только к файлам. Файлы, создаваемые ArcGIS Server, например, хранилище конфигураций и директории сервера, уже заблокированы, так что доступ к ним может иметь только учетная запись, запускающая ArcGIS Server.
Любая учетная запись, имеющая права на запись в хранилище конфигурации, может изменить настройки ArcGIS Server, которые обычно могут быть изменены только администратором системы. Если встроенное хранилище безопасности используется для хранения пользователей, хранилище конфигураций содержит зашифрованные пароли для этих пользователей. В этом случае права на чтение хранилища конфигураций тоже следует ограничить.
При наличии защищенных картографических сервисов или сервисов геообработки заблокируйте доступ к файлам директорий сервера, чтобы гарантировать, что неавторизованные учетные записи не получат доступа к картам и результатам работы задач геообработки.
Отключение учетной записи основного администратора сайта
Учетная запись основного администратора сайта – это учетная запись, которая задается в ходе первого создания сайта в ArcGIS Server Manager. Имя пользователя и пароль этой записи распознаются только ArcGIS Server; она не является учетной записью операционной системы, и управление ею осуществляется из пользовательской учетной записи в хранилище аутентификации учетных записей.
Отключите основную учетную запись администратора сайта, чтобы гарантировать, что нет другого способа администрирования ArcGIS Server, кроме как с помощью группы или роли, указанных в хранилище удостоверений. Инструкции см. в статье Отключение учетной записи основного администратора сайта.
Определение открытого ключа, используемого для создания токена ArcGIS.
Токен в ArcGIS – это строка зашифрованной информации. Общий ключ – это криптографический ключ, используемый для генерирования этой зашифрованной строки. Чем сложнее общий ключ, тем труднее злоумышленнику взломать шифр и расшифровать общий ключ. Если пользователь может расшифровать общий ключ, скопировать алгоритм шифрования ArcGIS Server и получить список зарегистрированных пользователей, он сможет создать токены и получать доступ ко всем защищенным ресурсам ArcGIS Server.
Перед определением открытого ключа примите во внимание следующее:
- Общий ключ должен быть настроен на длину 16 символов (символы после 16-го не используются). Рекомендуется использовать для ключа случайную последовательность символов. Можно использовать любые символы, в том числе и не буквенно-цифровые.
- В качестве ключа нельзя использовать словарное слово или общепринятое значение, которое легко угадать. Поскольку ключ не нужно запоминать или использовать где-либо, сложная комбинация не вызовет проблем, как это бывает с паролями.
- Токены шифруются общим ключом с помощью улучшенного стандарта шифрования (Advanced Encryption Standard, AES), также известного как Rijndael. 16 символов в ключе представляют 128 бит, используемых для шифрования. Дополнительные сведения о шифровании и AES можно получить по ссылкам о безопасности или проконсультироваться с кем-нибудь в организации, кто хорошо разбирается в безопасности и шифровании.
- В хорошо защищенных средах рекомендуется периодически изменять общий ключ. Помните, что изменение открытого ключа может потребовать обновления ваших приложений для его использования. Все существующие внедренные токены перестанут работать после изменения открытого ключа.
Подробную информацию см. в О токенах ArcGIS.
Удалите Python 2.х с компьютера путем отключения функции ArcMap Runtime Support
Python Software Foundation завершил поддержку языка програмирования Python 2. Это влияет на ArcGIS Server так как базовые сервисы ArcMap используют версию Python 2.x в конфигурации программного обеспечения. Если у вашей организации имеются сложности с установкой Python 2.x в своей системе, теперь есть возможность удалить его из развертывания ArcGIS Server.
В 10.9.1 функция ArcMap Runtime Support может быть выключена следующими способами.
- При установке ArcGIS Server с помощью программы установщика или командной строки
- При обновлении ArcGIS Server
- После установки ArcGIS Server изменяя установку с помощью скрипта
Примечание:
Если вы используете ArcGIS Enterprise Builder функция ArcMap Runtime Support установится по умолчанию. Вы можете использовать скрипт для удаления функции из вашего развертывания.
Если вы решите отключить функцию ArcMap Runtime Support, то ArcMap service runtime не будет включен в ArcGIS Server и Python 2.х не будет установлен. Вам необходимо переносить или опубликовывать заново любые сервисы, основанные на ArcMap для использования ArcGIS Pro service runtime, использующего Python 3.x. Также необходимо заново создать любые Расширения серверных объектов (SOE) или Перехватчики серверных объектов (SOI), основанные на ArcObjects SDK для использования ArcGIS Enterprise SDK после переноса или перепубликации связанных сервисов. Ваши скрипты и инструменты на Python 2.х также необходимо обновить для использования синтаксиса Python 3.х.
Примечание:
Если вы опубликовали ArcMap на основе сервиса объектов, и данные были скопированы в управляемую базу данных, удаление сервиса не удалит скопированные данные из управляемой базы данных, если функция ArcMap Runtime Support отключена.
ArcGIS Enterprise 10.9.1 - последняя версия, поддерживающая сервисы, основанные на ArcMap. В следующих версия станет невозможным публиковать сервисы из ArcMap (в том числе с ArcPy в ArcMap) на сайтах ArcGIS Server и работать с этими сервисами. Сервисы, использующие среду выполнения сервиса ArcMap, больше не смогут работать, если они присутствуют во время обновления до более поздней версии ArcGIS Server. Поэтому Esri рекомендует как можно скорее перейти на сервисы, основанные на ArcGIS Pro и Python 3.x.
Вы можете решить перейти на сервисы, основанные на ArcGIS Pro, и Python 3.x в текущей версии pre-10.9.1, выполнить обновление до 10.9.1 без установки ArcMap runtime, а затем убедиться, что переход прошел успешно. Вы также можете установить функцию ArcMap Runtime Support вместе с 10.9.1, а затем удалить эту функцию после переноса ваших сервисов, основанных на ArcGIS Pro, и пользовательских решений. Вы можете заново включить функцию ArcMap Runtime Support в развертывании 10.9.1, если возникнет необходимость в процессе переноса.
Безопасная передача токенов ArcGIS
Чтобы предотвратить перехват и неправильное использование токенов, применяйте защищенное соединение, использующее HTTPS. Использование HTTPS гарантирует, что имя пользователя и пароль, отправленные с клиентского компьютера, и токен, возвращаемый с ArcGIS Server, не будут перехвачены. Для получения дополнительной информации см. Безопасное подключение ArcGIS for Server.
При построении пользовательских клиентских приложений ArcGIS, использующих запросы GET для доступа к веб-сервисам, защищенным с помощью аутентификации ArcGIS на основе токенов, отправьте токен в заголовке X-Esri-Authorization, вместо параметра запроса. Это не позволит промежуточным звеньям сети, таким как прокси, шлюзы или балансировщики нагрузки, получать токен. В этом примере запроса HTTP GET токен отправляется в заголовке X-Esri-Authorization:GET https://arcgis.mydomain.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1
Host: arcgis.mydomain.com
X-Esri-Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-
Если ArcGIS Server использует аутентификацию ArcGIS Server, а не аутентификацию веб-уровня (IWA, HTTP BASIC, PKI, и т.д.), вместо заголовка X-Esri-Authorization можно использовать стандартный заголовок HTTP-авторизации:GET https://arcgis.mydomain.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1
Host: arcgis.mydomain.com
Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-
Использование стандартизированных запросов
ArcGIS Server имеет опцию безопасности, известную как стандартизированные запросы, которая обеспечит вам защиту от вредоносных атак против SQL. По умолчанию эта опция включена.
Если вы являетесь администратором сервера, рекомендуется оставить эту опцию включенной и объяснить разработчикам, что они должны использовать выражения условия WHERE с синтаксисом, не зависящим от конкретной базы данных. Выключение этой опции сделает вашу систему более уязвимой для SQL-атак.
Подробнее см. раздел О стандартизированных запросах.
Отключение Директории сервисов
Можно отключить Services Directory, чтобы уменьшить возможность поиска по сети ваших данных и осуществления запроса к ним через формы HTML. Отключение Services Directory также приведет к более качественной защите от межсайтовых атак XSS.
Отключение или не отключение Services Directory зависит от назначения вашего сайта и уровня доступа к нему со стороны пользователей и разработчиков. При отключении Services Directory вам, возможно, придется подготовить другие списки и метаданные для сервисов, доступных на вашем сайте.
О выключении Services Directory см. в разделе Отключение Services Directory.
Ограничение междоменных запросов
Междоменные запросы используются во многих системных атаках. Рекомендуется ограничивать использование сервисов ArcGIS Server приложениями, управляемыми только теми доменами, которым вы доверяете. Более подробно см. Ограничение междоменных запросов к ArcGIS Server.