Защита отчетов и ресурсов

Можно управлять степенью предоставляемого пользователям доступа к отдельным отчетам и ресурсам. По умолчанию только пользователи, являющиеся членами встроенной группы Администраторы , могут выполнять отчеты, просматривать ресурсы, изменять свойства и удалять элементы. Остальные пользователи должны иметь созданные для них назначения ролей, предоставляющие доступ к отчету или ресурсу.

Доступ на основе ролей к отчетам и ресурсам

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

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

  • Если вы хотите скрыть отчет или ресурс от пользователей, которые не должны знать, что отчет или ресурс существует
  • Чтобы увеличить уровень доступа к отчету или элементу.

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

Для достижения целей может потребоваться создать несколько назначений ролей. Допустим, нужно предоставить доступ к отчету двум пользователям (Анне и Фернандо) и членам группы менеджеров по управлению персоналом. Анна и Фернандо должны иметь возможность управлять отчетом, а члены группы менеджеров по управлению персоналом — только выполнять его. Для согласования всех этих пользователей необходимо создать три отдельных назначения ролей: первое, чтобы сделать Анну диспетчером содержимого отчета; второе, чтобы сделать Фернандо диспетчером содержимого отчета; и третье, чтобы предоставить членам группы менеджеров по управлению персоналом право только на просмотр отчета.

Если заданы параметры безопасности для отчета или ресурса, эти параметры продолжают действовать даже после перемещения элемента в новое место. Например, при перемещении отчета, доступ к которому разрешен только нескольким пользователям, отчет по-прежнему доступен только тем пользователям. Этот результат может произойти, даже если переместить его в папку с относительно открытой политикой безопасности.

Устранение атак внедрения HTML в опубликованном отчете или документе

В службах Reporting Services отчеты и ресурсы обрабатываются под удостоверением безопасности пользователя, выполняющего отчет. Если отчет содержит выражения, скрипт, пользовательские элементы отчета или пользовательские сборки, код выполняется с использованием учетных данных пользователя. Если ресурс является HTML-документом, содержащим скрипт, скрипт запускается при открытии документа на сервере отчетов. Возможность запустить код или скрипт без отчета — мощная функция, несущая в себе определенную долю риска. Если код вредоносен, сервер отчетов и пользователь, запустивший отчет, становятся уязвимыми для атаки.

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

Можно снизить риск выполнения вредоносных скриптов, приняв следующие меры предосторожности.

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

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

Внедрение параметров отчета и скрипта

Параметры отчета обеспечивают гибкость общего проектирования и выполнения отчетов. Однако в некоторых случаях этой гибкостью может воспользоваться злоумышленник для организации атаки с заманиванием. Чтобы снизить риск неумышленного запуска вредоносных скриптов, открывайте только готовые для просмотра отчеты из надежных источников. Следует рассмотреть следующий сценарий, который является потенциальной атакой внедрения скрипта отрисовки HTML:

  1. Отчет содержит текстовое поле с действием гиперссылки, заданным для значения параметра, который может содержать вредоносный текст.

  2. Отчет публикуется на сервере отчетов или делается доступным другим образом, при этом значением параметра отчета можно управлять через URL-адрес веб-страницы.

  3. Злоумышленник создает ссылку на веб-страницу или сервер отчетов. Эта ссылка указывает значение параметра в форме javascript:<malicious script here> и отправляет ссылку другому пользователю в атаке.

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

Чтобы уменьшить риск включения в отчеты ссылок, через которые можно запускать вредоносные скрипты, привязывайте гиперссылки только к данным из надежных источников. Убедитесь, что данные из результатов запроса и выражения, которые привязывают данные к гиперссылкам, не создают ссылки, которые можно использовать. Например, не на основе гиперссылки на выражение, которое объединяет данные из нескольких полей набора данных. При необходимости перейдите к отчету и воспользуйтесь функцией «Просмотр исходного кода», чтобы проверить код на наличие подозрительных скриптов и URL-адресов.

Устранение атак внедрения SQL в параметризованном отчете

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

Параметр отчета может не быть привязан к параметру запроса, и значения параметров включаются в отчет. Если это так, пользователь отчета может вводить синтаксис выражений или URL-адрес в значение параметра и отображать отчет в Excel или HTML. Если другой пользователь просматривает отчет и выбирает отрисованное содержимое параметра, пользователь может случайно выполнить вредоносный скрипт или ссылку.

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

Примечание.

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

Защита конфиденциальных отчетов

Отчеты, содержащие конфиденциальные данные, следует защищать на уровне доступа к данным, требуя от пользователей, чтобы они предоставили учетные данные, дающие право на доступ к этим данным. Дополнительные сведения см. в разделе "Указание учетных данных и сведений о подключении" для источников данных отчета. Кроме того, можно защитить папку, сделав ее недоступной для неавторизованных пользователей. Дополнительные сведения см. в разделе "Безопасные папки".

Создание назначений ролей и управление ими
Предоставление разрешений на сервер отчетов в собственном режиме
Безопасные элементы общего источника данных
Хранение учетных данных в источнике данных служб Reporting Services