Agujeros de seguridad

Revisión del 18:23 20 jun 2019 de Javiermartin jc (discusión | contribuciones) (Texto reemplazado: «<div align="justify">» por «»)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Agujeros de Seguridad
Información sobre la plantilla
Hacker.jpg
Un agujero de seguridad es un fallo en un programa que permite mediante su explotación violar la seguridad de un sistema informático.

Agujero de seguridad es el fallo de un programa que permite mediante su explotación violar la seguridad informática de un sistema. Actualmente se aplica a los servicios web, tales como páginas web, correo, IRC, MSN, chat, etc, con el objetivo de obtener información de personas que usen el servidor. A las personas que buscan errores en los sitios webs se les llama hackers y a las que aprovechan dichas fallas para su beneficio particular, en contra del bien común, se les llama crackers.

Causas

Los agujeros de seguridad suelen generarse en la negligencia o la inexperiencia de un programador. Puede haber otras causas ligadas al contexto. Una vulnerabilidad por lo general permite que el atacante pueda engañar a la aplicación, por ejemplo, esquivando los controles de acceso o ejecutando comandos en el sistema donde se aloja la aplicación. Algunas vulnerabilidades se producen cuando la entrada de un usuario no es controlada, permitiendo la ejecución de comandos o solicitudes SQL (conocidos como Inyección SQL). Otras provienen de errores de un programador en la comprobación de los buffers de datos (que puede ser desbordados), provocando una corrupción de la pila de memoria (y, por tanto, permitiendo la ejecución de código suministrado por el atacante). Los agujeros de seguridad se manifiestan (en general) en cuatro modos....

Agujeros de seguridad físicos

Cuando el problema potencial, está causado debido al hecho de dar a personas sin autorización, acceso físico a la maquina, cuando esto les permite realizar cosas, que no deberían ser capaces de hacer.

Un buen ejemplo de esto podría ser una sala pública, con estaciones de trabajo, donde seria facilísimo para un usuario, el reinicializar una maquina en modo mono-usuario y trastear con los archivos de la estación de trabajo, si no se tomasen precauciones.

Otro ejemplo de esto es la necesidad de restringir el acceso a cintas backup confidenciales, que de otro modo podrían ser leídas por cualquier usuario con acceso a las cintas y con una unidad de cinta, independientemente de si tuvieran o no permiso.

Agujeros de seguridad en el software

Cuando el problema esta causado por una mala escritura de partes "privilegiadas" de software (daemons, cronjobs) que pueden estar comprometidos a realizar tareas que no deberían.

El ejemplo mas famoso de esto es el bug del sendmail que podía permitir a un cracker el pillar una shell root. Esto podría ser usado para borrar archivos, crear nuevas cuentas, copiar el fichero de passwords, cualquier cosa.

Nota: Contrariamente a lo que la gente piensa, los ataques vía sendmail no estaban solo restringidos al infame " Gusano de Internet" (Internet Worm) - cualquier cracker podía hacer esto Telneteando al puerto 25 de la víctima. La historia detrás de un agujero similar (esta vez en el software "move-mail" de EMACS) se describe en [Stoll]. Nuevos agujeros como este aparecen todo el tiempo, y tus mejores esperanzas son:

  • Tratar de estructurar tu sistema de forma que el menor software posible con privilegios root/daemon/bin corra en tu maquina, y que el que lo haga sepamos que sea robusto.
  • Suscribirse a una lista de mail para poder tener lo antes posible información con detalles acerca de problemas y/o parches, y actuar en cuanto la tengas.
  • Cuando instales/actualices un sistema dado, trata de instalar/habilitar solo aquellos paquetes de software por los que tengas una necesidad inmediata o previsible. Muchos paquetes incluyen daemons o utilidades que pueden revelar información a extraños. Por ejemplo, el paquete de contabilidad del Unix System V de AT&T incluye acctcom(1), que podría permitir (por omisión) a cualquier usuario el revisar los datos de las cuentas diarias de cualquier otro usuario.

Muchos paquetes TCP/IP instalan/cargan automáticamente programas tales como rwhod, fingerd, y (ocasionalmente) tftpd, pudiendo todos presentar problemas de seguridad.

Una administración del sistema cuidadosa es la solución. Muchos de estos programas son inicializados/iniciados en el arranque; desearas cambiar tus scripts de arranque (normalmente en los directorios /etc, /etc/rc, /etc/rcX.d) para prevenir su ejecución. Desearas eliminar algunas utilidades completamente. Para algunas utilidades, un simple chmod(1) puede prevenir el acceso de usuarios no autorizados

Resumiendo, no confies en los scripts/programas de instalación! Tales facilidades tienden a instalar/cargar todo lo que hay en el paquete sin preguntártelo. Muchos manuales de instalación incluyen listas de "los programas incluidos en este paquete"; asegúrate de revisarlo.

Agujeros de seguridad de uso compatible

Cuando, a través de la falta de experiencia, o no por fallo suyo, el administrador del sistema reúne una combinación de hardware y software y esta es usada como un sistema, estar seriamente dañado desde el punto de vista de la seguridad. Es la incompatibilidad de intentar hacer dos inconexos pero útiles actos lo que crea agujeros de seguridad.

Problemas como este son muy difíciles de encontrar una vez que el sistema esta creado y funcionando, así que es mejor el crear el sistema con ellos en mente (fallos). Aunque nunca es tarde para volver a pensarlo.

Elegir una filosofía de seguridad adecuada y mantenerla

El cuarto tipo de problema de seguridad es el de la percepción y el entendimiento. Software perfecto, hardware protegido, y componentes compatibles no funcionan a menos que hayas elegido una política de seguridad correcta y que hayas puesto en marcha las partes de tu sistema que la refuercen.

Tener el mejor mecanismo de password del mundo es inútil si tus usuarios creen que la ultima parte del nombre de su login es un buen password! La seguridad esta relacionada con una política (o conjunto de políticas/normas) y el funcionamiento de tu sistema conforme a dicha política.

Fuente

hezek-x.galeon.com wikipedia.org