👿
Hacking en SCADA - [CPICS]
Comprar cursoYouTubeTwitterLinkedIn
  • La Biblia del Hacking en ICS/SCADA
    • Advertencia
    • Conoce a tu academia
    • Conoce a tu instructor #1
    • Conoce a tu instructor #2
  • Fundamentos de SCADA
    • Introducción a SCADA
      • Unidades Terminales Remotas (RTU)
      • Interfaz Hombre-Máquina (HMI)
      • Comunicaciones de Red
      • Controladores Lógicos Programables (PLC)
    • IT vs OT
    • La importancia de conocer pentesting en IT para una auditoria en SCADA
    • Aplicaciones Típicas de SCADA en Diferentes Industrias
      • Industria de la Energía
      • Gestión de Agua y Aguas Residuales
      • Industria Manufacturera
      • Transporte
      • Petróleo y Gas
    • Arquitectura de Sistemas SCADA
      • Características de Diseño
      • Tecnologías Emergentes
    • Redes y Comunicaciones en SCADA
    • Diferencias entre SCADA, DCS y otros sistemas de control industrial
    • Protocolos comunes
      • Modbus
      • DNP3 (Distributed Network Protocol)
      • OPC (OLE for Process Control)
      • IEC 60870-5-104
    • Hardware Específico en SCADA
    • Software de Gestión y Monitorización en SCADA
    • Ciberseguridad en el Modelo de Purdue
  • Aspectos Legales y Éticos del Pentesting en SCADA
    • Normativas y estándares de cumplimiento en SCADA
    • ICS Cyber Kill Chain
    • MITRE en ICS
  • Vulnerabilidades en Sistemas SCADA
    • Tipos comunes de vulnerabilidades
      • Vulnerabilidades de Software y Firmware
      • Problemas de Configuración y Seguridad de Red
      • Falta de Autenticación y Control de Acceso
      • Vulnerabilidades de Comunicaciones
      • Ataques Físicos y de Ingeniería Social
      • Falta de Conciencia y Formación en Seguridad
    • Análisis de casos históricos de brechas de seguridad
      • Stuxnet (2010)
    • ERP como Vectores de ataque inicial
    • Herramientas automatizadas
  • Herramientas y técnicas
    • OSINT en SCADA
      • Utilizando Shodan para SCADA
    • Logins vulnerables a fuerza bruta
      • Hydra una gran herramienta
    • Profundizando en Modbus
      • Historia y evolucion de Modbus
      • Man-In-The-Middle
      • Modbus TLS posibles vulnerabilidades
    • Instalacion de ControlThings
    • Uso de Nmap en SCADA
    • Puertos comunes en ICS/SCADA Devices
    • Utilizando Nmap
      • DNS en SCADA
      • Enumeracion con s7-enumerate.nse
    • Enumeracion con plcscan
    • ARP-SCAN en SCADA
    • ARP Spoofing
      • Wireshark en SCADA
    • Introducción al Uso de Metasploit en SCADA
      • Auxiliary Module modbusdetect
      • Auxiliary Module modbus_findunitid
    • Uso de protocolos inseguros en SCADA
      • Uso de protocolos inseguros
    • Credenciales por defecto
      • ScadaBR - Default Credentials
    • Credenciales debiles o suceptibles a fuerza bruta
    • Python en SCADA
    • Inyeccion Maliciosa de comandos Modbus
      • Utilizando MBTGET
      • Utilizando Metasploit
        • Auxiliary Module modbus_client
      • Utilizando Python
    • Simulacion de StuxNet
      • OpenPLC Server: Subida de Archivo Malicioso .st para Controlar Parámetros de Planta
  • Buffer Overflow
    • Buffer Overflow en SCADA
    • Teoria del Buffer Overflow
      • Buffer Overflow en Windows
      • Buffer Overflow en Linux
    • Tipos de Protecciones contra Buffer Overflow
    • Explotacion del Buffer Overflow
      • Spiking
      • Fuzzing
      • Finding the Offset
      • Overwriting The EIP
      • Finding the Bad Charaters
      • Finding The Right Module
      • Generating Shellcode and Gaining Shell
  • Muchas Gracias
    • 🛡️ ¡Muchísimas Gracias por Participar! 🛡️
    • Importante
Con tecnología de GitBook
En esta página
  • Canarios de Pila (Stack Canaries)
  • Protección de Ejecución (DEP/NX)
  • Address Space Layout Randomization (ASLR)
  • Safe Structured Exception Handling (Safe SEH)
  • Fortificación del Código
  • Conclusión

¿Te fue útil?

  1. Buffer Overflow

Tipos de Protecciones contra Buffer Overflow

Para mitigar los riesgos asociados con los buffer overflows, se han desarrollado diversas técnicas de protección que se implementan en diferentes niveles del sistema operativo y del software. Estas protecciones son esenciales para garantizar la seguridad y estabilidad de las aplicaciones y sistemas.

Canarios de Pila (Stack Canaries)

  • Descripción: Los canarios de pila son pequeños valores aleatorios colocados en la pila antes de las direcciones de retorno de las funciones. Su propósito es detectar cualquier sobrescritura de memoria que ocurra debido a un buffer overflow.

  • Funcionamiento:

    • Cuando una función se llama, se coloca un canario en la pila justo antes de la dirección de retorno.

    • Antes de que la función retorne, se verifica el valor del canario.

    • Si el valor ha cambiado, esto indica que un buffer overflow ha ocurrido, y el programa puede abortar la ejecución inmediatamente para evitar la explotación.

  • Ventajas: Esta técnica es efectiva para detectar y prevenir la explotación de buffer overflows que intentan sobrescribir direcciones de retorno y otras partes críticas de la pila.

Protección de Ejecución (DEP/NX)

  • Descripción: Data Execution Prevention (DEP) o el bit Non-eXecutable (NX) es una tecnología de seguridad que marca ciertas áreas de la memoria, como la pila y el heap, como no ejecutables.

  • Funcionamiento:

    • DEP/NX impide que el código inyectado en áreas de datos sea ejecutado.

    • Si un atacante intenta ejecutar código desde una región de memoria marcada como no ejecutable, el procesador genera una excepción y termina el proceso.

  • Implementación: DEP puede ser implementado tanto en hardware (mediante el bit NX en procesadores) como en software.

  • Ventajas: Esta protección es fundamental para evitar que el código malicioso inyectado a través de buffer overflows sea ejecutado.

Address Space Layout Randomization (ASLR)

  • Descripción: ASLR aleatoriza las direcciones de memoria de áreas clave de un proceso, como el stack, el heap y las bibliotecas compartidas.

  • Funcionamiento:

    • Cada vez que un programa se ejecuta, las posiciones de estas áreas de memoria cambian.

    • Esto dificulta que un atacante prediga las direcciones exactas necesarias para explotar un buffer overflow.

  • Impacto: ASLR añade una capa significativa de dificultad para los atacantes, ya que no pueden depender de direcciones de memoria estáticas.

  • Ventajas: La aleatorización de la disposición del espacio de direcciones incrementa la entropía, reduciendo la probabilidad de éxito de los ataques.

Safe Structured Exception Handling (Safe SEH)

  • Descripción: Safe SEH garantiza que solo las rutinas de manejo de excepciones que están registradas sean invocadas.

  • Funcionamiento:

    • Cuando ocurre una excepción, el sistema verifica si el manejador de excepciones está en la lista de manejadores registrados.

    • Si no lo está, la excepción no es manejada por ese manejador, previniendo la explotación.

  • Ventajas: Esta protección previene que los atacantes manipulen las estructuras de manejo de excepciones para ejecutar código arbitrario.

Fortificación del Código

  • Descripción: Los compiladores modernos incluyen opciones para fortificar el código contra buffer overflows y otras vulnerabilidades de memoria.

  • Ejemplos de Fortificación:

    • Funciones Seguras: Reemplazo de funciones inseguras como strcpy con versiones seguras como strcpy_s que incluyen verificaciones de límites.

    • Opciones de Compilación: Opciones como -fstack-protector en GCC que añaden canarios de pila y otras verificaciones en tiempo de ejecución.

  • Implementación: Estas medidas se integran durante el proceso de compilación, añadiendo verificaciones y protecciones adicionales al código generado.

  • Ventajas: La fortificación del código reduce significativamente la superficie de ataque, dificultando la explotación de vulnerabilidades de memoria.

Conclusión

Las técnicas de protección contra buffer overflows son esenciales para la seguridad de los sistemas modernos. Canarios de pila, DEP/NX, ASLR, Safe SEH y la fortificación del código trabajan en conjunto para proporcionar múltiples capas de defensa contra los ataques. Comprender y aplicar estas protecciones es crucial para los desarrolladores y pentesters que buscan asegurar aplicaciones y sistemas contra uno de los vectores de ataque más comunes y peligrosos.

AnteriorBuffer Overflow en LinuxSiguienteExplotacion del Buffer Overflow

Última actualización hace 1 año

¿Te fue útil?