sábado, diciembre 05, 2009

Control de Cuentas de Usuario (I de VI)

************************************************************************************************
- Control de Cuentas de Usuario (I de VI)
- Control de Cuentas de Usuario (II de VI)
- Control de Cuentas de Usuario (III de VI)
- Control de Cuentas de Usuario (IV de VI)
- Control de Cuentas de Usuario (V de VI)
- Control de Cuentas de Usuario (VI de VI)
************************************************************************************************

El User Account Control [UAC] o Control de Cuentas de Usuario, es una de las mejores funcionalidades que trae Windows para proteger los privilegios de los administradores y, sin embargo, es de las que más pena me da escuchar a hablar. Informáticos de pro hablando mal de esta característica, técnicos de sistemas malentendiendo su funcionamiento, cayendo en el chascarrillo fácil y la simplificación de la tecnología. Me apena y me entristece. Durante esta gira de Lanzamiento de Windows 7 he tenido la suerte de poder explicar un poco en detalle cómo funciona el UAC en Windows Vista y en Windows 7 y, tras haber sido la sesión mejor valorada de toda la gira, creo que por lo menos me llevo la satisfacción de haber explicado un poco más esta funcionalidad.

Sin embargo, durante la ejecución de la gira, mi amigo “Pajarraco” de los Santos decidió, tras llevar alrededor de cuatro meses usando Windows, escribir los que para mí son los peores artículos que ha escrito él en mucho tiempo en Una-al-día, sobre todo cuando él mismo tiene una visión favorable a UAC que no veo bien reflejada en sus artículos.

Vaya por delante que Una-al-día ha sido mi mentora y tutora en el mundo de la seguridad informática, y que, tras alrededor de 10 años suscrito a la newsletter soy capaz, casi con total éxito de reconocer un texto de Bernardo Quintero, Antonio Ropero, Laboratorioman y “Pajarraco” de los Santos solo con leer el primer párrafo, algunas hasta con el título.

Sin embargo, los artículos del UAC escritos por “Pajarraco” reflejan un punto de vista con respecto al UAC totalmente desprovisto de los tecnicismos y las arduas explicaciones técnicas. Los dos primeros me parecen directamente mal explicados, mal comparados con las tecnologías de otros sistemas operativos e incluso menospreciantes en los conceptos novedosos que en sí que aporta UAC.

El tercero, tras largas conversaciones telefónicas entre él y yo, “Pajarraco” sabe perfectamente que le voy a llamar después de escribir algo así, publicó una tercera parte en la que intentaba matizar algunos detalles para aquellos que como yo no lo veíamos tan claro, como la aplicación del principio del Mínimo Privilegio Posible, algo, que guía la construcción de UAC desde su inicio y que intentar explicar esta tecnología sin hablar de él es imposible o erróneo.

- Mitos y leyendas: UAC, ese gran incomprendido I (Introducción)
- Mitos y leyendas: UAC, ese gran incomprendido II (UAC de forma útil)
- Mitos y leyendas: UAC, ese gran incomprendido III (UAC y la ley del mínimo privilegio)

Sin más preámbulo, y si ya te has leído la serie de artículos sobre UAC que escribió mi amigo “Pajarraco” de los Santos, vamos a empezar con esta serie.

Fortificar u Optimizar

Siempre que intento explicar este concepto me gusta hablar de la diferencia entre Optimizar y Fortificar un sistema. Son dos procesos que muchas veces nos caen a los consultores informáticos y que tienen dos aproximaciones de trabajo totalmente diferentes.

La optimización no es un proceso que se pueda hacer de fábrica, no es algo que pueda venir out-of-the-box. El método de optimización debe generar los mejores parámetros de configuración de un sistema para conseguir el máximo rendimiento pero éstos siempre van a depender de la carga y uso que se le dé al sistema. Es por eso que de fábrica los equipos vienen con unos parámetros por defectos pensados para ser los que mejor funcionan en la mayoría de los casos. Nada más instalar un Windows Vista o un Windows 7 ponerse a tocar servicios y valores va en contra de su rendimiento y muchos de los que intentan tunearlo al igual que se hacía con Windows XP suelen cepillarse el rendimiento del sistema más que arreglarlo. Sólo se puede optimizar un sistema después de un análisis de la carga de trabajo del mismo y para ello Windows Vista y Windows 7 ya traen sus mecanismos.

