Captura de pantalla de la ventana de configuración de actualizaciones de Ubuntu 22.04

Actualizaciones automáticas, ¿sí o no?

Después de comentar en clase con mis estudiantes la importancia de las actualizaciones para mantener la seguridad de un sistema surgió del debate de si deberíamos programar las actualizaciones automáticamente o no y, como en la mayoría de casos, hay que matizar algunas cuestiones. Aquí tenéis mi opinión al respecto

Cualquier software es susceptible de recibir actualizaciones: sistemas operativos, SGBD, navegadores, máquinas virtuales, servicios, librerías, plugins, aplicaciones web, etc. Actualizar nuestros sistemas y aplicaciones es de suma importancia para resolver las vulnerabilidades que se van encontrando y que pueden ser explotadas por ciberdelincuentes. Se trata de una medida que se ha de tomar cuanto antes. 

Para estar al día de las actualizaciones que nos puedan afectar debemos suscribirnos a boletines o servicios de notificación de los fabricantes o de organizaciones como Hispasec que dispone de un servicio llamado Una Al Día en el que informa de las últimas vulnerabilidades, filtraciones y otros problemas de seguridad que hayan sido publicados.

La importancia de las actualizaciones es incuestionable y probablemente para usuarios finales configurar las actualizaciones automáticas o actualizar inmediatamente nada conocer la existencia de un parche o actualización disponible sea una buen idea. 

Data Processing Technician 2nd Class Holt monitors a telecommunications console in response to a user trouble call in the Navy Regional Data Automatic Center.

Dicho esto habría que matizar esta decisión para un/a administrador/a de sistemas de una organización.  En el caso de software de una organización del que dependa la lógica de negocio en el que una contingencia tuviera un impacto medio o alto deberíamos plantearnos cuándo actualizar. Existe software complejo con muchas dependencias que podría afectar a otras aplicaciones y cuya actualización podría suponer una parada y pérdida de disponibilidad y en el peor de los casos pérdida de integridad de la información. Se conocen casos de sistemas que no se han levantado tras una actualización y han causado grandes pérdidas a la organización. Una simple actualización de un fichero de configuración al que se han dedicado horas de trabajo podría suponer un quebradero de cabeza para un/a administrador/a de sistemas y podrían pasar días hasta encontrar el fallo y conseguir levantar los sistemas.

🃏En estos casos mi recomendación sería:

  1. En primer lugar, informarnos sobre dicha actualización, consultar en foros o a otros/as administradores/as de sistemas si han tenido algún problema con la actualización.
  2. Hacer una backup para poder restaurar en caso de pérdida de integridad.
  3. Probar la actualización en un entorno de pruebas como una máquina virtual si es posible.
  4. Buscar la mejor ventana de tiempo para realizar la actualización por si hubiera que reiniciar máquinas o si ocurriera alguna contingencia.
Captura de pantalla de la ayuda del comando getacl

Tarea: Listas de control de acceso (ACL)

Propósito

Dar a conocer las listas de control de acceso como técnica de control de acceso avanzada complementaria a los permisos de ficheros y aprender a definirlas de manera práctica.

Descripción de la tarea
  1. Verifica la máscara (umask) de la sesión.
  2. ¿Qué máscara deberías configurar para que las carpetas y archivos creados a partir de ahora en tu sesión (de consola) tengan unos permisos 775?
  3. Crea una carpeta en /home con el nombre shared que sea propiedad del root.
  4. Crea un grupo en el sistema llamado team.
  5. Concede permisos de lectura y escritura a la carpeta shared para el grupo team.
  6. Crea un usuario nuevo y añádelo al grupo team.
  7. Comprueba que efectivamente tiene permisos de escritura sobre dicha carpeta.
  8. Explica qué efectos tendría que cambiaras el UID de una archivo ejecutable que estuviera en dicha carpeta shared.
  9. ¿Crees que será necesario activar el sticky bit de la carpeta shared?
  10. Imagina que necesitas darle permisos de lectura, pero no de escritura a un nuevo usuario. Define una lista de control de acceso que permita leer los contenidos de la carpeta shared a un usuario nuevo que no sea miembro del grupo team.
  11. Comprueba que efectivamente tiene permisos de lectura sobre dicha carpeta shared.
  12. Haz una backup de las ACLs actuales.
  13. Ahora elimina la lista de control de acceso creada previamente y comprueba que efectivamente ha perdido dichos derechos de lectura.
  14. Por último, restaura la backup de la ACL y verifica que ha funcionado.
