SkillGridAprende informática practicando

Seguridad del SO: usuarios, permisos y aislamiento

Por qué el sistema operativo comprueba cada petición, por qué root es el último recurso y cómo se mantienen separados los procesos.

14 min · 45 XP

Cada proceso se ejecuta como algún usuario, y cada archivo tiene un dueño. El kernel compara lo uno con lo otro en cada apertura, lectura, escritura y ejecución. Esa comprobación es la razón de que un programa defectuoso no pueda simplemente leer tus documentos: tiene que pedirlo, y la respuesta depende de como quién se esté ejecutando. Los permisos se escriben en tres grupos de tres: lo que puede el dueño, lo que puede el grupo y lo que pueden los demás.

-rw-r--r--  1 root  root   512 Jan 10 09:14 notes.txt
-rw-------  1 alice alice  512 Jan 10 09:14 diary.txt
-rwxr-xr-x  1 root  root   118 Jan 10 09:14 backup.sh

who     what they may do
------  -------------------------------------------
owner   read and write
group   read
everyone else  readLee los nueve caracteres en tres grupos: dueño, grupo, los demás. r es lectura, w es escritura, x es ejecución.
Planificador de CPU

Primero llega un trabajo largo. Observa cómo espera todo lo que va detrás.

Procesos
ProcesoLlegadaDuraciónEstadoUsado
P106esperando—
P214esperando—
P322esperando—
P431esperando—
Cola de listos
  1. P1

P1 llega con una duración de 6 ms

Tiempo de espera medio
0
Tiempo de retorno medio
0
Tiempo total
0
Comparar algoritmos
AlgoritmoTiempo de espera medioTiempo de retorno medioTiempo total
First-Come, First-Served5.58.7513
Shortest Job First47.2513
Round-Robin5.75913

La escalada de privilegios es el nombre de pasar de una cuenta limitada a una más poderosa. Rara vez hace falta un exploit ingenioso: un script propiedad de root pero escribible por todos, un servicio que se ejecuta como root y confía en su entrada, un binario setuid con un fallo conocido. La lección no son los fallos exóticos, sino buscar ese desajuste: algo más privilegiado de lo que debería, manejando algo menos confiable de lo que debería.

Your programKernelFile on diskplease open report.txtwho asked, and may they?read the blockhere are the bytesthe program never touches the disk itself

Práctica

  1. Un archivo muestra el modo -rw-r--r-- y pertenece a alice. Alice intenta escribir en él. ¿Qué ocurre?

    Pistas
    • Recorre la cadena de permisos grupo a grupo: dueño, grupo, los demás.
    • Ser el dueño no es un derecho especial: simplemente la línea del dueño se comprueba primero.

    14 XP

  2. Ordena los pasos de cómo un programa normal lee un archivo al que sí tiene acceso.

    Pistas
    • Empieza por quién pide y termina por lo que el programa recibe al final.
    • Solo el kernel tiene permitido hablar con el disco y con el hardware.

    15 XP

  3. Relaciona cada defensa con lo que realmente restringe.

    Pistas
    • Relaciona por lo que cada medida restringe de verdad, no por lo fuerte que suene la advertencia.
    • Una lista corta es más segura que una larga, aunque la corta sea menos cómoda.

    15 XP