La fortificación, por el contrario, es un proceso que depende del rol del sistema. El rol a un sistema se le asigna antes de ponerlo en producción por lo que la Fortificación sí es un proceso que puede hacerse antes. Así, los sistemas Microsoft, por defecto, desde la TCI, aplican la fortificación por defecto y es labor del administrador del sistema configurar los roles y bajar los controles de seguridad lo justo y necesario para que funcione el rol que va a recibir este sistema.

Decía Andrew S. Tanenbaum que la única manera de tener un sistema seguro es metiéndolo dentro de una caja fuerte y tirando la llave dentro y esa es más o menos la idea de la fortificación, sólo que hemos de abrir la caja fuerte un poco, pincharle un cable de red y dejar que entre y salga el tráfico justo para que cumpla con sus funciones.

Principios de la Foritificación de Sistemas

Para ello se aplican tres principios fundamentales:

- Defensa en Profundidad [DP]: Este axioma dice que un sistema debe aplicar tantas medidas de seguridad como sea posible teniendo en cuenta que las medidas de seguridad de las capas adyacentes pueden haber sido comprometidas siempre y cuando la aplicación de una medida no anule la aplicación de otra y que el sistema siga ofertando su servicio. Si pones un IDS de red y luego cifras con IPSEC una medida de seguridad ha sido anulada y sería un mal diseño de defensa en profundidad. Si pones muchas medidas de seguridad y resulta que no se cumplen los objetivos del servicio, es decir, el servicio se ve deteriorado en sus principios básicos, tampoco será una opción viable. Por último, en un mundo ideal no hay dinero o este es del monopoli, pero en la realidad la aplicación de la regla de Defensa en profundidad se verá afectada también por la pasta que se tenga.

- Mínimo Punto de Exposición [MPE]: Un sistema debe ejecutar sólo y exclusivamente los componentes necesarios para el cumplimiento funcional de su rol. Es decir, es de cajón que un servidor, si no necesita dar servicio de Webdav no tiene porque tener este servicio en ejecución, ni publicado a internet y ni aceptar peticiones. Así, cuando se pone en producción una máquina hay que ver cuáles son sus roles y cuáles los componentes que se necesitan. Desde Windows Server 2003 R2 todos los servidores de Microsoft son role-oriented.

- Mínimo Privilegio Posible [MPP]: Cada uno de los componentes necesarios para la ejecución de un rol debe ejecutarse con el número de privilegios justos para ello. No menos, porque entonces no funcionaría el sistema, no más porque entonces se está subiendo el riesgo. Esto en sistemas Windows XP fue una crítica constante, y con razón, de porque un servicio de red debía correr con una cuenta tan privilegiada en el sistema que pudiera hacer mil cosas. La pregunta es, ¿debería el bloc de notas correr con privilegios de administración? ¿incluso cuando lo ejecute el administrador? La respuesta, lógicamente, es que no, no debería. ¿Y si se necesitan de forma muy concreta para un caso muy concreto? Entonces que se haga de forma explícita en esta excepción.

Fortificar un sistema es aplicar DP, MPE y MPP a todos, absolutamente todos los componentes y procedimientos del sistema. Vamos a ver como lo aplica Windows 7 Windows Vista.

Mínimo Privilegio en Windows Vista y Windows 7

Este principio, dirigido desde la TCI [Trustworthy Computing Initiative] mediante el SDL [Secure Development Lifecycle] es aplicado en Windows Vista, y por tanto en Windows 7, desde la concepción del sistema operativo. Recordad que la reconstrucción del kernel de Longhorn bajo este nuevo prisma, impuesto por la TCI en el año 2002, obligó a rehacer los diseños y retrasar el lanzamiento de NT 6.0 un año.

Con esta nueva arquitectura del sistema llegaron los Niveles de Integridad aplicados por el MIC [Mandatory Integrity Control]. Esto se había demandado tiempo ha, ya que no todos los componentes tienen la misma importancia dentro del sistema operativo y, por tanto, parece lógico crear una serie de anillos de seguridad de tal manera que un componente que se ejecute en un nivel menos privilegiado no pueda manipular componentes corriendo en niveles más privilegiados.

