← Volver al inicio

Python Basico para Seguridad

Objetivo

Aprender Python suficiente para automatizar tareas de ciberseguridad: leer archivos, analizar logs, calcular hashes, consumir APIs y comunicar resultados.

Para seguridad no necesitas empezar con programacion avanzada. Lo primero es entender tipos de datos, control de flujo, lectura de archivos y manejo de errores. Con eso ya puedes razonar sobre logs, inventarios, respuestas de API y pequeñas transformaciones de datos.

La prioridad es escribir codigo claro. Un script confuso puede producir una conclusion equivocada y hacer que un analista persiga ruido. Siempre importa saber que entra, que se procesa, que se ignora y que limite tiene el resultado.

Variables

usuario = "admin" intentos = 5 activo = True

Listas

ips = ["10.0.0.1", "10.0.0.2", "203.0.113.5"] for ip in ips: print(ip)

Diccionarios

evento = { "usuario": "admin", "ip": "203.0.113.5", "resultado": "failed" } print(evento["usuario"])

Condiciones

resultado = "failed" if resultado == "failed": print("Login fallido") else: print("Otro resultado")

Funciones

def es_login_fallido(linea): return "failed" in linea.lower() print(es_login_fallido("login failed for admin"))

Archivos

from pathlib import Path path = Path("ejemplo.log") contenido = path.read_text() print(contenido)

Leer linea por linea:

from pathlib import Path path = Path("ejemplo.log") for line in path.read_text().splitlines(): print(line)

Errores

from pathlib import Path path = Path("no-existe.log") try: print(path.read_text()) except FileNotFoundError: print("El archivo no existe")

Ejemplo de Archivo

Un archivo de ejemplo, ejemplo.log, puede contener:

login failed user=admin ip=203.0.113.10 login success user=maria ip=10.0.0.5 login failed user=root ip=203.0.113.10

Un script de ejemplo puede:

  • Leer el archivo.
  • Imprimir solo lineas con failed.
  • Contar cuantas fallas hay.

Lectura de Datos de Seguridad

Muchos datos de seguridad vienen como texto, JSON o CSV. Antes de procesarlos conviene identificar campos como usuario, IP, hora, accion, resultado y sistema origen. Si falta un campo importante, el analisis debe reconocer esa limitacion.

No todo lo que coincide con una palabra es malicioso. Por ejemplo, failed puede indicar ataque, error de usuario, prueba interna o servicio mal configurado. Python ayuda a contar y filtrar, pero la interpretacion sigue siendo responsabilidad del analista.

Errores Comunes

  • No manejar archivos inexistentes.
  • Asumir que todas las lineas tienen el mismo formato.
  • Imprimir secretos o datos personales sin necesidad.
  • Mezclar datos reales con ejemplos publicos.
  • Confundir conteo alto con incidente confirmado.
  • No explicar limitaciones del analisis.

Criterio de Dominio

Puedes avanzar cuando puedas:

  • Usar listas.
  • Usar diccionarios.
  • Leer archivos.
  • Usar condiciones.
  • Crear funciones.
  • Manejar error de archivo inexistente.