Seguridad: Derechos

En Windows Server 2003, 2000 y XP, lo que pueden hacer las cuentas se dividen en dos partes: derechos y permisos. Los derechos son acciones u operaciones que una cuenta puede o no puede realizar. Los permisos definen los recursos a los que una cuenta puede o no puede acceder y el nivel de dicho acceso. Entendamos que recursos comprenden también a los objetos de Active Directory, objetos de sistema de archivo y llaves del registro. Aunque las cuentas son el eje central de seguridad de Windows, asignarles derechos y permisos directamente es difícil de administrar y muchas veces de solucionar su aplicación o no aplicación tanto de derechos como de permisos. Por ello, siempre se aconseja no asignarlos a cuentas y en su lugar hacerlo sobre grupos y emplazar las cuentas dentro de los mismos. La creación de una estructura de grupos para administrar la asignación de derechos y permisos es una parte esencial de la seguridad de Windows.

Derechos de usuario y permisos

Como ya he dicho las acciones que una cuenta puede llevar a cabo y el nivel con que un usuario podrá acceder a la información son determinados por los derechos de usuario y los permisos.

Los administradores podemos asignar derechos específicos a cuentas de grupos o de usuario. Estos derechos autorizan a llevar a cabo acciones específicas, por ejemplo iniciar sesión, crear copias de seguridad, etc… Se diferencian de los permisos de forma clara e inequívoca, los derechos se aplican a cuentas, los permisos se adjuntan a los objetos.

  • Privilegios

Un derecho es asignado a una cuenta y especifica las acciones permitidas en la red.

  • Derechos de inicio de sesión

Derecho asignado a una cuenta y que especifica la forma en que la misma iniciará sesión en el sistema. Por ejemplo: iniciar sesión local.

Los privilegios

Algunos privilegios pueden sobrescribir los permisos establecidos en un objeto.

  • Actuar como parte del sistema operativo

Este privilegio permite literalmente a la cuenta o aplicaciones en ejecución bajo la misma ser parte de la base de confianza del cálculo. Esto permite a un proceso autenticarse como cualquier usuario, y por lo tanto obtener acceso a los recursos bajo la identidad del mismo. Sólo los servicios de autenticación de bajo-nivel de mayor confianza deben necesitar este privilegio. El usuario o proceso con este privilegio puede crear tokens que garantizan más derechos que los que normalmente se proporcionan en su contexto de seguridad.

No deberíamos asignar este privilegio a menos que estemos completamente seguros que es necesario.

  • Administrar los registros de auditoría y seguridad

Permite a un usuario especificar opciones de auditorías de acceso a objetos para recursos individuales, como archivos, objetos de AD y llaves del registro. La auditoría a los objetos no se llevará a cabo a menos que tengamos habilitada la configuración de auditoría que la activa. Un usuario con este privilegio puede ver y limpiar el registro de seguridad en el visor de sucesos.

  • Agregar estaciones de trabajo al dominio

Permite añadir equipos a un dominio específico. Los usuarios sólo pueden unir hasta 10 equipos de forma predeterminada. Para aumentar éste número hay que cambiar una propiedad llamada ms-DS-MachineAccountQuota o también podemos delegar en un usuario la capacidad de crear cuentas de equipo en una OU.

  • Ajustar cuotas de memoria para un proceso

Este privilegio determina quien puede cambiar la memoria máxima que se puede consumir por un proceso. Útil para un afinamiento del sistema, pero que podría convertirse en un ataque DOS.

  • Apagar el sistema

Permite al usuario el apagado del sistema local. Quitándoles este derecho a los usuarios de Terminal Server impediremos que apaguen el equipo, sea accidental o intencionadamente.

  • Bloquear páginas de memoria

Permitir a un proceso mantener datos en la memoria física impidiendo que el sistema los pagine en la memoria virtual en disco. Este privilegio puede afectar al rendimiento del sistema, es obsoleto y no debe usarse.

  • Cambiar la hora del sistema

Permite al usuario establecer la hora en el reloj interno del equipo. De forma predeterminada, desde Windows 2000, los usuarios del dominio no tienen este privilegio para evitar que cambien la hora de su sistema y ello interfiera en la autenticación Kerberos (una diferencia de 5 o más minutos impediría trabajar correctamente).

  • Cargar y descargar controladores de dispositivo

Permite a un usuario instalar y desinstalar controladores de dispositivo que no han sido instalados por el administrador de P&P y controlar los dispositivos(iniciarlos o detenerlos). Como los controladores se ejecutan como programas en los que se confía, un mal uso de este privilegio podría servir para la instalación de programas hostiles, como rootkits, y darles acceso a los recursos. No debería concederse en exceso.

  • Crear objetos compartidos permanentes

