Seguridad: usuarios

suntzu

If you know the enemy and know yourself, you need not fear the result of a hundred battles.

If you know yourself but not the enemy, for every victory gained you will also suffer a defeat.

If you know neither the enemy nor yourself, you will sucumb in every battle.

– The Art of War, Sun Tzu

 

Si te conoces tanto a ti como a tu enemigo, no temas el resultado ni de cien batallas.

Si sólo te conoces a ti pero no a tu enemigo, perderás tantas batallas como tantas ganes.

Si no te conoces ni a ti ni a tu enemigo, sucumbirás en cada una de ellas.

– El arte de la guerra, Sun Tzu

hace más de 2000 años.

Las cuentas son la unidad central de seguridad en equipos ejecutando Microsoft Windows Server 2003, Windows 2000, Windows XP y las aplicaciones que se ejecutan en ellos.

Los derechos y permisos se asignan a las cuentas y comprobados por los recursos en el momento de su acceso. Debe entenderse que usuario y cuenta de usuario no es la misma entidad. Cualquiera en posesión de las credenciales asociadas a una cuenta de usuario puede usar dicha cuenta, a pesar del nombre del que la use -un equipo controlará y auditará el acceso a sus recursos basándose en el token de cuenta de usuario, nunca en la identidad física de la persona que la esté usando.

Seguridad de cuentas

Cada cuenta de usuario, equipo o grupo es un objeto principal de seguridad en los sistemas ya mencionados. Estos objetos reciben permisos para acceder a los recursos. Los derechos de usuario se permiten o niegan a las cuentas directamente o por su pertenencia a un grupo. La suma de estos permisos y derechos definen lo que los objetos principales de seguridad pueden y no pueden hacer en la red.

Las cuentas de usuario se encuentran o en un ámbito local o un ámbito de dominio., Tanto en Windows 2000 como en Windows Server 2003 server las cuentas de dominio se almacenan en la base de datos de directorio del Directorio Activo(Ntds.dit) en controladores de dominio , mientras que la cuentas locales se almacenan en una base de datos SAM individual (Security Accounts Manager) de las estaciones de trabajo o servidores miembros tanto si están como sino unidos al dominio. Las cuentas de dominio pueden ser utilizadas para autenticarse frente a cualquier equipo en el bosque, y en cualquier dominio con relación de confianza ,en el que la cuenta exista, mientras que las cuentas locales sólo autentican para el acceso a recursos en el equipo local.

SID’s

Aunque la referencia de cuentas de usuario se realiza usando el nombre o el nombre universal principal (UPN), el sistema operativo internamente las referencia por su identificador de seguridad (SID). Para cuentas de dominio el SID se crea con la concatenación del SID del dominio y un identificador relativo (RID) para la cuenta. Los SID’s son únicos dentro de su ámbito (Local o de dominio) y nunca se reutilizan. Un ejemplo:

S-1-5-21-388323654-654782038-156896542-1470
S-revisión-autoridad-subautoridad-identificador relativo

  • Revisión

Valor indicador de la versión de la estructura del SID utilizada. El valor actual es 1.

  • Autoridad identificadora

Valor que identifica a la autoridad que puede emitir SIDs para este aprticular tipo de objeto principal de seguridad. El valor de la autoridad identificadora del SID de una cuenta o grupo en Windows Server 2003, Windows 2000 y Windows XP es 5 para NT Authority.

  • Subautoridades

La información más importante en un SID está contenida en una serie de uno o más valores de subautoridad. Todos los valores de la serie sin incluir el último, identifican colectivamente a un dominio en una empresa. Esta parte se conoce como identificador de dominio. El último valor en la serie identifica una cuenta particular  o grupo relativo a un dominio. Este valor es el RID. En el ejemplo 1470.

Predeterminadamente diversos objetos principales de seguridad son creados durante la instalación del sistema operativo o dominio; los SID’s para estas cuentas se denominan SID’s conocidos.

SIDs conocidos Windows 2000

Windows Server 2003 – SID’s conocidos

 

