Está en la página 1de 39

Seguridad en Sistemas

Operativos y Aplicaciones

Seguridad en Windows

Mg. Ing. Juan A. Devincenzi


Temario

• Sujetos (Principals) y Objetos (Securables)


• SID & RID
• Autenticación: Hash & Métodos
• Securables
• Access Token
• Integrity Level
• UAC
• Servicios

UBA - Maestría en Seguridad Informática 2


Sujetos y Objetos

• Sujeto (Principal): toda entidad asociada a un


identificador de seguridad (SID) que desea ganar acceso
a un Objeto (Securable). Los Principal's son: User,
Computer, Group, Service.
• Objeto (Securable): toda entidad que posee un
Security Descriptor y puede ser accedida por un Sujeto.
Ej: archivo, carpeta, clave de registro, proceso, etc.
• Matriz de control de acceso: modelo para describir y
gestionar el acceso de los sujetos a los objetos.
Sujeto Objeto 1 Objeto 2 Objeto 3
A RW N/A RO
B RO RW RO
C RW N/A RW

UBA - Maestría en Seguridad Informática 3


SID: Security Identifier
• Secuencia numérica que representa a un Principal de
forma unívoca; es utilizado por Windows en forma
interna para evaluar e impactar permisos.

• La excepción es cuando se clona una PC en cuyo


caso se debe usar un software para generar nuevos
SIDs.

• Los SIDs tienen la siguiente estructura general:


Identificador
Literal
Nivel de Autoridad N Sub Relativo
'S'
-----> revisión ------> Identificativa------> autoridades -----> (RID)

UBA - Maestría en Seguridad Informática 4


RID: Relative Identifier
• Es la última sub-autoridad del SID.

• Caracteriza de forma unívoca a un Principal dentro del


ámbito donde su SID fue definido.
RID Descripción
500 Administrador local
501 Usuario invitado
512 Adminitradores del dominio
513 Usuarios de dominio
515 Hosts del dominio
516 Controladores de dominio
545 Grupo 'Usuarios' local
UBA - Maestría en Seguridad Informática 5
Autenticación: Hash & Métodos
• Es la acción de determinar si un usuario es quien
dice ser; normalmente se basa en: userID +
password.

• El método de autenticación es modificable


mediante la dll GINA (Graphical Identification and
Authentication).

• La autenticación puede ser contra la SAM


(local/remota) o en Dominio (remota mediante
Kerberos).
UBA - Maestría en Seguridad Informática 6
Autenticación: Hash & Métodos

• La SAM almacena un hash (LM, NT o ambos) que


representa la contraseña del usuario.

• Varios métodos de autenticación: LM/NTLM,


NTLM v2, NTLM++, Kerberos (exclusivo de AD).

• A partir de Windows Vista/2008 no se


almacena más el hash LM y el
método de autenticación es NTLM v2.

UBA - Maestría en Seguridad Informática 7


Hash de Autenticación

• El Hash LM es débil y ha caído en desuso.

• Se basa en tomar la entrada y pasarla a


mayúsculas y separarla en 2 grupos de 7
caracteres agregando padding de corresponder.
Dichos grupos luego se cifran con DES contra una
clave fija por separado y la salida concatenada es
el hash.

• El Hash NT es un MD4 de la entrada.

UBA - Maestría en Seguridad Informática 8


Securables: Security Descriptor
• Todos los Objetos (Securables) están asociados a
un Security Descriptor.
• Un Security Descriptor (SD) es un estructura de
datos que contiene toda la información de seguridad
asociada a un objeto y tiene la siguiente forma:
Control Revisión Reservado
Puntero al dueño del securable
Puntero al grupo primario (se mantiene por compatibilidad con POSIX)
Puntero al DACL (permisos)
Puntero al SACL (auditoría)
UBA - Maestría en Seguridad Informática 9
Securables: SACL y DACL
• SACL y DACL son idénticos en estructura.
• SACL determina que accesos (y de que tipo) al
objeto son auditados.
• DACL (Discretionary Access Control List)
determina que accesos (y de que tipo) al objeto son
permitidos.
• La estructura de SACL y DACL es la siguiente:

ACE Reservado Reservado

Revisión Tamaño de la ACL


UBA - Maestría en Seguridad Informática 10
Securables: ACE
• ACE (Access Control List Entry) define los atributos
de un Sujeto (Principal) sobre un Objeto (Securable).

• Existe al menos una ACE por Principal para definir


los atributos del mismo sobre un Securable
determinado.

Tamaño Flags Tipo


SID Máscara

Nota: Tipo define entre otros si se trata de una SACL o DACL (allow o deny) y el IL (Integrity Level).

UBA - Maestría en Seguridad Informática 11


Securables: Access Mask

• Access Mask (AM) es una estructura de 32 bits para


almacenar los permisos de un Principal sobre un Securable.

Reservado Flags Derechos estándar Derechos sobre objetos

• La AM se encuentra persistida como una sucesión de


bytes así: 0x1200a9 o 100100000000010101001.

• Para interpretar los permisos se puede utilizar el editor


GUI que viene con Windows.

UBA - Maestría en Seguridad Informática 12