Permite a un proceso crear un objeto de directorio en el Administrador de objetos. Este privilegio es útil para los componentes en modo kernel para la ampliación del espacio de nombres. Ya que los componentes que se ejecutan en modo kernel ya disfrutan de este privilegio no parece necesaria su aplicación especifica.

  • Crear objetos globales

Este privilegio se añadió en el SP4 de Windows 2000 y está presente en Windows Server 2003. Controla la creación de objetos del sistema globales por aplicaciones, incluyendo operaciones como el mapeo de archivos en las sesiones de Terminal Server. También se aplica si se crean enlaces simbólicos en el administrador de objetos.

  • Crear un archivo de paginación

Permite al usuario crear y cambiar el tamaño del archivo de paginación. Esto se hace especificando un tamaño de archivo de paginación para una determinada unidad en el cuadro de diálogo de opciones de Rendimiento, desde el cuadro de diálogo de las propiedades del sistema.

  • Crear un objeto testigo

Permite a un proceso la creación de un token y usarlo para obtener acceso a recursos locales cuando el proceso use las APIs de creación de token. Predeterminadamente sólo LSA (Local Security Authority) puede crear tokens.

  • Depurar programas

Permite al usuario adjuntar un depurador a cualquier proceso. Sin este privilegio, podemos depurar los programas propios. Este privilegio proporciona un acceso poderoso a componentes del sistema operativo sensibles y críticos, así que a ver a quien se le concede!!

  • Forzar el apagado desde un sistema remoto

Permite al usuario el apagado de un sistema desde cualquier ubicación remota de la red.

  • Generar auditorías de seguridad

Permite a un proceso generar entradas en el registro de Seguridad (Security log) para auditar el acceso a los objetos. También le permite generar otras auditorías de seguridad. Este registro de seguridad se utiliza para el seguimiento del acceso no autorizado al sistema.

  • Habilitar las cuentas de equipo y de usuario en las que se confía para delegación

Permite al usuario seleccionar la configuración de ‘se confía para delegación’ de la configuración de un objeto equipo o usuario. El usuario u objeto al que se le concede este privilegio debe tener permiso de escritura sobre las banderas de control de la cuenta del usuario u objeto. Un proceso de servidor ya se esté ejecutando en un equipo o usuario en los que se confía por delegación puede acceder a recursos en otro equipo. El proceso usa credenciales delegadas de cliente, siempre que la cuenta del cliente no tenga establecida la bandera de control en la cuenta de Account Cannot Be Delegated(la cuenta no puede delegarse). El abuso de este privilegio o sobre los valores de ‘se confía para delegación’ pueden hacer vulnerable nuestra red a ataques con troyanos.

  • Hacer copias de seguridad de archivos y directorios

Permite a los usuarios eludir los permisos de archivos y directorios para realizar una copia de seguridad almacenada en el sistema. Algo como asignar los permisos: Recorrer carpeta / Ejecutar archivo, Listar carpeta / Leer datos, Atributos de lectura, Atributos extendidos de lectura y Permisos de lectura, a todos los archivos y carpetas del equipo local.

  • Incrementar prioridades de planificación de procesos

Permite a un proceso con permiso de escritura sobre otro, elevar la prioridad de ejecución del otro proceso. Un usuario con este privilegio puede cambiar la planificación de prioridad de un proceso usando el Administrador de Tareas.

  • Modificar valores de entorno de la memoria no volátil(firmware)

Permite la modificación de las variables de entorno del sistema, sea por un proceso o por un usuario desde el cuadro de diálogo de propiedades del sistema.

  • Omitir la comprobación de recorrido

Permite al usuario navegar entre directorios que de otra forma no tendría acceso. No permite listar los contenidos sólo atravesarlos. Si no se tiene este privilegio el sistema comprueba las ACL del directorio para asegurarse que el usuario dispone del permiso Recorrer carpeta / Ejecutar archivo.

  • Perfilar el rendimiento del sistema

Permite a un usuario usar las herramientas de rendimiento-monitorización para monitorizar los procesos del sistema. Este privilegio es necesario para el complemento de Rendimiento de la consola MMC si está configurado para recoger datos mediante WMI.

  • Perfilar un proceso individual

Permite a un usuario usar las herramientas de rendimiento-monitorización para monitorizar procesos que no son del sistema. Este privilegio es obligatorio para el complemento de Rendimiento de la consola MMC  en el caso de estar configurado para recoger datos mediante WMI.

  • Quitar el equipo de la estación de acoplamiento

