¿Hay una lista de ejecutables SUID conocidos / seguros / esperados con los que se pueda comparar?
Realmente no, en gran parte porque todas las distribuciones modernas de Linux están basadas en paquetes. No hay un único conjunto de archivos monolítico estándar, porque las instalaciones varían fácilmente según los paquetes que se instalan. Dicho esto, los paquetes también proporcionan listas de archivos incluidos, lo que facilita la verificación de si un binario SUID está instalado legítimamente o no.
¿O un script que hace esto por ti?
Hay dos formas sencillas de abordar esto: puede verificar archivos individuales contra su paquete, o puede volcar una lista de archivos SUID de todos los paquetes.
Por ejemplo, digamos que está mirando / usr / bin y le preocupa el ejecutable chfn SUID. En una distribución basada en RPM, puede verificar el archivo contra el paquete:
# rpm -Vf /usr/bin/chfn; echo $?
0
#
(El código de salida 0 indica que no se encontraron discrepancias; el archivo es el esperado según los parámetros del paquete. Puede ver una lista de comprueba que RPM Verify realiza .)
En una distribución basada en Debian (como Ubuntu, Mint, ...) tratará con paquetes deb, que tienen un enfoque menos centralizado que los RPM. Se puede lograr el mismo efecto general después de instalar apt-file y debsums:
# apt-file search /usr/bin/chfn
passwd: /usr/bin/chfn
# debsums passwd | grep /usr/bin/chfn
/usr/bin/chfn OK
#
Puede escribir una herramienta para enumerar listas de paquetes para encontrar archivos SUID, verificarlos y comparar su lista con una lista de lo que realmente está en el sistema de archivos a través de find
. (Tenga en cuenta que con RPM, al menos, puede verificar todos los archivos en todos los paquetes con solo rpm -Va
, pero encontrará que es un poco conversador y más que solo archivos SUID).
Por ejemplo, podría recorrer todos los paquetes instalados ( rpm -qa
) y, para cada paquete, enumerar los archivos SUID y SGID:
# rpm -qlv util-linux-ng-2.17.2-12.28.el6_9.2.x86_64 | awk '$1 ~ /s/ {print $0}'
-rwsr-xr-x 1 root root 77560 Dec 5 2017 /bin/mount
-rwsr-xr-x 1 root root 53480 Dec 5 2017 /bin/umount
-rws--x--x 1 root root 20184 Dec 5 2017 /usr/bin/chfn
-rws--x--x 1 root root 20056 Dec 5 2017 /usr/bin/chsh
-rwxr-sr-x 1 root tty 12016 Dec 5 2017 /usr/bin/write
#
y úsalo para crear tu lista de archivos SUID esperados.