Software libre para ciberseguridad

Autor:
Ricardo Naranjo Faccini
Fecha de publicación:
Monday 26 August 2019
Tema:
Seguridad de la información, seguridad informática y cibernética
Revisado por :
Ricardo Naranjo Faccini
(Monday 26 August 2019)
Software libre para ciberseguridad

Resumen

Conferencia brindada en el marco de la semana Linux de la Universidad Distrital Francisco José de Caldas en Bogotá

Previo a ésta conferencia se brindó la charla Seguridad Informática en Linux (https://www.skinait.com/seguridad-inform%C3%A1tica-en-linux-Escritos-55/)

En este artículo se describen las herramientas de software libre más conocidas que se utilizan en ciberseguridad, clasificándolas en tres generaciones según su ámbito de aplicación. Las herramientas de primera generación, que se utilizan para la protección de un solo equipo. Las herramientas de segunda generación, diseñadas para la protección de una red completa con múltiples dispositivos y sistemas. Finalmente, Las herramientas de tercera generación, que son conjuntos de herramientas de primera y segunda generación con una interfaz unificada para presentar los resultados.

Es importante destacar que, si bien el hecho de que un software esté protegido por una licencia de software libre no garantiza su calidad o seguridad, es necesario revisar la actividad de la comunidad que rodea a la herramienta, como la generación de tutoriales en diversos idiomas y la frecuente generación de nuevas versiones con correcciones de errores y nuevas funcionalidades, como una medida de garantía de calidad y seguridad.


Introducción

La popularidad del software libre ha crecido significativamente en los últimos años, ya que cada vez más personas y organizaciones reconocen las ventajas de utilizar software de código abierto en lugar de software privativo. Una de las áreas donde el software libre ha ganado terreno es en la ciberseguridad, ya que existen numerosas herramientas de seguridad de código abierto disponibles que son utilizadas por profesionales de la seguridad en todo el mundo.

Sin embargo, es importante destacar que el hecho de que un software esté protegido por una licencia de código abierto no es garantía de calidad ni de seguridad. Lo mismo sucede con el software privativo. Aunque el código abierto permite que cualquiera pueda ver el código fuente y modificarlo, esto no significa que el software sea seguro o esté libre de errores. De hecho, algunos proyectos de software libre y privativo pueden contener errores o vulnerabilidades que pueden ser explotados por atacantes malintencionados.

Entonces, ¿cómo podemos estar seguros de que el software de seguridad que estamos utilizando es seguro y confiable? La respuesta radica en la comunidad que rodea al proyecto. Cuando se trata de software, la comunidad de desarrolladores y usuarios es crucial para garantizar la calidad y seguridad del software.

Una comunidad activa y comprometida en torno a un proyecto de software es una buena señal de que el software es seguro y confiable. Una comunidad activa significa que hay muchos desarrolladores y usuarios trabajando en el proyecto, discutiendo los problemas y soluciones, y compartiendo información sobre el software. Además, una comunidad activa también significa que hay muchas conversaciones en línea, tutoriales y documentación disponible en varios idiomas, lo que facilita el aprendizaje y la utilización del software.

Otro indicador de calidad y seguridad del software es la frecuencia con la que se publican nuevas versiones y actualizaciones. Los proyectos de software con una comunidad activa suelen publicar nuevas versiones con frecuencia, lo que indica que están corrigiendo errores y añadiendo nuevas funcionalidades de forma constante. La publicación frecuente de nuevas versiones es un buen indicador de que el software está siendo mantenido y actualizado activamente.

1. Clasificación del software libre para ciberseguridad

El software libre para ciberseguridad se ha desarrollado en diferentes etapas y ha ido evolucionando con el tiempo para adaptarse a las necesidades de los usuarios. La clasificación en generaciones es una forma útil de categorizar estas herramientas, ya que nos permite identificar su nivel de complejidad y alcance.

1.a. Primera generación:

Las herramientas de primera generación se utilizan para proteger un solo ordenador o sistema. Estas herramientas pueden incluir analizadores de bitácoras del sistema, monitores de procesos, firewalls de escritorio y gran cantidad de programas que funcionan desde líneas de comando. Estas herramientas son ideales para usuarios individuales que necesitan proteger su propio sistema y sus datos, pero pueden no ser adecuadas para redes de mayor tamaño o para ser combinadas y utilizadas por herramientas de segunda generación.

1.b. Segunda generación:

Las herramientas de segunda generación están diseñadas para proteger una red con varios computadores. Estas herramientas son más complejas que las herramientas de primera generación o ser una combinación de varias de ellas y pueden incluir monitores de red, detectores de intrusos e identificadores de vulnerabilidades. Estas herramientas son ideales para administradores de red que necesitan proteger una red completa y asegurarse de que todos los dispositivos en la red estén protegidos.

1.c. Tercera generación:

Las herramientas de tercera generación son una combinación de las herramientas de primera y segunda generación, y se presentan con una interfaz unificada para presentar los resultados. Estas herramientas de tercera generación inclusive pueden ser una distribución de Linux con múltiples herramientas que trabajan juntas para proteger una red completa. Algunas de estas herramientas pueden incluir cortafuegos de red, detección de intrusiones, prevención de intrusiones, gestión de vulnerabilidades y análisis forense digital.

2. Herramientas para un solo computador (1a generación)

Las herramientas de primera generación son aquellas que se utilizan para proteger un solo ordenador o sistema. Algunas de las herramientas de primera generación más comunes en el software libre para ciberseguridad incluyen:

  • Monitores de red

    • ip: es un comando utilizado para configurar y mostrar información sobre la red y las interfaces de red en el sistema. Al ejecutar el comando ip, se pueden realizar tareas como configurar direcciones IP, agregar rutas y mostrar información detallada sobre las interfaces de red.

    • Tcpdump: Tcpdump es una herramienta de línea de comandos que permite capturar y analizar el tráfico de red en tiempo real. Es una herramienta muy útil para la detección de problemas de red y para la investigación de ataques en la red. Tcpdump puede ser utilizado para capturar y analizar paquetes en la red en diferentes formatos, incluyendo el popular formato pcap utilizado por Wireshark y otras herramientas de análisis de tráfico de red.

      Tiene muchas opciones y filtros para personalizar la captura de paquetes, lo que permite a los usuarios capturar únicamente el tráfico que necesitan y evitar la sobrecarga de información innecesaria. Tcpdump puede filtrar el tráfico por dirección IP, puerto, protocolo, y muchas otras características.

      Además, Tcpdump tiene una capacidad limitada de decodificación de protocolos de red, lo que permite a los usuarios identificar los protocolos utilizados por los paquetes capturados. Tcpdump es una herramienta muy útil para la solución de problemas de red y la investigación de incidentes de seguridad.

    • netstat: es un comando utilizado para mostrar información sobre la red y las conexiones de red activas. Al ejecutar el comando netstat, se muestra una lista de conexiones activas, incluyendo la dirección IP, el puerto y el estado de cada conexión. Es útil para identificar conexiones de red no deseadas o sospechosas y para monitorear la actividad de la red en general.

    • nslookup: es un comando utilizado para realizar consultas de resolución de nombres de dominio (DNS) y obtener información sobre registros de recursos de DNS, como las direcciones IP asociadas a un nombre de dominio. Al ejecutar el comando nslookup, se puede ingresar un nombre de dominio y obtener la dirección IP correspondiente, o viceversa.

    • dig: es similar a nslookup, pero proporciona información más detallada y opciones de configuración adicionales. Al ejecutar el comando dig, se pueden realizar consultas de DNS y obtener información detallada sobre los registros de recursos, incluyendo la dirección IP, la TTL y la autoridad del servidor.

    • whois: es un comando que permite buscar información sobre un dominio o una dirección IP en bases de datos públicas. Esta herramienta puede ser útil para obtener información sobre un sitio web o identificar el propietario de una dirección IP que se está utilizando para realizar actividades maliciosas.

    • traceroute: es una herramienta que permite seguir la ruta que sigue un paquete de datos desde un origen hasta un destino. Esto puede ser útil para diagnosticar problemas de red y detectar posibles puntos de fallo o de ataque en la comunicación.

  • Monitores de procesos: Un monitor de procesos es una herramienta que rastrea todos los procesos que se ejecutan en un sistema y puede identificar cualquier proceso malicioso o sospechoso.

    • top: es un comando utilizado para mostrar información en tiempo real sobre el sistema, incluyendo el uso de la CPU, la memoria y los procesos en ejecución. Al ejecutar el comando top, se muestra una lista de procesos y su información asociada, y se actualiza automáticamente cada cierto tiempo. Es útil para identificar procesos que pueden estar consumiendo una cantidad significativa de recursos del sistema.

    • ps: es un comando utilizado para mostrar información sobre los procesos en ejecución en el sistema. Al ejecutar el comando ps, se muestra una lista de procesos en ejecución, cada uno con su identificador de proceso (PID), estado, uso de recursos y otros detalles. Es útil para identificar procesos específicos y detener o matar procesos si es necesario.

    • Auditd: es una herramienta de auditoría que registra eventos del sistema en sistemas Linux y Unix. Permite a los administradores de sistemas supervisar la actividad de los usuarios y detectar posibles intrusiones. La herramienta registra eventos de inicio de sesión, cambios en los archivos del sistema y otros eventos importantes.

    • Lastcomm: es una herramienta de software libre para sistemas Unix y Unix-like que proporciona información sobre los comandos que se han ejecutado recientemente en el sistema. Este programa lee los registros de contabilidad del sistema (también conocidos como registros de procesos), que registran información sobre los procesos que se ejecutan en el sistema, y muestra una lista de los comandos que se han ejecutado, junto con detalles como el usuario que los ejecutó, la hora y la duración de la ejecución.

    • Kill: se utiliza para detener un proceso en ejecución enviando una señal a su identificador de proceso (PID). El usuario debe especificar el PID del proceso que desea detener y la señal que se enviará al proceso. La señal predeterminada es SIGTERM, que indica al proceso que se detenga de manera ordenada, pero también se pueden enviar otras señales, como SIGKILL, que fuerza al proceso a detenerse inmediatamente.

    • Killall: se utiliza para detener todos los procesos que tengan el mismo nombre. En lugar de especificar el PID de un proceso, el usuario especifica el nombre del proceso. Killall envía la señal SIGTERM a todos los procesos con el nombre especificado.

  • Monitores de recursos: Un monitor de recursos es una herramienta que se utiliza para medir y visualizar la utilización del hardware de un sistema informático, como la CPU, la memoria, el disco y la red. Proporciona información sobre el uso actual y el historial de uso, lo que permite al usuario realizar un seguimiento del rendimiento del sistema y detectar cualquier problema.

    • El monitor del sistema de mate y ksysguard: son herramientas gráficas utilizadas para monitorear el sistema y visualizar información sobre el uso de recursos, los procesos en ejecución y otros detalles del sistema. Estas herramientas pueden ser útiles para identificar procesos que están consumiendo recursos excesivos o para monitorear el rendimiento del sistema en general.

    • Baobab: Es una herramienta gráfica para analizar el espacio en disco. Proporciona información detallada sobre el tamaño de los archivos y carpetas, permitiendo identificar fácilmente los archivos más grandes y liberar espacio en disco.

    • Glances: Es un monitor de sistema en línea de comandos que proporciona una visión general del uso del sistema en tiempo real. Permite supervisar la CPU, memoria, carga del sistema, uso de la red, entre otros.

    • Acct: es un conjunto de herramientas que registra la actividad del sistema y de los usuarios en sistemas Linux y Unix. Permite a los administradores de sistemas supervisar el uso de los recursos del sistema y detectar posibles problemas de rendimiento. Además, la herramienta puede utilizarse para generar informes de uso de recursos para facturación o fines de contabilidad.

    • who: es un comando que muestra información sobre los usuarios que están actualmente conectados al sistema, incluyendo su nombre de usuario, terminal y hora de inicio de sesión. Esta información puede ser útil para monitorear la actividad del sistema y detectar intentos de acceso no autorizado.

    • which: es un comando que permite encontrar la ubicación de un archivo ejecutable en el sistema. Esta herramienta puede ser útil para verificar la integridad de los archivos del sistema y detectar archivos maliciosos que se hayan instalado en el sistema.

  • Analizadores de bitácoras del sistema: Un analizador de bitácoras del sistema es una herramienta que revisa los archivos de registro del sistema para identificar actividades maliciosas o sospechosas.

    • Rsyslog: es un sistema de registro de eventos de alta rendimiento y confiable para sistemas Linux. Permite la recolección, procesamiento y envío de registros de diferentes fuentes a diferentes destinos. Rsyslog puede ser configurado para enviar registros a un servidor centralizado o a una base de datos para su posterior análisis y monitoreo. Además, ofrece capacidades de filtrado y enriquecimiento de registros para facilitar la búsqueda y el análisis de datos.

    • Syslog-ng: es una herramienta de software libre que se utiliza para recolectar, procesar y almacenar registros de eventos (logs) generados por los sistemas y aplicaciones en un sistema informático. Syslog-ng se ejecuta en sistemas operativos tipo Unix y puede ser configurado para enviar los registros a diferentes destinos, como bases de datos, archivos de texto plano, servidores remotos de syslog, etc.

    • Logwatch: es una herramienta que revisa diariamente los registros de actividad del sistema y los envía por correo electrónico al administrador. Puede personalizarse para mostrar los registros que se deseen.

    • Logrotate: es una herramienta que administra los registros del sistema, eliminando los archivos de registro antiguos y archivando los nuevos. Puede ser configurado para comprimir y rotar registros de manera automática.

    • grep: es una herramienta de búsqueda que permite encontrar líneas que contengan un patrón específico en un archivo o en una secuencia de archivos. Se utiliza con frecuencia para buscar errores en los archivos de bitácora. Por ejemplo, grep "error" /var/log/syslog buscará todas las líneas en el archivo /var/log/syslog que contengan la palabra "error".

    • head: muestra las primeras líneas de un archivo. Es útil para obtener una vista previa rápida de los contenidos de un archivo de registro sin tener que abrir todo el archivo. Por ejemplo, head /var/log/syslog mostrará las primeras diez líneas del archivo /var/log/syslog.

    • tail: muestra las últimas líneas de un archivo. Se utiliza para obtener las últimas entradas en un archivo de bitácora en tiempo real. Por ejemplo, tail -f /var/log/syslog mostrará las últimas líneas del archivo /var/log/syslog en tiempo real a medida que se agregan.

    • cut: permite recortar una sección de un archivo de bitácora. Se utiliza con frecuencia para extraer información específica de un archivo de bitácora. Por ejemplo, cut -d " " -f 1,4 /var/log/syslog extraerá el primer y cuarto campo del archivo /var/log/syslog, utilizando un espacio como delimitador.

    • sort: ordena las líneas de un archivo de bitácora en orden alfabético o numérico. Es útil para organizar los registros de bitácora en un formato más legible. Por ejemplo, sort /var/log/syslog ordenará el archivo /var/log/syslog en orden alfabético.

  • Protección contra intrusos: La protección contra intrusos es un conjunto de medidas y herramientas que se utilizan para prevenir y detectar los intentos de acceso no autorizado a sistemas informáticos. Esta protección puede incluir firewalls, sistemas de detección de intrusiones, análisis de registros de actividad, monitoreo de red y otros mecanismos de seguridad. Su objetivo es proteger los sistemas y la información que contienen contra ataques maliciosos.

    • Cortafuegos de escritorio: Un cortafuegos de escritorio es una herramienta que controla el tráfico de red entrante y saliente en un ordenador individual. Puede bloquear el acceso no autorizado a un sistema y prevenir ataques externos.

    • iptables: es un comando utilizado para configurar y administrar el firewall del sistema, incluyendo reglas de filtrado de paquetes y configuraciones de NAT. Al ejecutar el comando iptables, se pueden agregar, eliminar y modificar reglas del firewall y configuraciones de red.

  • Antivirus/Antimalware: Un antivirus es una herramienta que protege un sistema contra malware y virus. Puede escanear archivos y programas para detectar y eliminar cualquier amenaza.

    • ClamAV: ClamAV es un antivirus de código abierto que escanea archivos en busca de virus y malware. Puede configurarse como filtro del servidor de email o del servidor de archivos para que revise y ponga en cuarentena archivos que puedan afectar a sistemas operativos windows que descarguen información de ellos.

    • Pdf-parser.py: es un script de Python que se utiliza para analizar archivos PDF y extraer información de ellos. Este script es de código abierto y se puede descargar de forma gratuita desde su sitio web. Pdf-parser.py puede ser utilizado para extraer objetos PDF como fuentes, imágenes, scripts, y para analizar la estructura interna de un archivo PDF. También puede utilizarse para decodificar objetos codificados en Base64 y FlateDecode, lo que puede ser útil para analizar archivos maliciosos.

    • Pdftools: es otra herramienta de software libre para analizar archivos PDF. Esta herramienta está diseñada para escanear archivos PDF en busca de virus y malware. Además, pdftools puede ser utilizado para extraer información de los archivos PDF, incluyendo metadatos, fuentes, scripts, y objetos embebidos.

    • RKhunter: es una herramienta de seguridad que busca detectar malware, rootkits y otras posibles amenazas en sistemas Linux y Unix. La herramienta realiza comprobaciones en los archivos del sistema, las bibliotecas compartidas y los binarios, para detectar cualquier alteración inesperada. También verifica los servicios activos y los puertos abiertos en busca de posibles vulnerabilidades.

  • Protección de contraseñas: La protección de contraseñas es una herramienta que puede proteger los datos personales y de inicio de sesión almacenados en un ordenador. Puede almacenar contraseñas de forma segura y generar contraseñas fuertes para una mayor seguridad.

    • KeePass: es un administrador de contraseñas de código abierto y gratuito que se utiliza para almacenar y gestionar contraseñas encriptadas en una base de datos segura. KeePass ofrece una forma fácil y segura de almacenar todas las contraseñas y credenciales importantes en un solo lugar. La base de datos de KeePass está protegida por una contraseña maestra y puede ser encriptada con varios algoritmos de cifrado para proporcionar un nivel adicional de seguridad.

    • John the Ripper: herramienta de cracking de contraseñas que permite probar diferentes combinaciones de contraseñas para romper la seguridad de cuentas de usuario. Se puede utilizar para auditar las contraseñas de los usuarios de una organización identificando quienes utilizan contraseñas débiles.

    • Hydra: es una herramienta de prueba de penetración de redes que se utiliza para adivinar contraseñas. Permite probar miles de posibles contraseñas en un corto periodo de tiempo, utilizando diferentes métodos, como el diccionario, la fuerza bruta y el ataque híbrido. Al igual que John the Ripper puede ser utilizada para auditar las contraseñas débiles que usen los usuarios de un sistema de información.

  • ssh: es un comando utilizado para conectarse a un servidor remoto de forma segura utilizando el protocolo SSH. Al ejecutar el comando ssh, se puede ingresar la dirección IP o el nombre de dominio del servidor y establecer una sesión de terminal remota segura.

  • rsync: es un comando utilizado para sincronizar archivos y directorios entre sistemas, de forma segura y eficiente. Al ejecutar el comando rsync, se pueden sincronizar archivos y directorios entre sistemas utilizando diferentes protocolos de transferencia de archivos, como SSH.

  • crontab: es un comando utilizado para programar tareas y comandos para que se ejecuten en momentos específicos, utilizando el cron daemon. Al ejecutar el comando crontab, se puede editar el archivo de configuración cron del usuario y programar tareas para que se ejecuten en diferentes momentos y frecuencias.

  • Criptografía:

    • Criptografía en una dirección: El comando md5sum se utiliza para calcular el hash MD5 de un archivo, lo que permite verificar la integridad de su contenido. Por ejemplo, "md5sum archivo.txt" generaría el hash MD5 del archivo.txt. sha256sum es un comando utilizado para calcular el valor hash de un archivo utilizando el algoritmo SHA-256. Al ejecutar el comando sha256sum, se puede calcular el hash de un archivo y verificar su integridad, ya que cualquier cambio en el archivo cambiará su hash.

    • Criptografía simétrica: El comando openssl permite cifrar y descifrar archivos utilizando algoritmos de cifrado simétrico como AES o DES. Por ejemplo, "openssl enc -aes256 -in archivo.txt -out archivo.cifrado" cifraría el archivo.txt con AES-256 y generar el archivo cifrado archivo.cifrado.

    • Criptografía asimétrica: El comando openssl también se puede utilizar para generar claves y certificados digitales para la criptografía asimétrica. Por ejemplo, "openssl genpkey -algorithm RSA -out clave.privada" generaría una clave privada RSA y "openssl req -new -key clave.privada -out certificado.csr" generaría una solicitud de certificado digital que se puede enviar a una autoridad de certificación para obtener un certificado digital que se puede utilizar para cifrar y descifrar datos utilizando la clave pública correspondiente a la clave privada generada.

Estas herramientas de primera generación son esenciales para la protección de un sistema individual y pueden ser utilizadas por cualquier usuario para proteger su propio sistema. Sin embargo, estas herramientas pueden no ser adecuadas para la protección de una red más grande. Es importante tener un buen conocimiento de estas herramientas y cómo utilizarlas para proteger un sistema o red contra amenazas potenciales.

3. Herramientas para proteger una red (2a generación)

3.a. Gestión de activos

  • GLPI: es una herramienta de gestión de activos de TI y de mesa de ayuda de código abierto. Se utiliza para gestionar la información y los problemas relacionados con los recursos de TI, incluyendo la gestión de inventario, la gestión de incidentes y la gestión de cambios. GLPI también puede utilizarse para realizar seguimiento y resolver problemas de seguridad.

3.b. Monitoreo y análisis de red

  • Nmap: es una herramienta de escaneo de red de código abierto que se utiliza para descubrir hosts y servicios en una red. Nmap puede utilizarse para encontrar vulnerabilidades y puertos abiertos en una red, y también se puede utilizar para identificar sistemas operativos y servicios en la red. Nmap es una herramienta esencial para cualquier profesional de la seguridad de la red.

  • Wireshark: es un analizador de protocolos de red de código abierto. Se utiliza para capturar y analizar el tráfico de red en tiempo real. Wireshark puede utilizarse para detectar problemas de seguridad y de red, y también puede utilizarse para examinar la comunicación entre aplicaciones. Wireshark es una herramienta muy versátil y es una de las más utilizadas en la industria.

  • Elastic Stack: es una suite de herramientas que incluye Elasticsearch, Logstash y Kibana, que permiten recopilar, almacenar y visualizar registros de manera efectiva. Elasticsearch es un motor de búsqueda y análisis de datos en tiempo real, Logstash es una herramienta de procesamiento de registros y Kibana es una plataforma de visualización de datos.

3.c. Monitoreo de servicios y recursos

  • Nagios: es una herramienta de monitoreo de red de código abierto que se utiliza para monitorear la disponibilidad y el rendimiento de los equipos y servicios en la red. Nagios puede utilizarse para enviar alertas cuando se detectan problemas y para llevar un registro del tiempo de actividad y el rendimiento de los equipos y servicios. Nagios es muy configurable y puede utilizarse para monitorear cualquier tipo de equipo o servicio.

  • Tripwire: es una herramienta de integridad de archivos de código abierto. Se utiliza para monitorear los cambios en los archivos y directorios en el sistema. Tripwire puede utilizarse para detectar cambios malintencionados en los archivos y para alertar al usuario en caso de cambios no autorizados. Tripwire es una herramienta esencial para la detección de intrusiones.

  • AIDE: Es una herramienta de detección de intrusiones similar a tripwire que permite verificar la integridad de los archivos del sistema en busca de cambios no autorizados. AIDE puede generar una base de datos de los archivos del sistema y luego compararla con el estado actual del sistema para detectar cualquier cambio.

  • OSQuery: sistema de monitorización y gestión de sistemas que permite obtener información detallada sobre los sistemas en tiempo real, como el estado de los procesos, el uso de la memoria y la red, y otros aspectos de la configuración.

  • Moloch: es una plataforma de análisis de tráfico de red. Permite capturar y almacenar grandes cantidades de tráfico de red para su posterior análisis.

  • Graylog: es una plataforma de gestión de registros que permite recopilar, indexar y analizar grandes volúmenes de registros de varias fuentes. Permite realizar búsquedas y análisis avanzados.

  • Fluentd: es un recolector y procesador de registros que permite la recopilación de registros de varias fuentes, la transformación y enrutamiento de los mismos y su almacenamiento en diferentes destinos.

3.d. Servicios y utilitarios

  • Bind: también conocido como Berkeley Internet Name Domain, es un servidor de nombres de dominio (DNS) de código abierto. Se utiliza para traducir nombres de dominio en direcciones IP y viceversa. Bind es compatible con muchos sistemas operativos, incluyendo Linux, Unix y Windows. Es una herramienta esencial para cualquier red que utilice DNS.

  • E2guardian: es un proxy web de código abierto que se utiliza para filtrar contenido en la red. Proporciona filtros de contenido para bloquear sitios web inapropiados o peligrosos, y es capaz de bloquear el acceso a contenido basado en palabras clave y categorías. E2guardian también puede utilizarse para monitorizar y registrar el tráfico de la red.

  • WireGuard: es un protocolo de VPN de código abierto. Se utiliza para establecer conexiones VPN seguras entre dispositivos y redes. WireGuard utiliza criptografía de última generación para proteger las conexiones y es muy rápido y eficiente en términos de recursos. Además, WireGuard es fácil de configurar y utilizar.

  • Squid: es un servidor proxy de código abierto que se utiliza para acelerar y optimizar el tráfico web. Squid se utiliza comúnmente para cachear contenido web y reducir la carga de los servidores web. También puede utilizarse para filtrar y bloquear el acceso a sitios web no deseados. Squid es compatible con muchos sistemas operativos y es muy configurable.

3.e. Antimalware

  • ClamAV: es una herramienta de seguridad de código abierto utilizada para detectar y eliminar virus, troyanos, malware y otras amenazas en sistemas Unix y Windows. ClamAV es una herramienta gratuita y multiplataforma que utiliza una base de datos actualizada de firmas de virus para escanear archivos y directorios en busca de amenazas. ClamAV también se puede integrar en sistemas de correo electrónico y escanear el tráfico entrante y saliente para detectar correos electrónicos con archivos adjuntos maliciosos previniendo que lleguen a los sistemas Windows que puedan ser afectados por el malware entrante.

  • Cuckoo: es un sistema de análisis de malware de código abierto. Utiliza máquinas virtuales para analizar archivos y detectar posibles amenazas. Kuckoo es capaz de ejecutar malware en un entorno controlado y analizar su comportamiento para detectar posibles amenazas.

3.f. Gestión de intruciones

  • Fail2ban: sistema de prevención de intrusos que permite bloquear automáticamente a los atacantes que intentan acceder de forma repetida con credenciales incorrectas.

  • Snort: es una herramienta de detección de intrusiones de código abierto que se utiliza para detectar y prevenir intrusiones en la red. Snort puede utilizarse para monitorear el tráfico de red y para detectar patrones de tráfico que puedan ser maliciosos. Snort es altamente configurable y puede ser utilizado para detectar una amplia gama de amenazas de seguridad.

  • SnortSam: complemento de Snort que permite bloquear automáticamente los ataques detectados, evitando la explotación de vulnerabilidades en tiempo real.

  • Metasploit: framework de prueba de penetración que permite simular ataques a sistemas y aplicaciones para identificar vulnerabilidades y mejorar la seguridad.

  • OSSEC: sistema de detección de intrusiones basado en host que permite monitorear y alertar sobre eventos de seguridad en sistemas y aplicaciones.

  • Suricata: detector de intrusiones en red que permite analizar el tráfico de red en tiempo real y alertar sobre posibles amenazas.

3.g. Detección de vulnerabilidades

  • OpenVAS: herramienta de análisis de vulnerabilidades que permite escanear sistemas y aplicaciones en busca de vulnerabilidades conocidas.

  • Nessus: identificador de vulnerabilidades que permite escanear sistemas y aplicaciones en busca de vulnerabilidades conocidas y desconocidas.

  • ModSecurity: sistema de protección de aplicaciones web que permite identificar y bloquear ataques comunes a través de reglas personalizadas.

  • ModSecurity: sistema de protección de aplicaciones web que permite identificar y bloquear ataques comunes a través de reglas personalizadas.

  • SnortSam: complemento de Snort que permite bloquear automáticamente los ataques detectados, evitando la explotación de vulnerabilidades en tiempo real.

  • Nikto: Escáner de vulnerabilidades de servidores web por medio de línea de comandos, busca en particular archivos/CGI peligrosos, software de servidor obsoleto y otros problemas.

3.h. Inteligencia de amenazas

  • MISP: es una plataforma de compartición de información sobre amenazas. Permite compartir información sobre amenazas de forma segura entre organizaciones para mejorar la detección y respuesta a amenazas.

4. Conjuntos de herramientas unificados (3a generación)

Algunas de las herramientas de tercera generación más populares en la actualidad:

  • AlienVault: es una plataforma de seguridad unificada que combina la detección de amenazas, la gestión de vulnerabilidades y la inteligencia de seguridad. Permite recopilar y analizar datos de diferentes fuentes para detectar amenazas en tiempo real.

  • Lynis: es una herramienta de auditoría de seguridad que escanea sistemas UNIX y Linux en busca de vulnerabilidades. Proporciona informes detallados sobre la configuración del sistema, la seguridad y las posibles vulnerabilidades.

  • Monitorix: es una herramienta de monitorización de sistemas y redes. Proporciona información en tiempo real sobre el uso de CPU, memoria, disco y red. También incluye gráficos y alertas para ayudar a identificar problemas.

  • CyborgHawk: es una distribución de Linux diseñada para pruebas de penetración y análisis forense. Incluye una gran cantidad de herramientas de seguridad y redes, como Nmap, Wireshark, Metasploit, entre otras.

  • Kali Linux: es una distribución de Linux especializada en pruebas de penetración y auditorías de seguridad. Incluye una gran cantidad de herramientas de seguridad y redes, como Nmap, Wireshark, Metasploit, entre otras.

  • Paladin Linux: es una distribución de Linux para análisis forense. Incluye una gran cantidad de herramientas de análisis forense, como SleuthKit y Autopsy.

  • SleuthKit Autopsy: es una herramienta de análisis forense que permite examinar sistemas de archivos y recuperar datos de discos duros, particiones y sistemas de archivos.

  • Santoku Linux: es una distribución de Linux especializada en análisis forense y pruebas de penetración. Incluye herramientas como Nmap, Wireshark, Metasploit, entre otras.

  • Android Debug Bridge (ADB): es una herramienta de línea de comandos que permite a los desarrolladores de Android comunicarse con dispositivos Android y emuladores desde un sistema operativo host. Se utiliza para depurar aplicaciones de Android, instalar aplicaciones y controlar dispositivos de forma remota.

  • Malware-analysis-lab: es un proyecto de software libre que proporciona una plataforma de análisis de malware. Esta plataforma está diseñada para ayudar a los analistas de seguridad a analizar y entender el comportamiento de los programas maliciosos. Incluye herramientas para analizar el tráfico de red, desensamblar código, analizar archivos PDF y mucho más.

Conclusiones

La ciberseguridad es un tema crucial en la era digital en la que vivimos, y el software libre ha demostrado ser una herramienta valiosa en este campo. La comunidad de software libre ha creado y mantenido herramientas de primera, segunda y tercera generación que son esenciales para la protección de sistemas y redes.

El software libre ha demostrado ser una alternativa viable y poderosa para la ciberseguridad. Sin embargo, es importante recordar que el hecho de que un software esté protegido por una licencia de código abierto no es garantía de calidad o seguridad. Es fundamental revisar la actividad de la comunidad, como las conversaciones y la generación de nuevas versiones con corrección de errores y nuevas funcionalidades, para asegurarnos de la calidad y seguridad del software que utilizamos.

Bibliografía

  1. M. E. Kabay, "What is Cybersecurity?" Journal of Information Warfare, vol. 9, no. 1, pp. 19-31, 2010.

  2. E. Ferruh Mavituna, "A Comparison of Open Source Security Testing Tools", Journal of Network and Computer Applications, vol. 30, no. 2, pp. 596-609, 2007.

  3. S. Ali and S. Irshad, "Cyber Security and Its Challenges in Today's Era", International Journal of Scientific Research in Computer Science, Engineering and Information Technology, vol. 2, no. 2, pp. 420-425, 2017.

  4. The National Institute of Standards and Technology, "NIST Special Publication 800-53: Security and Privacy Controls for Federal Information Systems and Organizations", April 2013.

  5. Editorial Team, Red Hat, “An introduction to Linux user account monitoring”, 2020. Seth Kenlon [En línea]. Disponible en: https://www.redhat.com/sysadmin/monitor-users-linux . [Accedido en: 2023-04-23].

  6. Editorial Team, Red Hat, “User status and activity monitoring in Linux with GNU acct”, 2020. Seth Kenlon [En línea]. Disponible en: https://www.redhat.com/sysadmin/linux-system-monitoring-acct . [Accedido en: 2023-04-23].

  7. The Open Web Application Security Project, "OWASP Top Ten Project", 2021. [En línea]. Disponible en: https://owasp.org/top10/. [Accedido en: 2023-04-23].

  8. The Linux Documentation Project, "Linux IP Networking: A Guide to the Implementation and Modification of the Linux Protocol Stack", 2005.

  9. The Official Nmap Project Website, "Nmap - Free Security Scanner For Network Exploration & Hacking", 2021. [En línea]. Disponible en: https://nmap.org/. [Accedido en: 2023-04-23].

  10. The Wireshark Foundation, "Wireshark · Go Deep.", 2021. [En línea]. Disponible en: https://www.wireshark.org/. [Accedido en: 2023-04-23].

  11. The Nagios Project, "Nagios - The Industry Standard In IT Infrastructure Monitoring", 2021. [Online]. Disponible en: https://www.nagios.org/. [Accedido en: 2023-04-23].

  12. The Snort Project, "Snort - Network Intrusion Detection & Prevention System", 2021. [Online]. Disponible en: https://www.snort.org/. [Accedido en: 2023-04-23].

Licencia


Software libre para ciberseguridad está bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 4.0 Internacional.

Ricardo Naranjo Faccini

Ricardo Naranjo Faccini Desarrollador WWW

Nació en Barranquilla, Atl, Colombia el 14 de enero de 1971

  • Magíster en Ingeniería de Sistemas y Computación de la Universidad de Los Andes 1998
  • Ingeniero Civil de la Universidad de Los Andes 1995
  • Diplomado en docencia en Ingeniería de la Pontificia Universidad Javeriana 2008
  • Gerente de la firma Skina IT Solutions, su gestión ha llevado a la empresa al nivel de exportación de software. Experto en calidad en el desarrollo de software con énfasis en el uso de herramientas libres orientadas hacia WWW.
  • CTO de AuthorsGlobe, empresa participante en el MIT 100K, elegida como parte del "TOP 10" entre 300 proyectos presentados en este concurso del Massachussets Institute of Technology MIT.
  • Durante el periodo 2004-2005 se desempeñó como Gerente de desarrollo de negocios NOVELL en Nexsys de Colombia.
  • Ejerce docencia como catedrático en la Universidad Javeriana, al igual que lo ha realizado en la Universidad de Los Andes, Universidad de Manizales y Universidad autónoma de Bucaramanga.
  • Comprometido con la divulgación del software libre y su aplicación en Colombia, ha dictado más de 60 conferencias en todo el país, co-fundador de LinuxCol, la primera comunidad de usuarios de Linux en Colombia.
  • Colaborador del grupo ACIS-Linux.

Calle 95 #47-33 int 8

Calle 95 #47-33 int 8, Bogotá, Colombia

Tel: +57 300 214 6210

ventas@skinait.com

Desarrollado por Skina IT Solutions