Pero con este diseño también llegó UAC, nuestro querido amigo UAC, cuyo objetivo es que los privilegios de una cuenta estén protegidos directamente por el sistema operativo. Que sea el propio Windows quien haga un uso responsable de los privilegios que tiene una cuenta. Es decir, que por muchos privilegios que tena una cuenta, la ejecución de un comando desde una de esas cuentas sea aplicando el principio del MPP.

Así, el administrador de un sistema que ejecuta el bloc de notas podrá tener la seguridad de que su bloc de notas no le va a crear un usuario dentro del sistema operativo, le va a modificar el firewall, le va a lanzar un Shell fuera del sistema.

La diferencia es brutal y maravillosa en comparación con otras soluciones. Si en cualquier otro sistema entras como administrador y se hace un doble clic sobre un editor de texto, sólo con Windows Vista/Windows 7 y UAC estás seguro de que ese editor de textos no te va a crear un usuario en el sistema. En el resto de soluciones no tienes esa garantía.

************************************************************************************************
- Control de Cuentas de Usuario (I de VI)
- Control de Cuentas de Usuario (II de VI)
- Control de Cuentas de Usuario (III de VI)
- Control de Cuentas de Usuario (IV de VI)
- Control de Cuentas de Usuario (V de VI)
- Control de Cuentas de Usuario (VI de VI)
************************************************************************************************

viernes, diciembre 04, 2009

Vivo o Muerto

Cuando te encuentras mal y llegas a un estado de fiebre alta siempre encuentras ciertos momentos de misticismo supra terrenal. Momentos de elevación del alma más allá de la carne dolorida y las tripas revueltas. No, no os asustéis, estoy bien, pero he tenido mi momento de lucida desesperación en la que he llegado a temer por lo más sagrado: “¿Y si no soy capaz de volver a postear?”. Sí, bueno, eso y si Raúl adelantará a todos en la tabla de máximos goleadores de la Liga.

El caso es que desde hace mucho tiempo sé cuál es el último post de este blog, el título lo saben todos mis amigos, porque se lo he contado muchas veces y el día que ellos lo vean en el RSS sabrán que el blog va a desaparecer en cuestión de horas. Algunos quizá os preguntéis porque un blog puede destruirse, pero no será ni el primero ni el último que lo hace por hastío, aburrimiento o, simplemente, porque ya ha dejado de representar a la persona que lo suscribe. Seguro que muchos de vosotros habéis destruido un blog, ¿por qué no iba a quere hacer yo lo mismo con éste por algún motivo?

La idea tiene una versión más seria que este simple devaneo mental y la pregunta es ¿quieres que tu blog te sobreviva? ¿Quieres que tu perfil de facebook siga abierto más allá de tu vida? ¿Deseas realmente que tu Twitter hable de ti cuando hayas muerto? ¿Quieres que tu fotolog o tu flicker perduren en Internet con tus sonrisas y lágrimas más allá de tu vida?

Sí, joder, es viernes y vaya preguntas os estoy haciendo, pero no es la primera vez que he tenido que pedir favores a contactos para cerrar el perfil en Live de alguna persona tristemente fallecida del cuál la prensa cutre está tirando para hacer escabrosos artículos.

Estas preguntas me llevaron a pensar como se podría realizar esta tarea de forma sencilla. Actualmente, los familiares, con el certificado de defunción tienen que poner una denuncia que los cuerpos de seguridad del estado tramitan con las compañías tecnológicas para que las cuentas sean eliminadas, pero claro, esto lleva un periodo de tiempo largo que hace que, incluso, aparezcan replicas de los perfiles más significativos. ¿No se podría crear un servicio automático?

Lo suyo es que las propias cuentas tuvieran una opción de autodestrucción. Que la cuenta de Facebook pudiera configurarse con algo como “eliminar cuenta si no hay actualizaciones en X días”, lo mismo en twitter, blogger o Live. Pero si no… que hubiera algún servicio donde uno pudiera establecer su propio canal de actuación. Algo que monitorice si estás “vivo o no” y en el caso de que no lo esté que borre todo lo que tú no quieras que te perdure. ¿Vamos a tener que scriptar algo así? Yo por si acaso, voy a dejar todas mis contraseñas y mis datos en el testamento… para que nadie hable de mi cuando haya muerto…

Saludos Malignos!

UPDATE: Hay algunas soluciones ya en esta línea. Mola. ¿será que uno se hace mayor? En este artículo hay buenas referencias.

Más allá de la muerte

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares