Principios generales de la seguridad de la información:
¡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:
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.
Hacer cuentas, consiste en entender el funcionamiento de hasheo de contraseñas.