¿cómo identificar todos los paquetes en una distribución de Linux que requiere acceso de root?

4

Para ayudarme a priorizar los problemas de seguridad y cumplir con una política de administración de parches, y para reducir la exposición al riesgo, me gustaría tener una lista de todos los paquetes en una distribución de Linux (basada en rpm) que necesita altos privilegios para ejecutarse y que tiene capacidades de escucha (3) y, por lo tanto, posibles candidatos para la explotación de la raíz.

Tenga en cuenta que no quiero asignar solo el paquete instalado, sino todos los paquetes posibles en distribución (dado que los paquetes provienen solo de los repositorios oficiales y el conjunto de paquetes es finito)

¿Hay alguna forma de obtener esta información a través del archivo de especificaciones de RPM?

¿Hay alguna Distribución que proporcione esta información?

¿Hay algún trabajo / investigación ya realizado en esta dirección?

    
pregunta VP. 24.11.2016 - 09:25
fuente

1 respuesta

2

Hasta cierto punto, es inviable. Puede ejecutar un cortafuegos para gestionar dichos problemas. Si quieres hacer algo, los comentarios que otros usuarios te han dado son lo más que realmente puedes hacer.

Hay razones por las que tal clasificación es generalmente inviable. Luego hay algunos paquetes cuyos archivos se recomiendan para que no se ejecuten, pero con altos permisos.

  1. Siempre debe referirse al sistema específico en el que planea instalar el paquete; por lo tanto, dicha clasificación no puede ser únicamente por paquete. Ejemplos:

    • Los permisos de archivo pueden diferir, después de la instalación.
    • Incluso si los permisos no cambian a lo largo de los archivos del paquete, puede permitir que los usuarios no root los utilicen (algunos de) simplemente modificando los grupos de su sistema.
  2. No puede confiar únicamente en los permisos de archivos, pero debe conocer comportamientos y semánticas específicos de los binarios y los scripts. Ejemplos:

    • Tome un servidor HTTP simple. En general, abre un puerto 80. El puerto 80 está por debajo de 1024 y necesita permisos avanzados. Pero si cambia algún archivo conf a un puerto alto, entonces ya no necesitará permisos avanzados. Sin embargo, el paquete es el mismo.
    • Además, ¿cómo sabrá SI el paquete tiene qué archivos de configuración? Si hay más de uno?
    • ¿Qué sucede si tiene un servicio que acepta entradas del archivo en lugar de un socket? (El archivo puede estar en un sistema de archivos remoto).
  3. Finalmente, algunos paquetes son intrínsecamente ambiguos por la clasificación que pretendes hacer. Ejemplo:

    • Si quieres hacer particiones en tu dispositivo USB usando alguna aplicación foo , es probable que no necesites ningún privilegio. Sin embargo, la misma aplicación foo se puede usar para cambiar la tabla de particiones del sistema en ejecución, lo que probablemente sea una operación de alto privilegio.

Quizás haya otras razones, pero no puedo pensar en ellas en este momento.

    
respondido por el NeverGoodEnough 12.12.2016 - 19:16
fuente

Lea otras preguntas en las etiquetas