lunes, diciembre 07, 2009

Control de Cuentas de Usuario (II 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)
************************************************************************************************

Confirmación de privilegios

En la actualidad, la complejidad de la tecnología hace que sea prácticamente imposible conocer todo lo que se desencadena tras la ejecución de un programa. Garantizar el número de privilegios de que se van a hacer uso, conocer las dlls que van a ser llamadas y todas las acciones que realiza un ejecutable requiere de un grado de especialización alto y de un proceso laborioso de análisis. Es por eso, que los analistas de malware inventan sistemas estancos, entornos simulados y ejecuciones controladas con programas que monitorizan todo el sistema para poder conocer qué acciones ha realizado un malware.

Para el resto de los mortales que no somos Mark Russinovich haciendo diabluras con el Process Explorer, hacer doble clic sobre un ejecutable es un acto de fe en el programa o en la compañía que firma ese programa.

Sin embargo, con UAC, ese acto de fe no es tanto, ya que, cuando se llama a la ejecución de un programa, y ese programa requiere el uso de nuestros privilegios administrativos, el sistema no se los va a conceder sin nuestro consentimiento.

Dicen que para los usuarios de menor perfil tecnológico esta alerta sirve de poco porque va a dar siempre a Sí, a conceder el privilegio, y puede que tengan razón. Sin embargo, para los usuarios de un conocimiento un poco superior, esa alerta es suficiente explicita, y fácil de comprender, como para que si un programita que se llama Cartas.exe que te has bajado de Internet porque tiene unas fotos muy chulas te pide privilegios de administración no se los concedas.

Así, el funcionamiento inicial, cuando se realiza la ejecución de un programa, tiene lugar con el token de seguridad de la cuenta del usuario que no tiene privilegios de administración. Si en cualquier instante el programa realiza una llamada a una API de administración se va a exigir la confirmación del usuario para cambiar al token con privilegios de administración. Misma cuenta, una alerta visual con confirmación, y dos tokens. Una solución preciosa para el control de los privilegios de administración con la aplicación del MPP. Esto conlleva que, por muy administrador que seas del sistema, tu bloc de notas nunca creará usuarios en el sistema sin que tú lo sepas.

En Windows XP

En los sistemas Windows XP, la solución que se propuso era similar a la que se aplica en otros sistemas. La idea es que el usuario corriera dentro del sistema con una cuenta no privilegiada y, cuando fuera a ejecutar una tarea que requiriese privilegios, utilizase el servido “Run as” o “Ejecutar Como” para cambiar la cuenta a una de administración.

Por desgracia este funcionamiento no caló en los usuarios, quizá porque todo el mundo quiere ser “Rootz” en su ordenador, porque se siente un “hax0r” o porque no quiere que nadie le limite dentro del sistema. Esto es tan así, que la inmensa mayoría de los usuarios con Windows XP que leen este blog, seguro que lo hacen con una cuenta de administración, es decir, navegan por Internet con una cuenta con privilegios de administración. Sí, vale, hay excepciones, pero tras una gira preguntando por 15 ciudades lo mismo este año, y tras años haciendo la misma pregunta desde el lanzamiento de Windows XP SP2 en cientos de eventos y cursos, sé cuál es la repuesta mayoritaria. La propuesta que hacíamos a la gente era que, ya que se conecta al sistema como administrador, por lo menos, que usara el servicio “Run as” cuando navegue por Internet para hacerlo con una cuenta menos privilegiada.

Alertas en Windows Vista y Windows 7

En Windows Vista y Windows 7 ya se puede ser un “hax0r” de tu sistema. Puedes entrar con una cuenta de administración y navegar por Internet con ella. Nunca se van a usar tus privilegios si tienes activo UAC sin que tú lo sepas. Y cuando se vayan a utilizar tienes varias formas de darte cuenta.

La primera forma es mediante la ejecución explícita de forma privilegiada, en la que basta con pedir la ejecución con los privilegios mediante una opción del menú contextual. De esta manera se pide utilizar el token administrativo de la cuenta.


Ejecución explícita con token de administración

La segunda opción es visual, se muestra un icono que identifica que tras la ejecución de ese proceso se van a necesitar privilegios administrativos. A partir de ese momento, y en función de la configuración de alertas que se haya seleccionado en el sistema se recibirá una alerta posterior de confirmación o no.


Icono de alerta visual que implica el uso de privilegios

Si está seleccionado el modo por defecto de Windows 7 y esta herramienta es una de las que están en la lista de herramientas administrativas que pueden ser llamada de forma manual sin confirmación, entonces no habrá más alerta.


Alerta de confirmación en modo aprobación

Por el contrario, si el sistema es un Windows Vista o se tiene seleccionada la opción más segura en Windows 7, entonces se recibirá una alerta de confirmación. Esta alerta es la que se va a recibir en el caso de que la ejecución de cualquier programa implique la necesidad de uso del token de administración.

Saltarse UAC

Conocido este comportamiento, el único medio que se conoce para saltarse la seguridad de UAC sin levantar sospechas en un administrador avezado es el que se publicó en Mayo de 2007, y que, como se puede ver, no es nada sencillito.


Diagrama de acciones para saltarse UAC

1.- Te bajas un programa y lo ejecutas sin privilegios.

2.- Como el programita corre sin privilegios solo puede escribir en la carpeta de datos de usuario.

3.- El programa busca todos los accesos directos en el entorno de usuario. Si apunta a un programa firmado o a un programa de Windows no hace nada debido a que esto generaría una nueva alarma que avisaría al usuario, así que busca programas que no estén firmados o que no sean de Windows.

