 
 
 
 
 
 
 
  
 Siguiente: Buffer overflows
 Subir: Programas seguros, inseguros y
 Anterior: La base fiable de
     Índice General 
Errores en los programas
Los errores o bugs a la hora de programar código de aplicaciones o del 
propio 
núcleo de Unix constituyen una de las amenazas a la seguridad que más 
quebraderos de cabeza proporciona a la comunidad de la seguridad informática.
En la mayoría de situaciones no se trata de desconocimiento a la hora de
realizar programas seguros, sino del hecho que es prácticamente imposible no
equivocarse en miles de líneas de código: simplemente el núcleo de 
Minix, un mini-Unix diseñado por Andrew Tanenbaum ([Tan91]) con fines
docentes, tiene más de 13000 líneas de código en su versión 1.0.
Cuando un error sucede en un programa que se ejecuta en modo usuario el 
único problema que suele causar es la inconveniencia para quien lo estaba
utilizando. Por ejemplo, imaginemos un acceso no autorizado a memoria por parte 
de cierta aplicación; el sistema operativo detectará que se intenta violar
la seguridad del sistema y finalizará el programa enviándole la señal SIGSEGV. Pero si ese mismo error sucede en un programa que corre con 
privilegios de root - por ejemplo, un ejecutable setuidado -, un 
atacante puede aprovechar el fallo para ejecutar código malicioso que el 
programa a priori no debía ejecutar. Y si un error similar se
produce en el código del kernel del sistema operativo, las consecuencias
son incluso peores: se podría llegar a producir un Kernel Panic o,
dicho de otra forma, la parada súbita de la máquina en la mayoría de
situaciones; el error más grave que se puede generar en Unix.
Subsecciones
 
 
 
 
 
 
 
  
 Siguiente: Buffer overflows
 Subir: Programas seguros, inseguros y
 Anterior: La base fiable de
     Índice General 
2003-08-08