Securables: Cuadro general

UBA - Maestría en Seguridad Informática 13


La GUI para ACE y Access Masks
ACE’s Access Mask

• La GUI permite visualizar y editar con facilidad las ACE’s y las Access
Masks dentro de estas así como gestionar la herencia.
UBA - Maestría en Seguridad Informática 14
Herencia en los Securables
• Los Objetos heredan permisos de sus padres.
• La herencia puede cortarse en un punto
determinado o bien propagarse a partir de un punto
determinado.
• Se puede elegir a que tipo de objetos hijos
propagar la herencia.

UBA - Maestría en Seguridad Informática 15


Ejercicio: Otorgando permisos
• Crear un usuario, un grupo y una “carpeta 1” en la raiz
del disco con un archivo y una “carpeta 2” dentro de
ella; incluir al usuario dentro del grupo.

• Cortar la herencia en la “carpeta 1” y dar permiso de


lectura al grupo creado (a todos los elementos hijos) y
eliminar el permiso heredado de SYSTEM.

• Propagar los permisos modificados


de la “carpeta 1” a todos sus hijos.

• Verificar los permisos.


UBA - Maestría en Seguridad Informática 16
Access Token
• Es una entidad que encapsula la información de
seguridad de un usuario.

• Cada vez que un usuario inicia sesión se crea un


Token asociado a dicho usuario.

• Cada vez que un usuario inicia un proceso se


adjunta su Token a dicho proceso.

• El Token contiene los grupos a los cuales


pertenece el usuario y sus atributos de seguridad.
UBA - Maestría en Seguridad Informática 17
Access Token

Nota: desde la “Directiva de…” y la pertenencia a grupos de un usuario se puede modificar su Token.

UBA - Maestría en Seguridad Informática 18


Evaluación de permisos
• Cuando un usuario intenta acceder mediante un
proceso a un Securable, Windows compara el
Access Token del usuario (asociado al proceso)
contra el Security Descriptor del Securable y otorga o
deniega el acceso.

UBA - Maestría en Seguridad Informática 19


Integrity Level (IL)
• Windows siempre funcionó bajo el Modelo Discrecional de
accesos (otorgados a discreción por el dueño del objeto).

• A partir de Windows Vista se introduce también el Modelo


Mandatorio y por ende los IL (son
6 niveles en total).

• Todo sujeto/objeto tiene ahora


un IL y puede escribir solo
otro objeto con un IL <= y leer
otro objeto con un IL >=
(Write Down / Read Up).
UBA - Maestría en Seguridad Informática 20
Integrity Level (IL)
• El IL se guarda en el Objeto como un ACE más y en cada
Sujeto en el Access Token como un grupo más.

Installer Read Up
• La mayoría de los Access Token
System
de los procesos comienzan con
High
un IL medio; cuando se inician Medium
como Administrador tienen un IL Low

alto. Untrusted Write Down

• La evaluación del modelo Mandatorio es previa al


Discrecional. Si el modelo mandatorio no cumple entonces
no se evalúa el Discrecional.
UBA - Maestría en Seguridad Informática 21
Filtrado de Access Token
• Cuando un usuario inicia sesión, si se verifica que el
mismo se encuentra dentro de ciertos grupos de altos
privilegios o con ciertos permisos poderosos se crean 2
Token’s asociados a dicho usuario.

• Un Token tendrá todos los privilegios sin modificarse, y


el otro tendrá todos esos privilegios removidos y contará
solo con privilegios mínimos.

• El usuario con 2 Token’s trabajará siempre con el


Token de mínimos privilegios a menos que necesite más
privilegios que le serán otorgados solo a demanda.
UBA - Maestría en Seguridad Informática 22
Ejercicio: Browser Protected Mode
• Iniciar Edge o Chrome y abrir un par de tabs en el
mismo. Evaluar los tokens del proceso padre y de alguno
de los hijos: ¿Qué diferencia existe?

• Ahora iniciar un programa (ej: Notepad) como usuario


normal y como administrador.

• Evaluar los tokens de ambos procesos:


¿Qué diferencia existe?

¿Qué diferencia hay con el caso anterior


del Browser?
UBA - Maestría en Seguridad Informática 23
User Account Control (UAC)
• UAC se introdujo en Windows Vista y se actualizó en
Windows 7.

• Características principales de UAC:


▪ Elevation User Experience
▪ Token Filtering
▪ Secure Desktop Elevation Prompts
▪ Manifests and Requested Execution Levels
▪ File and registry virtualization
▪ Installer Detection Technology
▪ Internet Explorer’s Protected Mode
UBA - Maestría en Seguridad Informática 24
UAC: User Elevation Experience
(UEE) & Token Filtering
• UEE es la característica por la que más se lo conoce a UAC.

• Cuando una tarea requiere privilegios administrativos UAC solicita


las credenciales administrativas al usuario.

• Si se trata de un usuario sin privilegios solicita UserID + Pass y si


se trata de un usuario con Token filtrado solicita solo confirmación;
este comportamiento es configurable.

UBA - Maestría en Seguridad Informática 25


