Skip to main content Link Search Menu Expand Document (external link)

Bloque 4 - Shells, sistema de archivos y USB

Aquí se nos muestra más información que en el programa anterior. En el apartado de las shells podemos ver que aparece session timeout y como “ninguno”. Vamos a ver a qué se refiere:

2022-11-29 09:22:54 ====
2022-11-29 09:22:54 Performing test ID SHLL-6220 (Idle session killing tools or settings)
2022-11-29 09:22:54 Test: Search for session timeout tools or settings in shell
2022-11-29 09:22:54 Performing pgrep scan without uid
2022-11-29 09:22:54 IsRunning: process 'timeoutd' not found
2022-11-29 09:22:54 Performing pgrep scan without uid
2022-11-29 09:22:54 IsRunning: process 'autolog' not found
2022-11-29 09:22:54 Result: could not find TMOUT setting in /etc/profile
2022-11-29 09:22:54 Result: could not find export, readonly or typeset -r in /etc/profile
2022-11-29 09:22:54 Result: could not find TMOUT setting in /etc/profile.d/*.sh
2022-11-29 09:22:54 Result: could not find export, readonly or typeset -r in /etc/profile
2022-11-29 09:22:54 Hardening: assigned partial number of hardening points (1 of 3). Currently having 36 points (out of 50)
2022-11-29 09:22:54 ====

...

Vemos que no encuentra TMOUT, esto es una variable de bash para que, transcurrido un tiempo de inactividad, cierre la sesión al usuario que la haya abierto. Para ello habría que añadir la siguiente línea al archivo /etc/profile:

# Política para tiempo de espera antes de cerrar la sesión (5 min)

TMOUT=300
readonly TMOUT
export TMOUT

Respecto al valor de umask del archivo /etc/profile viene definido por un módulo de PAM como vimos en el apartado anterior y en /etc/bash.bashrc podemos modificarlo manualmente añadiendo la siguiente línea a este archivo:

umask 027

Sistema de archivos

Como en el apartado Corrección 4 de la sección Resultados e implementación de mejoras cambiamos los puntos de montaje de home y tmp, ahora nos lo da por correctos. Ahora, añade como sugerencia a /var que se haría con el mismo proceso.

Vemos que ahora mira también la SWAP (Zona de intercambio) dentro del archivo fstab, cosa que antes no hacía. Nos muestra una sugerencia sobre /proc:

2022-11-29 09:22:54 ====
2022-11-29 09:22:54 Performing test ID FILE-6344 (Checking proc mount options)
2022-11-29 09:22:54 Test: check proc mount with incorrect mount options
2022-11-29 09:22:54 Hardening: assigned partial number of hardening points (0 of 3). Currently having 65 points (out of 83)
2022-11-29 09:22:54 Result: /proc filesystem is not mounted with option hidepid=1 or hidepid=2
2022-11-29 09:22:54 ====

...

Como vemos también sería interesante cambiar el punto de montaje de /proc y modificar el /etc/fstab con la siguiente línea:

proc    /proc        proc        defaults,hidepid=2    0 0

Por defecto, la opción hidepid tiene el valor 0. Esto significa que todos los usuarios pueden ver todos los datos. Si se establece en 1, las entradas de los directorios en /proc seguirán siendo visibles, pero no accesibles. Con el valor 2 se ocultan por completo.

Abajo nos salta un peligro relacionado con el sticky bit de /tmp:

2022-11-29 09:22:54 ====
2022-11-29 09:22:54 Performing test ID FILE-6362 (Checking /tmp sticky bit)
2022-11-29 09:22:54 Suggestion: Set the sticky bit on /tmp, to prevent users deleting (by other owned) files in the /tmp directory. [test:FILE-6362] [details:/tmp] [solution:text:Set sticky bit]
2022-11-29 09:22:54 Hardening: assigned partial number of hardening points (0 of 3). Currently having 65 points (out of 86)
2022-11-29 09:22:54 ====

...

Como nos dice, al activarlo, previene que usuarios puedan borrar archivos dentro de este directorio de los cuales no sean dueños, lo podemos resolver con el siguiente comando:

sudo chmod +t /tmp

Lo siguiente que nos muestra son los valores que hay añadidos a los puntos de montaje dentro de /etc/fstab y compara con los valores que el programa cree que deben tener, estos podemos verlo en los registros y sería cuestión de adaptarlo:

2022-11-29 09:22:54 File system:    /dev
2022-11-29 09:22:54 Expected flags: noexec nosuid
2022-11-29 09:22:54 Found flags:    (rw mode=0755) 
2022-11-29 09:22:54 Result: Could not find mount option noexec on file system /dev
2022-11-29 09:22:54 Result: Could not find mount option nosuid on file system /dev
2022-11-29 09:22:54 Result: marked /dev options as non-default (unclear about hardening)
2022-11-29 09:22:54 Hardening: assigned partial number of hardening points (4 of 5). Currently having 78 points (out of 102)
2022-11-29 09:22:54 Result: file system /dev/shm not found in /etc/fstab
2022-11-29 09:22:54 File system:    /home
2022-11-29 09:22:54 Expected flags: nodev nosuid
2022-11-29 09:22:54 Found flags:    errors=remount-ro 
2022-11-29 09:22:54 Result: Could not find mount option nodev on file system /home
2022-11-29 09:22:54 Result: Could not find mount option nosuid on file system /home
2022-11-29 09:22:54 Result: marked /home options as non-default (unclear about hardening)
2022-11-29 09:22:54 Hardening: assigned partial number of hardening points (4 of 5). Currently having 82 points (out of 107)

...

USB

En el apartado Correción 4 de la sección anterior, deshabilitamos el uso de USB y ahora nos muestra como tal. Lo que añade a esta categoría es si tenemos instalado USBGuard, un programa que ayuda a proteger el sistema contra USB engañosos mediante la implementación de listas negras y blancas basadas en los atributos de estos. Como no permitimos el uso de estos, directamente no nos haría falta instalarlo, pero aquí dejo su web por si se cambia de política respecto a los dispositivos USB.

2022-11-29 09:22:55 ====
2022-11-29 09:22:55 Action: Performing tests from category: USB Devices
2022-11-29 09:22:55 ====
2022-11-29 09:22:55 Performing test ID USB-1000 (Check if USB storage is disabled)
2022-11-29 09:22:55 Test: Checking USB storage driver in directory /etc/modprobe.d and configuration file /etc/modprobe.conf
2022-11-29 09:22:55 Result: found usb-storage driver in disabled state (blacklisted)
2022-11-29 09:22:55 Result: usb-storage driver is disabled
2022-11-29 09:22:55 Hardening: assigned maximum number of hardening points for this item (3). Currently having 107 points (out of 141)
2022-11-29 09:22:55 ====
2022-11-29 09:22:55 Performing test ID USB-2000 (Check USB authorizations)
2022-11-29 09:22:55 Test: checking presence of USB devices path (/sys/bus/usb/devices)
2022-11-29 09:22:55 Test: Checking USB devices authorization to connect to the system
2022-11-29 09:22:55 Result: None USB devices are authorized by default (or temporary) to connect to the system
2022-11-29 09:22:55 Hardening: assigned maximum number of hardening points for this item (3). Currently having 110 points (out of 144)
2022-11-29 09:22:55 ====
2022-11-29 09:22:55 Performing test ID USB-3000 (Check for presence of USBGuard)
2022-11-29 09:22:55 Result: USBGuard not found
2022-11-29 09:22:55 Hardening: assigned partial number of hardening points (0 of 8). Currently having 110 points (out of 152)
2022-11-29 09:22:55 Security check: file is normal
2022-11-29 09:22:55 Checking permissions of /usr/local/lynis/include/tests_storage
2022-11-29 09:22:55 File permissions are OK
2022-11-29 09:22:55 ====

...