
Descubrí que los nombres de los directorios privados de systemd terminan con una cadena, por ejemplo:
systemd-private-3108aa34ce664b6dbb374430ba5f0592-mariadb.service-Q78z1I
¿Qué significa tal cadena?
Respuesta1
Cavando alrededor enLa fuenterevela
./src/core/namespace.c: x = strjoin(prefix, "/systemd-private-", sd_id128_to_string(boot_id, bid), "-", id, "-XXXXXX", NULL);
que uno podría eventualmente perseguir como una relación con elmktemp(3)
llamada que crea (con suerte) un archivo único que un atacante local con acceso de escritura al directorio principal tendrá dificultades para adivinar o crear de antemano.
Seis X podrían considerarse cortas; Los desarrolladores de OpenBSD recomiendan 10 X, aunque el número ideal depende del sistema de archivos, de cuán diligente puede ser un atacante para crear todas las posibilidades (si puede crear la mayoría o todas las posibilidades, entonces eso podría ser una denegación de servicio). , versus cuántos inodos permite el sistema de archivos y con qué diligencia se monitorea el directorio en cuestión para detectar números absurdos de archivos (o agotamiento de inodos). Utilizar elcombinación matemáticapara calcular cuántos archivos potenciales permite un número determinado de X para un número determinado de caracteres de entrada (generalmente alfanuméricos más guiones bajos).