UAC: User Elevation Experience
(UEE) & Token Filtering
• UAC también verifica si la aplicación está firmada y es confiable
(Authenticode signature) y varía sus cuadros de diálogo en base a
ello.
• El administrador puede configurar aplicaciones no conocidas,
confiables y no confiables manualmente o por GPO.

UBA - Maestría en Seguridad Informática 26


UAC: Secure Desktop Elevation
Prompts
• Cuando UAC solicita las credenciales (o la
confirmación) lo hace por defecto en un Secure
Desktop (característica configurable).

• El Secure Desktop es un proceso que solo admite


comunicación con otros procesos que se ejecuten
como SYSTEM.

• Gráficamente se caracteriza por una pantalla de


fondo sombreada donde solo se ve un cuadro de
diálogo de confirmación.
UBA - Maestría en Seguridad Informática 27
UAC: Manifests and Requested
Execution Levels
• Las aplicaciones .NET pueden tener un manifiesto
(logo-compliant applications) que le indica a UAC como
deben ejecutarse.

• El manifiesto informa el nivel de permisos: "asInvoker"


(corre con el Token actual), "highestAvailable" (los
privilegios más altos disponibles), "requireAdministrator"
(solicita siempre credenciales de Administrador).

• En las aplicaciones .NET existe un documento XML


llamado manifiesto donde se pueden realizar estas
definiciones.
UBA - Maestría en Seguridad Informática 28
UAC: File and registry virtualization
• Es una característica de compatibilidad para aplicaciones viejas.

• Permite que dichas aplicaciones corran con usuario estándar.

• File virtualization atrapa los pedidos de escritura de una a


aplicación a %PROGRAMFILES%, %PROGRAMDATA%, o
%SYSTEMROOT% y los redirige a %LOCALAPPDATA%\
VirtualStore\ creando una carpeta por usuario.

• Registry virtualization atrapa los pedidos de escritura de una a


aplicación a HKLM\SOFTWARE\* y las redirige a
HKEY_CLASSES _ROOT\VirtualStore\SOFTWARE\ creando una
carpeta por usuario.

UBA - Maestría en Seguridad Informática 29


UAC Group Policy Settings
• Muchas características y comportamientos de UAC puede ser
modificadas por el Administrador.
• Estas opciones se pueden hallar en \Local Security Policy\Local
Policies\Security Options.

UBA - Maestría en Seguridad Informática 30


Servicios: Introducción
• Un servicio es un programa diseñado para realizar tareas
específicas sin intervención del usuario.

• Los servicios se inician como dll’s o exe’s en el marco de un


proceso gestionador (Service Handler Process). Ej: svchost.exe

UBA - Maestría en Seguridad Informática 31


Servicios: Introducción
• Los servicios pueden iniciarse con el SO (automático) o en
forma manual.
• Los Service Handler Process funcionan como un endpoint para
las conexiones de red de los servicios.

UBA - Maestría en Seguridad Informática 32


Servicios: Service Control Manager (SCM)
• SCM es un proceso encargado de iniciar los servicios en el
contexto de seguridad que corresponde, mantener el listado de los
servicios actualizado, iniciar/detener servicios, entre otros.
• La información de cada servicio se almacena en
HKLM\System\CurrentControlSet\Services

UBA - Maestría en Seguridad Informática 33


Servicios: Security Context
• Todo servicio debe ejecutarse con una cuenta de
usuario que puede ser una cuenta creada a medida
o una “builtin account”.

• Las cuentas buitlin son: Local


System, Local Service, Network
Service.

UBA - Maestría en Seguridad Informática 34


Servicios: Security Context
• Es posible visualizar el Security Token del Service Handler
Process que contiene al servicio buscado.

• A partir de Windows Vista cada servicio tiene un SID propio (y


por lo tanto es un Principal)
para segregar mejor sus funciones.

• Se pueden ver con:


sc.exe showsid [servicename]

UBA - Maestría en Seguridad Informática 35


Servicios: Service as a Principal
• Dado que un servicio es un Principal, puede poseer
acceso discrecional a ciertos objetos, ej.:

UBA - Maestría en Seguridad Informática 36


Servicios: Security Context
• “sc.exe <server> qprivs [servicename]” se puede utilizar para ver
los privilegios requeridos por un Servicio.

• SCM removerá todos los privilegios proporcionados por la


cuenta de usuario con la que se ejecuta el Servicio que no sean
requeridos por este.

• El Security Token está asociado al Service Handler Process que


contiene los Servicios y no a cada Servicio en particular.

• Por lo anterior, SCM realizará la unión de privilegios mínimos de


todos los servicios asociados a un mismo Service Handler Process
y en base a ello se compondrán los privilegios del Security Token
asociado a ese Service Handler Process.
UBA - Maestría en Seguridad Informática 37
Ejercicio: Servicios

• Elegir un servicio de la lista de “Services”.

• Visualizar su SID y sus privilegios


asociados (utilizando sc.exe).

• Determinar su Service Handler Process asociado en


base a su path de inicialización en “Services”.

UBA - Maestría en Seguridad Informática 38


¿Preguntas?

UBA - Maestría en Seguridad Informática 39

También podría gustarte