Встроенные средства безопасности и повышенные разрешения
Выполнение отчета под учетной записью, обладающей повышенными разрешениями, несет в себе угрозу безопасности SQL Server, поскольку запросы, содержащиеся в отчетах, могут содержать злонамеренные инструкции Transact-SQL (например, инструкции, которые могут создавать неавторизованные соединения, изменять или удалять данные, либо вносить неверные данные), а отчет выполняется пользователем, имеющим преобразованные разрешения на сервере, на котором размещен источник данных. Например если злоумышленник публикует отчет, содержащий вредоносный запрос, то этот запрос будет выполнен с правами администратора при соблюдении одного из следующих условий:
Источник данных отчета сконфигурирован на использование встроенной безопасности, и пользователь, выполняющий отчет, зарегистрирован в системе как администратор.
Источник данных отчета сконфигурирован на запрос учетных данных, а пользователь вводит для выполнения отчета учетные данные администратора.
Рекомендуемые методы сдерживания такого рода атак
Чтобы противодействовать этой угрозе, для обеспечения безопасности воспользуйтесь следующими рекомендациями:
Для доступа к внешним источникам данных, поставляющим данные для отчета, пользуйтесь учетными записями с наименьшими правами доступа. Можно настроить источники данных для отчета таким образом, чтобы они всегда использовали сохраненные учетные данные учетной записи с наименьшими правами доступа.
Используйте для указания сведений о соединении с источником данных общие источники данных. Для управления доступом к строке соединения и настройкам, определяющим, каким образом во время выполнения передаются учетные данные, можно использовать назначение ролей.
Пользуйтесь назначением ролей и процессами потока операций, чтобы обеспечить публикацию на сервере только надежных отчетов. Назначение ролей позволяет ограничить возможности публикации отчетов только определенным набором папок, а затем обязать администраторов проверять каждый RDL-файл (и запрос) вновь опубликованного отчета, прежде чем он будет перемещен в место постоянного расположения. Обратите внимание, что службы Службы Reporting Services не предоставляют способа для выполнения стандартных эксплуатационных процедур, определенных для организации. В них не предусматривается возможность принудительной предварительной проверки перед публикацией.
Отключите встроенную авторизацию, чтобы предотвратить передачу учетных данных для соединения с источником данных отчета. Чтобы отключить соединения с источником данных, в которых применяются встроенные меры безопасности, установите свойство EnableIntegratedSecurity в значение false. Дополнительные сведения о задании этого свойства на странице свойств сервера в среде Management Studio см. в разделе Как задать свойства сервера отчетов (среда Management Studio).
Использование встроенной безопасности для доступа к внешним источникам данных представляет особую проблему для тех пользователей, которые могут не знать, что их маркер безопасности передается внешнему источнику данных (пользователи не получают перед выполнением отчета предупреждения о том, что отчет сконфигурирован на использование встроенной безопасности). Кроме того, пользователи, открывая отчет, могут не испытывать тех сомнений, которые испытывали бы, открывая вложение в сообщении электронной почты, полученном из неизвестного источника, хотя с точки зрения безопасности в обоих случаях риск одинаков. Злонамеренный запрос может повредить или подвергнуть опасности сервер или причинить ему ущерб таким же образом, каким вредоносный сценарий, выполненный по открытии гиперссылки или скрытого вложения в электронное письмо, может повредить или подвергнуть опасности рабочую станцию.
Обратите внимание на то, что при отключении встроенной безопасности перестанут работать все источники данных, настроенные (как до, так и после отключения) на ее использование. Если на сервере отчетов не поддерживается встроенная авторизация, будет возвращаться следующая ошибка: «Источник данных настроен для использования встроенной авторизации Windows, но встроенная авторизация для этого сервера отключена».