Mark Russinovich & Windows Internals: Observabilidad y Fiabilidad
Aprende cómo la mentalidad de Windows Internals de Mark Russinovich moldeó Sysinternals, los flujos de trabajo de WinDbg y la observabilidad práctica para depuración y fiabilidad en Windows.

Por qué Mark Russinovich sigue importando en operaciones de Windows
Si ejecutas Windows en producción —en portátiles, servidores, VDI o máquinas virtuales en la nube— el trabajo de Mark Russinovich sigue apareciendo en las operaciones diarias. No por personalidad o nostalgia, sino porque ayudó a popularizar un enfoque basado en evidencia para la resolución de problemas: mira lo que el SO está realmente haciendo, y después explica los síntomas con pruebas.
Tres ideas en lenguaje llano
Observabilidad significa que puedes responder “¿qué está pasando ahora?” usando las señales que produce el sistema (eventos, trazas, contadores). Cuando un servicio se ralentiza o los inicios de sesión se cuelgan, la observabilidad marca la diferencia entre adivinar y saber.
Depuración es convertir un problema vago (“se congeló”) en un mecanismo específico (“este hilo está bloqueado en I/O”, “este proceso está intercambiando en el fichero de paginación”, “esta inyección de DLL cambió el comportamiento”).
Fiabilidad es la capacidad de seguir funcionando bajo estrés y recuperarse de forma predecible: menos incidentes, restauraciones más rápidas y cambios más seguros.
Por qué el conocimiento de internals acelera los incidentes
La mayoría de los “apagones misteriosos” no son misterios: son comportamientos de Windows que aún no has mapeado: fugas de handles, procesos hijos desbocados, drivers atascados, timeouts de DNS, entradas de autoarranque rotas o herramientas de seguridad que añaden sobrecarga. Un conocimiento básico de los internals de Windows (procesos, hilos, handles, servicios, memoria, I/O) te ayuda a reconocer patrones rápidamente y a recopilar la evidencia correcta antes de que el problema desaparezca.
Qué te ayudará a hacer este artículo
Nos centraremos en flujos de trabajo prácticos y amigables para operaciones usando:
- Herramientas Sysinternals (especialmente Process Explorer y Process Monitor) para visibilidad rápida y sin fricciones
- Trazado ETW cuando los registros no son suficientes y necesitas líneas temporales de alta fidelidad de “qué ocurrió”
- WinDbg y volcados de crash/hang para convertir fallos en causas raíz accionables
El objetivo no es convertirte en un ingeniero de kernel. Es hacer que los incidentes en Windows sean más cortos, más tranquilos y más fáciles de explicar; que las correcciones sean más seguras y repetibles.
Windows Internals como superpoder de resolución de problemas
“Internals” de Windows es simplemente el conjunto de mecanismos que Windows usa para hacer trabajo real: planificar hilos, gestionar memoria, arrancar servicios, cargar drivers, manejar actividad de archivos y registro, y aplicar límites de seguridad. La promesa práctica es sencilla: cuando entiendes lo que hace el SO, dejas de adivinar y empiezas a explicar.
Esto importa porque la mayoría de los síntomas operativos son indirectos. “La máquina está lenta” podría ser contención de CPU, un único hilo caliente, una tormenta de interrupciones de driver, presión de paginación o un filtro antivirus que bloquea I/O. “Se cuelga” podría ser un interbloqueo, una llamada de red atascada, un timeout de almacenamiento o un servicio esperando una dependencia. El conocimiento de internals transforma quejas vagas en hipótesis comprobables.
Modo usuario vs. modo kernel (lo justo para ser útil)
A grandes rasgos, el modo usuario es donde se ejecutan la mayoría de las apps y servicios. Cuando se caen, normalmente solo derriban a sí mismos. El modo kernel es donde corre Windows en sí y los drivers; los problemas ahí pueden congelar todo el sistema, provocar un bugcheck (pantallazo azul) o degradar silenciosamente la fiabilidad.
No necesitas teoría profunda para usar esta distinción: solo lo suficiente para elegir la evidencia. Una app que consume CPU suele ser modo usuario; reinicios repetidos de almacenamiento o problemas de driver de red suelen apuntar al modo kernel.
Solución de problemas basada en evidencia
La mentalidad de Russinovich —reflejada en herramientas como Sysinternals y en Windows Internals— es “primero la evidencia”. Antes de cambiar configuraciones, reiniciar a ciegas o reinstalar, captura qué está haciendo el sistema: qué proceso, qué hilo, qué handle, qué clave de registro, qué conexión de red, qué driver, qué evento.
Cuando puedes responder “¿qué está haciendo Windows ahora mismo y por qué?”, las correcciones se vuelven más pequeñas, más seguras y más fáciles de justificar —y el trabajo de fiabilidad deja de ser apagar incendios reactivos.
El enfoque Sysinternals: hacer visible lo invisible
Sysinternals se entiende mejor como un “kit de visibilidad” para Windows: utilidades pequeñas y portátiles que revelan lo que el sistema está haciendo —proceso por proceso, handle por handle, clave de registro por clave de registro. En vez de tratar a Windows como una caja negra, Sysinternals te permite observar el comportamiento detrás de síntomas como “la app está lenta”, “la CPU está alta” o “el servidor sigue perdiendo conexiones”.
Confía pero verifica: no adivines, mide
Mucho del dolor operativo viene de conjeturas razonables: debe ser DNS, probablemente es el antivirus, otra vez Windows Update. La mentalidad Sysinternals es simple: confía en tus instintos lo suficiente para formular una hipótesis, y luego verifícala con evidencia.
Cuando puedes ver qué proceso consume CPU, qué hilo espera, qué ruta de archivo se está machacando o qué valor del registro se reescribe constantemente, dejas de debatir opiniones y empiezas a acotar causas. Ese cambio —de narrativa a medición— es lo que hace que el conocimiento de internals sea práctico, no académico.
Por qué Sysinternals destaca durante incidentes en vivo
Estas herramientas están hechas para el momento “todo está en llamas”:
- Baja fricción: muchas herramientas corren sin instalación y se lanzan rápido.
- Retroalimentación rápida: puedes validar o rechazar una teoría en minutos.
- Visibilidad enfocada: cada utilidad responde a una clase específica de preguntas (procesos, elementos de inicio, endpoints de red, uso de memoria).
Eso importa cuando no puedes permitirte un ciclo largo de configuración, desplegar un agente pesado o reiniciar solo para recopilar mejores datos.
Principios de uso seguro
Sysinternals es potente, y el poder merece límites:
- Ejecuta según necesidad: empieza con observación de solo lectura; eleva privilegios solo si hace falta.
- Documenta lo que haces: registra marcas temporales, filtros y acciones tomadas para que los hallazgos sean repetibles.
- Minimiza la interrupción: captura evidencia (capturas, logs, trazas exportadas) en lugar de “probar arreglos” durante el incidente.
- Cambia con cuidado: si debes alterar una configuración o terminar un proceso, anota la razón y el resultado esperado, y luego verifica los resultados.
Usado así, Sysinternals se convierte en un método disciplinado: observa lo invisible, mide la verdad y haz cambios que estén justificados —no que sean esperanzadores.
Process Explorer y Process Monitor: la pareja diaria de depuración
Si solo guardas dos herramientas de Sysinternals en tu kit de administración, que sean Process Explorer y Process Monitor. Juntas responden las preguntas más comunes de “¿qué está haciendo Windows ahora?” sin requerir un agente, un reinicio o una configuración pesada.
Process Explorer: respuestas rápidas en segundos
Process Explorer es el Administrador de tareas con visión de rayos X. Cuando una máquina está lenta o inestable, te ayuda a localizar qué proceso es responsable y a qué está vinculado.
Es especialmente útil para:
- CPU e hilos: qué proceso consume CPU, y si es un hilo caliente o muchos.
- Relaciones padre/hijo: qué lanzó el proceso (un servicio, tarea programada, actualizador o acción de usuario).
- DLLs y handles: qué módulos están cargados y qué archivos/claves/pipes el proceso mantiene abiertos.
Ese último punto es un superpoder de fiabilidad: “¿por qué no puedo borrar este archivo?” suele convertirse en “este servicio tiene un handle abierto a él”.
Process Monitor: la traza completa de actividad
Process Monitor (Procmon) captura eventos detallados en el sistema de archivos, registro y actividad de procesos/hilos. Es la herramienta para preguntas como: “¿Qué cambió cuando la app se colgó?” o “¿qué está martillando el disco cada 10 minutos?”
Antes de activar la captura, plantea la pregunta:
- ¿Cuál es el síntoma (inicio de sesión lento, disco alto, crash, acceso denegado)?
- ¿Cuándo ocurre (al arrancar, a las 09:00, tras volver del reposo)?
- ¿Qué máquina y en qué contexto de usuario (solo un servidor, solo un perfil, solo en VPN)?
Captura sólo lo que necesitas (el ruido es el enemigo)
Procmon puede abrumarte a menos que filtres con agresividad. Empieza por:
- Filtrar por Process Name o PID específico.
- Usar reglas Include para la ruta que te interesa (por ejemplo, una carpeta de configuración) y excluir el resto.
- Capturar por una ventana corta alrededor del síntoma y luego parar.
Qué obtendrás de ello
Resultados comunes y prácticos: identificar un servicio que consulta repetidamente una clave de registro ausente, detectar un escaneo en tiempo real que toca miles de archivos, o encontrar un intento de carga de DLL faltante (“NAME NOT FOUND”) que explica por qué una app no arranca en una máquina pero sí en otra.
Autoruns, TCPView, RAMMap: pistas rápidas sin gran montaje
Cuando una máquina Windows “se siente rara”, a menudo no necesitas todo un stack de monitorización para avanzar. Un pequeño conjunto de herramientas de Sysinternals puede responder tres preguntas prácticas: Qué se inicia automáticamente? Quién habla en la red? Dónde fue la memoria?
Autoruns: la fiabilidad empieza en el arranque
Autoruns es la vía más rápida para entender todo lo que puede arrancar sin intervención directa del usuario: servicios, tareas programadas, extensiones del shell, drivers y más.
Por qué importa para la fiabilidad: los elementos de inicio son fuentes frecuentes de arranques lentos, bloqueos intermitentes y picos de CPU que solo aparecen tras iniciar sesión. Un actualizador inestable, un helper de driver legado o una extensión rota del shell puede degradar todo el sistema.
Consejo práctico: céntrate en entradas no firmadas, recientemente añadidas o que fallan al cargar. Si deshabilitar un elemento estabiliza la máquina, has convertido un síntoma vago en un componente específico que puedes actualizar, quitar o reemplazar.
TCPView: confirma quién escucha y quién habla
TCPView te da un mapa instantáneo de conexiones activas y puertos en escucha, enlazados a nombres de proceso y PIDs. Es ideal para comprobaciones rápidas:
- Puertos LISTENING inesperados (especialmente en servidores que deberían estar silenciosos)
- Un solo proceso con un número inusualmente alto de conexiones
- Renovación rápida de conexiones que se correlaciona con CPU o latencia
Incluso en investigaciones no relacionadas con seguridad, esto puede descubrir agentes desbocados, proxies mal configurados o “tormentas de reintentos” donde la app parece lenta pero la causa raíz es comportamiento de red.
RAMMap: presión de memoria sin adivinanzas
RAMMap te ayuda a interpretar la presión de memoria mostrando dónde está realmente asignada la RAM.
Una distinción útil:
- Working set: la RAM física que actualmente usa un proceso
- Cache / standby: datos que Windows mantiene para acelerar accesos (no es inherentemente “malo”)
Si los usuarios reportan “poca memoria” mientras el Administrador de tareas parece confuso, RAMMap puede confirmar si hay crecimiento real de procesos, una caché de archivos elevada o algo como un driver que consume memoria no paginable.
Opcional: Handle y VMMap cuando se sospechan fugas
Si una app se degrada a lo largo de días, Handle puede revelar contadores de handles creciendo sin control (patrón clásico de fuga). VMMap ayuda cuando el uso de memoria es extraño —fragmentación, grandes regiones reservadas o asignaciones que no aparecen como simplemente “private bytes”.
Lista repetible de primeros 15 minutos
- Autoruns: escanea entradas nuevas/no firmadas; deshabilita un elemento sospechoso a la vez.\n2. TCPView: verifica oyentes esperados; identifica los dueños principales de conexiones.\n3. RAMMap: comprueba si la presión es por working set o cache/standby.\n4. Si los síntomas son temporales: captura un snapshot “antes/después” (contadores, puertos, totales de memoria).\n5. Si hay crecimiento obvio: usa Handle/VMMap para confirmar un patrón de fuga.\n6. Anota el componente sospechoso y la evidencia para que la corrección sea dirigida, no conjetural.
De registros a ETW: construir observabilidad real en Windows
Las operaciones en Windows suelen empezar con lo más fácil de obtener: el Visor de eventos y algunas capturas de pantalla del Administrador de tareas. Eso sirve para migas de pan, pero una respuesta a incidentes fiable necesita tres tipos complementarios de señales: registros (qué ocurrió), métricas (cuánto afectó) y trazas (qué hacía el sistema momento a momento).
Registros de eventos: buenas pistas, cobertura imperfecta
Los registros de eventos de Windows son excelentes para identidad, ciclo de vida de servicios, cambios de políticas y errores a nivel de aplicación. También son desiguales: algunos componentes registran mucho, otros poco, y los textos pueden ser vagos (“La aplicación no respondió”). Trátalos como anclas temporales, no como la historia completa.
Victorias comunes:
- Eventos de inicio/parada y crashes de servicios
- Eventos de autenticación y autorización
- Excepciones de aplicación (cuando las apps realmente las registran)
Métricas durante outages: las pocas que importan
Los contadores de rendimiento responden “¿la máquina está sana?” Durante un outage, empieza con:
- CPU: CPU sostenida alta, ready time (VMS), CPU por proceso
- Disco: longitud de cola, latencia de lectura/escritura, IOPS, espacio libre
- Memoria: bytes comprometidos, límite de commit, hard faults/sec, uso de pool
- Red: retransmisiones, errores, bytes/sec, cuentas de conexiones
Las métricas no te dirán por qué ocurrió un pico, pero te dirán cuándo empezó y si mejora.
ETW en términos sencillos: trazas estructuradas y de alto volumen
Event Tracing for Windows (ETW) es la grabadora integrada de Windows. En lugar de mensajes de texto ad hoc, ETW emite eventos estructurados desde el kernel, drivers y servicios a alto volumen: actividad de procesos/hilos, I/O de archivos, acceso al registro, TCP/IP, planificación y más. Aquí muchos “estancamientos misteriosos” se vuelven explicables.
Elegir señales (sin recopilarlo todo)
Una regla práctica:
- Usa registros para eventos discretos (crash, reinicio, fallo de autenticación).\n- Usa métricas para detectar y cuantificar impacto (latencia, saturación).\n- Usa ETW cuando necesites causalidad (qué estaba bloqueando, qué I/O, qué ruta de llamada).
Evita “encender todo para siempre”. Mantén una línea base pequeña siempre activa (registros clave + métricas núcleo) y usa capturas ETW cortas y dirigidas durante incidentes.
Correlación temporal es el superpoder
Los diagnósticos más rápidos vienen de alinear tres relojes: reportes de usuarios (“10:42 se congeló”), inflexiones en métricas (pico de CPU/disco) y eventos/ETW en la misma marca temporal. Una vez que tus datos comparten una base temporal consistente, los outages dejan de ser conjeturas y pasan a ser narrativas verificables.
Telemetría Sysmon: señales de seguridad que también ayudan a la fiabilidad
Los registros por defecto de Windows son útiles, pero a menudo no capturan el “¿por qué ahora?” que los operadores necesitan cuando algo cambia inesperadamente. Sysmon (System Monitor) llena ese hueco registrando actividad de proceso y sistema con mayor fidelidad —especialmente lanzamientos, persistencia y comportamiento de drivers.
Qué añade Sysmon (más allá de los registros por defecto)
La fortaleza de Sysmon es el contexto. En vez de solo “un servicio se inició”, a menudo puedes ver qué proceso lo inició, con línea de comandos completa, proceso padre, hashes, cuenta de usuario y marcas temporales limpias para correlación.
Eso es valioso para fiabilidad porque muchos incidentes comienzan como “pequeños” cambios: una nueva tarea programada, un actualizador silencioso, un script suelto o un driver que se comporta mal.
Configuración mínima: comenzar estrecho a propósito
Una configuración de Sysmon que registre todo rara vez es una buena primera medida. Empieza con un conjunto mínimo, centrado en fiabilidad, y expande solo cuando tengas preguntas claras.
Buenos candidatos iniciales:
- Creación de procesos (lanzamientos inesperados, líneas de comando sospechosas)
- Carga de drivers (componentes kernel nuevos o cambiantes)
- Carga de imágenes/DLL (útil selectivamente para problemas de dependencias)
- Actividad de servicios y tareas programadas (persistencia y cambios en background)
- Conexiones de red / DNS (activar solo para investigaciones específicas por volumen)
Ajusta con reglas include dirigidas (rutas críticas, cuentas de servicio conocidas, servidores clave) y reglas exclude bien pensadas (actualizadores ruidosos, agentes de gestión confiables) para que la señal siga siendo legible.
Casos de uso de fiabilidad que verás realmente
Sysmon suele ayudar a confirmar o descartar escenarios comunes de “cambio misterioso”:
- Un proceso helper nuevo que se genera bajo una cuenta de servicio justo antes de picos de CPU
- Un binario de servicio que cambia de ruta o tipo de inicio tras un ciclo de parches
- Una actualización de driver que coincide con nuevos bloqueos, bugchecks o reinicios de almacenamiento/red
Precauciones operativas
Prueba el impacto en máquinas representativas primero. Sysmon puede aumentar I/O de disco y el volumen de eventos, y la recolección centralizada puede resultar cara rápidamente.
También trata campos como líneas de comando, nombres de usuario y rutas como sensibles. Aplica controles de acceso, límites de retención y filtrado antes de un despliegue amplio.
Complementa, no reemplaza, el resto de la observabilidad
Sysmon es mejor como migas de alto valor. Úsalo junto a ETW para preguntas de rendimiento profundas, métricas para detección de tendencias y notas disciplinadas de incidentes para conectar qué cambió con qué se rompió y cómo se arregló.
WinDbg y volcados: convertir crashes y hangs en respuestas
Cuando algo “simplemente se cae”, el artefacto más valioso suele ser un volcado: una instantánea de memoria más suficiente estado de ejecución para reconstruir qué hacía el proceso (o el SO) en el momento del fallo. A diferencia de los registros, los volcados no te exigen predecir el mensaje correcto: capturan la evidencia a posteriori.
Qué son los volcados de crash (y por qué los quieres)
- Volcados de app (modo usuario) registran un solo proceso. Son ideales cuando un servicio muere pero la máquina sigue en pie.
- Volcados del kernel (sistema) se usan para bugchecks (BSOD) y capturan estado del SO, drivers y hilos del kernel.
Los volcados pueden apuntar a un módulo específico, ruta de llamada y tipo de fallo (violación de acceso, corrupción de heap, deadlock, fallo de driver) —algo difícil de inferir solo por síntomas.
Fundamentos de WinDbg: símbolos, stacks y “qué falló”
WinDbg convierte un volcado en una historia. Lo esencial:
- Símbolos mapean direcciones crudas a nombres de función y, si están disponibles, info de línea. Sin símbolos correctos, el análisis se vuelve conjetural.
- Trazas de pila muestran la secuencia de llamadas que llevaron al crash o el estado actual de un hilo “atascado”.
- El objetivo es identificar el componente que falló: tu código, una DLL dependiente, un driver, un shim antivirus, la pila gráfica, etc.
Un flujo típico: abrir el volcado → cargar símbolos → ejecutar un análisis automatizado → validar revisando stacks superiores y módulos involucrados.
Crash vs. BSOD vs. hang: no mezcles las categorías
- Bugcheck (BSOD): todo el sistema se detiene. Espera volcados del kernel y trabajo sobre drivers/causa raíz.
- Crash de app: un proceso termina. Espera volcados en modo usuario y un código de excepción.
- Hang: nada “se cae”, pero el trabajo se detiene. Necesitas pruebas de qué hilos están esperando.
Los hangs necesitan evidencia: stacks, esperas y locks
“Está congelado” es un síntoma, no un diagnóstico. Para hangs, captura un volcado mientras la app está irresponsive e inspecciona:
- Stacks de hilos para ver qué hace cada hilo.
- Razones de espera (I/O, RPC, mutex/critical section, red).
- Patrones de locks/contención —a menudo el hilo de UI “colgado” espera a un hilo trabajador que está bloqueado en otra parte.
Expectativas realistas: autodiagnóstico vs. escalar
A menudo puedes auto-diagnosticar problemas claros (crashes repetibles en un módulo, deadlocks obvios, fuerte correlación con una DLL/driver). Escala cuando los volcados impliquen drivers de terceros/software de seguridad, componentes kernel o cuando falten símbolos/acceso al código: entonces un proveedor (o Microsoft) puede ser necesario para interpretar toda la cadena.
Patrones comunes de fallo y cómo los internals los explica
Muchos “problemas misteriosos de Windows” repiten los mismos patrones. La diferencia entre adivinar y arreglar es entender lo que el SO está haciendo —y el modelo mental Internals/Sysinternals te ayuda a verlo.
Fugas de memoria: working set vs. commit
Cuando la gente dice “la app está filtrando memoria”, a menudo se refieren a una de dos cosas.
Working set es la RAM física actualmente respaldando el proceso. Puede subir y bajar a medida que Windows recorta memoria bajo presión.
Commit es la cantidad de memoria virtual que el sistema ha prometido respaldar con RAM o con el archivo de paginación. Si el commit sigue subiendo, tienes un riesgo real de fuga: eventualmente alcanzas el límite de commit y las asignaciones empiezan a fallar o el host se vuelve inestable.
Un síntoma común: el Administrador de tareas muestra “RAM disponible”, pero la máquina se ralentiza —porque el límite es el commit, no la RAM libre.
Fugas de handles: fallo lento que parece aleatorio
Un handle es una referencia a un objeto del SO (archivo, clave de registro, evento, sección, etc.). Si un servicio filtra handles, puede funcionar bien durante horas o días y luego empezar a fallar con errores raros (no puede abrir archivos, no puede crear hilos, no puede aceptar conexiones) a medida que crecen los contadores de handles por proceso.
En Process Explorer, observa tendencias del conteo de handles a lo largo del tiempo. Una pendiente ascendente sostenida es una pista fuerte de que el servicio “se olvida de cerrar” algo.
Problemas de disco y sistema de archivos: latencia, reintentos, drivers filtro
Los problemas de almacenamiento no siempre aparecen como alto throughput; a menudo se manifiestan como alta latencia y reintentos. En Process Monitor, busca:
- Operaciones repetidas de CreateFile/ReadFile
- Eventos de I/O de larga duración
- Mucho ruido de NAME NOT FOUND / PATH NOT FOUND (rutas mal configuradas)
Presta también atención a drivers filtro (AV, backup, DLP). Pueden insertarse en la ruta de I/O de archivo y añadir retraso o fallos sin que la aplicación “haga nada malo”.
Picos de CPU: un proceso caliente vs. contención
Un proceso caliente único es directo: un ejecutable consume CPU.
La contención a nivel de sistema es más compleja: la CPU está alta porque muchos hilos están ejecutables y compiten por locks, disco o memoria. El pensamiento de internals te impulsa a preguntar: “¿La CPU está haciendo trabajo útil o está girando mientras está bloqueada en otra parte?”.
Problemas de red: quién posee la conexión
Cuando hay timeouts, mapea proceso → conexión usando TCPView o Process Explorer. Si el proceso equivocado tiene el socket, has encontrado un culpable concreto. Si lo correcto lo tiene, busca patrones: reintentos SYN, conexiones establecidas largas atascadas o una explosión de intentos salientes de corta vida que sugieran problemas de DNS/firewall/proxy en lugar de “la app está caída”.
Un flujo de trabajo práctico: Observar → Capturar → Explicar → Arreglar
El trabajo de fiabilidad se facilita cuando cada incidente sigue la misma ruta. El objetivo no es “ejecutar más herramientas”, sino tomar mejores decisiones con evidencia consistente.
1) Reproducir (o definir el disparador)
Escribe en una frase qué significa “malo”: “La app se congela 30–60 segundos al guardar un archivo grande” o “La CPU sube a 100% cada 10 minutos”. Si puedes reproducirlo, hazlo a demanda; si no, define el disparador (ventana temporal, carga, acción de usuario).
2) Observar (ligero primero)
Antes de recopilar datos pesados, confirma el síntoma y el alcance:
- ¿Es una máquina o muchas?\n- ¿Un proceso o todo el host?\n- ¿Problema de rendimiento, crash o hang?
Aquí las comprobaciones rápidas (Administrador de tareas, Process Explorer, contadores básicos) te ayudan a elegir qué capturar a continuación.
3) Capturar (construye un expediente sólido)
Captura evidencia como si se la fueras a pasar a un compañero que no estuvo ahí. Un buen expediente incluye:
- Marcas temporales (inicio/fin, zona horaria, frecuencia)
- Versiones (build de Windows, versión de la app, versiones de drivers)
- Configuración (feature flags, políticas, variables de entorno, herramientas de seguridad)
- Trazas (filtros de Procmon, nombre de sesión ETW, duración)
- Volcados (hangs/crashes: full vs mini, qué proceso, cómo se disparó)
Mantén las capturas cortas y dirigidas. Una traza de 60 segundos que cubre la ventana de fallo vence a una captura de 6 horas que nadie puede abrir.
4) Explicar (convertir datos en una historia)
Traduce lo que recogiste a una narrativa simple:
- ¿Qué cambió? (build nuevo, política, driver, carga)
- ¿Qué está haciendo el sistema en su lugar? (reintentos, contención, I/O bloqueado, timeouts)
- ¿Cuál es la causa probable? (una o dos hipótesis, ordenadas)
Si no puedes explicarlo con sencillez, probablemente necesitas una captura más limpia o una hipótesis más estrecha.
5) Arreglar, confirmar y reducir MTTR la próxima vez
Aplica la corrección más pequeña y segura, luego confirma con los mismos pasos de reproducción y una captura “antes vs después”.
Para reducir MTTR, estandariza playbooks y automatiza lo aburrido:
- Un script/comando para iniciar una traza, otro para detener y comprimir resultados
- Estructura de carpetas y convención de nombres consistente
- Una checklist para qué recolectar por síntoma (crash vs hang vs lentitud)
Aprendizaje post-incidente: añade la señal que faltó
Tras la resolución, pregunta: “¿qué señal habría hecho esto obvio antes?” Añade esa señal —evento de Sysmon, proveedor ETW, contador de rendimiento o una comprobación ligera de salud— para que el siguiente incidente sea más corto y tranquilo.
Hacer que perdure: correcciones más seguras y fiabilidad a largo plazo
El objetivo del trabajo con internals no es “ganar” una sesión de depuración: es convertir lo que viste en cambios que eviten que el incidente vuelva.
Convierte hallazgos en acciones concretas
Las herramientas de internals suelen restringir el problema a un pequeño conjunto de palancas. Mantén la traducción explícita:
- Cambio de configuración: cuenta de servicio, valor de registro, tamaño de pool, cadencia de tarea programada.
- Parche: actualización acumulativa de OS, actualización de .NET o hotfix del proveedor que coincida con la traza o versión del driver observada.
- Actualización/rollback de driver: si Procmon/ETW muestra estancamientos alrededor de drivers de archivo/red/filtro, trata las versiones de drivers como dependencias de primera clase.
- Rollback: si la corrección es arriesgada, planifica revertir rápidamente (paquete conocido bueno, GPO anterior, bundle de drivers antiguo).
Escribe el “porque”: “Cambiamos X porque observamos Y en Process Monitor / ETW / volcados.” Esa frase evita que el conocimiento tribal se degrade.
Guardarraíles: ventanas de cambio, validación, rollback
Haz que tu proceso de cambio coincida con el radio de impacto:
- Usa una ventana de cambio con tráfico reducido si es posible.
- Define pasos de validación (qué contadores, IDs de evento o flujos de usuario deben mejorar).
- Prepara un plan de rollback claro con propietario y límite de tiempo (“Si los errores no bajan en 15 minutos, revertir”).
Patrones de fiabilidad reutilizables
Aunque la causa raíz sea específica, la durabilidad suele venir de patrones reutilizables:
- Timeouts para evitar agotamiento de hilos y cadenas de dependencias atascadas.
- Limitación de tasa / backoff para detener tormentas de reintento.
- Opciones de recuperación del servicio (acciones de reinicio, periodo de reseteo de fallos) para fallos transitorios esperados.
- Health checks que detecten hangs, no solo crashes.
Higiene de datos para captures y telemetría
Conserva lo necesario y protege lo que no deberías recopilar.
Limita filtros de Procmon a procesos sospechosos, anonimiza rutas/nombres de usuario al compartir, establece retención para ETW/Sysmon y evita capturas de red con payload pesado salvo cuando sea imprescindible.
Operacionalizar playbooks (donde Koder.ai puede ayudar)
Una vez tengas un flujo repetible, el siguiente paso es empaquetarlo para que otros lo ejecuten de forma consistente. Aquí es donde una plataforma de "vibe-coding" como Koder.ai puede ser útil: puedes convertir tu checklist de incidentes en una pequeña app interna (UI en React, backend en Go con PostgreSQL) que guíe a los respondedores por “observar → capturar → explicar”, almacene marcas temporales y artefactos, y estandarice nombres y estructura del expediente.
Como Koder.ai construye apps mediante chat con una arquitectura basada en agentes, los equipos pueden iterar rápido: añadir un botón “iniciar sesión ETW”, una librería de plantillas de filtros de Procmon, snapshot/rollback de cambios o un generador de runbooks exportable —sin rehacer todo el pipeline tradicional. Si compartes prácticas internas de fiabilidad, Koder.ai también soporta exportación de código fuente y capas desde gratis hasta enterprise, para empezar pequeño y escalar gobernanza después.
Un pequeño plan de práctica semanal
Una vez a la semana, elige una herramienta y un ejercicio de 15 minutos: traza un arranque lento de una app con Procmon, inspecciona un árbol de servicios en Process Explorer, revisa el volumen de eventos de Sysmon o toma un volcado de crash y detecta el módulo que falla. Repeticiones pequeñas construyen memoria muscular que hace los incidentes reales más rápidos —y más seguros.
Preguntas frecuentes
¿Por qué sigue siendo relevante Mark Russinovich para las operaciones de Windows hoy?
Mark Russinovich popularizó un enfoque «primero la evidencia» para la resolución de problemas en Windows y desarrolló (e influyó en) herramientas que hacen que el sistema operativo sea observable en la práctica.
Aunque nunca hayas leído Windows Internals, probablemente dependes de flujos de trabajo moldeados por Sysinternals, ETW y el análisis de volcados para acortar incidentes y hacer que las correcciones sean repetibles.
¿Qué significa “observabilidad” en el contexto de operaciones en Windows?
Observabilidad es tu capacidad para responder “¿qué está pasando ahora?” a partir de las señales del sistema.
En Windows, eso suele implicar combinar:
- Registros de eventos para sucesos discretos del sistema o de aplicaciones
- Métricas (contadores de rendimiento) para impacto y saturación
- Trazas (ETW) para causalidad de alta fidelidad y líneas temporales
¿Cómo reduce el conocimiento de internals el tiempo medio para resolver incidentes (MTTR)?
El conocimiento de internals te ayuda a convertir síntomas vagos en hipótesis comprobables.
Por ejemplo, “el servidor está lento” se reduce a un conjunto menor de mecanismos para validar: contención de CPU vs presión de paginación vs latencia de I/O vs sobrecarga por drivers/filtros. Eso acelera la clasificación y te ayuda a capturar la evidencia correcta antes de que el problema desaparezca.
¿Cuándo debería usar Process Explorer en lugar del Administrador de tareas?
Usa Process Explorer cuando necesites identificar quién es responsable.
Es ideal para respuestas rápidas como:
- Qué proceso consume CPU/memoria
- Relaciones padre/hijo (qué lo inició)
- Puntos calientes y esperas a nivel de hilo
- Qué DLLs/manejadores tiene abiertos el proceso
¿Qué problemas resuelve mejor Process Monitor (Procmon)?
Usa Process Monitor cuando necesites la traza de actividad a través del sistema de archivos, el registro y las operaciones de proceso/hilo.
Ejemplos prácticos:
- Encontrar fallos “NAME NOT FOUND” que rompen el arranque de una app
- Demostrar que un Access Denied es un problema de permisos/ruta y no “la app está caída”
- Identificar qué ruta exacta está golpeando un proceso que martillea el disco periódicamente
¿Cómo evito el ruido de Procmon y aun así obtener evidencia útil?
Filtra con agresividad y captura solo la ventana del fallo.
Un flujo de trabajo inicial recomendable:
- Filtra por Process Name o PID primero
- Añade reglas Include para rutas/clave que te interesen
- Captura 30–120 segundos alrededor del síntoma y luego detén
Una traza pequeña que puedas analizar vence a una captura masiva que nadie puede abrir.
¿Cómo ayuda Autoruns con la fiabilidad y los problemas de arranque/inicio de sesión?
Autoruns responde “¿qué se inicia automáticamente?” — servicios, tareas programadas, extensiones del shell, drivers y más.
Es especialmente útil para:
- Arranques/inicios de sesión lentos
- Picos intermitentes de CPU tras el inicio de sesión
- Procesos de fondo misteriosos
Concéntrate primero en entradas no firmadas, recientemente añadidas o que no cargan; desactiva elementos uno a la vez y anota los cambios.
¿Cuándo debo escalar desde registros/métricas hacia trazado ETW?
ETW (Event Tracing for Windows) es el «grabador de vuelo» integrado de Windows para trazas estructuradas y de alto volumen.
Úsalo cuando los registros y las métricas indiquen que algo va mal, pero no digan por qué — por ejemplo, estancamientos causados por latencia de I/O, demoras de planificación, comportamiento de drivers o timeouts de dependencias. Mantén las capturas cortas, dirigidas y correlacionadas en el tiempo con el síntoma reportado.
¿Cómo puede Sysmon mejorar las investigaciones de fiabilidad (no solo de seguridad)?
Sysmon añade telemetría de alto contexto (proceso padre/hijo, líneas de comando, hashes, carga de drivers) que ayuda a responder “¿qué cambió?”
Para fiabilidad, es útil para confirmar:
- Nuevos procesos auxiliares o tareas programadas que aparecen antes de picos
- Cargas de drivers que se correlacionan con nuevos bloqueos/bugchecks
- Cambios inesperados en binarios/rutas tras un parche
Empieza con una configuración mínima y afina includes/excludes para controlar el volumen de eventos y el coste.
¿Cuál es la diferencia práctica entre investigar un crash, un BSOD y un hang con WinDbg?
Un volcado suele ser el artefacto más valioso para crashes y hangs porque captura el estado de ejecución en el momento.
- Crashes de aplicaciones: captura volcados en modo usuario; analiza códigos de excepción y stacks.
- BSODs: captura volcados del kernel; céntrate en drivers y estado del kernel.
- Hangs: captura un volcado mientras está congelado; inspecciona stacks de hilos, razones de espera y contención de locks.
WinDbg convierte volcados en respuestas, pero los símbolos correctos son esenciales para obtener stacks y la identificación de módulos con sentido.