Entrega

Escribe en el editor de esta tarea los comandos necesarios para realizar cada paso describiendo brevemente qué se está haciendo.

Criterios de evaluación implicados

RA1.g Se han esquematizado las características de una política de seguridad basada en listas de control de acceso.

Instrumentos de evaluación y calificación

Los conocimientos adquiridos en tarea serán evaluada mediante cuestionario

Recursos
Captura de pantalla de login

Tarea: Políticas de gestión de contraseñas

Propósito

Conocer diferentes políticas de contraseñas que se pueden definir y aprender a definir algunas de manera práctica.

Descripción
  1. Configura al menos 4 políticas de contraseñas tanto en un sistema Linux y realiza una captura de pantalla del fichero de configuración recién modificado.
  2. Establece una caducidad de las contraseña para un usuario específico mediante el comando chage con una fecha de caducidad, un número máximo de días y con un período de aviso.
  3. El comando anterior permite actuar sobre un usuario específico, pero, ¿en qué fichero se pueden configurar estas restricciones para todos los usuario por defecto? Echa un vistazo a esta web
  4. Verifica que efectivamente están activas dichas políticas intentando cambiar la contraseña de algún usuario por algunas que no satisfagan las restricciones aplicadas.
  5. Configura una política de contraseñas en un sistema Windows y realiza una captura de pantalla de la ventana de configuración.
  6. Verifica que efectivamente están activas dichas políticas intentando cambiar la contraseña de algún usuario por algunas que no satisfagan las restricciones aplicadas.
  7. Reflexiona acerca de las diferentes opciones que ofrecen ambos sistemas y sobre sus implicaciones prácticas: cuál te parece más versátil, efectiva, fácil de configurar, etc.
Entrega

Adjunta las capturas de pantalla y los comentarios que consideres oportunos sobre tus reflexiones en el editor de la Moodle.

Criterios de evaluación implicados

RA1.h Se ha valorado la importancia de establecer una política de contraseñas.

Instrumentos de evaluación y calificación

Los conocimientos y habilidades adquiridas en la realización de esta práctica serán evaluadas más adelante mediante un cuestionario

Otros recursos interesantes

Zonasystem.com

Dibujo de John the ripper

Tarea: Passwords cracking con John de Ripper

Propósito

Tomar conciencia de la importancia del uso de claves seguras y de la definición y configuración de políticas de contraseñas.

Descripción de la tarea

Para comenzar añade varios usuarios a tu sistema con las siguientes passwords:

    • 12345
    • password
    • Igual que el nombre de usuario
    • Una clave segura

Para realizar esta práctica vamos a utilizar un conocido software de password cracking llamado John the ripperEstá disponible en el repositorio de Ubuntu 22.04, la distribución que usaremos en este caso por lo que podemos instalarlo mediante el comando:

sudo apt install john

Para crackear las claves de los usuarios de un sistema Linux puedes de ejecutar el siguiente comando que intentará obtener las claves de los diferentes usuarios del sistema:

sudo john /etc/shadow --format=crypt

Otro comando interesante es shadow. Este permite unificar los datos almacenados en los ficheros /etc/passwd y /etc/shadow donde se guardan las credenciales y los datos de los usuarios del sistema.

sudo unshadow /etc/passwd /etc/shadow > passwords.txt

Ahora tendrías las credenciales guardadas en el fichero passwords.txt