Cuando un usuario inicia sesión correctamente en la red, se crea un token de acceso. Una copia del mismo se adjunta a cada proceso e hilo que se ejecuta de parte del usuario. El token de acceso se usa por el equipo para determinar si el usuario dispone de la autoridad apropiada para acceder a la información o para realizar una acción u operación. El contenido de un token incluye:

  • El SID de la cuenta.
  • Una lista de SIDs de los grupos de seguridad que incluye la cuenta. En un dominio en modo nativo, la lista también incluye el SID almacenado en el atributo SID-History de la cuenta.
  • Una lista de los derechos y privilegios de inicio de sesión que la cuenta posee directamente o por su pertenencia a grupos de seguridad.
  • El SID del usuario o grupo de seguridad quién, por defecto, se convierte en propietario de cualquier objeto que el usuario creó o tomó posesión de él.
  • El SID del grupo de seguridad primario del usuario. Esto se usa por el subsistema POSIX cuando se utiliza el servidor de archivos para Macintosh o el servidor de impresión para Macintosh para proporcionar servicios de archivos o impresión desde equipos con Windows NT o superiores a clientes Macintosh.
  • El proceso que causó la creación del token (Sesion manager, LAN manager, o RPC).
  • Un valor indicando si el token es un primary token o un impersonation token. El primero es el que representa el contexto de seguridad de un proceso, mientras el segundo es un token de acceso que en un hilo dentro de un proceso  de servicio puede usarse para adoptar un contexto de seguridad temporal para el cliente del servicio.
  • Un valor que indica en qué medida un servicio puede adoptar el contexto de seguridad de un cliente representado por este token de acceso.
  • Información sobre el propio token de acceso. Esta información la usa el sistema operativo internamente.
  • Una lista opcional de SID’s añadidos a un token de acceso por un proceso con autoridad para crear un token restringido. SID’s restringidos pueden limitar el acceso de un hilo a un nivel más bajo que el permitido al usuario.
  • Un valor que indica si el token está asociado con la sesión de inicio de sesión del cliente.

Podemos saber los detalles de nuestro token de acceso con el comando:

 whoami /all

Las cuentas disponen de una opciones de seguridad que hemos de configurar para afinar la configuración por defecto proporcionada. El directorio activo nos permite asegurar las cuentas de usuario individualmente de varias formas, que incluyen las siguientes opciones:

Horas de inicio de sesión.

Determina los días y horas de la semana, en periodos de una hora, en los que el usuario puede iniciar sesión en la red. Directiva de grupo proporciona una configuración para cerrar la sesión de un usuario forzosamente cuando el horario de sesión permitido ha expirado.

Iniciar sesión en.

Restringe a las cuentas el inicio de sesión interactiva a sólo los equipos de la red especificados.

El usuario debe cambiar la contraseña en el siguiente inicio de sesión.

Fuerza al usuario a cambiar su contraseña la próxima vez que inicie sesión interactiva. Esto es útil para nuevas cuentas y forzar los cambios de contraseña aleatorios.

El usuario no puede cambiar la contraseña.

Este valor impedirá a los usuarios cambiar su contraseña. Opción utilizada en cuentas compartidas, como las de los internet shop.

La contraseña nunca caduca.

Exceptuando si las directivas de grupo establecidas en el dominio respecto a la caducidad de las contraseñas dicen lo contrario, esta opción es para que la contraseña de la cuenta nunca caduque. Normalmente se establece en cuentas no interactivas y que no reciben avisos de caducidad, cuentas usadas en servicios por ejemplo.

Almacenar la contraseña usando cifrado reversible.

Almacenar las contraseñas de tal manera que puedan ser descifradas por el sistema operativo y ser comparadas con contraseñas en texto plano. Esta opción necesita si se usa protocolos como CHAP o SPAP para la autenticación. Si esta opción está seleccionada, la próxima vez que el usuario cambie su contraseña, la nueva se almacenará utilizando cifrado reversible. El hash es enviado a través de la red para propósitos de autenticación, entonces se descifra y compara con la copia de la contraseña en texto plano. Se usa sólo en cuentas que necesitan texto plano para que la contraseña sea conocida por el controlador de dominio, como las usadas en la autenticación de resumen IIS o desde equipos Macintosh.

Cuenta deshabilitada.

