Búsqueda de sitios web

Uso de la política de auditoría de seguimiento de procesos en Windows


En este artículo, mostraremos cómo habilitar la política de auditoría de seguimiento de procesos en Windows para averiguar qué programas se estaban ejecutando en una computadora. Muy a menudo, se le pide al administrador que proporcione información sobre qué aplicaciones ejecuta el usuario, cuándo ejecutó por última vez el programa específico, etc. Además, esta función puede ser útil para rastrear la actividad de malware y amenazas. Puede obtener esta información del Registro de eventos de Windows y hacer un informe conveniente usando PowerShell.

Puede realizar un seguimiento de los eventos de inicio/detención de los procesos de aplicaciones de Windows mediante la política de auditoría de seguimiento de procesos.

  1. Abra el Editor de políticas de grupo local:

    gpedit.msc

    Si desea habilitar la política de auditoría de procesos en equipos en un dominio de Active Directory, use la consola de administración de políticas de grupo del dominio,

    gpmc.msc
  2. Vaya a la siguiente sección de GPO: Configuración de la computadora -> Configuración de Windows -> Configuración de seguridad -> Políticas locales -> Política de auditoría;

  3. Habilite la política Seguimiento del proceso de auditoría y seleccione la casilla de verificación Éxito;

    Anteriormente, mostramos cómo usar eventos de auditoría para descubrir el proceso que es la fuente del evento de bloqueo de cuenta en una computadora.

  4. Guarde los cambios y actualice la configuración de GPO local en su computadora usando este comando:

    gpupdate /force

Abra el Visor de eventos (

eventvwr.msc

) y expanda Registros de Windows -> Seguridad. Ahora, cuando cualquier aplicación (proceso) se inicia, el evento de Creación de Proceso con el EventID 4688 aparece en el registro.

A new process has been created.

La información del evento contiene el nombre de usuario que ha ejecutado el programa (

Creator Subject

), el nombre de un proceso ejecutable (

New Process Name

) y un proceso principal desde el que se ejecutó la aplicación (

Creator Process Name

).

Un evento de terminación de proceso (

A process has exited

) tiene el EventID 4689. Anteriormente, mostramos cómo ejecutar un script (realizar una acción) al ejecutar/detener una aplicación en Windows usando estos eventos y un disparador del Programador de tareas.

Tenga en cuenta que cuando habilita la política de seguimiento de procesos de auditoría descrita anteriormente, todos los eventos relacionados con los procesos se guardan en el registro de seguridad. Si desea reducir la cantidad de eventos en el Visor de eventos y guardar solo la información sobre los eventos de creación de procesos, puede deshabilitar esta política y habilitar solo el elemento de política de auditoría avanzada: Creación de procesos de auditoría (Configuración de Windows -> Configuración de seguridad -> Configuraciones de política de auditoría avanzada -> Política de auditoría del sistema -> Seguimiento detallado).

Para incluir información sobre las opciones de creación de procesos (argumentos con los que se ejecutan las aplicaciones), habilite la opción Incluir línea de comando en los eventos de creación de procesos en Configuración del equipo -> Plantillas administrativas -> Sistema -> Creación de procesos de auditoría.

Después de habilitar la política, verá qué argumento se usó para iniciar un programa en la Línea de comandos del proceso.

Asegúrese de aumentar el tamaño máximo de su archivo de registro de seguridad (el tamaño predeterminado es de 20 MB). Esto permite almacenar el historial de procesos en Windows durante un período de tiempo más largo. Para hacerlo, abra las propiedades del registro de seguridad y aumente el valor de Tamaño máximo del registro (KB).

Puede usar los filtros del Visor de eventos para analizar las aplicaciones que ejecuta un usuario. Sin embargo, no es muy conveniente. A continuación, mostraré algunos scripts de PowerShell que le permiten obtener informes útiles con el historial de ejecución de aplicaciones por parte de los usuarios. En este caso, uso el comando Get-WinEvent para obtener eventos del registro del Visor de eventos:

$processhistory = @()
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
$events=Get-WinEvent -FilterHashtable @{
LogName = 'Security'
starttime="$today"
ID = 4688
}
foreach ($event in $events){
$proc = New-Object PSObject -Property @{
ProcessName=$event.Properties[5].Value
Time=$event.TimeCreated
CommandLine=$event.Properties[8].Value
User=$event.Properties[1].Value
ParentProcess=$event.Properties[13].Value
}
$processhistory += $proc
}
$processhistory| Out-GridView

Este script de PowerShell selecciona todos los eventos de inicio de procesos para hoy y muestra una lista de procesos, sus tiempos de inicio y nombres de usuario en una tabla Out-GridView.

Puede administrar procesos en Windows usando PowerShell.

Puede usar la matriz de objetos que tiene para ejecutar diferentes consultas de auditoría.

Por ejemplo:

  • Para encontrar todos los usuarios que han ejecutado una aplicación específica:

    $proc_name="notepad++.exe"
    $processhistory | where-object {$_.ProcessName -like “*$proc_name*”}|out-gridview

  • Para mostrar una lista de aplicaciones que un usuario específico ha ejecutado hoy:

    $username="aberg"
    $processhistory | where-object {$_.User -like “*$username*”}|out-gridview

A menudo usamos estos scripts para analizar las aplicaciones que ejecutan los usuarios en los hosts de la granja RDS.

En Windows, también puede encontrar el historial de programas en ejecución en el archivo %SystemRoot%\AppCompat\Programs\Amcache.hve. El archivo está bloqueado en Windows y solo puede verlo si inicia una computadora desde un LiveCD o un medio de instalación/arranque. El archivo contiene etiquetas de inicio e instalación/desinstalación, así como sumas de verificación ejecutables (SHA1). Puede convertir este archivo de formato binario a texto con herramientas de terceros (por ejemplo, regripper).

Tenga en cuenta que PowerShell también mantiene un historial de los comandos que ejecuta en un archivo de registro de texto.

Artículos relacionados