Observa el tiempo que tarda en obtener las diferentes claves y si no consigues obtener alguna en un tiempo razonable, como el tiempo que dura una clase, prueba con diferentes tipos de ataques, como el ataque de diccionario y analizar las opciones del comando para probar diferentes estrategias.

Para finalizar realiza capturas de pantalla de la salida de la salida del comando john, escribe una conclusión según los resultados obtenidos y reflexiona sobre la el grado de necesidad o importancia de crear claves seguras y definir políticas de contraseñas para los usuarios de los sistemas.

Entrega
  • Capturas de pantalla de los comandos ejecutados.
  • Escribe la reflexión sobre la necesidad de usar políticas de contraseñas en según qué tipo de entornos.
Recursos

https://www.redeszone.net/tutoriales/seguridad/crackear-contrasenas-john-the-ripper/

Criterios de evaluación implicados

Ra1.h: Se ha valorado la importancia de establecer una política de contraseñas.

Instrumentos de evaluación y calificación

Esta tarea sera calificada mediante cuestionario de Moodle

cídigo binario en verde y rojo

Tarea: El malware sus métodos, objetivos y cómo defendernos

Propósito

Conocer los tipos de malware, sus características, funcionamiento, objetivos, formas de mantenernos protegidos, etc.

Descripción de la tarea

Ya hemos hablado en clase sobre tipos de malware, sus objetivos, funcionamiento y de las herramientas y conocimientos que necesitamos para poder defendernos. Ahora te toca repasar esos conocimientos para prepararte a jugar a resolver varios Quizizz que el profesor tiene preparados para que juguemos por equipos.

Para ello deberás registrarte en la clase que ha creado el profesor (si aun no lo has hecho) y luego seguir las instrucciones en clase para comenzar el cuestionario y crear los equipos.

Pero antes debes prepararte para contestar correctamente las preguntas. Aquí tienes dos fuentes de información que te ayudarán:

Si eres profe y quieres echarle un vistazo a mi cuestionario sobre malwareen Quizizz aquí lo tienes .

Criterios evaluación impicados

RA3.b: Se han clasificado los principales tipos de software malicioso.

Instrumentos de calificación

La calificación personal obtenida en el cuestionario de Quizizz, es decir, sin tener en cuenta la posición de tu equipo, será la que obtengas para esta tarea.

Tarea: Diseña tu cuestionario sobre datacenters

Propósito

Aprender los fundamentos sobre los datacenters para permitirte elegir entre las diferentes modelos de negocio de datacenter o aplicar las medidas apropiadas en caso de tener que diseñar un datacenter.

Descripción de la tarea

Diseña una cuestionaio en Quizizz basadas en los contenidos de la sección Recursos de esta tarea. El profesor hará una selección de las mejores preguntas para usar en el cuestionario sobre datacenters.

Recursos

 

 

Entrega

Escribe el enlace a tu quizizz en el editor de la Moodle.

Requisitos
Criterios de evaluación y calificación

Esta tarea será el entrenamiento para resolver un cuestionario sobre los datacenters.

 

Tarea: Implementando una DMZ

Propósito

  • Conocer la utilidad y funcionamiento de los cortafuegos.
  • Aprender a configurar cortafuegos básicos
  • Conocer diferentes escenarios y esquemas de configuración de cortafuegos, incluidas las DMZ.

Descripción de la tarea

Una empresa requiere tener un servidor web accesible desde internet pero necesita mantener una infraestructura segura de la información disponible en su red local por lo que no quiere que se pueda acceder a su red local desde Internet. Para darle solución a este problema podemos implementar una infraestructura de red desmilitarizada o DMZ.

Lo primero que debes hacer es crear el laboratorio de pruebas necesario para el escenario propuesto en la imagen de esta entrada. Para ello debes usar máquinas virtuales ligeras (sin interfaz gráfica), por ejemplo de Debian. Aquí tienes algo más de información de cada máquina para montar el laboratorio de pruebas:

  • Servidor web: 192.168.200.2 (red interna 2)
  • Máquina local: 192.168.100.2 (red interna 1)
  • Firewall: 192.168.56.x (solo anfitrión) / 192.168.200.1 (red interna 2) / 192.168.100.1 (red interna 1)
  • Anfitrión: 192.168.56.x (esta máquina simulará una conexión desde internet)