Impide que la cuenta pueda usarse, pero no la elimina. Hay elementos asociados a la cuenta por los cuales no queremos eliminarla, aunque ya no es necesaria para iniciar ninguna sesión del usuario y la deshabilitamos por seguridad.

La tarjeta inteligente es necesaria para un inicio de sesión interactivo.

Requiere que se utilice una tarjeta inteligente para iniciar sesión, incluyendo inicios de sesión de Terminal Services o Inicio de Servicios, pero no inicios en la red. Aquéllos usuarios con esta opción establecida no tienen permitido el inicio de sesión mediante su nombre y contraseña. En Windows 2000 la contraseña que se usó antes de establecer esta opción no se elimina, en XP y Windows Server 2003 se resetea automáticamente.

Se confía en la cuenta para su delegación.

Habilita a los servicios que se ejecutan con esta cuenta, llevar a cabo operaciones de parte de otra cuenta de usuario o equipo. La opción está disponible tanto para cuentas de usuario como de equipo y se viene utilizando con aplicaciones que se ejecutan en servidores web. Solo deberíamos establecerla si sabemos que es necesario para una funcionalidad correcta de una aplicación distribuida. Además, para usuarios que usen EFS para cifrar archivos en servidores remotos, la cuenta del servidor debe ser confiada para delegación para que el servidor pueda generar el perfil local para la cuenta y el usuario que usará las claves del usuario. Todos los controladores de dominio en AD están implícitamente confiados para delegación. Configurado en Windows Server 2003 en la pestaña de delegación de las propiedades de la cuenta.

Si un atacante compromete un equipo con el que se confía para delegación podría ser capaz de usar las credenciales de cualquier usuario o equipo que se autentique con el equipo comprometido para acceder a otros recursos de red.
Esto significa que dichos equipos had de ser protegidos, fisica y lógicamente, de igual forma que los controladores de dominio.

 La cuenta es importante y no se puede delegar.

Impide que la cuenta se delegue.

Usar tipos de cifrado DES para esta cuenta.

Habilita a la cuenta para usar DES, que es compatible con múltiples niveles de cifrado, para interoperabilidad con los mundos Kerberos basados en Unix, más que el algoritmo RC4 usado por defecto en Windows 2000 y 2003.

No pedir la autenticación Kerberos previa.

Deshabilita la autenticación previa de Kerberos que se usa de forma predeterminada, para interoperabilidad con MIT Kerberos v4.

La cuenta caduca.

Deshabilita automáticamente una cuenta en una fecha determinada.

Importante: No podemos establecer las opciones siguientes en la cuenta integrada de Administrador en Windows 2000, aunque sí se puede en Windows Server 2003:

* La contraseña nunca caduca
* Almacenar la contraseña usando cifrado reversible
* Cuenta deshabilitada
* La tarjeta inteligente es necesaria para un inicio de sesión interactivo
* Se confía en la cuenta para su delegación
* La cuenta es importante y no se puede delegar
* Usar tipos de cifrado DES para esta cuenta
* No pedir la autenticación Kerberos previa

 

Seguridad en cuentas administrativas

