
Durante años, el imaginario popular —alimentado por películas y series— nos ha vendido la misma imagen del experto en ciberseguridad: una persona encapuchada, frente a tres monitores con código verde lloviendo sobre fondo negro, tecleando a una velocidad sobrehumana mientras frustra un ataque en el último segundo. Esa imagen es espectacular, pero también es una mentira peligrosa. En el mundo real, los profesionales de la seguridad no tienen tiempo para teclear comando por comando. No porque les falten reflejos, sino porque el enemigo —los atacantes, el malware, las vulnerabilidades— no ataca en cámara lenta. Ataca a escala, de forma masiva y automatizada. Y aquí está la disrupción que muy pocos quieren admitir: si tú no automatizas tu defensa, el atacante ya lo hizo por ti. Y es por eso mis estimados lectores que en esta ocasión no vamos a hablar sobre inteligencia artificial ni sobre promesas futuristas. Vamos a introducir dos herramientas que llevan décadas con nosotros —PowerShell y Bash— y que, en manos adecuadas, se convierten en las armas más poderosas para invertir la balanza de poder en ciberseguridad.

El secreto mal guardado: Los scripts no son solo para administradores de sistemas. Pues así es. Cuando una persona no técnica escucha la palabra "script", suele pensar en algo oscuro, complejo o incluso sospechoso. Tal vez recuerde algún titular sobre un "script malicioso" que infectó miles de computadoras a través de internet. Y sí, los scripts pueden ser armas. De hecho, la mayoría de las fases de un ciberataque moderno —reconocimiento, escalada de privilegios, persistencia, exfiltración— se apoyan en scripts cortos escritos en PowerShell (en entornos Windows) o Bash (en Linux y macOS). Pero aquí viene la parte incómoda: la misma herramienta que usa un atacante para moverse lateralmente dentro de una red puede ser la que una empresa utilice para detectarlo en tiempo real. La diferencia no está en el lenguaje, sino en la intencionalidad y, sobre todo, en la automatización defensiva.
Un script no es más que una lista de instrucciones que se ejecutan de forma secuencial, con condiciones, bucles y llamadas al sistema operativo. Lo que convierte a Bash y PowerShell en algo disruptivo no es su sintaxis, sino su ubicuidad: Bash está en cada servidor Linux, en cada Mac, en cada contenedor de Docker. PowerShell está en cada Windows desde 2008, y hoy es multiplataforma. No necesitas instalar nada adicional. No necesitas comprar una licencia. Necesitas saber lo que quieres hacer y, sobre todo, necesitas atreverte a pensar en términos de automatización defensiva.
Ahora bien, ¿Qué puede automatizar realmente un script de seguridad?
Vamos a ser concretos porque la generalidad es el enemigo de la acción. Con un script de Bash de menos de 20 líneas puedes hacer lo siguiente: monitorear cada minuto los archivos de log de autenticación SSH en busca de más de 10 fallos desde la misma IP, y automáticamente agregar esa IP a un cortafuegos local o incluso enviar una alerta a un chat común entre los miembros de un equipo de TI. Eso es detección temprana y respuesta autónoma, sin intervención humana. Con PowerShell, puedes recorrer los 500 equipos de una oficina, extraer la lista de servicios que arrancan con el sistema, compararlos con una lista blanca y deshabilitar inmediatamente cualquier servicio desconocido. Eso es hardening dinámico. De esto ya hablamos una vez. Y lo mejor de todo esto ocurre mientras el analista de seguridad está tomando su primer café de la mañana.
Ahora, vayamos más lejos: la automatización defensiva también permite simular ataques de forma continua. Un script de Bash puede lanzar intentos de conexión a puertos internos y verificar quién responde, emulando el comportamiento de un gusano. Un script de PowerShell puede intentar descargar una carga maliciosa ficticia desde un servidor controlado y verificar si el antivirus lo bloquea o si los controles de red lo permiten. Esto se llama validación postural y es la base de un concepto disruptivo: la seguridad como código. Tus políticas de seguridad no deberían estar en un PDF de 200 páginas, sino escritas como scripts que se ejecutan cada hora y corrigen lo que esté mal.
Tal vez estés pensando: "Esto suena muy bien para un experto, pero yo soy una persona común, un pequeño negocio, un autónomo. ¿Qué me importa a mí Bash o PowerShell?". La respuesta es incómoda: porque el atacante no diferencia. Un ransomware que se propaga por correo electrónico no le pide permiso a la Pyme. Un script malicioso que descargas sin querer al visitar una web comprometida no pregunta si tu empresa tiene cinco o cinco mil empleados. Lo que hace la automatización defensiva es poner al alcance del pequeño negocio lo que antes solo tenían los grandes equipos de seguridad con presupuestos millonarios. Un simple script que comprima y guarde copias de seguridad críticas en un lugar aislado, ejecutándose cada hora desde el programador de tareas del sistema, es más efectivo que muchos antivirus pagados. Un script que verifique si tu versión de Windows tiene las actualizaciones críticas instaladas y, si no, te envíe un correo, es un guardián silencioso.
El público general no necesita aprender a programar como un desarrollador. Necesita perder el miedo a abrir el terminal y ejecutar un script que alguien de confianza ha escrito y revisado. La disrupción real es cultural: dejar de pensar que la ciberseguridad es un producto que se compra (un cortafuegos, un antivirus, un servicio caro) y empezar a entender que es un proceso que se automatiza.
No sería honesto vender la automatización como una solución mágica. Un script mal escrito puede ser más peligroso que el problema que intenta resolver. ¿Qué ocurre si tu script de Bash para bloquear IPs atacantes tiene un error de lógica y bloquea al gateway de tu red? Has creado una denegación de servicio autoinfligida. ¿Qué ocurre si tu script de PowerShell elimina archivos temporales pensando que eran maliciosos, pero resulta que eran parte de un software legítimo? La automatización requiere diseño cuidadoso, pruebas en entornos controlados y, sobre todo, el concepto de "modo auditoría": primero que el script solo reporte lo que haría, y solo después que lo haga realmente.
Además, está el problema de la dependencia. Si automatizas la respuesta a un incidente —por ejemplo, aislando automáticamente un equipo que muestra comportamiento sospechoso—, debes tener un plan para cuando el script se equivoque. La automatización no elimina la supervisión humana; la eleva. El analista de seguridad deja de revisar logs línea por línea y empieza a revisar informes y excepciones. La disrupción no es reemplazar a las personas, sino liberarlas para tareas más estratégicas.
Pongamos tres ejemplos muy prácticos, explicados en lenguaje llano pero con pinceladas técnicas que cualquier curioso puede investigar:
Detección de cambios en archivos críticos (Integridad)
Con Bash, usando find y md5sum, puedes generar una línea base de hashes de tus archivos de sistema y luego comparar cada hora. Cualquier cambio no autorizado (posible infección o modificación maliciosa) se reporta al instante. Esto es un sistema de detección de intrusiones básico, pero sin necesidad de agentes comerciales.
Monitoreo de procesos anómalos (PowerShell)
Con Get-Process y Get-NetTCPConnection puedes listar todos los procesos que tienen conexiones de red abiertas, filtrar por aquellos que no tengan firma digital, y matar el proceso si coincide con patrones conocidos de malware. Empresas enteras han detenido campañas de ransomware con scripts similares ejecutándose cada 5 minutos.
Barrido de privilegios excesivos
En entornos Unix, un script de Bash puede recorrer todos los usuarios del sistema, listar sus permisos sudo y generar una alerta si alguien tiene capacidad de ejecutar comandos sin contraseña o si hay servicios corriendo como root que no deberían. En Windows, PowerShell puede extraer miembros de grupos como "Administradores" o "Domain Admins" y comparar contra una lista aprobada. Ninguno de estos casos requiere ser un gurú. Requiere entender la lógica de lo que se quiere proteger y tener la valentía de escribir unas pocas líneas que automaticen esa comprobación.
La columna de hoy termina con una provocación: la mayoría de los equipos de seguridad pasan el 80% de su tiempo apagando incendios que pudieron haberse prevenido o detectado mucho antes. Y no porque les falte talento, sino porque viven atrapados en lo manual. La automatización con scripts es la herramienta para salir de ese círculo vicioso. No necesitas una plataforma de orquestación de seguridad de miles de dólares. Necesitas empezar con un script que haga una sola cosa bien, programado en el cron de Linux o en el administrador de tareas de Windows. Luego otro. Luego otro. Y de esta forma pronto tendrás un grupo de pequeños guardianes automáticos que trabajan mientras duermes.
Y recuerda siempre que el verdadero disruptor en ciberseguridad no es el que tiene el último cortafuegos de inteligencia artificial. Es el que entiende que la defensa efectiva es aburrida, rutinaria y automatizada. Y esa persona, querido lector, puedes ser tú. Solo necesitas abrir un terminal y escribir tu primera línea. El resto lo hará el script. Así que la próxima vez que veas en las noticias un ataque masivo que afectó a miles de empresas, pregúntate: ¿cuántos de esos incidentes se habrían detenido con un simple script de Bash que hubiera bloqueado una IP sospechosa o con un script de PowerShell que hubiera impedido ejecutar un proceso sin firma? La mayoría. La ciberseguridad no es un gadget. Es disciplina automatizada. Y la buena noticia es que el manual de instrucciones cabe en cinco líneas de código. ¿Te animas a escribirlas? Por hoy nos despedimos. Hasta la próxima semana.
Vea además:
El fin de las etiquetas: Por qué el RBAC está muerto (y el ABAC aún no lo sabe)