Seguridad en Linux

Horst H. von Brand

Universidad Técnica Federico Santa María
Departamento de Informática

vonbrand@inf.utfsm.cl

  Casilla 110-V
  Valparaíso
  Chile

20 de noviembre de 2000


Table of Contents
¿Qué entendemos por seguridad?
Definiendo la seguridad requerida
Clasificación de riesgos
Flora y fauna
Calidad de software y seguridad
¿Razones para dormir sobre los laureles?
¿Divulgar o no divulgar?
Algunas referencias útiles

El tema seguridad generalmente se trata como un tema puramente técnico, altamente complejo, con gran cantidad de aspectos a considerar. Daremos una rápida pasada por los temas centrales, el tema en sí es demasiado amplio para poder cubrirlo en su totalidad en espacio tan breve. Se incluyen las referencias (más que nada a la misma red) que personalmente he encontrado me han sido las más útiles.

La tesis del presente trabajo es que la seguridad no es un tema técnico, sino que es fundamentalmente un tema humano. Veremos que las razones para requerir seguridad son los valores que los humanos asignan a ciertos recursos y su control. Los problemas de seguridad más serios dependen a su vez de características humanas, ya sea alguna clase de problema mental de parte de los atacantes típicos como falso sentido de seguridad de parte de los usuarios y administradores. Finalmente está el problema de que a la función de seguridad no se le asigna la importancia (y los recursos) que necesita.

¿Qué entendemos por seguridad?

Hay variadas definciones de seguridad, que difieren más que nada en el énfasis en lo que se define como aquello que debe protegerse. Acá usaremos la división que puede considerarse clásica:

Confidencialidad: Se refiere a que los recursos del sistema están accesibles sólo a partes autorizadas (se conoce también como secreto)

Integridad: Los recursos sólo pueden ser modificados por partes autorizadas de maneras autorizadas

Disponibilidad: Los recursos están disponibles para las partes autorizadas en forma expedita (como definido por los requerimientos del sistema). El no cumplir con esta característica se denomina negación de servicio ("denial of service", DoS)

Como se indicó, hay diversas definiciones de seguridad. Son básicamente divisiones y particularizaciones de los anteriores, bastante generales y absrtractos. Por ejemplo, se habla de no repudiación, significando que quien envió o recibió un mensaje no pueda negar eso a futuro. Igualmente, se habla de privacidad como distinto de confidencialidad, con significado de proteger la confidencialidad de un usuario (vale decir, su identidad) y no la de los datos.

Los anteriores implican alguna forma de identificación (indicar la identidad de las partes) y autentificación (verificar que las partes realmente son quienes dicen ser). Nótese que esto va en ambas direcciones, si requiero un servicio (por ejemplo, acceder a una máquina remota) interesa al servicio identificarme y verificar que soy quien digo ser. Al revés, me interesa identificar el servicio al que me conecto (por el nombre o dirección IP de la máquina que quiero usar, e indicando el port del servicio que me interesa), y verificar que es realmente el servicio solicitado (en este caso, que no sea suplantado ni el servicio que requiero ni la máquina en la que corre). Frecuentemente se lista auditabilidad, y a veces también control de acceso y autenticidad.