Windows malware: cómo identificar anomalías en procesos

Iniciado por Lokomotion, Mayo 31, 2017, 05:17:48 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Hola a todos, para este pequeño aporte hice una traducción de un documento que referenció un colaborador de otro sitio en un interesante informe forense sobre un caso de posible robo de información y alteración de los registros de Windows. El documento trata sobre la identificación de anomalías en los procesos de un sistema Windows, para ello ofrece información básica y concisa sobre dichos procesos. No soy un experto en inglés pero haré mi mayor esfuerzo, cualquier corrección es bien recibida!

Al buscar procesos maliciosos, busque cualquiera de estas características anómalas:

  • Comenzó con el proceso padre equivocado
  • El ejecutable de la imagen se encuentra en el path incorrecto.
  • Procesos mal escritos.
  • Procesos que se ejecutan en la cuenta incorrecta (SID incorrecto).
  • Procesos con tiempos de inicio inusuales (es decir, comienza minutos u horas después del arranque cuando debería ser a segundos del arranque).
  • Argumentos de línea de comandos inusuales.
  • Ejecutables empaquetados.

Procesos principales:

System:
Ruta de la imagen: N / D - No generada a partir de una imagen ejecutable
Proceso padre: Ninguno
Número de instancias: 1
Cuenta de usuario: Local System
Momento de inicio: En el momento del arranque
Descripción: El proceso del sistema es responsable de la mayoría de los subprocesos en modo kernel. Los módulos ejecutados bajo el proceso System son principalmente controladores (archivos .sys), pero también varios DLL importantes, así como el ejecutable del núcleo, ntoskrnl.exe.


smss.exe
Ruta de la imagen: %SystemRoot%\System32\smss.exe
Proceso padre: System
Número de instancias: 1 instancia maestra y 1 hija
Cuenta de usuario: Local System
Momento de inicio: Segundos luego del comienzo de la instancia maestra
Descripción: El Session Manager Subsystem es el responsable de crear nuevas sesiones. La primera instancia crea una instancia hija para cada nueva sesión. Una vez que la instancia hija inicializa la nueva sesión iniciando el subsistema de Windows (csrss.exe) y wininit.exe para la sesión 0 o winlogon.exe para la sesión 1 y versiones superiores, se cierra la instancia secundaria.


csrss.exe
Ruta de la imagen: %SystemRoot%\System32\csrss.exe
Proceso padre: Creado por una instancia de smss.exe que sale, por lo que las herramientas usualmente no proporcionan el nombre del proceso padre.
Número de instancias: 2 o más.
Cuenta de usuario: Local System
Momento de inicio: En segundos de tiempo de arranque para las primeras 2 instancias (para la sesión 0 y 1). Los tiempos de inicio de instancias adicionales se producen a medida que se crean nuevas sesiones, aunque a menudo sólo se crean las sesiones 0 y 1.
Descripción: El Client/Server Run-Time Subsystem (subsistema de tiempo de ejecución cliente/servidor) es el proceso de modo de usuario para el subsistema de Windows. Sus funciones incluyen la gestión de procesos e hilos, la importación de la mayoría de los DLL que proporcionan la API de Windows, y facilitar el cierre de la interfaz gráfica de usuario durante el apagado del sistema. Se ejecutará una instancia de csrss.exe para cada sesión.
La sesión 0 es para los servicios y la sesión 1 para la sesión de consola local. Se crean sesiones adicionales mediante el uso de Escritorio remoto y/o Cambio rápido de usuario. Cada nueva sesión da como resultado una nueva instancia de csrss.exe. Dependiendo de la versión del sistema operativo, csrss.exe (anterior a Win7 / 2008 R2) o su proceso secundario conhost.exe (Win7 / 2008 R2 y posteriores) contienen el historial de comandos para las instancias de cmd.exe. La búsqueda del espacio de direcciones para estos procesos es particularmente útil cuando se analiza la memoria de los hosts afectados.


wininit.exe
Ruta de la imagen: %SystemRoot%\System32\wininit.exe
Proceso padre: Creado por una instancia de smss.exe que sale, por lo que las herramientas usualmente no proporcionan el nombre del proceso padre.
Número de instancias: 1
Cuenta de usuario: Local System
Momento de inicio: Segundos luego del arranque del sistema
Descripción: Wininit inicia procesos de fondo (background) claves en la sesión 0. Inicia el Administrador de control de servicios (services.exe), el proceso de Autoridad de seguridad local (lsass.exe) y el Administrador de sesión local (lsm.exe).


