En este capítulo
Fundamentos de programación con Python
Programar permite automatizar tareas repetitivas y comprobar resultados de forma reproducible. En Python, una variable conserva un valor, una condición decide entre alternativas, un bucle procesa elementos y una función reúne una operación reutilizable. Las listas y diccionarios ayudan a organizar datos. Un script de seguridad debe tratar errores y entradas inesperadas, porque el fallo silencioso también constituye un riesgo. Por ejemplo, un programa que cuenta accesos fallidos puede equivocarse si interpreta formatos distintos como iguales. La finalidad no es convertir cada investigación en un proyecto de software complejo, sino comprender cómo se transforma la información y poder revisar los pasos del análisis.
Conceptos de este apartado
- Variables, tipos de datos y operadores
- Condicionales, bucles y funciones
- Colecciones: listas, diccionarios, conjuntos y tuplas
- Manejo de errores y excepciones
- Lectura y escritura de archivos
- Entornos virtuales y gestión básica de paquetes
Tratamiento de datos de seguridad
Las fuentes técnicas rara vez llegan con el mismo formato. CSV representa valores en columnas y JSON permite estructuras anidadas; los registros pueden incorporar fechas, identificadores y nombres inconsistentes. Normalizar implica convertirlos a un esquema común sin perder su significado. Las expresiones regulares pueden localizar patrones, pero una coincidencia no demuestra que exista un incidente. Las marcas temporales requieren conservar la zona horaria y, cuando sea posible, la precisión original. Si dos fuentes se comparan sin esos cuidados, pueden surgir falsas correlaciones. Un informe reproducible documenta qué campos fueron modificados y qué registros se excluyeron por errores de formato.
Conceptos de este apartado
- CSV, JSON y formatos estructurados
- Normalización y limpieza de datos
- Expresiones regulares
- Fechas, timestamps y zonas horarias
- Parsing de logs y extracción de campos
- Generación de reportes simples
Sistemas y automatización
La automatización de sistemas combina instrucciones del sistema operativo con scripts que crean, leen o inspeccionan archivos. Bash es habitual en Linux y Python permite tareas equivalentes en distintos entornos. Ejecutar comandos exige controlar rutas, permisos y parámetros; concatenar texto de origen desconocido en una orden puede introducir vulnerabilidades. Calcular un hash ayuda a identificar cambios en un archivo, pero no prueba quién realizó la modificación. Las credenciales nunca deberían escribirse en código público o logs. Cuando se automatizan tareas de investigación, también hay que preservar la información original y registrar versiones, errores y resultados para permitir una revisión posterior.
Conceptos de este apartado
- Bash y shell scripting básico
- Ejecución de comandos y procesos desde Python
- Recorrido de directorios y gestión de archivos
- Hashes y comprobaciones de integridad
- Automatización de tareas recurrentes
- Uso seguro de credenciales y variables de entorno
SQL para investigación y seguridad
SQL permite consultar datos organizados en tablas. SELECT elige campos, WHERE filtra registros, ORDER BY organiza resultados y JOIN relaciona tablas mediante claves. Para reconstruir una secuencia de accesos puede ser necesario unir eventos de autenticación con un inventario de dispositivos. Antes de hacerlo hay que entender qué representa cada identificador y si existe correspondencia fiable entre fuentes. Una consulta técnicamente correcta puede llevar a una conclusión errónea cuando hay registros duplicados o ausentes. El analista debe distinguir el resultado de la consulta de la interpretación del comportamiento observado y documentar los filtros aplicados.
Conceptos de este apartado
- Modelo relacional y tablas
- SELECT, WHERE, ORDER BY y funciones agregadas
- JOIN y correlación de fuentes
- Consultas sobre registros de eventos
- Normalización conceptual de datos
- Prevención básica de errores y exposición de datos
APIs y servicios
Una API ofrece operaciones que otros programas pueden solicitar, normalmente a través de protocolos como HTTP. Las respuestas incluyen códigos de estado; un 200 indica éxito de la solicitud, pero no garantiza que los datos devueltos sean completos o correctos. Los tokens y claves de acceso permiten actuar bajo determinada identidad y deben protegerse. La paginación puede hacer que una consulta devuelva solo una parte de los registros. También existen límites de frecuencia y fallos de red que requieren reintentos razonables. Al utilizar una API en una investigación es importante registrar la fuente, la fecha, los parámetros y las versiones que influyen en el resultado.
Conceptos de este apartado
- Conceptos de API y REST
- Métodos HTTP y códigos de estado
- Autenticación con tokens y claves
- Consumo de APIs desde Python
- Paginación, límites y manejo de errores
- Integración de fuentes de inteligencia y vulnerabilidades
Automatización de flujos de seguridad
Un flujo automatizado puede recibir indicadores, enriquecerlos con fuentes conocidas, comparar registros y producir anexos. El valor reside en que el proceso sea verificable, no en que ejecute muchas tareas. Una dirección IP asociada a una campaña no demuestra por sí sola que cada conexión a esa IP sea maliciosa. Las coincidencias deben ubicarse en un contexto temporal y técnico. Git ayuda a conservar versiones del código, y una bitácora permite reconstruir qué se ejecutó con qué datos. La automatización más útil reduce errores mecánicos mientras deja explícitas las decisiones interpretativas que requieren criterio humano.
Conceptos de este apartado
- Enriquecimiento de indicadores
- Validación masiva de hashes, dominios e IP
- Correlación elemental de eventos
- Generación automática de evidencias y anexos
- Control de versiones con Git
- Documentación reproducible de scripts y resultados
Un caso para comprenderlo
Un equipo recibe cuatro archivos con intentos de acceso provenientes de distintos sistemas. Un script normaliza las horas y correlaciona identificadores para construir una cronología. Al documentar el procedimiento debe explicar los registros descartados, las transformaciones realizadas y por qué la coincidencia de una IP no equivale a identificar a una persona.
Cómo aplicar estos conceptos
El punto de partida es describir el sistema o situación con precisión, distinguir hechos de suposiciones y seleccionar qué información permitiría comprobar una conclusión. A partir de ahí se identifican riesgos, controles, responsabilidades y evidencias posibles. La utilidad de estos conocimientos aumenta cuando se relacionan con otras áreas de la ciberseguridad y del Derecho informático.
