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.
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.Primero llega un trabajo largo. Observa cómo espera todo lo que va detrás.
| Proceso | Llegada | Duración | Estado | Usado |
|---|---|---|---|---|
| P1 | 0 | 6 | esperando | — |
| P2 | 1 | 4 | esperando | — |
| P3 | 2 | 2 | esperando | — |
| P4 | 3 | 1 | esperando | — |
- P1
P1 llega con una duración de 6 ms
- Tiempo de espera medio
- 0
- Tiempo de retorno medio
- 0
- Tiempo total
- 0
| Algoritmo | Tiempo de espera medio | Tiempo de retorno medio | Tiempo total |
|---|---|---|---|
| First-Come, First-Served | 5.5 | 8.75 | 13 |
| Shortest Job First | 4 | 7.25 | 13 |
| Round-Robin | 5.75 | 9 | 13 |
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.
Práctica
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
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
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