services.exe
Ruta de la imagen: %SystemRoot%\System32\services.exe
Proceso padre: wininit.exe
Número de instancias: 1
Cuenta de usuario: Local System
Momento de inicio: Segundos después del arranque del sistema
Descripción: Implementa el Unified Background Process Manager (UBPM), que es responsable de las actividades de fondo, como servicios y tareas programadas.
Services.exe también implementa el Administrador de control de servicios (SCM), que controla específicamente la carga de servicios y controladores de dispositivos marcados para inicio automático. Además, una vez que un usuario ha iniciado sesión de forma interactiva, el SCM (services.exe) considera el que el arranque fue correcto y establece el conjunto de control Last Known Good (HKLM\SYSTEM\Select\LastKnownGood) al valor de CurrentControlSet.


svchost.exe
Ruta de la imagen: %SystemRoot%\System32\svchost.exe
Proceso padre: services.exe
Número de instancias: 5 o más
Cuenta de usuario: Varía dependiendo de la instancia de svchost, aunque normalmente será Local System, Servicio de Red o Servicio Local. Las instancias que se ejecuten bajo cualquier otra cuenta deben ser investigadas.
Momento de inicio: Por lo general, segundos después del arranque. Sin embargo, los servicios se pueden iniciar después del arranque, lo que podría dar lugar a nuevas instancias de svchost.exe bien después del arranque.
Descripción: Service Host. Proceso de host genérico para Servicios de Windows. Se utiliza para ejecutar DLL de servicio. Windows ejecutará varias instancias de svchost.exe, cada una utilizando un único parámetro "-k" para agrupar servicios similares. Los parámetros "-k" típicos incluyen BTsvcs, DcomLaunch, RPCSS, LocalServiceNetworkRestricted, netsvcs, LocalService, NetworkService, ocalServiceNoNetwork, secsvcs y LocalServiceAndNoImpersonation.
Los autores de malware a menudo aprovechan la naturaleza omnipresente de svchost.exe y la utilizan directa o indirectamente para ocultar su malware. Lo utilizan directamente instalando el malware como un servicio en una instancia legítima de svchost.exe. De forma alternativa, lo utilizan de forma indirecta al intentar combinarse con instancias legítimas de svchost.exe, ya sea por una ligera falta de ortografía del nombre (por ejemplo, scvhost.exe) o deletrearlo correctamente pero colocándolo en un directorio distinto de System32. Tenga en cuenta que un svchost.exe legítimo siempre debe ejecutarse desde% SystemRoot%\System32, debe tener services.exe como su padre y debe alojar al menos un servicio. Además, en las instalaciones predeterminadas de Windows 7, Microsoft ejecuta todos los ejecutables de servicio y todos los DLL de servicio.


taskhost.exe
Ruta de la imagen: %SystemRoot%\System32\taskhost.exe
Proceso padre: services.exe
Número de instancias: 1 o más
Cuenta de usuario: Varios procesos de taskhost.exe son normales. Uno o más pueden ser propiedad de usuarios conectados y / o cuentas de servicio local.
Momento de inicio: Los tiempos de inicio varían mucho
Descripción: Proceso de host genérico para tareas de Windows. Las tareas son similares en naturaleza a los servicios y, de hecho, a partir de Windows 7, se manejan a través de la misma instalación de Universal Background Process Manager (UBPM). Tras la inicialización, taskhost.exe ejecuta un bucle continuo para escuchar eventos de activación. Los eventos de disparo de ejemplo que pueden iniciar una tarea incluyen un horario definido, inicio de sesión de usuario, inicio del sistema, tiempo de CPU inactivo, un evento de registro de Windows, bloqueo o desbloqueo de estación de trabajo.


lsass.exe
Ruta de la imagen: %SystemRoot%\System32\lsass.exe
Proceso padre: wininit.exe
Número de instancias: 1
Cuenta de usuario: Local System
Momento de inicio: Segundos después del arranque.
Descripción: El proceso del Servidor de Subsistema de Autenticación de Seguridad Local es responsable de autenticar a los usuarios llamando a un paquete de autenticación de proveedor de seguridad (SSP) apropiado especificado en HKLM\SYSTEM\CurrentControlSet\Control\Lsa. Normalmente, este será el SSP de Kerberos para cuentas de dominio o el MSV1_0 SSP para cuentas locales.
Una vez que un usuario es autenticado, lsass.exe genera un token de acceso para el usuario que especifica los derechos y restricciones de seguridad para el usuario y sus procesos. Sólo debe ocurrir una instancia de este proceso y nunca debería tener procesos secundarios.


