28)  Cambiar parametros de areas criticas del sistema antes de su ejecucion.

29)  Comprobacion inadecuada de los limites al compilar, por ejemplo, un usuario puede
ser capaz de ejecutar codigo maquina disfrazado como datos en un area de datos
(si las areas de texto y datos estan compartidas)

30)  Manipular incorrectamente interrupciones asincronas generadas por usuarios.
Usuarios interrumpiendo un proceso, realizando una operación, o bien volviendo para
continuar el proceso o comenzar otro dejaran a menudo el sistema en un estado de
desproteccion. Archivos parcialmente escritos se dejan abiertos, escritura incorrecta
de mensajes de infracciones de proteccion, puesta incorrecta de bits de proteccion, etc,
suelen ocurrir.

31)  Codigo que usa fopen(3) sin poner la umask. (ej: at(1), etc.). En general, codigo
que no resetea el UID real y efectivo antes de bifurcarse

32)  Tracear es muy util para ayudarte a descubrir que llamadas de sistema usa un programa

33) Escanea los sistemas de archivos /usr/local de cerca. Muchos administradores
instalaran software de la red. A menudo encontraras tcpdump, top, nfswatch,... suid
root por su facilidad de uso.

34) Comprobar que los programas suid fueron los que originalmente se pusieron en el
sistema. Algunas veces los administradores reemplazaran el password por uno menos
seguro que el de las distribuciones.

35) Buscar programas que se usaran para instalar software o modulos de kernel

36) Programas enlazados dinamicamente en general. Recuerda LD_PRELOAD, creo que esa
era la variable.

37) La programacion de canales de I/O (Entrada/Salida) es es un blanco primario.
Busca errores logicos, inconsistencias, y omisiones.

38) Ver si es posible que un programa de canales I/O pueda automodificarse, hacer un
loop, y asi ejecutar el nuevo codigo modificado.

39) Si los canales I/O actuan como procesadores independientes tendran acceso ilimitado
a la memoria, y asi el codigo de sistema podria ser modificado en memoria previamene
a su ejecucion.

40) Buscar bugs que requieran errores en multiples partes del software,ej: di por
ejemplo que el programa "a" puede usarse para cambiar el fichero de configuracion /etc/a ,
ahora el programa "b" asume que la informacion de a es correcta y esto lleva a resultados
inesperados (solo mira cuantos programas confian en el fichero /etc/utmp)

41)  Cualquier programa, especialmente los suid/sgid, que permites "escapadas" a shell.


CORTESIA DE MARAÑEROS WEB...
de maracaybo para el mundo

INFORMACION: