Saltar al contenido

CCNA Cybersecurity Operations – Cyber Ops

botmaster

¡Bienvenidos al curso gratuito introductorio de ciberseguridad (CCNA Cybersecurity Operations – Cyber Ops)! En esta misma página, encontrarás todos los módulos completos desde cero para aprobar las certificaciones Cisco, incluyendo el documento en formato PDF: ‘Understanding Cisco Cybersecurity Operations Fundamentals‘. Con esta guía exhaustiva, nuestro objetivo es formar al lector/estudiante y prepararlo para convertirse en un Tier 1 Alert Analyst, capacitándolo para trabajar en un SOC (Security Operations Center).

Índice del artículo

    Skills Assessment

    Ciberseguridad: el Centro de Operaciones de Seguridad – SOC

    Podemos encontrar distintos niveles en este contexto ya que dan respuesta a la amenazas que nos puedan surgir en el ámbito de ciberseguridad:

    • Tier 1 Alert Analyst
    • Tier 2 Incident Responder
    • SME/Hunter
    • SOC Manager

    En nuestro caso, saldremos preparados para Tier 1 Alert Analyst. Para poder formarse en los demás niveles hay que realizar otras certificaciones en materia de ciberseguridad. Recuerde que la siguiente guía le forma para poder aprobar el Cisco Cybersecurity Operations Fundamentals (cbrops) 200-201 exam.

    Sistema operativo Windows

    Una buena herramienta para comprobar los procesos, el uso de RAM así como las amenzas es la Sysinternals Suite (tcpview, RAMMap, procexp64).

    sysinternals suite

    Mediante la combinación de teclas TECLA WINDOWS + R e insertando los siguientes comandos podemos acceder a:

    • msconfig: al sistema de arranque (boot) y a los services
    • regedit: a la base de datos de Windows
    regedit
    msconfig

    El Window Management Instrumentation (WMI) nos permite manejar hosts remotos, tan sólo hay que buscar por «computer management«.

    computer management

    Por último, otros comandos interesantes son:

    • net command: para la administración y el mantenimiento del sistema operativo con opciones como net share, net use, net view, net help
    • netstat: para las conexiones tcp

    Principios de seguridad en red

    Vamos a repasar algunos conceptos respecto de la ciberseguridad como contexto previo a la inserción de lleno en lo que serían tipos de ataques y malware:

    • assets: valores de una organización
    • atack surface: puntos diferentes mediante lo cuales un atacante puede introducirse
    • exploit: mecanismo usado para comprometer un asset
    • manage risk: dentro de él tenemos diferentes:
      • risk acceptance: aceptado sin acción
      • risk avoidance: acción que se evita
      • risk limitation
      • risk transfer: se transfiere al seguro de la compañía
    • hackers (threat actors):
      • white hat: son los éticos
      • grey hat: lo hacen y luego lo resuelven
      • black hat: no son éticos, lo hacen para beneficio propio (cibercriminales)
    • rootkit: software que nos da acceso como si fueramos root (privileged access)
    • fuzzers: herramientas que se usan para descubrir vulnerabilidades (skipfish)
    • eavesdropping atack: captura y escucha al tráfico de red (sniffing or spoofing)
    • Denial-of-service: para bloquear tráfico (DOS)
    • Main-in-the-middle: para monitorear tráfico entre el origen y destino
    • sniffer: lee, monitorea y captura el tráfico de red

    Malware

    Se trata de software malicioso. Hay que ir con cuidado donde hacemos clic y que descargamos e instalamos pues puede contener algo maligno para nuestro sistema. Al hacernos vulnerables lo que nos suelta es un payload que contiene código malicioso.

    Tipos de malware:

    • virus: inserta una copia de sí mismo en otro programa, que se extiende de un host a otro, infectándolos.
    • trojan horses: software que parece ser legítimo, pero contiene código malicioso. Por ejemplo, los juegos en línea, mientras juegas el mismo corre en background. No se replican a sí mismos. Hay diferentes tipos dependiendo del daño que causan:
      • remote-access TH
      • data-sending TH (passwords)
      • destructive TH (delete files)
      • proxy TH (usa los hosts de las víctimas para llevar a cabo acciones ilegales)
      • security software disabler TH (nos desactivan el antivirus, firewall)
      • Dos TH (slows network)
    • worms: parecidos al virus, pero se replican. Virus necesita un programa host para correr, los gusanos pueden correr por sí mismos. El más famosos es el SQL Slammer del 2003 que causaba muchas redes a ir más despacio. Componentes:
      • enabling vulnerability: se instala a sí mismo usando exploits (email attachment)
      • propagation
      • payload: código malicioso
    • ransomware: deniega el acceso al host que ha infectado su data. Usan algoritmos de encriptación. Normalmente suele pedir alguna cantidad económica para devolver el estado original.
    • spyware: nos da acceso a información personal (keylogger)
    • adware: pop-ups maliciosos
    • scareware: persuade a un usuario de infectar un host mediante social engineering
    • phising: convence a las personas para divulgar información sensible
    • rootkits: esconde y provee acceso privilegiado (root)
    sqlslammer

    Tipos de ataques a la red (types of network atacks)

    Reconnaissance attacks

    Se trata de recoger información en un primer plano. Son ataques dirigidos a un endpoint de una red como puede ser un PC o un servidor.

    Algunas de las técnicas más usadas en los ataques de reconocimiento son:

    • Information query of a target (dig, nslookup, whois)
    • ping sweeps by DNS queries: nos permite crear la topología de red
    • port scan of active IP address (Nmap)
    • run vulnerability scanners (OpenVAS, Nipper)
    • query identified ports
    • run explotation tools (Metasploit, Sqlmap)
    reconnaisance atacks

    Access attacks

    Sirven para robar información o controlar de manera remota un host. Explotan los servicios de autenticación, bases de datos, FTP, etc.

    Tipos de ataques de acceso:

    • password atack: brute-force (Medusa)
    • pass-the-hash: el hacker tiene acceso al host y usa un malware para acceder a las contraseñas con hash.
    • trust exploitation: usar un host de confianza para acceder al servidor.
    • port redirection
    • man-in-the-middle
    • IP, MAC, DHCP Spoofing: se falsifica la información de las direcciones
    man in the middle

    Social engineering attacks

    Se trata de manipular a los individuos. A continuación mostramos los diferentes tipos de ataques de ingeniería social:

    • pretexting: decir que necesitas información del banco por ejemplo
    • spam
    • phishing
    • quid pro quo: algo por algo
    • tailgating: infiltrarse con autorización false
    • baiting: mediante un usb
    • visual hacking: observar como pone el PIN (shoulder surfing)
    • spear phishing: se trata de un phishing dirigido a individuos
    • whaling: phishing dirigido a una organización determinada
    • pharming: phishing en granja (DNS Poisoning by DHCP)
    • watering hole: en una web
    • vishing: por voz
    • smishing: por SMS
    phishing

    Denial of Service Attacks (DoS)

    Se envían muchos pings o se envía paquetes formateados de manera incorrecta (buffer iverfkiw attack).

    También existe la versión distribuida, DDoS, Distributed Denial of Service Attack, también llamado Smurf Attack. Componentes para que se lleve a cabo:

    • zombies (agents). Son los hosts comprometidos con malware (bots)
    • bots: malware que vienen de los zombies que infectan a los hosts
    • botnet: grupo de zombies
    • handlers (master command-and-control): servers que controlan a los zombies
    • botmaster: el actor amenaza que controla la botnet y los handlers
    botnet zombies

    Buffer Overload Attack (DoS)

    Busca una falla en la memoria de un sistema. Por ejemplo una aplicación cuyo input no requiera de más de 100 caracteres, pero tu le envías uno enorme todo el tiempo y de esta manera se consume la meoría.

    Otro ejemplo aquí es el ping de la muerte (ping of death). Se envía un paquete IP más largo que el del tamaño de la cabecera, 65,536 bytes. Aunque esto ya está muy protegido en muchos sistemas Windows.

    Threat actors use evasion methods

    Algunos métodos de evasión que usan los atacantes son:

    • encryption and tunneling
    • resource exhaustion: mantienen al host ocupado para que no pueda hacer nada
    • traffic fragmentation: parte el payload
    • protocol-level misinterpretation: ignora paquetes
    • traffic substitution: migran ASCII a unicode
    • traffic insertion
    • pivoting: tienen acceso y quiere acceder con eso contraseña a otro host
    • rootkits: para esconder actividades del atacante que hace que sea legítimo todo lo que haga
    pivoting

    Métodos para capturar tráfico y enviarlo a dispositivos monitorizados de red

    Network Test Access Points (TAPs)

    Son dispositivos que se implementan entre un dispositivo que les interesa y una red.

    network tap

    Traffic mirroring using Switch Port Analyzer (SPAN)

    El término de port mirroring significa que un switch copia frames de uno o más puertos a un puerto SPAN conectado a un dispositivo de análisis.

    Terminología SPAN:

    • Ingress traffic
    • Egress traffic
    • Source (SPAN) port
    • Destination (SPAN) port: envía copias del tráfico a un IDS
    span ids

    Herramientas de monitoreo de red

    Los analizadores de protocolos de red son packet sniffers como WireShark o tcpdump (linux).

    Por otra parte, tenemos NetFlow que es un CISCO IOS que nos provee de estadísticas 24/7 del flujo de los paquetes. No está suportado en una plataforma que no sea CISCO. Se guarda la información en una caché local y hay que configurarlo para que envíe la data a un NetFlow collector como StealthWatch.

    Por último, tenemos SIEM (Security Information and Event Management) que no es más ni menos que un reportador en tiempo real. Entre otros, incluye análisis forense, correlation logs, aggregation, reporting. El más popular es SPLUNK o ELK (ElasticSearch, Logstash, Kibana).

    splunk

    Vulnerabilidades IP

    Las vulnerabilidades IP son brechas de seguridad que afectan al protocolo de Internet y pueden poner en riesgo la integridad y confidencialidad de los datos transmitidos a través de la red. Algunas de las vulnerabilidades IP más conocidas son las siguientes:

    1. ICMP (Protocolo de Mensajes de Control de Internet): se utiliza para enviar mensajes y comprobar la conectividad entre dispositivos en una red.
    2. DOS (Ataque de Denegación de Servicio): tiene como objetivo saturar los recursos de un sistema, como el ancho de banda de la red, los puertos o la capacidad de procesamiento.
    3. DDOS (Ataque Distribuido de Denegación de Servicio): los atacantes utilizan múltiples dispositivos comprometidos en diferentes ubicaciones para lanzar el ataque de manera simultánea.
    4. Spoofing (Suplantación de IP): los atacantes falsifican o «spoofean» la dirección IP de origen en los paquetes IP. Esto puede permitirles ocultar su identidad y hacer que los paquetes parezcan provenir de una fuente legítima.
    5. MITM (Man In The Middle): un atacante intercepta y modifica la comunicación entre dos partes legítimas sin su conocimiento.
    6. Secuestro de sesión (Session Hijacking): se produce cuando un atacante obtiene acceso no autorizado a una sesión activa entre un usuario y un servidor.
    7. Ataques de amplificación y reflexión (Amplification and Reflection Attacks): aprovechan los protocolos de red que permiten amplificar el tráfico de un atacante y enviarlo a un objetivo, multiplicando el impacto del ataque. Algunos protocolos, como el Protocolo de Tiempo de Vida (TTL) y el Protocolo de Resolución de Direcciones (ARP), pueden ser utilizados por los atacantes para enviar una gran cantidad de tráfico a una dirección de destino, lo que puede sobrecargar el sistema objetivo.

    Ataques TCP

    • El escaneo de puertos (port scanning) es una técnica utilizada por los atacantes para descubrir qué puertos están abiertos en un sistema. Esto se logra enviando una serie de paquetes TCP a diferentes puertos y analizando las respuestas.
    • El ataque de inundación SYN (SYN flood) es un tipo de ataque de denegación de servicio (DoS) que tiene como objetivo abrumar un sistema objetivo enviando una gran cantidad de solicitudes SYN falsas. Las solicitudes SYN son parte del proceso de establecimiento de una conexión TCP y el ataque se basa en enviar muchas solicitudes SYN pero sin completar el proceso de establecimiento de conexión.
    • El ataque de reinicio TCP (TCP reset attack) implica el envío de paquetes TCP de reinicio (RST) para interrumpir una conexión TCP establecida entre dos sistemas. El atacante envía paquetes RST falsificados a uno de los sistemas involucrados en la conexión, lo que hace que se cierre de manera abrupta y se pierda la comunicación.
    • El secuestro de sesión TCP (TCP session hijacking) es un tipo de ataque en el que un atacante se apodera de una sesión TCP válida entre dos sistemas. Esto se logra mediante la interceptación y manipulación de los paquetes en la red. Una vez que el atacante ha tomado el control de la sesión, puede suplantar a uno de los participantes legítimos, leer o modificar los datos transmitidos o incluso finalizar la conexión.
    syn flood

    Ataques UDP

    UDP (User Datagram Protocol) es un protocolo de transporte utilizado en redes informáticas para enviar datagramas sin conexión. A diferencia de TCP, UDP no proporciona mecanismos de encriptación integrados, lo que lo hace vulnerable a ciertos tipos de ataques.

    En un ataque UDP sin encriptación, un atacante puede interceptar los datagramas UDP que se envían entre dos sistemas y acceder a la información contenida en ellos. Dado que UDP no tiene mecanismos de seguridad integrados, los datos transmitidos a través de este protocolo no están protegidos y pueden ser leídos o modificados por un atacante.

    Un ejemplo común de ataque UDP sin encriptación es la interceptación de paquetes para obtener información sensible, como contraseñas, mensajes o datos confidenciales. Si la comunicación entre dos sistemas se realiza utilizando UDP y no se emplea ningún tipo de encriptación adicional, un atacante puede «escuchar» la red y capturar los paquetes UDP que contienen información valiosa.

    Para protegerse contra ataques UDP sin encriptación, es recomendable utilizar mecanismos de seguridad adicionales, como el cifrado de datos o el uso de protocolos más seguros, como TLS (Transport Layer Security). El cifrado de datos asegurará que la información transmitida a través de UDP no pueda ser leída por personas no autorizadas.

    Ataques ARP

    El protocolo ARP (Address Resolution Protocol) se utiliza en redes informáticas para asociar direcciones IP con direcciones MAC. Sin embargo, este protocolo puede ser objeto de ataques que comprometen la seguridad de la red.

    Un tipo de ataque ARP es la respuesta ARP no solicitada (unsolicited ARP reply), también conocida como ARP gratuitous. En este ataque, un dispositivo envía respuestas ARP falsas, anunciando que su dirección IP está asociada a una dirección MAC específica. Esto puede causar confusión en otros dispositivos de la red, ya que actualizarán su tabla ARP con la nueva información falsa. Este tipo de ataque puede ser utilizado para realizar ataques de intermediación (man-in-the-middle) y redirigir el tráfico a través del dispositivo malicioso.

    Cain & Abel es una herramienta de hacking que aprovecha las vulnerabilidades del protocolo ARP para realizar ataques de suplantación de identidad en una red local. El atacante utiliza esta herramienta para capturar y analizar paquetes de red, obtener información de autenticación y llevar a cabo ataques de tipo «man-in-the-middle». Cain & Abel puede interceptar comunicaciones entre dos dispositivos y realizar modificaciones maliciosas en los datos transmitidos.

    cain and abel

    Ataques DNS

    • Envenenamiento de caché (cache poisoning):un atacante introduce información falsa en la caché DNS de un servidor, de modo que cuando los usuarios intentan acceder a un nombre de dominio en particular, son redirigidos a una dirección IP incorrecta y potencialmente maliciosa.
    • Ataques de amplificación y reflexión: aprovechan los servidores DNS configurados incorrectamente que responden a consultas de amplificación enviadas por el atacante. El atacante falsifica la dirección IP de la víctima y envía consultas a servidores DNS abiertos o mal configurados.
    • Ataques de utilización de recursos (resource utilization): realiza consultas excesivas o inválidas al sistema de nombres de dominio, con el objetivo de agotar los recursos del servidor DNS. Estos ataques pueden sobrecargar el servidor, provocando una degradación en el rendimiento o incluso una interrupción completa del servicio DNS.
    ataque dns

    Ataques DHCP

    Los ataques de DHCP (Dynamic Host Configuration Protocol) conocidos como ataques de spoofing, implican el envío de mensajes falsificados al servidor DHCP con el objetivo de obtener una dirección IP válida o interrumpir el funcionamiento normal de la red.

    Existen diferentes tipos de ataques de spoofing DHCP, entre los que se incluyen:

    1. Ataques de inundación de DHCP
    2. Ataques de envenenamiento de DHCP
    3. Ataques de agotamiento de direcciones IP

    Para protegerse contra los ataques de spoofing DHCP, es recomendable implementar medidas de seguridad, como:

    1. Autenticación del servidor DHCP
    2. Uso de listas blancas
    3. Supervisión y detección de anomalías
    4. Actualización de software y firmware

    HTTP y HTTPS

    1. Malicious iframes (marcos incorporados maliciosos): es un elemento HTML que se utiliza para insertar contenido de otro sitio web en una página web.
    2. HTTP 302 cushioning (amortiguación HTTP 302): técnica utilizada por los atacantes para ocultar malware o redirigir el tráfico a sitios web maliciosos.
    3. Domain shadowing (sombreado de dominios): técnica en la que los atacantes toman el control de subdominios legítimos y los utilizan para alojar contenido malicioso. Los subdominios comprometidos pueden pasar desapercibidos, ya que pertenecen a dominios legítimos y confiables.
    http 302 cushioning

    Ataques de email

    1. Ataque de adjuntos (attach attack): consiste en enviar un correo electrónico malicioso con un archivo adjunto infectado. El archivo adjunto puede contener malware, como virus, ransomware o troyanos. Cuando el usuario abre el archivo adjunto, el malware se ejecuta en su sistema, comprometiendo la seguridad de la computadora y permitiendo que los atacantes accedan y controlen el dispositivo.
    2. Spam: es una forma de correo electrónico no solicitado y masivo que se envía a un gran número de destinatarios. Los correos electrónicos de spam suelen contener publicidad no deseada, promociones engañosas o enlaces maliciosos. Aunque no todos los correos de spam son dañinos por sí mismos, pueden ser molestos y consumir recursos.
    3. Phishing: técnica en la que los atacantes se hacen pasar por una entidad legítima para engañar a los usuarios y obtener información confidencial, como contraseñas, números de tarjetas de crédito o datos personales.
    attach email malware

    Ataques de bases de datos

    1. Inyección SQL (sql injection): es un tipo de ataque en el que los atacantes insertan código SQL malicioso en las consultas de una aplicación web. El objetivo es aprovechar una aplicación web mal diseñada o con poca seguridad para manipular o revelar información confidencial almacenada en la base de datos.
    2. Cross-Site Scripting (XSS): es un ataque en el que los atacantes inyectan scripts maliciosos en páginas web visitadas por los usuarios. Estos scripts se ejecutan en el navegador del usuario y pueden robar información, modificar contenido o redirigir a sitios web falsos. Existen diferentes tipos de XSS, incluyendo XSS almacenado, donde el script malicioso se almacena en la base de datos y se entrega a los usuarios, y XSS reflejado, donde el script se inyecta a través de parámetros en la URL.
    sql injection

    Criptografía de clave pública

    Los antiguos griegos y espartanos usaban la Escítala (scytale) para codificar mensajes. Se trataba de una cinta de cuero enrollada a una vara que contenía un mensaje secreto.

    scytale

    Los romanos usaban el Caesar Cipher (cifrado del césar), los franceses el Cifrado de Vigenere (tabla) y luego en la segunda guerra mundial apareció la máquina Enigma. Todos ellos cifrados por sustitución.

    vigenère cipher

    Seguridad en las comunicaciones

    La seguridad de las comunicaciones es crucial para proteger la confidencialidad, integridad, autenticidad y no repudio de los datos transmitidos. A continuación, se describen las medidas utilizadas para asegurar las comunicaciones, incluyendo la confidencialidad de los datos, la integridad de los datos, la autenticación del origen y la no repudiación de los datos.

    1. Confidencialidad de los datos: se refiere a la protección de los datos de manera que solo las partes autorizadas puedan acceder y comprender la información transmitida. Para asegurar la confidencialidad, se utilizan técnicas de cifrado, como el cifrado simétrico y el cifrado asimétrico.
    2. Integridad de los datos: garantiza que la información transmitida no sea modificada o alterada durante el proceso de comunicación. Para lograr esto, se utilizan funciones hash criptográficas que generan un resumen único para cada conjunto de datos.
    3. Autenticación del origen: se refiere a la verificación de la identidad del remitente de los datos. Esto se logra mediante el uso de certificados digitales y firmas digitales.
    4. No repudiación de los datos: asegura de que una vez que los datos se han enviado y recibido, el remitente no pueda negar su participación en la comunicación. Esto se logra mediante el uso de firmas digitales que vinculan de manera única los datos al remitente.

    Criptografía

    La criptología es el campo de estudio que combina la criptografía y el criptoanálisis para garantizar la seguridad de la información. La criptografía se encarga de proteger los datos mediante el uso de técnicas y algoritmos de cifrado, mientras que el criptoanálisis se centra en analizar y romper los sistemas criptográficos para revelar información oculta.

    La criptografía se basa en la aplicación de algoritmos matemáticos y claves para cifrar y descifrar los datos. El objetivo principal es proteger la confidencialidad de la información, asegurando que solo las personas autorizadas puedan acceder a ella. Los algoritmos de cifrado pueden ser simétricos, donde se utiliza la misma clave para cifrar y descifrar los datos, o asimétricos, donde se emplea un par de claves pública y privada. Algunos ejemplos son transposition cipher o polyalphabetic ciphers.

    Por otro lado, el criptoanálisis se enfoca en estudiar y analizar los sistemas criptográficos con el propósito de romperlos y obtener acceso no autorizado a la información protegida. Los criptoanalistas utilizan diversas técnicas, como el análisis de frecuencia, la búsqueda exhaustiva de claves y el uso de potencia computacional para identificar debilidades en los algoritmos criptográficos y descifrar los mensajes cifrados. Entre otros, podemos encontrar ataques de brute-force, ciphertext, known-plaintext o meet-in-the-middle.

    La criptología combina ambas disciplinas con el fin de desarrollar sistemas criptográficos robustos y seguros. Los criptógrafos diseñan algoritmos de cifrado cada vez más sofisticados y resistentes a los ataques criptoanalíticos. Por su parte, los criptoanalistas investigan y prueban la seguridad de los algoritmos existentes para identificar vulnerabilidades y mejorar las técnicas de criptoanálisis.

    Llaves (keys)

    La seguridad de la encriptación radica en las llaves y no en los alogoritmos. El key length nos mide los bits y el keyspace es el número de posibilidades que podemos generar una llave específica.

    A medida que el key length incrementa, también lo hace el keyspace. Una llave que tiene n bits produce un keyspace que tiene 2n posibilidades de key values.

    Por lo tanto, un key legnth de 2-bit es igual a un keyspace de 4 porque sólo hay 4 posibles keys (00, 01, 10, 11).

    Lo mismo para 3-bit key length, produce un keyspace de 8 (000, 0001…). De esta manera, las llaves más largas, son las más seguras.

    OpenSSL

    Herramienta para los protocolos TLS y SSL para codificar y decodificar mensajes. Vamos a ver algunos de los algoritmos que suporta:

    • AES (Advanced Encryption Standard): es un algoritmo simétrico ampliamente utilizado para cifrar y descifrar datos. Utiliza bloques de cifrado de tamaño fijo y claves de longitud variable (128, 192 o 256 bits). AES se considera seguro y resistente a los ataques conocidos, y es ampliamente utilizado en diversas aplicaciones, incluyendo la protección de datos confidenciales y la seguridad de redes.
    • Ciphers (Blowfish): algoritmo de cifrado simétrico diseñado por Bruce Schneier. Utiliza bloques de cifrado de 64 bits y claves de longitud variable, que pueden ser desde 32 hasta 448 bits. Blowfish es conocido por su velocidad y flexibilidad, y ha sido ampliamente utilizado en aplicaciones que requieren cifrado de alto rendimiento. Sin embargo, en la actualidad, AES es más comúnmente utilizado debido a su mayor seguridad.
    • Funciones hash (MD5, SHA-1): funciones hash criptográficas ampliamente utilizadas. Estas funciones toman una entrada de cualquier longitud y producen un hash de tamaño fijo (128 bits para MD5 y 160 bits para SHA-1). Sin embargo, tanto MD5 como SHA-1 han sido comprometidos en términos de seguridad debido a las vulnerabilidades descubiertas, especialmente en colisiones de hash. Por lo tanto, se recomienda utilizar funciones hash más seguras, como SHA-256 o SHA-3, para aplicaciones criptográficas críticas.
    • Public-key (RSA, DSA): algoritmos de clave pública ampliamente utilizados para el cifrado y la firma digital. RSA se basa en la factorización de números grandes y utiliza pares de claves pública y privada para cifrar y descifrar datos, así como para la autenticación y la firma digital. DSA, por otro lado, se basa en el problema del logaritmo discreto y se utiliza principalmente para firmar digitalmente datos. Tanto RSA como DSA son considerados seguros cuando se utilizan con tamaños de clave adecuados, pero RSA es más ampliamente utilizado en aplicaciones criptográficas debido a su versatilidad y compatibilidad.

    HASHING es vulnerable al man-in-the-middle y no nos provee de seguridad al transmitir la data. Cualquiera puede interceptar el mensaje, recalcular el hash, cambiar el mensaje y volver a enviar.

    Para hacerlo seguro hace falta a keyed-hash message authentication code (HMAC – KHMAC). Sólo el que envía y el que recibe van a saber la secret key. Por lo tanto, la salida de la hash function depende del input data y del secret key.

    Por ejemplo, CISCO usa HMACs en OSPF: R1 calcula el hash usando LSU y la secret key, el valor se envía a R2 y R2 recalcula el hash value usando el LSU y su secret key, si no coincide se descarta el update.

    Podemos crear hashes con OpenSSL con los siguientes comandos: openssl [md5 | sha1] file.txt. Otras herramientas serían: md5sum file.txt | sha1sum file.txt.

    hmac

    Arch Linux – fcrackzip

    FCrackZip es una herramienta de línea de comandos utilizada para descifrar contraseñas de archivos ZIP protegidos con cifrado ZIP estándar. Su nombre se deriva de «Fast Cracker for ZIP» (Descifrador Rápido para ZIP). FCrackZip es una herramienta de código abierto y está disponible para varios sistemas operativos, incluyendo Linux y Windows.

    La función principal de FCrackZip es realizar ataques de fuerza bruta o ataques de diccionario en archivos ZIP protegidos con contraseña. Esto significa que intenta descifrar el archivo ZIP probando todas las combinaciones posibles de contraseñas o utilizando una lista predefinida de palabras clave. La herramienta puede ser útil en situaciones en las que se haya olvidado la contraseña de un archivo ZIP y se necesite acceder a su contenido.

    Es importante tener en cuenta que el uso de FCrackZip está sujeto a las leyes y regulaciones aplicables, y solo debe utilizarse en sistemas o archivos de los cuales se tenga permiso legal para acceder. Además, es importante destacar que descifrar contraseñas puede llevar mucho tiempo, especialmente si se utilizan contraseñas largas y complejas.

    fcrackzip

    Clases de codificación

    La codificación simétrica y asimétrica son dos métodos utilizados en la criptografía para asegurar la confidencialidad y la integridad de la información. Ambos enfoques tienen características distintas y se utilizan en diferentes contextos.

    Codificación simétrica

    También conocida como como criptografía de clave secreta, implica el uso de una única clave para cifrar y descifrar la información. Esta clave es compartida por el emisor y el receptor de los datos. Cuando el emisor quiere enviar un mensaje cifrado, aplica un algoritmo de cifrado utilizando la clave compartida y el mensaje original. El receptor, a su vez, utiliza la misma clave para aplicar un algoritmo de descifrado y obtener el mensaje original. La seguridad del sistema radica en mantener la clave secreta, ya que si un tercero la obtiene, puede descifrar los mensajes sin autorización.

    Los cifrados por bloques (block ciphers), como el DES (Data Encryption Standard) y el AES (Advanced Encryption Standard), funcionan dividiendo los datos en bloques fijos y aplicando una serie de rondas de transformaciones para cifrarlos. El DES es uno de los algoritmos simétricos más conocidos y ampliamente utilizados. Utiliza una clave de 56 bits y opera en bloques de 64 bits. Por otro lado, el AES, también conocido como Rijndael Cipher, es un algoritmo más moderno y seguro que utiliza claves de 128, 192 o 256 bits y puede operar en bloques de 128 bits.

    des vs aes

    Los cifrados por flujo (stream ciphers), como el RC4 (Rivest Cipher 4) y el DES en modo flujo, cifran los datos bit a bit o byte a byte. El RC4 es un algoritmo de cifrado muy conocido y ampliamente utilizado en protocolos de seguridad de redes inalámbricas y en aplicaciones de seguridad en Internet. El DES en modo flujo es una variante del DES que utiliza una secuencia generada a partir de la clave y la inicialización para cifrar los datos a medida que se van generando.

    SEAL (Software Optimized Encryption Algorithm) es un cifrado simétrico desarrollado por Philip Rogaway en 2000. Fue diseñado específicamente para ofrecer una alta velocidad de cifrado en software y está optimizado para implementaciones en microprocesadores y dispositivos con recursos limitados.

    SEAL utiliza una estructura de cifrado por bloques y admite tamaños de bloque variables, lo que le permite adaptarse a diferentes requisitos de aplicaciones y plataformas. Puede funcionar con tamaños de clave de 128, 192 o 256 bits, brindando flexibilidad en la elección de la seguridad deseada.

    Una de las características destacadas de SEAL es su velocidad de cifrado, especialmente en implementaciones de software. Esto lo hace adecuado para aplicaciones que requieren un cifrado eficiente, como comunicaciones seguras, almacenamiento de datos y protección de la privacidad en dispositivos móviles y sistemas integrados.

    seal algorithm
    SEAL Algorithm

    Además de los algoritmos mencionados, existen otros cifrados simétricos como Blowfish, Twofish, Threefish y Serpent. Estos algoritmos han sido diseñados para brindar una mayor seguridad y rendimiento en comparación con los algoritmos más antiguos. Por ejemplo, Blowfish es un algoritmo de cifrado rápido y seguro desarrollado por Bruce Schneier, que utiliza claves variables de hasta 448 bits. Twofish es una versión mejorada de Blowfish, diseñada para ser aún más segura y eficiente. Threefish es un cifrado utilizado en la criptografía post-cuántica, y Serpent es un algoritmo diseñado para ser altamente seguro y resistente a los ataques criptográficos.

    Codificación asimétrica

    Comúnmente conocida como criptografía de clave pública, utiliza un par de claves diferentes: una clave pública y una clave privada. La clave pública se comparte con todos, mientras que la clave privada se mantiene en secreto. Para enviar un mensaje cifrado, el emisor utiliza la clave pública del receptor para cifrar la información. Una vez que el mensaje cifrado llega al receptor, este utiliza su clave privada correspondiente para descifrar el mensaje. La ventaja de la codificación asimétrica radica en que no es necesario compartir una clave secreta, lo que facilita la distribución segura de la clave pública. Además, se pueden utilizar las claves para firmar digitalmente los mensajes y garantizar la autenticidad del remitente.

    Existen varios algoritmos ampliamente utilizados en la codificación asimétrica:

    1. Diffie-Hellman (DHC): utilizado para el intercambio seguro de claves en un canal inseguro. Permite a dos partes generar una clave compartida sin revelar sus claves privadas durante el proceso de intercambio.
    2. Digital Signature Standard (DSS) y Digital Signature Algorithm (DSA): se utilizan para la generación y verificación de firmas digitales. Permiten a una entidad demostrar la autenticidad de un mensaje o archivo y asegurar que no ha sido alterado.
    3. RSA: es uno de los algoritmos de clave pública más utilizados. Se basa en la dificultad de factorizar grandes números enteros en números primos. RSA se utiliza para cifrar y descifrar datos, así como para la generación y verificación de firmas digitales.
    4. ElGamal: es un algoritmo de cifrado y firma digital basado en la dificultad del problema del logaritmo discreto. ElGamal se utiliza principalmente para el cifrado asimétrico y permite a los usuarios cifrar datos con la clave pública del destinatario.
    5. Curvas elípticas: son una clase de algoritmos de clave pública que utilizan operaciones matemáticas en puntos de una curva elíptica sobre un cuerpo finito. Estos algoritmos, como el Elliptic Curve Cryptography (ECC), ofrecen una seguridad comparable a otros algoritmos con claves más largas, pero con tamaños de clave más pequeños, lo que los hace eficientes en términos de almacenamiento y procesamiento.
    rsa algorithm

    Comparación entre criptografía simétrica y asimétrica

    AtributoClave SimétricaClave Asimétrica
    Años en usoDesde hace décadasDesde la década de 1970
    VelocidadRápidaMás lenta que la simétrica
    Uso principalCifrado y descifradoIntercambio seguro de claves
    ClavesUna clave secreta compartidaPar de claves pública y privada
    Intercambio de clavesNo se intercambian clavesSe intercambian claves
    Longitud de clavesMenos de 256 bits2048 bits o más
    AlgoritmosAES, DES, Blowfish, RC4, 3DESRSA, ECC, Diffie-Hellman, DSA, ElGamal
    Servicios de seguridadCifrado de datosCifrado, autenticación y firma digital

    Firmas digitales (digital signatures)

    Las firmas digitales, también conocidas como «digital signatures«, son un componente fundamental de la criptografía de clave pública y se utilizan para garantizar la autenticidad, integridad y no repudio de los mensajes electrónicos. Además de las firmas digitales en sí, los certificados digitales y diferentes algoritmos desempeñan un papel crucial en su implementación.

    Un certificado digital es un documento electrónico que contiene información sobre una entidad, como una persona o una organización, y su clave pública. El certificado es emitido por una Autoridad de Certificación (CA, por sus siglas en inglés) confiable, que garantiza la autenticidad y validez del certificado. Este documento enlaza la identidad de una entidad con su clave pública correspondiente y se utiliza para verificar la autenticidad de una firma digital.

    Existen varios algoritmos utilizados en la generación y verificación de firmas digitales:

    1. DSA (Digital Signature Algorithm): es un algoritmo de firma digital basado en operaciones matemáticas en números primos. DSA es ampliamente utilizado en aplicaciones gubernamentales y se considera seguro y eficiente.
    2. RSA (Rivest-Shamir-Adleman): es uno de los algoritmos de clave pública más conocidos y utilizados. RSA se basa en la dificultad de factorizar grandes números enteros en números primos. Es utilizado tanto para el cifrado como para la generación y verificación de firmas digitales.
    3. ECDSA (Elliptic Curve Digital Signature Algorithm): es un algoritmo de firma digital basado en curvas elípticas. Ofrece una seguridad similar a RSA pero con claves más cortas, lo que lo hace más eficiente en términos de almacenamiento y procesamiento. ECDSA se utiliza ampliamente en aplicaciones como criptomonedas y sistemas de identificación digital.
    comprobación de una firma digital

    Estos algoritmos se utilizan en combinación con funciones de hash criptográfico, como SHA-256 o SHA-3, para garantizar la integridad de los mensajes y proporcionar una firma digital única y segura.

    Protecciones de los hosts

    Las protecciones de los hosts son fundamentales para garantizar la seguridad de los sistemas informáticos y la protección de los datos. Existen varias soluciones y tecnologías que se utilizan para fortalecer la seguridad de los hosts, como las siguientes:

    1. Advanced Malware Protection (AMP): se trata de una solución de seguridad que combina varias técnicas, como el análisis de comportamiento, la inteligencia artificial y la detección basada en firmas, para identificar y prevenir el malware avanzado. AMP puede detectar y bloquear malware conocido y desconocido, incluyendo amenazas de día cero, y proporciona una defensa proactiva contra ataques maliciosos.
    2. Email Security Appliance (ESA): se utilizan para proteger los sistemas de correo electrónico contra amenazas como el spam, el phishing y los virus. Estas soluciones emplean filtros y análisis avanzados para identificar y bloquear mensajes no deseados y potencialmente peligrosos antes de que lleguen a las bandejas de entrada de los usuarios.
    3. Web Security Appliance (WSA): son dispositivos o soluciones de software que protegen a los usuarios y los sistemas contra amenazas en línea al filtrar y analizar el tráfico web. Estas soluciones pueden bloquear sitios web maliciosos, filtrar contenido no deseado o inapropiado, y detectar y prevenir ataques basados en web, como el cross-site scripting (XSS) y los ataques de inyección SQL.
    4. Network Admission Control (NAC): es una tecnología que verifica y asegura los dispositivos antes de que se les permita acceder a la red. Permite establecer políticas de seguridad para garantizar que los dispositivos cumplan con ciertos requisitos antes de permitirles conectarse, como tener un sistema operativo actualizado, tener un software antivirus instalado o cumplir con ciertos estándares de seguridad.

    Es importante implementar estas medidas de seguridad para mantener los sistemas protegidos y mitigar el riesgo de ataques cibernéticos.