Una vez creado el escenario de máquinas donde trabajar configura un script que establezca las reglas del cortafuegos necesarias para configurar una red desmilitarizada DMZ para el escenario propuesto en la imagen de esta entrada que satisfaga los requisitos especificados en la sección siguiente.

Requisitos
  • Define políticas restrictivas por defecto en INPUT, OUTPUT y FORWARD.
  • Se permite acceso SSH al firewall desde la la red LAN.
  • Se permite el ping desde la LAN hacia el cortafuegos y la DMZ.
  • La máquina 192.168.200.2 situada en la DMZ dispone de un servidor web que será accesible desde internet.
  • La red DMZ no dispone de acceso a internet para evitar que algún atacante que haya conseguido acceso pudiera descargar malware a dicha máquina.
  • La máquina de la red DMZ (192.168.200.2) no puede acceder a la red local.
  • La red LAN tiene acceso al web server de la DMZ.
  • La red LAN tiene acceso a Internet.
  • Debido a ataques recibidos desde la IP 200.10.23.21 debes denegar el tráfico HTTP y HTTPS al servidor de la DMZ.
  • El script lista las reglas introducidas e información sobre las veces que se ha hecho uso de cada regla.
  • El script elimina las reglas previamente creadas antes de introducir el resto de reglas.
  • El script contiene comentarios que explican lo que se está haciendo en cada línea y para qué se tiene que hacer.
  • Las pruebas realizadas deben mostrar tu nombre en el prompt o el nombre de usuario
Recursos
Entrega

Elabora una presentación en la que demuestres el funcionamiento correcto del cortafuegos y que incorpore también el script de ejecución del mismo.

Criterios de evaluación implicados

4.h) Se ha instalado y configurado un cortafuegos en un equipo o servidor.

Instrumentos de calificación
Terminal de Linux con la herramienta msfconsole

Tarea: Explotando vulnerabilidades con Metasploit

Propósito
  • Conocer las fases de un ciberataque.
  • Entender la importancia de mantener el software actualizado.
  • Aprender a usar la herramienta Metasploit para explotar las vulnerabilidades de un equipo.
Descripción de la tarea

Para realizar esta práctica usaremos el laboratorio virtual Metasploitable, una máquina virtual con múltiple vulnerabilidades que se han de encontrar y explotar. Además tendremos que instalar Metasploit y haremos uso del comando nmap por lo que deberás instalarlo si aun no lo tienes.

Instalando el laboratorio de pruebas Metasploit

Lo primero que debemos hacer será descargar la máquina virtual y crear una nueva máquina virtual cuyo disco virtual, previamente creado sea el de Metasploit recien descargado. A continuación tienes algunas capturas del proceso:

Creamos el disco virtual
Pulsamos en Añadir y elegimos el archivo .vmdk de Metasploit
Pulsamos en Nueva (máquina virtual)
En el paso de elegir disco virtual seleccionamos el de Metasploir previamente creado
Instalando la herramienta Metasploit

El siguiente paso será instalar y configurar la herramienta para realizar los ataques Metasploit y más concretamente su consola de comandos msfconsole. Aquí tienes una receta para instalarlo en Ubuntu 20.04.

Explorando y atacando la máquina

Llegado a este punto debes escanear los servicios de la máquina con nmap y obtener toda la información posible como por ejemplo, el sistema operativo de la máquina víctima, si está detrás de un cortafuegos, la versión de los servicios que están detrás de cada puerto abierto, etc.

Una vez hayamos obtenido suficiente información de la red y la máquina víctima debemos buscar exploits para cada servicio que queramos atacar usando la consola msfconsole. Para buscar usaremos el comando search con el filtro type:exploit.

Para usar uno de los exploit encontrados usaremos el comando use para elegir el exploit de la lista generada. Después deberás usar el comando options para ver las opciones de dicho exploit y set para configurar las opciones que sean requeridas para su ejecución. Por último teclea run para ejecutar el exploit.

Echa un vistazo a la sección recursos para aprender con más detalle cómo usar Metaxploit.

Recursos
Entrega

Elabora una presentación con capturas de pantalla de los exploits usados con éxito en msfconsole y escribe el enlace a la presentación en el editor de la Moodle.

Criterios de evaluación implicados

4.a) Se ha identificado la necesidad de inventariar y controlar los servicios de red

Instrumentos de calificación

Los conocimientos adquiridos con el desarrollo de esta tarea serán evaluados mediante un cuestionario en Moodle.

Resultados de búsqueda de Shodan

Tarea: Escaneando servicios visibles en Internet con Shodan

Propósito

Aprender a obtener información visible en Internet con Shodan

Descripción de la tarea

En la práctica Obteniendo información de una red local con Nmap aprendiste recogiste información visible desde dentro de tu red loca. También será necesario monitorizar los servicios abiertos a Internet de las que eres responsable por si alguien o tu mismo/a has abierto algún servicio indebidamente. El objetivo de esta práctica será usar el buscador Shodan para monitorizar los servicios que son visibles desde Internet. Esta es la utilidad del buscador Shodan.io, una herramienta desde la que podemos hacer muchas cosas desde su interfaz web, pero en este caso vamos a instalar la aplicacion para poder ejecutarla desde la línea de comandos y así poder integrarla en un script que se ejecute periódicamente y, por ejemplo, nos notifique cuando Shodan haya indexado algún servicio en las IP o nombres de dominio que administramos.

Sigue las siguientes instrucciones siguientes para completar la tarea:

  1. Lee y visualiza el vídeo de esta web.
  2. Regístrate en Shodan.io.
  3. Verifica que tienes una versión de python superior a la 3.8 para instalar el cliente de línea de comandos de shodan. Para instalarlo en Ubuntu 20.04 puedes usar $pip install shodan.
  4. Busca en esta web cómo obtener tu IP pública con el comando shodan.
  5. Ahora ejecuta el comando necesario para buscar si Shodan ha indexado tu IP y muestra algún puerto abierto.
  6. Ahora realiza alguna otra búsqueda más general de servicios publicados en internet en la que demuestres que conoces más utilidades del buscador.
  7. Explica cómo podría un atacante usar esta herramienta.
Entrega

Contesta a estas preguntas en el editor de la tarea en Moodle

Criterios de evaluación implicados

4.a) Se ha identificado la necesidad de inventariar y controlar los servicios de red

Instrumentos de calificación

Los conocimientos adquiridos con el desarrollo de esta tarea serán evaluados mediante un cuestionario en Moodle.

Salida de la ejecución del comando nmap

Tarea: Obteniendo información de una red local con Nmap

Propósito

Aprender a obtener información de una red local

Descripción de la tarea

Escribe los comandos necesarios para:

  1. Obtener la lista de máquinas levantadas de tu red.
  2. ¿Cómo identificarás si hay alguna detrás de un cortafuegos?
  3. Obtener la lista de máquinas que tenga un servidor web, FTP, correo o SSH abierto.
  4. Obtener la versión de los servicios abiertos de alguna máquina.
  5. Obtener el sistema operativo de alguna máquina interesante de la red.
  6. Cita al menos 3 aplicaciones de gestión de inventariado de red aportando enlaces a las webs oficiales de cada una.
Entrega

Contesta a estas preguntas en el editor de la tarea en Moodle

Criterios de evaluación implicados

4.a) Se ha identificado la necesidad de inventariar y controlar los servicios de red

Instrumentos de calificación

Los conocimientos adquiridos con el desarrollo de esta tarea serán evaluados mediante un cuestionario en Moodle.