Mitigación de vulnerabilidades y amenazas (Reporting Services)

En este tema se describen técnicas y estrategias para reducir las amenazas dirigidas a una implementación de Reporting Services.

Información general

Un servidor de informes es un servidor sin estado que almacena el contenido y los datos de las aplicaciones de forma externa. Una de las mayores amenazas para una instalación de un servidor de informes es el acceso no autorizado a los archivos de configuración y base de datos del servidor de informes, o su alteración. Una amenaza menos obvia pero igualmente importante radica en el modo en que se crean los informes y en quién tiene permiso para publicar contenido en un servidor de informes. Las definiciones de informe son ensamblados que se ejecutan en modo de plena confianza en un equipo servidor. Las definiciones de informe pueden contener otros ensamblados personalizados que también se ejecuten en el servidor. Si el informe o un ensamblado personalizado contienen código malintencionado, ese código se ejecutará en el equipo del servidor de informes bajo las credenciales del usuario que solicitó el informe. Otras amenazas sutiles pueden provenir de un diseño de informe que exponga accidentalmente los datos confidenciales. Por ejemplo, si un empleado ejecuta un informe que utiliza un identificador de empleado como parámetro, no debe poder ver información sobre otro empleado al insertar un identificador aleatorio en la dirección URL de un informe. Finalmente, tenga en cuenta las prácticas de distribución de informes de su organización. Puede configurar un servidor de informes para reducir al mínimo la posibilidad de entregar los informes fuera de la organización. También puede utilizar permisos en el servidor de informes y en el sistema de archivos para asegurarse de que sólo los usuarios autorizados pueden abrir un informe.

En las secciones siguientes de este tema se describen otras amenazas y los métodos que puede usar para reducir los riesgos de una vulnerabilidad de seguridad real.

Mitigar un ataque en un servidor de informes

En la tabla siguiente se describen las amenazas y las formas de mitigarlas que afectan a los valores de configuración y los componentes del servidor.

Característica u operación

Amenaza

Mitigación

Los valores de configuración se almacenan en el archivo Web.config y en los archivos de configuración de las aplicaciones en el equipo del servidor de informes.

Un atacante puede obtener acceso al equipo, buscar un archivo de configuración sin cifrar ni proteger, y alterar dicho archivo.

Establezca permisos en el archivo. De forma predeterminada, se conceden permisos a los grupos de seguridad de Reporting Services que se crean durante la instalación.

El servicio web del servidor de informes procesa solicitudes a petición enviadas a través de conexiones TCP/IP.

Un atacante puede iniciar un ataque de denegación de servicio que adopte las formas siguientes:

Se dirigen varias solicitudes no autenticadas a un servidor de destino.

Se dirigen solicitudes incompletas a un servidor de destino pero nunca se completan.

Las solicitudes son excesivamente numerosas; el atacante inicia una solicitud y, a continuación, envía una carga grande al servidor.

El servidor de informes quita todas las solicitudes sin autenticar en dos minutos, lo que puede reducir algunos efectos de los ataques de denegación de servicio. El intervalo de dos minutos es fijo; no se puede acortar.

Si el ataque se basa en las operaciones de carga en el servidor de informes, puede reducir el valor del elemento maxRequestLength en el archivo Machine.config. De forma predeterminada, ASP.NET coloca un límite de megabytes (MB) en los elementos que se pueden cargar en una aplicación de servidor. Observe que la disminución del valor de maxRequestLength debe ser una medida temporal. Se debe restaurar el valor anterior si la carga de archivos grandes (como los modelos) es una práctica común. Para obtener más información sobre cómo establecer maxRequestLength en una instalación de Reporting Services, vea Límites de tamaño de informes e instantáneas.

Reporting Services admite una arquitectura extensible que permite implementar procesamientos de datos, representaciones y extensiones de entrega de otro fabricante. También puede implementar diseñadores de consultas personalizados. Las extensiones deben ejecutarse en modo de plena confianza.

