Temas Generales
Principios generales de la seguridad de la información:
- Confidencialidad: Garantiza que la información solo sea accesible para aquellos que están autorizados a tener acceso.
- Integridad: Asegura que la información no sea modificada por entidades no autorizadas y se mantenga precisa y completa.
- Disponibilidad: Garantiza que la información y los recursos estén disponibles para los usuarios autorizados cuando los necesiten.
Problemas Clásicos
¡Sanitizar input!
-
Format string: si el input no está santitizado, el usuario puede llegar a tener forma de ejecutar privilegios como root.
-
Variables de entorno: no usar paths absolutos del programa al que se quiere llamar puede permitir al usuario setear el PATH: para ejecutar un programa malicioso, escalando privilegios del mismo a root.
-
Buffer overflow:
- Si se declara una variable después del buffer usado para leer el input y no se limita el tamaño, se puede pisar un valor indeseado alterando el funcionamiento del programa. Esto genera escalamiento de privilegios.
- Si se declara un buffer en el stack y luego se llama a una función de lectura sin límite, se puede llegar a pisar el address de retorno, haciendo que el usuario pueda saltar a donde quiera y produciendo escalamiento de privilegios.
Se soluciona con: scanf(‘‘ %32s’’, password);
-
Integer overflow: puede ocurrir que los enteros calculados sean más grandes de los esperados y alteren el comportamiento del programa. Puede producir escalamiento de privilegios.
-
Escalado de privilegios y broken access control: permisos incorrectamente configurados pueden traer problemas de seguridad.

-
Denial of service: una fork bomb, por ejemplo. Se puede resolver limitando la cantidad de provcesos.
Existen mecanismos del SO para prevenir algunos ataques: DEP, ASLR y Stack Canaries. Revisar diapo.
Ejercicios
Ejercicio 1
Hacer cuentas, consiste en entender el funcionamiento de hasheo de contraseñas.
Ejercicio 2
- No es seguro, ya que es vulnerable a “replay-attacks”.
- No, ya que no tendría el hash contra qué comparar para hacer una comparación ya que la seed va cambiando.