Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

373
Views
¿Se obtiene algún beneficio de seguridad al bifurcar () después de eliminar los privilegios (root)?

Especialmente en el mundo de Linux/POSIX, los demonios que necesitan algunas capacidades de root solo para fines de inicialización temporal (por ejemplo, para leer un archivo de clave privada propiedad de root, o para abrir un puerto <1024, o para aumentar los límites de recursos), a menudo parecen siguen un patrón de diseño en el que cambian sus credenciales con llamadas a funciones como setuid() / setresuid() y setgid() / setresgid() , y luego llaman a fork() para ejecutar el programa real como su hijo. Supuestamente, el fork() -ing se realiza "por si acaso" , pero ¿cuál es o fue la consideración de seguridad real para hacerlo?

Y para seguir con eso, ¿sigue siendo relevante esa razón cuando (además de setgroups(0, NULL) , setresgid(GID_NOBODY, GID_NOBODY, GID_NOBODY) y setresuid(UID_NOBODY, UID_NOBODY, UID_NOBODY) ), el programa también está limitando Linux de manera proactiva capacidades , eliminando todas las capacidades tan pronto como ya no se necesiten, llamando a cap_set_proc() ?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

¿Tienes algún ejemplo en particular?

Normalmente, el daemon se bifurca y conserva los privilegios de root en el proceso "maestro". Esto es útil porque significa que puede, por ejemplo, volver a cargar la configuración y posiblemente vincularse a otros puertos. Los niños bifurcados no tienen privilegios y manejan el tráfico real.

Mi conjetura es que vio un programa que eliminó los privilegios, se bifurcó y salió en el padre. Si es así, esto se hizo como parte de convertirse en un demonio.

over 4 years ago · Santiago Trujillo Report

0

Bueno, las mejores prácticas en seguridad recomiendan tener muchas líneas de defensa.

Si estuviera seguro de que su daemon no tiene fallas, ni tiene ninguna de las funciones de biblioteca que usa, podría dejar que se ejecute con todos los privilegios sin más riesgos.

Pero si ha sido escrito por un simple ser humano, es probable que oculte algunos posibles exploits que podrían permitir que un atacante ejecute código arbitrario. Uno fue descubierto en la biblioteca SSL no muy lejos de hoy, sin hablar de Windows...

Esa es la razón por la que debe revocar todos los privilegios que no se requieren para procesar la entrada externa , porque los riesgos son mayores en esa parte.

Eso es todo por la caída de privilegios. La parte de bifurcación normalmente se usa para dividir el daemon en un proceso altamente privilegiado que nunca procesa la salida externa (seguridad...) y que monitorea otros procesos con privilegios bajos que hacen el trabajo real. Por ejemplo, permite reiniciar un niño que murió o se atascó, pero los datos de entrada externos nunca son procesados por código privilegiado.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!