4.- Genera un programita que lanzará el programa original y el malware.

5.- Sustituye el acceso directo en el entorno de usuario por un nuevo acceso directo que llama al nuevo programa lanzadera.

6.- Cuando el usuario ejecuta el programa a través del acceso directo se comprueba si el usuario está corriendo como administrador para lanzar el malware. Si no lo está no hace nada y ejecuta el programa normalmente.


************************************************************************************************
- 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)
************************************************************************************************

12 comentarios:

Adrián dijo...

Lo que si es cierto y es un punto a favor del UAC, es que en windows 7 el número de alertas que tiene que ver el usuario es menor que en Vista, al menos esa es la sensación que a mí me ha dado con el poco uso que he hecho de ambos sistemas.
La mayor parte de las quejas sobre "lo pesado" que es el UAC a mí me han llegado de boca de gente que utiliza Vista, y sin embargo la gente con 7 no se queja (o no se queja tanto).

Jbyte dijo...

chema no se por q tanto defiendes al uac parese como si tuvieras amarrado a microsoft ademas como dijeron en alguno de los comentarios tenemos q ver el uac desde el lado del usuario como si no nosotros fueramos usuarios tu crees a un usuario normal y corriente se va a poner a leer el cuadro el de alertar del uac ellos defrente asen click en en SI contal de librarse de ese molestoso cuadro lo antes posible y es una de la consecuencia de q la gente de win xp no migre a win vista o win 7

Maligno dijo...

@JByte, si un usuario normal y corriente es capaz de modificar claves de registro, contar en bytes, aprender cuales son los conectores y configurar claves WiFi, tal vez, enseñarles que si salta esa alerta es por seguridad y que no debe hacer siempre clic no es tan dificil.

Tu que abogas, ¿por desinstlarlo? ¿por pedir un usuario nuevo como en Windows XP? ¿Por pedir una contesaña como en Linux? ¿o con una alerta y un clic?

Saludos!

Jbyte dijo...

pero la tiempo q se demoraria en enseñarles costaria dinero a las empresas las empresas quieren ver a su personal producir lo mas rapido pisible ademas el gato q implica la capacitacion y contenmos con q no todas las personas tiene el mimo grado de apego a los ordenadores como personad mayores

olopez dijo...

Aqui el problema esta en que hay un metodo o manera que tradicionalmente se ha considerado seguro a la hora de manejar el sistema (como ususario pelado e incidentalmente rellenando la pass de admin para hacer las cosas mas delicadas) y salir de ahi va a costar.

A mi personalmente me parece un autentico coñazo que el ubuntu me pregunte cada 2x3 la pass de admin, pero curiosamente es algo que la gente admite con gusto porque es sinonimo de seguridad; sin embargo que te pregunten confirmacion cada 2x3 (algo mucho mas liviano) es peor visto, no se si porque venir de quien viene o por apartarse del canon (que viene de quien viene tambien).

Por mi parte espero con ansia esta serie de articulos. Tecnicamente y por lo que se me parece superior a la alternativa linux aunque como digo costara tiempo que todos se habituen a ello y lo vean como un equivalente (al menos) del sudo y compañia.

Anónimo dijo...

@jbyte, y que crees que sería más costoso, la orientación de los usuarios o la pérdida importante de datos de la empresa?

Para que podamos tener seguridad se necesita arriesgar algo.
Saludos.

Anónimo dijo...

Hola, me gustaria que profundizaras más en el tema de usar el "run as" siendo administrador a la hora de navegar para ganar en seguridad. SIendo user normal ejecutar algo como administrador es sencillo (boton derecho, ejecutar como y meter clave) pero al reves me gustaria que comentaras cual es el proceso exactro. Muchas gracias

Galcet dijo...

Cracean la seguridad del Bitlocker?????
http://www.muywindows.com/2009/12/05/crakean-la-seguridad-de-bitlocker-de-windows-7/

Boh!! al final nada es seguro...

silverhack dijo...

#Galcet
Deberías informarte mucho mejor...
Espera, que ya te ayudo yo... ;-)

En un futuro deberé informarme mejor sobre las noticias de seguridad informática
Saludetes

Anónimo dijo...

Maligno, el problema radica en como haces que un usuario identifique la acción correcta a tomar. ¡No todo es siempre si o siempre no!.

Con respecto a gomosear la UAC yo lo veria por el lado de los manifest.

Saludos

Maligno dijo...

@Anonimo, basta con enseñarle cuando está "administrando" el PC y cuando lo está "usando" para que diferencia en cuando debe hacer Sí o No.

"si navegas por internet o ejecutas un programa que te han pasado o pinchas un USB y te pide privilegios... di NO"

Creo que fue peor enseñarles a contar en Kas.

Saludos!

agux dijo...

No se si lo dije ayer... pero te me has adelantado!!!

Al final, un poco rápido y corriendo, ayer hice un post sobre las UAC en mi blog "pofesional"... (con sólo 11 árticulos!!!).

Lo que no había puesto era precisamente lo de cómo saltárselo. Voy a hacer una referencia actualizándolo...

Por cierto... ¡No vale adelantárse que tengo en mente más cosas chulas para la UAC! :P

Entrada destacada

Infraestructuras Críticas y Sistemas Industriales: Auditorías de Seguridad y Fortificación de @0xWord

Desde hoy está disponible a la venta un nuevo libro de 0xWord centrado en la seguridad de los Sistemas Industriales y las Infraestructuras...

Entradas populares