Un atacante puede incluir código malintencionado en una extensión personalizada.

Implemente únicamente extensiones de usuarios u organizaciones en los que confíe.

Mitigar las amenazas dirigidas a definiciones y modelos de informes

En la tabla siguiente se describen las amenazas que afectan a archivos de modelos y definiciones de informes, así como las formas de mitigarlas.

Característica u operación

Amenaza

Mitigación

Publicar informes, modelos y orígenes de datos compartidos en un servidor de informes.

Los informes y los modelos se conectan a orígenes de datos externos y los consultan.

Interceptar informes, modelos y orígenes de datos compartidos durante una operación de publicación.

Interceptar solicitudes que están en tránsito a un equipo externo.

Utilice un canal seguro y cifrado, como SSL/TLS/IPSec, para la conexión. Para proteger un canal se deben utilizar tecnologías de cifrado.

Notifique a los usuarios antes de realizar el envío que el canal no está protegido.

Para conectarse a equipos y orígenes de datos remotos se usan credenciales o tokens de autenticación.

Interceptar datos de autenticación al procesar una solicitud.

Utilice un canal seguro y cifrado.

Informe al usuario si el canal no está protegido.

Siga el principio de usar el permiso mínimo. La recuperación de los datos que se usan en un informe requiere permisos de sólo lectura en los orígenes de datos.

Las direcciones URL de los informes muestran valores de parámetros en la barra de direcciones de la ventana del explorador.

Si un informe contiene datos confidenciales, no agregue valores de parámetros que se puedan alterar en la dirección URL. Por ejemplo, si un informe con parámetros incluye un identificador de empleado, un usuario puede insertar un identificador de empleado aleatorio en la dirección URL para ver datos previstos para otros usuarios.

Antes de publicar un informe para su distribución final, compruebe su dirección URL para ver si los valores de parámetros se pueden reemplazar por valores aleatorios.

Cuando diseñe informes, recuerde que no hay ningún permiso asociado al establecimiento de parámetros. Hay dos métodos posibles para mitigar el problema:

  • Vuelva a diseñar el informe y el identificador del usuario para recopilar información específica del usuario.

  • Utilice informes vinculados y bloquee el informe maestro. A continuación, convierta el parámetro concreto en un parámetro interno para el informe vinculado. Esto no se admite para un servidor de informes que esté configurado para utilizar el modo integrado de SharePoint, porque los informes vinculados no se admiten en este modo.

Los informes y los modelos contienen consultas e información de orígenes de datos.

La divulgación de información sobre un origen de datos o su estructura proporciona información interna que un atacante puede aprovechar.

Antes de permitir que un usuario modifique un modelo de informe, establezca la seguridad del elemento de modelo para restringir el acceso a los elementos del modelo que no desee que el usuario vea en el Diseñador de modelos.

Establezca permisos en los archivos. Se incluyen los archivos .rdl, .rds, .smdl, .ds, .dsv y .smgl.

De forma predeterminada, los archivos que están almacenados localmente en la carpeta de un usuario sólo son accesibles a grupos de usuarios y cuentas definidos en el equipo local si el sistema operativo es Windows XP o posterior.

Las definiciones de informe y los orígenes de datos compartidos contienen cadenas de conexión a un origen de datos. Es posible incluir credenciales en una cadena de conexión.

Si se ponen en peligro los archivos de informe, un atacante puede tener acceso a las credenciales de base de datos almacenadas en las cadenas de conexión de base de datos.

Almacene las credenciales de forma por separado de la cadena de conexión. Puede utilizar la opción de credenciales almacenadas en las páginas de propiedades del origen de datos para cifrar y almacenar una cuenta de usuario y una contraseña.

Los informes y los modelos se procesan a petición.

Los informes pueden hacer referencia a ensamblados personalizados o contenerlos.

Los informes pueden contener elementos de informe personalizados o controles de otros fabricantes. Los controles de elementos de informe personalizados requieren el modo de plena confianza.

Un atacante convence a un usuario de que ejecute un informe que se aprovecha del código de Visual Basic incrustado o de las consultas de base de datos para ejecutar código arbitrario con los permisos del usuario.

La ejecución de un informe o un modelo que ha sido alterado puede dar lugar a saturaciones del búfer, el bloqueo de un servidor o situaciones peores.

Limite el número de usuarios que tienen permiso para publicar informes y modelos.

Asegúrese de que sólo usuarios autenticados tienen permiso para cargar archivos.

Asegúrese de que los usuarios que crean los informes sepan cómo crear scripts que puedan resistir ataques por inyección de código SQL, inyección de scripts e inyección de código HTML.

Cargue o publique únicamente informes y modelos de personas en las que confíe.

Instale o utilice únicamente un control de elemento de informe personalizado procedente de personas en las que confíe.

Revise los archivos antes de cargarlos para comprobar que todas las referencias a ensamblados personalizados son válidas.

Establezca permisos de archivo en los ensamblados para que un usuario malintencionado no pueda sobrescribirlos.

Al obtener una vista previa de un informe o de un modelo en la ficha Vista previa del Diseñador de informes, se crean datos en caché que se recuperan utilizando las credenciales del autor.

Es posible que otros usuarios que obtengan una vista previa de un informe en el equipo de su autor puedan ver datos del informe que de otra forma no verían.

Implemente los informes en un servidor o ubicación de prueba cuando finalice su diseño.

Pasos generales para mitigar vulnerabilidades y amenazas

Aplique las siguientes prácticas recomendadas para mejorar la seguridad total de una implementación de servidor de informes:

  • Desactive las características que no se usen para reducir el área expuesta a un ataque. Para obtener más información, vea Cómo activar o desactivar las características de Reporting Services.

  • Utilice SSL para las conexiones del servidor de informes. Para obtener más información, vea Configurar un servidor de informes para conexiones SSL.

  • Cree una jerarquía de carpetas que admita directivas de permisos sólidas colocando los informes importantes o confidenciales en carpetas situadas en las bifurcaciones más lejanas de la jerarquía de carpetas que sean accesibles a un conjunto restringido de usuarios. Los informes, modelos, orígenes de datos compartidos y recursos que publique en un servidor de informes se protegen mediante asignaciones de funciones que cree en carpetas y elementos específicos en el sitio del servidor de informes. Dado que la jerarquía de carpetas está totalmente definida por el usuario, depende de usted crear una jerarquía de carpetas que agrupe los elementos que tenga permisos de acceso de usuario similares. Para obtener más información, vea Proteger carpetas.

  • Entienda que los informes a petición son ensamblados compilados que se ejecutan en modo de plena confianza en un servidor de informes con las credenciales del usuario que abre el informe. Notifique a los usuarios que inicien sesión con credenciales de administrador local o de dominio que, si abren después un informe que contenga script malintencionado, ejecutarán ese script inadvertidamente con permisos de administrador. Recomiende a los usuarios que usen cuentas con privilegios mínimos cuando vean informes. Para obtener más información, vea Seguridad integrada y permisos elevados.

  • Conozca cómo se recuperan y se utilizan los datos en un informe. Si un informe contiene datos confidenciales, considere la posibilidad de usar modelos como origen de datos para poder aplicar filtros de seguridad y la seguridad de los elementos del modelo. Para obtener más información, vea Tutorial: Aplicar filtros de seguridad a elementos del modelo de informe.

  • Conozca cómo se distribuye el informe. Las características de suscripción y entrega son técnicas eficaces para automatizar el procesamiento de los informes y para distribuir los informes generados, pero para evitar el acceso no autorizado es aconsejable comprobar que dispone de permisos en los recursos compartidos de las carpetas de red y evaluar la configuración del correo electrónico del servidor de informes para determinar si hay que restringir la distribución del correo electrónico. Para obtener más información, vea Controlar la distribución de informes.