Para este apartado me baso en el github https://github.com/cylance/IntroductionToMachineLearningForSecurityPros, el cual contiene un libro (libre) muy bueno para aprender “Introduction to Artificial Intelligence for Security Professionals”. En este caso lo he adaptado para profesionales con conocimientos limitados de programación.


Conceptos a Impartir (De Básico a Avanzado)

El objetivo es llevar al alumnado desde cero (o casi cero) en programación hasta comprender y poder ejecutar (y eventualmente modificar) los ejemplos del libro.

Módulo 1: Fundamentos de Programación con Python (Esencial)

  • Objetivo: Dotar al alumnado de las herramientas básicas de programación necesarias para entender y escribir scripts simples.
  • Conceptos:
    • Introducción a Python: ¿Qué es? ¿Por qué Python para IA/Seguridad?
    • Entorno de desarrollo: Instalación de Python, uso de un IDE (como VS Code con extensión Python) o Entornos Interactivos (Jupyter Notebooks / Google Colab ). Gestión básica de paquetes con pip. Entornos virtuales (venv).
    • Sintaxis básica: Variables, tipos de datos (números, strings, booleanos, listas, tuplas, diccionarios, sets).
    • Operadores: Aritméticos, de comparación, lógicos.
    • Estructuras de control: Condicionales (if, elif, else), bucles (for, while).
    • Funciones: Definición, argumentos, retorno de valores. Ámbito (scope) de variables.
    • Manejo de errores básicos: Bloques try...except.
    • Entrada/Salida básica: Leer y escribir en archivos de texto (.txt, .csv).
  • Ejercicios: Para practicar estos conceptos, se debe emplear el archivo ejercicios_modulo1.ipynb.

Módulo 2: Manipulación de Datos con Python

  • Objetivo: Aprender a cargar, explorar, limpiar y preparar datos, una tarea fundamental en cualquier proyecto de ML.
  • Conceptos:
    • Introducción a NumPy: Arrays multidimensionales, operaciones vectorizadas eficientes, indexación y slicing.
    • Introducción a Pandas:
      • Series y DataFrames: Las estructuras de datos clave.
      • Lectura y escritura de datos (CSV, JSON, etc.).
      • Selección e indexación de datos (loc, iloc).
      • Limpieza de datos básicos: Manejo de valores nulos (NaN), eliminación de duplicados.
      • Agregación y agrupación de datos (groupby).
      • Visualización básica de datos con Pandas (integrado con Matplotlib).
    • Introducción a Matplotlib/Seaborn: Creación de gráficos básicos (histogramas, scatter plots, box plots) para explorar los datos.
  • Ejercicios: Para practicar estos conceptos, se debe emplear el archivo ejercicios_modulo2.ipynb.

Módulo 3: Fundamentos de Inteligencia Artificial y Machine Learning (Conceptual)

  • Objetivo: Entender los conceptos teóricos clave detrás del ML antes de implementar algoritmos.
  • Conceptos:
    • ¿Qué es la Inteligencia Artificial? ¿Qué es el Machine Learning? Diferencias.
    • Tipos de Aprendizaje:
      • Supervisado: Clasificación y Regresión (conceptos, ejemplos en seguridad: detección de malware vs. predicción de ataques).
      • No Supervisado: Clustering y Reducción de Dimensionalidad (conceptos, ejemplos en seguridad: detección de anomalías, agrupación de tráfico de red).
      • (Opcional/Breve) Aprendizaje por Refuerzo.
    • El Proceso de ML: Recolección de datos Preprocesamiento/Ingeniería de características Selección del modelo Entrenamiento Evaluación Despliegue.
    • Conceptos Clave: Características (Features), Etiquetas (Labels), Conjunto de Entrenamiento (Training Set), Conjunto de Prueba (Test Set), Conjunto de Validación (Validation Set).
    • Problemas Comunes: Sobreajuste (Overfitting) y Subajuste (Underfitting). Sesgo (Bias) y Varianza (Variance).
    • Métricas de Evaluación Básicas:
      • Para Clasificación: Accuracy, Precisión, Recall, F1-Score, Matriz de Confusión. Curva ROC y AUC (explicación conceptual).
      • Para Regresión: MSE, MAE (mencionar brevemente).
      • Para Clustering: Silhouette Score (mencionar brevemente).
  • Ejercicios: Para practicar estos conceptos, se debe emplear el archivo ejercicios_modulo3.ipynb.

Módulo 4: Algoritmos de Machine Learning y Aplicaciones en Ciberseguridad (Práctico)

  • Objetivo: Implementar algoritmos básicos de ML usando scikit-learn y conectarlos con problemas de seguridad, preparando el terreno para los ejemplos del libro.
  • Conceptos:
    • Introducción a Scikit-learn: La librería estándar de ML en Python. API consistente (fit, predict, transform).
    • Preprocesamiento de Datos con Scikit-learn: Escalado de características (StandardScaler, MinMaxScaler), Codificación de variables categóricas (OneHotEncoder, LabelEncoder).
    • Algoritmos de Clasificación (con ejemplos simples de seguridad):
      • Regresión Logística: Detección simple de spam o phishing.
      • K-Nearest Neighbors (KNN): Clasificación simple basada en similitud.
      • Árboles de Decisión y Random Forests: Modelos más potentes, entender su interpretabilidad (árbol) y robustez (bosque). Ejemplo: clasificación básica de malware basada en características simples.
    • Algoritmos de Clustering (con ejemplos simples de seguridad):
      • K-Means: Agrupación de logs de red para detectar patrones o anomalías.
    • Ingeniería de Características (Feature Engineering) Específica de Seguridad (Introducción):
      • ¿Qué es? ¿Por qué es crucial en seguridad?
      • Ejemplos conceptuales (sin entrar aún en el código complejo del libro): extraer longitud de URL, número de caracteres especiales (phishing); extraer información de cabeceras de ejecutables PE (malware); contar tipos de peticiones en logs web (ataques).
  • Ejercicios: Para practicar estos conceptos, se debe emplear el archivo ejercicios_modulo4.ipynb.

Módulo 5: Implementación con Ejemplos del Libro/Repositorio Cylance

  • Objetivo: Analizar, ejecutar y entender el código del repositorio Cylance, aplicando todo lo aprendido.
  • Conceptos:
    • Análisis Guiado del Código: Seleccionar 1-2 ejemplos clave del repositorio (empezar por los más sencillos, si los hay).
    • Desglose del Código:
      • Carga y preprocesamiento de datos específicos del ejemplo (e.g., datos de ficheros PE, logs de red). Explicar el porqué de cada paso de preprocesamiento.
      • Ingeniería de características aplicada: Ver cómo se extraen las features relevantes para ese problema de seguridad específico.
      • Entrenamiento del modelo: Ejecutar el entrenamiento, entender los parámetros utilizados.
      • Evaluación del modelo: Interpretar las métricas de rendimiento en el contexto del problema de seguridad. ¿Qué significa una alta precisión o un alto recall en detección de malware?
      • Visualización de resultados (si el ejemplo la incluye).
    • Adaptación y Experimentación: Animar a los alumnos a hacer pequeñas modificaciones (cambiar parámetros, probar otro modelo simple) para ver cómo afecta al resultado.
  • Ejercicios: Para practicar estos conceptos, se debe emplear el archivo ejercicios_modulo5.ipynb.

Módulo 6: Consideraciones Éticas y Próximos Pasos (Cierre)

  • Objetivo: Reflexionar sobre el uso responsable de la IA y las limitaciones.
  • Conceptos:
    • Sesgos en los datos y algoritmos de IA en seguridad.
    • Importancia de la interpretabilidad (Explainable AI - XAI): ¿Por qué el modelo tomó esa decisión?
    • Adversarial Machine Learning: Ataques contra modelos de IA.
    • Limitaciones actuales de la IA en ciberseguridad.
    • Recursos para seguir aprendiendo.
  • Ejercicios: Para practicar estos conceptos, se debe emplear el archivo ejercicios_modulo6.ipynb.

  • Herramientas Recomendadas:
    • Python 3.x
    • Jupyter Notebook / JupyterLab / Google Colaboratory
    • Bibliotecas: NumPy, Pandas, Matplotlib, Seaborn, Scikit-learn
    • Git y GitHub (para compartir código y usar el repositorio de Cylance)