A pesar de la seguridad implementada en una red, siempre tenemos una colección de cuentas de usuario que están intrínsecamente confiadas a los administradores. Estas cuentas disponen de permisos y derechos que las habilitan para poder causar trastornos en cualquier mecanismo de seguridad mediante sus derechos innatos, sea mediante elevación de privilegios o comprometiendo el software o el hardware. Aunque puede que se haya investigado a fondo a los administradores durante el proceso de contratación, la cuenta de administrador en la mayoría de las redes es solo una cuenta mal protegida o con una contraseña mal creada. Una vez comprometida, una cuenta de este tipo es un pasaporte sin trabas para la entrada e la red entera y a todos los datos que hay en ella. Por lo tanto, es primordial proteger y asegurar las cuentas de administradores. Además de las opciones que son aplicables a las cuentas, podemos considerar las prácticas siguientes para estas cuentas:

  • Mínima cantidad de cuentas que tengan acceso de administrador. Podemos delegar autoridad sobre cada objeto de AD y el sistema de archivos. Además, la mayoría de servicios instalan grupos especiales de administración.
  • Utilizar grupos restringidos para controlar la pertenencia en grupos administrativos. Los grupos restringido en directivas nos permiten controlar la pertenencia a grupos automáticamente. Los controladores de dominio refrescan las directivas cada 5 minutos predeterminadamente; por lo tanto, cada cinco minutos, las cuentas que no están definidas en la configuración de directiva de grupos restringidos son eliminadas del grupo de seguridad. Si auditamos los sucesos de administración de cuentas, la aplicación de esta directiva quedará registrada en el registro de sucesos de seguridad con un ID 637. El ID de llamante en el mensaje de error listará el nombre de equipo del controlador de dominio en el que se produjo el cambio en vez del nombre de cuenta de usuario.
  • Solicitar autenticación de factor múltiple. Podemos obligar a autenticación con tarjeta inteligente para cuentas con acceso administrativo, miembros especiales del grupo de administradores de organización o del grupo de administradores de dominio. Así puede que evitemos riesgos asociados a las contraseñas y añadimos un elemento físico de seguridad en el uso de las cuentas de administrador.
  • Restringir el uso de cuentas de administrador en equipos determinados. Ya que un atacante puede fácilmente con las credenciales de un administrador si previamente ha comprometido un equipo donde inicia sesión un administrador, las cuentas de administrador sólo deben usarse en equipos de confianza donde se evite el compromiso, con la consola de servidor por ejemplo. Con esto creamos algunos inconvenientes de administración, sin embargo, para necesidades de alta seguridad, podemos usar la opción de inicio de sesión de una cuenta de equipo para restringir el inicio interactivo de cuentas de administrador en ciertos equipos. Combinando este valor con una buena seguridad física de los equipos en que se restringe el uso de la cuenta, aumentamos la seguridad de la cuenta de administrador.
  • No usar cuentas de administrador para rutinas diarias. No hay que navegar por internet, leer el correo, etc… con una cuenta de administrador; podemos limitar los daños de cualquier virus o troyano si usamos en su lugar un inicio de sesión secundario (RunAs), o alguna utilidad como **RunAsAdmin para equilibrar el uso de las cuentas y las rutinas diarias.
  • No permitas a los usuarios ser administradores locales. A menos que tengamos una razón clara y necesaria técnicamente para ello, debemos prohibir a los usuarios tener privilegios de administrador local. Los usuarios con estos privilegios pueden modificar la configuración del equipo, tienen acceso total al sistema operativo y al registro.
  • Examina a los empleados antes de concederles acceso administrativo. Junto al departamento de recursos humanos, evaluar a a los administradores de la red durante su contratación para impedir dar permisos a administradores potencialmente maliciosos o demasiado descuidados.
  • Bloqueo de servidores y equipos. Bloquear servidores y equipos sin atención es importante cuando se usan cuentas con derechos administrativos. Un atacante necesita pocos segundos en un equipo con sesión iniciada para comprometer el sistema. Directivas de bloqueo si la tarjeta inteligente es retirada.

** RunAsAdmin

Sus opciones, lo que nos servirá para establecer con que privilegios se ejecutará por defecto el shell, en principio Usuario normal:

RunAsAdmin01

Si lo tenemos instalado en un Windows Server 2003 o XP se nos añade un icono en el systray. Pinchando en él, se nos ofrece la opción Ejecutar como y seleccionandola se nos pedirá con que nivel de privilegios, selecciono Usuario Normal.

RunAsAdmin02 RunAsAdmin03

El cuadro para elegir el qué ejecutar con ese nivel de privilegios, utilizo el botón buscar para escoger el ejecutable(u otro) y selecciono el Iexplore.exe. Aceptar y vemos la ventana del navegador. El programa añade en la barra de título el nivel de su ejecución. En este caso en mi equipo aparece otro, un add-on de Aaron Margosis para IE que tengo instalado, con el añadido del color verde que me indica que navega bajo protección de una cuenta con niveles bajos de privilegios.

RunAsAdmin04 RunAsAdmin06

¿Que qué pasa si hubiera elegido sin restricción? Pues en este caso el IExplore muestra que lo estoy ejecutando con nivel de administrador y mi privbar me luce de color rojo.

RunAsAdmin07

Deja un comentario

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