Anda di halaman 1dari 69

Curso Básico

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/system­auth 

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 2007­04­16 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 (Attribution­NonCommercial­
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

Anda mungkin juga menyukai