Permite al usuario desacoplar al portátil mediante el interfaz de usuario. Por supuesto los usuarios sin este derecho podrán anular el acople manualmente o mediante pequeños conectores y sacar el portátil de la estación de acoplamiento.

  • Realizar las tareas de mantenimiento del volumen

Permite al usuario administrar volúmenes y discos.

  • Reemplazar un testigo a nivel de proceso

Permite a un proceso reemplazar el testigo predeterminado asociado a un subproceso que se ha iniciado. Este privilegio sólo debería obtenerse mediante la cuenta de Sistema Local. Se usa, entre otras cosas, para crear testigos restringidos.

  • Representar al cliente después de la autenticación
  • Restaurar archivos y directorios

Permite a un usuario evitar los permisos de archivo y directorio cuando restaura una copia de seguridad y establecer cualquier objeto principal como el propietario de un objeto.

  • Sincronizar los datos de Directory Service

Permite a un proceso leer todos los objetos y propiedades en el directorio, a pesar de la protección de los mismos. Este privilegio es necesario para usar sincronización de servicios de directorio LDAP.

  • Tomar posesión de archivos y otros objetos

Permite a un usuario romar posesión de cualquier objeto asegurable del sistema, incluyendo los objetos de AD, archivos e impresoras, impresoras, llaves del registro, procesos e hilos.

Los Derechos de usuario

  • Tener acceso a este equipo desde la red

Permite a un usuario conectar con el equipo desde la red.

  • Denegar el acceso desde la red a este equipo

Deniega la conexión con el equipo desde la red. Predeterminadamente no está asignado a nadie, a excepción de la cuenta integrada de soporte. El mal uso puede llevar al bloqueo de uno mismo o del sistema.

  • Iniciar sesión como proceso por lotes

Permite a un usuario iniciar sesión usando un archivo por lotes. De forma predeterminada está concedido sólo a los administradores. Cuando uno de ellos usa el asistente de añadir una tarea programada para programar una tarea y ejecutarse bajo un usuario y contraseña particulares, este usuario es asignado automáticamente al inicio de sesión como un derecho de proceso por lotes. Cuando llega el momento de ejecutarse, el programador de tareas inicia la sesión del usuario como un proceso por lotes más que un usuario interactivo, y la tarea se ejecuta en el contexto de seguridad del usuario.

  • Denegar el inicio de sesión como trabajo por lotes

Deniega al usuario la posibilidad del inicio de sesión usando un proceso por lotes. De forma predeterminada no está concedido a nadie.

  • Iniciar sesión como servicio

Permite a un objeto principal iniciar sesión como servicio y establecer un contexto de seguridad. Las cuentas de Sistema Local, Servidor de red y Servicio Local siempre retienen el derecho de iniciar sesión como servicio. Cualquier servicio que se ejecute con una cuenta distinta debe serle concedido el derecho.

  • Denegar el inicio de sesión como servicio

Deniega a un objeto principal la posibilidad de iniciar sesión como servicios y establecer un contexto de seguridad.

  • Permitir el inicio de sesión local

Permite a un usuario iniciar sesión en el equipo mediante sea con la consola o una sesión de servicios de terminal y con IIS. La configuración de este derecho debe realizarse con precaución puesto que podríamos incluso impedirnos a nosotros mismos acceder al sistema si nos lo quitamos. En Windows Server 2003 es posible que un usuario establezca una conexión mediante una sesión de servicios de terminal contra un equipo específico sin este derecho, debido a la existencia del derecho de ‘permitir inicio de sesión a través de Servicios de Terminal Server’.

  • Denegar el inicio de sesión localmente

Deniega al usuario el inicio de sesión a la consola del equipo. Predeterminado a nadie. También ha de aplicarse con precaución ya que podríamos impedirnos a nosotros mismos acceder al sistema.

  • Permitir inicio de sesión a través de Servicios de Terminal Server

Permite a un usuario el inicio de sesión usando servicios de terminal en XP y Windows Server 2003. Si concedemos este derecho no es necesario ya añadir al usuario al derecho de inicio de sesión local como lo era en Windows 2000.

  • Denegar inicio de sesión a través de Servicios de Terminal Server

Deniega el inicio de sesión al usuario usando servicios de terminal. Si tiene el derecho de inicio de sesión local, podrá hacerlo a la consola del equipo.

Podemos ver los privilegios y derechos de inicio de sesión asignados a equipos y usuarios con showpriv.exe del resource kit, esta herramienta en línea de comandos nos permite, indicándole el nombre del privilegio, conocer las cuentas y grupos que lo tienen asignado. Aunque no lista los servicios que tienen los derechos o privilegios inherentes como LocalSystem.

showpriv

Con la herramienta whoami y el parámetro /all también obtenemos información sobre los privilegios y derechos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *