Ariadne Conill, creadora del reproductor de música Audacious y del servidor compuesto Wayback, coiniciadora del protocolo IRCv3 y líder del equipo de seguridad de Alpine Linux, está desarrollando el kit de herramientas capsudo para ejecutar comandos con privilegios elevados. A diferencia de sudo, el nuevo proyecto utiliza un modelo de capacidad de objeto. El código del proyecto está escrito en C y se distribuye bajo la licencia MIT.
Entre las deficiencias de sudo que el nuevo kit de herramientas intenta abordar se encuentran su entrega como un archivo ejecutable con el indicador root suid; una arquitectura monolítica sin separación de privilegios (toda la funcionalidad de sudo se ejecuta con privilegios root); un formato de configuración complejo, no jerárquico y no declarativo; soporte para complementos que se ejecutan directamente en un proceso privilegiado; y una base de código inflada con una gran superficie de ataque.
En lugar de usar una utilidad sudo monolítica, capsudo utiliza un tándem de un proceso en segundo plano privilegiado, capsudod, y una utilidad sin privilegios, capsudo. La comunicación entre capsudod y capsudo se realiza mediante un archivo de socket, y la ejecución de comandos privilegiados se determina por los derechos de acceso del socket. Solo los usuarios con acceso al socket pueden ejecutar comandos privilegiados asociados a él. Una desventaja de este enfoque es la necesidad de un proceso en segundo plano independiente para coordinar la ejecución de cada operación privilegiada.
Por ejemplo, para permitir que un usuario ejecute la utilidad de reinicio con privilegios elevados, un administrador puede crear un socket "reboot-capability" en el directorio personal del usuario, vincularlo a la utilidad de reinicio y restringir el acceso de escritura al socket al usuario deseado. El usuario puede entonces ejecutar el comando de reinicio con "capsudo -s reboot-capability". # capsudod -s /home/user/reboot-capability reboot & # chown user:user /home/user/reboot-capability # chmod 700 /home/user/reboot-capability ejecutar el reinicio con el comando: $ capsudo -s /home/user/reboot-capability
Para replicar el comportamiento de sudo y permitir que cualquier aplicación se ejecute con privilegios elevados para los usuarios del grupo wheel, puede usar la siguiente configuración: # mkdir -p /run/cap # capsudod -s /run/cap/sudo-capability & # chgrp wheel /run/cap/sudo-capability # chmod 770 /run/cap/sudo-capability $ capsudo -s /run/cap/sudo-capability
Ejemplo de configuración para una ejecución privilegiada del comando /usr/sbin/mount /dev/sdb1: # capsudod -s /run/user/mountd/cap/mount-dev-sdb1 — /usr/sbin/mount /dev/sdb1 … estableciendo derechos de acceso al socket /run/user/mountd/cap/mount-dev-sdb1 montando /dev/sdb1 en /media/usb como un usuario sin privilegios $ capsudo -s /run/user/mountd/cap/mount-dev-sdb1 — /media/usb
Fuente: opennet.ru