lsm.exe
Ruta de la imagen: %SystemRoot%\System32\lsm.exe
Proceso padre: wininit.exe
Número de instancias: 1
Cuenta de usuario: Local System
Momento de inicio: Segundos después del arranque.
Descripción: El Administrador de sesión local (Local Session Manager) gestiona los servicios de terminal, incluidas las sesiones de Escritorio Remoto, así como las sesiones locales adicionales mediante la conmutación rápida de usuarios. Se comunica con smss.exe para iniciar nuevas sesiones. Smss.exe a su vez crea un adicional csrss.exe y winlogon.exe para dar soporte a la nueva sesión. Sólo debe ocurrir una instancia de este proceso y nunca debería tener procesos secundarios.


winlogon.exe
Ruta de la imagen: %SystemRoot%\System32\winlogon.exe
Proceso padre: Creado por una instancia de smss.exe que sale, por lo que las herramientas usualmente no proporcionan el nombre del proceso padre.
Número de instancias: Una o más.
Cuenta de usuario: Local System
Momento de inicio: Segundos después del arranque para la primera instancia, (Para la sesión 1). Los tiempos de inicio de instancias adicionales se producen a medida que se crean nuevas sesiones, normalmente a través de los inicios de sesión de Escritorio Remoto o Cambio Rápido de Usuario.
Descripción: Winlogon gestiona los inicios de sesión interactivos de usuario y las desconexiones. Se inicia LogonUI.exe, que acepta el nombre de usuario y la contraseña en la pantalla de inicio de sesión y pasa las credenciales a lsass.exe para validar las credenciales. Una vez que el usuario es autenticado, Winlogon carga NTUSER.DAT del usuario en HKCU y comienza la shell del usuario (explorer.exe) a través de userinit.exe.


explorer.exe
Ruta de la imagen: %SystemRoot%\explorer.exe
Proceso padre: Creado por una instancia de userinit.exe que sale, por lo que las herramientas de análisis normalmente no proporcionan el nombre del proceso padre.
Número de instancias: Una por cada usuario logueado.
Cuenta de usuario: <usuario(s) logueado(s)>
Momento de inicio: Comienza cuando empieza el inicio de sesión interactivo del usuario.
Descripción: En esencia, Explorer proporciona a los usuarios acceso a los archivos. Funcionalmente, es tanto un explorador de archivos a través de Windows Explorer (aunque todavía explorer.exe) como una interfaz de usuario que proporciona características como el Escritorio del usuario, el menú Inicio, la barra de tareas, el panel de control, Archivos de acceso directo. Tenga en cuenta que debería haber sólo una instancia de explorer.exe en ejecución por inicio de sesión interactivo, independientemente de las ventanas del Explorador de Windows múltiples abiertas por el usuario.
Observe también que el explorer.exe legítimo reside en el directorio %SystemRoot% en lugar de %SystemRoot%\System32. Los atacantes a menudo nombran su malware explorer.exe y lo colocan en System32 o escriben mal explorer.exe como explore.exe.


iexplore.exe
Ruta de la imagen: \Program Files\Internet Explorer\iexplore.exe [o \Program Files(x86)\Internet Explorer\iexplore.exe]
Proceso padre: explorer.exe
Número de instancias: Cero o más.
Cuenta de usuario: <usuario(s) logueado(s)>
Momento de inicio: Normalmente, cuando el usuario inicia Internet Explorer. Sin embargo, se puede iniciar sin interacción explícita del usuario a través del conmutador "-embedding" (en cuyo caso, el proceso padre no puede ser explorer.exe).
Descripción: Internet Explorer (IE) es una aplicación de escritorio típica lanzada por un usuario. Tales aplicaciones serán casi siempre un hijo de explorer.exe. Las versiones modernas de IE tendrán un subproceso para cada ficha abierta. Hace esto por varias razones, incluyendo una mayor seguridad. Al acceder a un sitio de Internet, IE ejecutará el proceso de pestañas con baja integridad, que limita el proceso, lo que hace más difícil para los atacantes modificar áreas sensibles del sistema de registro o de archivos si son capaces de comprometer el proceso de IE. Los atacantes a menudo nombran su malware iexplore.exe y lo colocan en un directorio alternativo o escriben iexplorer.exe en lugar de iexplore.exe.




Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Pido disculpas si quedó muy largo el post, la intención es que circule por la red esta información en español ya que me parece importante. Si alguien encuentra algún error sintáctico o semántico lo editamos  ;) Les dejo el link del pdf de donde saqué esta info, que tiene un poco más de información interesante que no agregué para no extenderlo aún más.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos!

Muy buena la info @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta!
Es muy útil.

No hay problema en que el post sea extenso, te animo a que añadas lo demás si te apetece.


Jugar o perder

recordar que en el administrador de tareas, existe la posibilidad de agregar mas detalles sobre los procesos