Identificar procesos maliciosos / sospechosos de la lista de procesos

2

Tengo una lista de 1000 procesos y quiero identificar cuáles de ellos son legítimos y cuáles no. Solo tengo el nombre de los procesos y quiero categorizarlos. ¿Hay alguna forma de obtener información de esos procesos mediante programación ?

Si al menos puedo identificar cuáles de ellos son procesos comunes, eso me puede ayudar a hacer una lista más corta. Entonces puedo buscar otros procesos desconocidos y obtener su información.

Básicamente, necesito revisar una lista de procesos de Windows en una Mac / Linux y solo tengo los nombres de los procesos . Quiero encontrar la información completa de los procesos para poder conocer los procesos legítimos. Hay 1000 procesos actuales en la lista y puede aumentar en el futuro. Puedo hacerlo manualmente por ahora, pero quiero ejecutar un script para hacer la comprobación automáticamente.

    
pregunta rise of a phoenix 28.07.2015 - 06:23
fuente

3 respuestas

3

La lista de procesos comunes / legítimos dependerá del sistema operativo instalado. Además, la lista dependerá del software que haya instalado en su máquina.

En Windows, puedes probar
tasklist
En Linux, puedes probar
ps

Puede hacer una lista de aplicaciones de confianza (que puede hacer manualmente o buscar en línea). Luego, después de obtener la lista de procesos en ejecución mediante programación, puede comparar la lista con su lista de procesos de confianza y mostrar solo los procesos restantes.

Si cree que algunos de estos procesos son inofensivos y legítimos, puede agregarlos a su lista de aplicaciones de confianza, para que no se muestren nuevamente la próxima vez que ejecute su programa.     

respondido por el pri 28.07.2015 - 10:39
fuente
1

Para obtener información sobre el proceso mediante programación (como usted lo solicitó), depende del idioma que quiera usar pero también de la versión de su procesador (32 o 64 bits).

Puede usar el módulo subproceso de Python:

import subprocess
cmd = 'WMIC PROCESS get Caption,Commandline,Processid'
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
for line in proc.stdout:
    print line

O módulo WMI para las dos versiones del procesador:

import wmi
c = wmi.WMI ()

for process in c.Win32_Process ():
  print process.ProcessId, process.Name

También puede llamar a cualquier comando que escriba en CMD desde Python usando el módulo de subproceso que mencioné anteriormente.

En cuanto a solo aislar los procesos sospechosos, primero debe enumerar los criterios en los que se basará su juicio.

Por ejemplo, los sistemas operativos Windows 7 y 8 tienen una jerarquía de procesos donde generalmente podemos encontrar tres o cuatro procesos de nivel superior. Esto hace que sea fácil ver qué procesos son los padres de otros. Wininit , por ejemplo, es el antecesor de un gran número de procesos, incluidas varias instancias de los famosos svchost.exe proceso. Como este proceso es demasiado importante para el sistema operativo Windows, los malwares lo usan y aparecen en la lista de svchost , como svch0st.exe ( 0 en lugar de o ), svhost.exe (sin c ) y así en.

Entonces, una vez que tenga este criterio en la cabeza, puede ordenarlos en una Lista de Python y mostrarlos por separado para ayudarlo a distinguir los procesos sospechosos.

    
respondido por el user45139 28.07.2015 - 11:20
fuente
0

ProcessExplorer de SysInternals puede ayudar con esto si tiene acceso a la máquina.

Incluso puede enviar datos de proceso con hash a VirusTotal para darle una idea de si es un archivo / proceso legítimo o no.

También codifica los datos de colores, lo que me parece muy útil.

Ypuededeterminarrápidamentequéarchivosestánfirmados.

ParaobteneruntutorialrápidosobrecómoaprovecharalmáximoProcessExplorer,consulte: enlace (imágenes de howtogeek.com)

    
respondido por el k1DBLITZ 28.07.2015 - 18:01
fuente

Lea otras preguntas en las etiquetas