2 de junio de 2009

Secure Process (Windows)

Red cable give us power, the black one is earth, these two look led’s cables and i don’t know about the yellow one, just remember it from the sham...

Response: Cut up the yellow!

Los procesos, esas extrañas cositas que están siempre corriendo desde el momento que nuestro sistema operativo se carga en memoria. Llenos de instrucciones, en ejecución, en espera, procesos zombie y procesos suspendidos por un examen que nunca hicieron. Ahora en serio, todos recordamos los apuntes de Sistemas Operativos, estamos familiarizados con el Ctrl + Alt + Sup o de algo nos suena el comando “ps” pero, ¿qué narices están haciendo nuestros procesos?, ¿cómo sabemos si están ocultos?, ¿qué librerías están utilizando?, ¿quién los puso ahí?

Probablemente alguna vez os hayais preguntado, ¿por qué la CPU no baja del 80%?, ¿Quién está consumiendo todos los recursos y por qué? Hoy os voy a presentar un par de herramientas que nos sacarán de dudas. La primera es el Security Task Manager que detrás de sus colores fosforito (cuando arranca) te muestra todos los procesos que corren en el sistema, tanto ocultos como visibles, quien es el fabricante, path en el disco duro y un ratio de riesgo que calcula la probabilidad de que sea malware, para mayor seguridad se integra con virustotal y si estamos seguros podemos poner el ratio nosotros mismos (por ejemplo ante herramientas de seguridad que conocemos y hemos instalado):

Una utilidad interesante que incluye es la de poner procesos en cuarentena o directamente desinstalar la aplicación que inició ese proceso:

Pero esto no es todo, todavía existe un proceso misterioso, usa antifaz y se oculta bajo la oscuridad,,, es el,,,, ¡svchost.exe! Todos lo hemos visto pero nadie sabe de donde viene ni a donde va, los virus aprovechan para ocultarse en sus entrañas y algunos incautos deciden cargárselo directamente, normalmente con malas consecuencias. Por suerte disponemos de la utilidad de enrevesado nombre conocida como Svchost Analyzer.

Igual que el Task Manager, nos advertirá sobre lo que considere no debería estar ahí, o al menos es de comportamiento extraño.

Y si con todo esto seguís sin ubicar vuestros procesos, podéis ayudaros con:

http://www.procesoswindows.com/

http://www.what-is-exe.com/

Salu2!

6 comentarios:

eduardo dijo...

Muy interesante ... en particular, la herramienta para chequear svchost, que es siempre el que uno no sabe qué mirar.

De todas formas, si uno tiene permisos sufientes, puede conseguirse un handle a un proceso y usar CreateRemoteThread para injectar código en él, y eso hace inútil todos los intentos de detección "normales" (basados en checksums).

Tampoco es una técnica muy usada porque hay que saber de programación y no es lo habitual.

Saludos,
Eduardo.

Lagos0809 dijo...

está bien saberlo.. con el process explorer siempre me he apañado, y lo mejor que es portable, a ver si le hecho un vistazo a ver que tal rula el security task manager

Homo libris dijo...

¡Me encantan!

Muy interesantes las aplicaciones, especialmente la del svchost :)

¡A bajarlas, gracias por la recomendación!

GigA ~~ dijo...

Es que el svchost debería llamarse svghost :-p Vaya proceso misterioso :)

Por cierto eduardo, no me he acabado de enterar de la técnica que propones, ¿con handle te refieres a esto?: http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx

eduardo dijo...

Hola,

A ver si consigo explicarme: en windows (creo que en linux no, pero no estoy seguro), uno tiene derecho para acceder a todos los procesos que han sido creados con su usuario.

En particular, puedes abrir su memoria, leer, escribir, desviar llamadas al sistema y modificarlas, ... y, además de todo esto, puedes empezar un thread remoto.

Es decir (traducido), puedes copiar el código que quieras en la memoria del internet explorer y ejecutarlo.

Usando esto, no hay mucho que puedas hacer para detectar que un proceso está infectado, porque en realidad no has cargado una dll, todos los checksums te van a coincidir y todo va a estar genial.

Esta es una técnica típica de virus, pero requiere una programación muy cuidadosa, normalmente en ensamblador, y hoy en día estos "skills" están un poco olvidados.

Usando cosas de estas, puedes salir a internet desde un proceso "troyanizado" de forma totalmente indetectable por los firewalls (siempre que vayas a un puerto permitido, p.ej el 80, pero esto no es ningún problema).

El "handle" es como un ID del proceso que te permite jugar con él: leer, escribir, ... Lo mismo que los handles de los archivos en linux.

Espero haber explicado bien todo esto ...

Un saludo!

PD: ainss ... echo de menos programar estas "cositas" xD

GigA ~~ dijo...

Muy buena explicación Eduardo, no recordaba esas cosas desde segundo año de carrera, ¡ya ha llovido!

Es una buena idea para extender en una entrada, si te entra morriña ;-)

Salu2