GNU/Linux
Ing. Néstor Alonso Torres
<nestor@electrica.cujae.edu.cu>
Departamento de Telecomunicaciones
y Telemática
CUJAE
Tema V Seguridad en GNU/Linux
● Elementos de Seguridad
– Amenazas
– Políticas y Mecanismos
– Principio del privilegio mínimo
● Endurecimiento y actualización del sistema
● Contraseñas
● Seguridad en la red. Principales herramientas
● Chequeos de integridad. Principales herramientas
● Chequeo de Logs
2
Elementos de Seguridad
3
Elementos de Seguridad
● La seguridad en computadoras se basa en:
– Confidencialidad
– Integridad
– Disponibilidad
● La interpretación de cada uno de estos aspectos en
un entorno dado está dictada por las necesidades o
leyes de la persona u organización
4
Elementos de Seguridad
● La confidencialidad consiste en el ocultamiento de la
información o los recursos
● Los mecanismos de control de acceso apoyan la
confidencialidad:
– Encriptación
– Mecanismos dependientes del sistema
– Ocultamiento de recursos
5
Elementos de Seguridad
● Todos los mecanismos que hacen cumplir la
confidencialidad requieren servicios de soporte por
parte del sistema. Se asume entonces que los servicios
de seguridad pueden confiarse al núcleo del sistema y
otros agentes, para brindar información correcta
● Entonces, la asunción y la confianza están presentes
en los mecanismos de confidencialidad
6
Elementos de Seguridad
● La integridad se refiere a la confiabilidad de los datos
o los recursos
● Incluye la integridad de datos (contenido) y la
integridad del origen (fuente, a veces llamada
autenticidad)
● Los mecanismos de integridad se dividen en dos
clases: mecanismos de prevención y mecanismos de
detección
7
Elementos de Seguridad
● Trabajar con la integridad es muy diferente de trabajar
con la confidencialidad. Con la confidencialidad, la
información es comprometida o no, pero la integridad
incluye tanto la confiabilidad como la veracidad de la
información
● Entonces, evaluar la integridad se hace a veces muy
difícil, porque descansa en la asunción de la fuente, y
la confiabilidad de la misma
8
Elementos de Seguridad
● La disponibilidad se refiere a la posibilidad de usar la
información o recurso deseado
● La disponibilidad es importante desde el punto de
vista de la seguridad, pues alguien puede denegar el
acceso a determinado servicio, simplemente
haciéndolo no disponible
9
Elementos de Seguridad
● Los intentos de bloquear la disponibilidad, llamados
ataques de denegación de servicios (DoS), pueden ser
los más difíciles de detectar, ya que se debe determinar
si los patrones de acceso inusuales son atribuibles a una
manipulación intencional de recursos, o al entorno
● Un intento deliberado de hacer indisponible un recurso
puede simplemente parecer un evento atípico y en
algunos casos, ni siquiera atípico
10
Amenazas
● Las amenazas son las violaciones potenciales de la
seguridad
● El hecho de que la violación pueda ocurrir significa
que es preciso cuidarse de las acciones que podrían
causarla (o al menos prepararse para enfrentarlas)
● Dichas acciones son llamadas ataques
11
Amenazas
● Las amenazas pueden ser divididas en cuatro amplias
clases:
– Revelación (acceso no autorizado a la información)
– Engaño (aceptación de información falsa)
– Quebranto (interrupción o prevención de la
operación correcta)
– Usurpación (control no autorizado de alguna parte
del sistema)
12
Políticas y Mecanismos
● Es muy importante conocer las diferencias entre
política y mecanismo
– La política de seguridad es una declaración de lo
que está y lo que no está permitido
– El mecanismo de seguridad es un método,
herramienta o procedimiento que obliga a cumplir la
política de seguridad
13
Políticas y Mecanismos
● Las políticas pueden ser representadas
matemáticamente, como una lista de estados
permitidos (seguros) y no permitidos (inseguros)
● En la práctica, las políticas raras veces son tan
precisas, y describen en lenguaje natural lo que se
permite y lo que no, lo cual lleva a estados
intermedios que no son “permitidos” ni “no permitidos”
14
Políticas y Mecanismos
● Los mecanismos de seguridad pueden, en
esencia:
– Prevenir los ataques
– Detectar los ataques
– Recuperar de los ataques
15
Políticas y Mecanismos
● La prevención de los ataques significa, básicamente,
que los ataques fallen
● Típicamente, los mecanismos de prevención no
pueden ser saltados por el usuario, y se confía en que
están implementados correcta e inalterablemente
● Estos mecanismos interfieren el trabajo normal del
usuario, aunque algunos (como las contraseñas) han
sido ampliamente aceptados
16
Políticas y Mecanismos
● La detección es más útil cuando el ataque no puede
prevenirse, aunque también puede indicar la
efectividad de las medidas de prevención
● El principal objetivo es saber que el ataque está
ocurriendo, u ocurrió; y reportarlo o incluso
monitorearlo, para conocer su naturaleza, severidad y
resultados
17
Políticas y Mecanismos
● La recuperación tiene dos formas:
– Detener el ataque y lograr reparar los daños, lo
cual es bastante difícil de lograr, ya que cada
ataque es único
– Continuar trabajando normalmente mientras
sucede el ataque. Esta forma es aún más difícil de
implementar, dada la complejidad de los sistemas
de cómputo
18
Políticas y Mecanismos
● El eslabón más debil de la cadena en materia
de seguridad de sistemas es el hombre, por
ende, debe tenerse siempre en cuenta en las
políticas y procedimientos
19
Políticas y Mecanismos
Amenazas
Política
Especificación
Diseño
Implementación
Operación y Mantenimiento 20
Principio del privilegio mínimo
“ Ningún usuario, aplicación o proceso debe tener
más privilegios en el entorno operativo local
que los que necesite para funcionar”
21
Principio del privilegio mínimo
● Corolarios:
– Instale sólo lo que se necesite, elimine o
deshabilite todo lo demás
– Mantenga todo el sistema, y las aplicaciones
actualizadas, o al menos parcheadas.
– Elimine o deshabilite las cuentas de usuario
innecesarias
– No permita el acceso al shell innecesariamente.
/bin/false debe ser el shell por omisión
22
Principio del privilegio mínimo
● Corolarios:
– Permita que cada servicio sea públicamente
accesible por diseño, no por omisión
– No deje que ningún archivo corra con la identidad
de root innecesariamente
– No utilice innecesariamente los privilegios de root.
Si el sistema tiene más de un administrador, se
debe trabajar vía sudo
– Asegúrese de que los logs funcionan, y revíselos
con regularidad
23
Principio del privilegio mínimo
● Corolarios:
– Configure cada host como su propio firewall,
además de tener un firewall independiente
– Revise su trabajo con escáners de seguridad,
especialmente después de parchear y/o actualizar
– Entienda y aplique las características de seguridad
de su sistema y sus aplicaciones, especialmente si
añaden redundancia a las medidas de seguridad
24
Principio del privilegio mínimo
● Corolarios:
– Después de configurar un host bastión,
documente su configuración de manera que
pueda ser utilizada como base para sistemas
similares y para la reconstrucción rápida del suyo
propio, después de haber sido comprometido o
afectado
25
Endurecimiento y
actualización del sistema
26
Endurecimiento y actualización del sistema
● El software innecesario debe desintalarse.
Esto se realiza con los gestores de paquetes
de la distribución (rpm, dpkg, removepkg)
● Un servidor normalmente no necesita:
– X
– Un compilador de C
– Herramientas de monitoreo o escaneo de redes
27
Endurecimiento y actualización del sistema
● Es recomendable suscribirse a las listas de
seguridad de la distribución que se use
● La actualización de las aplicaciones pueden ser
por diferentes causas:
– Nueva funcionalidad
– Solución de problemas de seguridad
28
Endurecimiento y actualización del sistema
● Casi todas las nuevas versiones de programas en
Linux son inestables hasta la cuarta o quinta revisión,
por tanto:
● Es recomendable mantenerse en la misma versión del
programa, mientras tenga soporte
● No actualice automáticamente en los servidores de
producción. No es necesario confiar en los
desarrolladores
29
Endurecimiento y actualización del sistema
● Bastille es una aplicación disponible para Red
Hat, Mandrake, SuSE, Debian y HP/UX
● Realiza ajustes a la seguridad del sistema,
mediante preguntas sencillas al administrador,
a la vez que va explicando por qué es
necesario cada paso
30
Contraseñas
31
Contraseñas
● Las contraseñas son las llaves de su sistema,
por ende constituyen la primera línea de
defensa contra los atacantes
● El uso de buenas contraseñas es necesario
para evitar inicios de sesión no autorizados,
que es el primer paso hacia problemas de
seguridad mayores
32
Contraseñas
● Consejos para definir contraseñas:
– Deben tener al menos ocho caracteres
– No deben ser palabras “del diccionario”
– Deben consistir en la mezcla de letras, números y
símbolos
– Deben ser creadas por los usuarios
– Deben ser fáciles de recordar
– Nunca deben ser escritas
33
Contraseñas
● Consejos para mantener contraseñas:
– Deben cambiarse regularmente
– Deben cambiarse cada vez que se sospeche que la
seguridad haya sido comprometida
– Las políticas de cambio de contraseñas deben
evitar que los usuarios cambien solo pequeñas
partes de sus contraseñas
34
Contraseñas
● Las normas relativas a las contraseñas que se aplican
a los usuarios recién creados se especifican en el
archivo /etc/login.defs
● En ese mismo archivo se guarda la configuración del
comportamiento del login de los usuarios
● Para los usuarios ya creados, las normas pueden
modificarse con el comando chage
35
Contraseñas
● Las medidas anteriores no evitan que el usuario
“reuse” sus contraseñas, o introduzca solo pequeñas
modificaciones
● Para lograr forzar el cumplimiento de buenas
prácticas, se utiliza pam_cracklib, configurable
desde:
/etc/pam.d/common-password en Debian
/etc/pam.d/system-auth en Slackware y
derivados de RedHat
36
Contraseñas
● Configuración de /etc/pam.d/systemauth
password required pam_cracklib.so retry=3
minlen=12 difok=4
password required pam_unix.so md5 remember=12
use_authtok
37
Seguridad en la red.
Principales herramientas
38
Seguridad en la red. Principales herramientas
● Utilice arquitecturas DMZ que se correspondan con
las necesidades de la institución que se esté
asegurando
● Ponga diferentes servicios en diferentes hosts
siempre que sea posible
● Los firewalls deben ser solamente firewalls
● Los ataques pueden ser externos e internos
39
Seguridad en la red. Principales herramientas
Arquitectura con un solo firewall 40
Seguridad en la red. Principales herramientas
Arquitectura con dos firewalls 41
Seguridad en la red. Principales herramientas
● IPTables
● Firestarter
● Turtle Firewall (requiere Webmin)
● Nmap
● Nessus
● Etherreal
● Snort
42
Seguridad en la red. Principales herramientas
● Linux tiene un firewall incluido en el kernel
● iptables se utiliza para configurar, mantener, e
inspeccionar las tablas que contienen las reglas para
el filtrado de paquetes IP
● iptables es capaz de mantener los estados, por tanto
puede tomar decisiones basadas en paquetes
anteriores
43
Seguridad en la red. Principales herramientas
# iptables A INPUT s 0/0 i eth0 d
192.168.1.1 p TCP j ACCEPT
● Permite que el firewall acepte todos los paquetes TCP
que vengan por eth0 desde cualquier dirección IP,
destinado a la dirección IP del firewall 192.168.1.1.
● El 0/0 representa cualquier dirección IP
44
Seguridad en la red. Principales herramientas
● Firestarter cuenta con una interfaz gráfica muy
fácil de usar
● Permite crear listas blancas y negras
● Permite visualizar en tiempo real los eventos y
las conexiones
45
Seguridad en la red. Principales herramientas
46
Seguridad en la red. Principales herramientas
● Turtle Firewall permite manejar un firewall de
manera fácil y rápida
● Está basado en iptables, y Webmin
● Es posible definir zonas, hosts y redes; y luego
fijar los servicios entre los diferentes elementos
o grupos de elementos
47
Seguridad en la red. Principales herramientas
48
Seguridad en la red. Principales herramientas
49
Seguridad en la red. Principales herramientas
● nmap es una herramienta para exploración y
seguridad de redes
● Está diseñada para escanear rápidamente grandes
redes, descubriendo hosts, servicios, sistemas
operativos
● Es extremadamente útil para monitorear redes
completas, o hosts en específico
50
Seguridad en la red. Principales herramientas
root@thevenin:~# nmap localhost
Starting Nmap 4.11( http://www.insecure.org/nmap/)
at 20070416 13:13 CST
Interesting ports on localhost (127.0.0.1):
Not shown: 1676 closed ports
PORT STATE SERVICE
22/tcp open ssh
37/tcp open time
80/tcp open http
Nmap finished: 1 IP address (1 host up) scanned in
0.293 seconds 51
Seguridad en la red. Principales herramientas
● Nessus es el escáner de vulnerabilidades más popular
del mundo, utilizado en más de 75,000 organizaciones
● Consta de un servidor (nessusd), que es el escáner, y
un cliente (nessus) que controla el servidor, y muestra
los resultados
● No solamente muestra las vulnerabilidades, sino que
intenta explotarlas
52
Seguridad en la red. Principales herramientas
● El proyecto "Nessus" comenzó en el año 1998, bajo
licencia GPL
● En octubre de 2005, Nessus 3 sale con una licencia
propietaria, aunque el motor es gratuito
● El motor de Nessus 2, y una minoría de los plugins
aún son GPL
53
Seguridad en la red. Principales herramientas
● Ethereal es utilizado para defectar y analizar
protocolos
● Los datos pueden ser capturados en “vivo” o desde
ficheros de captura (tpdump, etc...)
● Soporta 759 protocolos actualmente
54
Seguridad en la red. Principales herramientas
55
Seguridad en la red. Principales herramientas
● Snort es un sistema de detección de intrusos para
redes
● Utiliza un lenguaje de reglas, que combina los
beneficios de métodos de inspección basados en
protocolos y anomalías
56
Chequeos de integridad.
Principales herramientas
57
Chequeos de integridad. Principales herramientas
● Un excelente método para determinar si un
equipo resulta comprometido es verificar la
integridad de los archivos existentes en el
sistema de archivos
● Existen varias herramientas para realizar esta
tarea, entre ellas Tripwire y AIDE
58
Chequeos de integridad. Principales herramientas
● Tripwire es la herramienta más conocida para realizar
chequeos de integridad en Linux o UNIX
● Existe una versión comercial y una open source
● Tripwire es muy simple en concepto. Mantiene una
base de datos con una “instantánea” del sistema de
archivos, junto con un grupo de reglas para saber qué
constituye un comportamiento sospechoso o no
autorizado. Con los resultados de cada corrida elabora
un reporte
59
Chequeos de integridad. Principales herramientas
● AIDE (Advanced Intrusion Detection Environment) es
un reemplazo libre para tripwire
● AIDE crea una base de datos a partir de las reglas
que se coloquen en el archivo de configuración. Esta
base de datos es utilizada para chequear la integridad
de los archivos, utilizando varios algoritmos de
función resumen (md5,sha1,rmd160,tiger,haval,etc.),
además de chequear los permisos usuales de los
archivos
60
Chequeo de Logs
61
Chequeo de Logs
● Los logs son una herramienta invaluable para
el análisis del comportamiento del sistema
● Se encuentran típicamente en /var/log
● Es recomendable chequear los logs con
regularidad, ya que si un problema sucede,
debe aparecer en ellos
62
Chequeo de Logs
63
Chequeo de Logs
● Afortunadamente, existen varias herramientas
que ayudan a procesar los logs, mostrando de
manera agradable los resúmenes
● Ejemplos de estas herramientas son: AWStats,
Analog, Webalizer, logwatch
64
Chequeo de Logs
65
Chequeo de Logs
66
Recuerde que:
“La seguridad es un proceso, no un producto”
67
Bibliografía
1.Bishop, Matt. “Computer Security: Art and Science”.
Addison Wesley, 2002
2.Bauer, Michael, “Linux Server Security, 2nd Ed.”,
O'Reilly, 2005
3.LittleJohn, Debra. “Scene of Cybercrime, computer
forensic handbook”, Syngress Publishing, 2002
4. “Lo Esencial de Slackware Linux”, 2006.
http://www.softwarelibre.cu/docs
5. “Manual Linux Eminentemente Práctico”.
ZonaSiete.ORG Editors Team, 2004
68
6. Entrenamiento Básico en Linux. DISAIC, 2002
Para terminar
Este documento está licenciado bajo
Creative Commons (AttributionNonCommercial
ShareAlike)
Puedes:
Copiar, reproducir, mostrar públicamente y
modificarlo, siempre y cuando cites al autor;
no lo uses para fines comerciales,
y las obras derivadas se mantengan bajo esta misma
licencia.
69