Предотвращение угроз и снижение уязвимости (службы Reporting Services)
В этом разделе описаны методы и стратегии для снижения угроз для развертывания служб Reporting Services.
Общие сведения
Сервер отчетов является сервером без сохранения состояния, который хранит содержимое и данные приложений во внешнем хранилище. Одна из самых больших угроз для установки сервера отчетов — несанкционированный доступ и вмешательство в базу данных и файлы конфигурации сервера отчетов. Менее очевидная, но столь же важная угроза определяется способом создания отчетов и кругом лиц, которым предоставлено разрешение на публикацию содержимого на сервере отчетов. Определения отчета — сборки, которые запускаются на компьютере сервера с полным уровнем доверия. Определения отчетов могут содержать другие пользовательские сборки, которые также выполняются на сервере. Если отчет или пользовательская сборка содержит вредоносный код, этот код будет выполняться на компьютере сервера отчетов с учетными данными пользователя, запросившего отчет. Причиной других неявных угроз может быть структура отчета, в которой непреднамеренно раскрываются конфиденциальные данные. Например, если сотрудник запускает отчет, в котором в качестве параметра используется идентификатор сотрудника, то он не должен иметь возможности видеть сведения о другом сотруднике, вставляя произвольные идентификаторы в URL-адрес отчета. Наконец, учитывайте методы распространения отчетов в организации. Можно настроить сервер отчетов, чтобы уменьшить возможность доставки отчетов вне организации. Можно также использовать разрешения файловой системы и разрешения сервера отчетов, чтобы только авторизованные пользователи могли открыть отчет.
В следующих подразделах данного раздела описаны дополнительные угрозы и способы уменьшения риска действительной атаки.
Сдерживание атак на сервер отчетов
В следующей таблице описаны угрозы и меры по снижению уязвимости, которые влияют на компоненты сервера и параметры конфигурации.
Компонент или операция |
Угроза |
Меры по снижению уязвимости |
---|---|---|
Параметры конфигурации, хранящиеся в файле Web.config и файлах конфигурации приложения на компьютере сервера отчетов. |
Злоумышленник может получить доступ к компьютеру, обнаружить незашифрованный или незащищенный файл конфигурации и внести изменения в этот файл. |
Назначьте разрешения для файла. По умолчанию разрешения предоставляются группам безопасности служб Службы Reporting Services, созданным в процессе установки. |
Веб-служба сервера отчетов обрабатывает запросы по требованию, переданные через соединения TCP/IP. |
Злоумышленник может запустить атаку типа «запрет в обслуживании», которая принимает следующие формы. На целевой сервер направляются множественные запросы без проверки подлинности. Неполные запросы направляются на целевой сервер, но никогда не завершаются. Запросы чрезмерно велики; злоумышленник начинает запрос, а затем посылает большой объем данных на сервер. |
Сервер отчетов удаляет все запросы без проверки подлинности в течение двух минут, что может уменьшить последствия атаки типа «запрет в обслуживании». Двухминутный интервал имеет фиксированную длительность, его нельзя уменьшить. Если атака основана на операциях передачи данных на сервер отчетов, можно уменьшить значение элемента maxRequestLength в файле Machine.config. По умолчанию устанавливаемая платформой ASP.NET верхняя граница для объема передаваемых на сервер файлов составляет 4 МБ. Обратите внимание, что уменьшение значения maxRequestLength должно быть временной мерой. Необходимо вернуть прежнее значение, если передача больших файлов (например, моделей) выполняется часто. Дополнительные сведения о настройке параметра maxRequestLength в установке служб Reporting Services см. в разделе Максимальные размеры отчетов и моментальных снимков. |
Службы Службы Reporting Services поддерживают расширяемую архитектуру, которая позволяет развертывать сторонние модули обработки данных, модули доставки и модули подготовки отчетов. Также можно развертывать пользовательские конструкторы запросов. Модули должны выполняться с полным уровнем доверия. |
Злоумышленник может вставить вредный код в пользовательский модуль. |
Развертывайте модули только от доверенных пользователей и организаций. |
Сдерживание угроз для определений отчетов и моделей отчетов
В следующей таблице описаны угрозы и меры по снижению уязвимости, которые влияют на определения отчетов и файлы моделей.
Компонент или операция |
Угроза |
Меры по снижению уязвимости |
---|---|---|
Публикация отчетов, моделей и общих источников данных на сервере отчетов. Отчеты и модели подключаются и направляют запросы к внешним источникам данных. |
Перехват отчетов, моделей и общих источников данных при операции публикации. Перехват запросов при передаче на внешний компьютер. |
Используйте для соединений безопасный, зашифрованный канал связи, такой как SSL/TLS/IPSec. Для защиты канала связи необходимо использовать технологии шифрования. Информируйте пользователей перед отправкой, что канал не защищен. |
Для соединения с удаленными компьютерами и источниками данных применяются токены проверки подлинности или учетные данные. |
Перехват данных проверки подлинности при обработке запроса. |
Используйте безопасный, зашифрованный канал связи. Информируйте пользователя, если канал связи не защищен. Следуйте принципу наименьшего разрешения. Чтобы получить данные, используемые в отчете, необходимы разрешения только на чтение на источник данных. |
URL-адрес отчета показывает значения параметра в адресной строке окна веб-браузера. |
Если отчет содержит конфиденциальные данные, не добавляйте значения параметров, которые можно изменить с помощью URL-адреса. Например, если параметризованный отчет включает идентификатор сотрудника, пользователь может вставить произвольный идентификатор сотрудника в URL-адрес, чтобы просмотреть данные, предназначенные для других пользователей. |
Перед публикацией отчета для окончательного распространения проверьте его URL-адрес и убедитесь, что параметризованные значения нельзя заменить произвольными величинами. При проектировании отчетов помните, что с заданием параметров не связано никаких разрешений. Существует две возможные меры сдерживания.
|
Отчеты и модели содержат сведения об источнике данных и запросы. |
Раскрытие сведений об источнике данных или его структуре дает злоумышленнику внутренние сведения, которые можно использовать для атаки. |
Прежде чем позволить пользователю изменить модель отчета, настройте безопасность элемента отчета, чтобы ограничить доступ к элементам модели, которые пользователи не должны видеть в конструкторе моделей. Назначьте разрешения для файлов. К этим файлам относятся RDL-, RDS-, SMDL-, DS-, DSV- и SMGL-файлы. По умолчанию файлы, хранящиеся локально в папках пользователей, доступны только для групп пользователей и учетных записей, определенных на локальном компьютере, если применяется операционная система Windows XP или более поздняя. |
Определения отчетов и общие источники данных содержат только строки соединения с источником данных. В строку соединения можно вставить учетные данные. |
В случае компрометации файлов отчета злоумышленник может получить доступ к учетным данным, сохраненным в строках соединения базы данных. |
Храните учетные данные отдельно от строки соединения. На страницах свойств источника данных можно использовать режим сохраненных учетных данных, чтобы зашифровать учетную запись и пароль пользователя. |
Отчеты и модели обрабатываются по запросу. Отчеты могут ссылаться на пользовательские сборки или содержать их. Отчеты могут содержать пользовательские элементы отчетов или сторонние элементы управления. Для пользовательских элементов управления отчета необходим полный уровень доверия. |
Злоумышленник убеждает пользователя запустить отчет, который использует внедренный код на языке Visual Basic или запросы базы данных, чтобы выполнить произвольный программный код с разрешениями пользователя. Запуск измененного отчета или модели может привести к переполнению буфера, сбою сервера и более тяжелым последствиям. |
Ограничьте число пользователей, имеющих разрешения на публикацию отчетов и моделей. Только прошедшие проверку пользователи должны иметь разрешение на передачу файлов на сервер. Добейтесь, чтобы пользователи, составляющие отчеты, понимали, как создавать сценарии, устойчивые к атакам с внедрением кода SQL, сценариев и кода HTML. Передавайте на сервер и публикуйте отчеты и модели только от доверенных лиц. Устанавливайте и используйте пользовательские элементы управления отчетов только от доверенных лиц. Просматривайте файлы перед передачей на сервер, чтобы проверить верность всех ссылок на пользовательские сборки. Назначьте разрешения на файлы для сборок, чтобы злоумышленник не мог перезаписать их. |
При просмотре отчета или модели на вкладке «Просмотр» в конструкторе отчетов данные записываются в кэш и получаются оттуда с использованием учетных данных автора. |
Другие пользователи, просматривающие отчет на компьютере автора отчета, могут увидеть данные отчета, недоступные им в других случаях. |
После завершения проектирования отчета разместите отчеты на тестовом сервере или в месте, отведенном для завершения конструирования. |
Дополнительные сведения см. в разделе Защита отчетов и ресурсов.
Общие шаги по сокращению угроз и уязвимостей
Следуйте данным рекомендациям, чтобы повысить общую безопасность любого развертывания сервера отчетов.
Отключите неиспользуемые функции, чтобы уменьшить контактную зону атаки. Дополнительные сведения см. в разделе Как включать и отключать компоненты служб Reporting Services.
Используйте протокол SSL для соединений сервера отчетов. Дополнительные сведения см. в разделе Настройка сервера отчетов для соединений по протоколу SSL.
Создайте иерархию папок, которая поддерживает строгие политики разрешений, помещая конфиденциальные отчеты в папки в самых дальних ветвях иерархии папок в папках, доступных ограниченному кругу пользователей. Отчеты, модели, общие источники данных и ресурсы, публикуемые на сервере отчетов, защищаются через назначения ролей, созданных для папок и конкретных элементов на сайте сервера отчетов. Иерархия папок полностью определяется пользователем, поэтому пользователь создает иерархию папок, в которой группируются вместе любые элементы с аналогичными разрешениями доступа пользователя. Дополнительные сведения см. в разделе Защита папок.
Необходимо понимать, что отчеты по требованию представляют собой скомпилированные сборки, выполняемые с полным уровнем доверия на сервере отчетов с учетными данными пользователя, открывшего отчет. Пользователи отчета, которые входят в систему с учетными данными локального администратора или администратора домена и затем открывают отчет, содержащий вредный сценарий, опрометчиво запустят этот сценарий с административными разрешениями. Рекомендуйте пользователям использовать учетные записи с минимальными правами доступа для просмотра отчетов. Дополнительные сведения см. в разделе Встроенные средства безопасности и повышенные разрешения.
Необходимо понимать, как данные получаются и используются в отчете. Если отчет содержит конфиденциальные данные, подумайте об использовании моделей как источника данных, чтобы иметь возможность применить фильтры безопасности и защитить элементы модели. Дополнительные сведения см. в разделе Учебник. Применение фильтров безопасности к элементам модели отчета.
Необходимо понимать, как происходит распространение отчета. Функции подписки и доставки — мощные методы автоматизации обработки отчетов и распространения сформированного отчета, но, чтобы избежать несанкционированного доступа, нужно наблюдать за пользователями, имеющими общие разрешения в сетевых папках, и оценивать параметры конфигурации электронной почты сервера отчетов, чтобы определить, требуется ли ограничить распространение по электронной почте. Дополнительные сведения см. в разделе Управление распространением отчета.