1. USE IMPROVE EVANGELIZE
Seguridad en OpenSolaris
Víctor M. Fernández Gómez
Comunidad OpenSolaris Hispano
vfernandezg@gmail.com
http://vfernandezg.blogspot.com
2. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Servicios criptográficos
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoría
● Recursos e información
2
3. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Servicios criptográficos
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoria
● Recursos e información
3
4. USE IMPROVE EVANGELIZE
Un poco de historia
● OpenSolaris nace en Junio de 2005
TM
● Base de desarrollo de Solaris 11 (Nevada)
● Licencia CDDL de código abierto aprobada
por la OSI (Open Source Initiative)
● Creación del portal opensolaris.org
(proyectos: http://www.opensolaris.org/os/projects
comunidades: http://www.opensolaris.org/os/communities)
● Creación de grupos de usuarios locales
● La innovación y el conocimiento están en
marcha
4
5. USE IMPROVE EVANGELIZE
Un poco de historia - Licencia CDDL
5
6. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Servicios criptográficos
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoría
● Recursos e información
6
7. USE IMPROVE EVANGELIZE
Que es OpenSolaris?
● Proyecto de código abierto patrocinado
inicialmente por Sun Microsystems
● Esfuerzo por unir a las comunidades de
desarrolladores de cualquier organización de
tipo Open Source
●Cualquiera puede contribuir en el código de
OpenSolaris y mejorar la tecnología de las
distribuciones -> OpenGrok
7
9. USE IMPROVE EVANGELIZE
Distribuciones Binarias
TM
● Solaris 10 5/08
● SXCE Build 87 (Hypervisor xVM <- Xen)
Solaris Express Community Edition
● SXDE 1/08
(xVM, SAMP, CIFS + NetBeans 6, Sun Studio 12 y D-Light)
Solaris Express Developer Edition
● Nexenta
(Solaris kernel + Entorno usuario / paquetes estilo Ubuntu)
● Polaris (PowerPC)
● Belenix, SchilliX y Damm Small (Live CD)
● marTux (Live DVD - Sparc)
9
10. USE IMPROVE EVANGELIZE
Distribuciones Binarias - Indiana
● Producto final de usuario
● Binario compilado por la comunidad
● Live CD/DVD, con posibilidad de instalación
● Actualización via repositorios online
● Nuevo instalador gráfico (Caiman)
● Sistema de paquetes al estilo apt
(IPS: Image Packaging System)
● Distribution Constructor Toolkit
(Contruye tu propia distribucion)
● 100% redistribuíble... GPLv3?
10
11. USE IMPROVE EVANGELIZE
Distribuciones Binarias - Caiman
11
12. USE IMPROVE EVANGELIZE
Distribuciones Binarias - GNOME
12
13. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Servicios criptográficos
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoría
● Recursos e información
13
17. USE IMPROVE EVANGELIZE
Procesos de Negocio
● Dentro del marco normativo de un SGSI (ISO
27001/2:2005), es recomendable establecer un
modelo de seguridad basado en las buenas
prácticas de tipo “DoD” (Defense on Deep):
Seguridad
Lógica
17
18. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Servicios criptográficos
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoría
● Recursos e información
18
19. USE IMPROVE EVANGELIZE
Minimización y Bastionado
● Minimización: Es la eliminación de los
paquetes innecesarios para el sistema
● Bastionado: Es la modificación de la
configuración del sistema para mejorar su
seguridad
● Premisa: Los paquetes actuales presentan
una mayor granularidad
# pkginfo | grep -i telnet
system SUNWtnetc Telnet Command (client)
system SUNWtnetd Telnet Server Daemon (Usr)
system SUNWtnetr Telnet Server Daemon (Root) 19
20. USE IMPROVE EVANGELIZE
Minimización y Bastionado
● Solaris Security Toolkit (SSE) es una
herramienta de bastionado:
− Permite la configuración de parametros
de seguridad del sistema como:
• Longitud de contraseñas
• Duración de contraseñas
• Numero de intentos fallidos
• Máscara de permisos UNIX...
Y de minimización:
− Permite eliminar paquetes en base a
plantillas customizables 20
21. USE IMPROVE EVANGELIZE
Minimización y Bastionado
● Instalación como paquete
# pkgadd SUNWjass-4.2.0.pkg
● Permite configurar parametros finales del
sistema en /opt/SUNWjass/Drivers/user.init
● Permite la auditoria del sistema (BSM y
BART). Habilitar en hardening.driver y
deshabilitar en undoable-hardening.driver
● Ejecución en base a plantilla customizable
para la función final del sistema
# cd /opt/SUNWjass
# ./jass-execute -d install-Sun_ONE-WS.driver 21
22. USE IMPROVE EVANGELIZE
Minimización y Bastionado
● Plantilla personalizable por dos scripts:
- El script minimize-Sun_ONE-WS.fin
elimina los paquetes innecesarios de
acuerdo a la versión de sistema
- El script install-Sun_ONE-WS.fin extrae
e instala el Sun ONE Web Server 6.0SP2
● La versión 4.2 ya es compatible con Solaris
10, tanto para arquitecturas sparc como para
x86 y x64 (Similar en cuanto a funcionalidad
a productos como CISscan y Titan)
22
23. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Servicios criptográficos
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoría
● Recursos e información
23
24. USE IMPROVE EVANGELIZE
Perfiles, roles y privilegios
● Perfiles y roles forman parte del paquete
RBAC (Role-Based Access Control)
● Sintaxis Profile:
# vi /etc/security/prof_attr
Format:::Allow users to run format command::
# vi /etc/security/exec_attr
Format:suser:cmd:::/usr/sbin/format:uid=0
# usermod -P Format pepe
# su – pepe
# pfexec /usr/sbin/format
0. c0d0t0 <DEFAULT cyl 2556
24
25. USE IMPROVE EVANGELIZE
Perfiles, roles y privilegios
●Sintaxis Role:
(No es un parametro, es “casi” un usuario)
# vi /etc/security/prof_attr
Snoop:::Allow users to run snoop command::
# vi /etc/security/exec_attr
Snoop:suser:cmd:::/usr/sbin/snoop:uid=0
# roleadd -P Snoop rolesnoop
# usermod -R rolesnoop pepe
# su – pepe
# su rolesnoop
# /usr/sbin/snoop
25
26. USE IMPROVE EVANGELIZE
Perfiles, roles y privilegios
● Privelege: Parámetro que permite realizar
llamadas directas a funciones del sistema
● Integrado con RBAC (perfiles y roles)
● Integrado con SMF (Service Management
Facility)
● Sintaxis:
# usermod -K defaultpriv=basic,net_privaddr
webservd
# svccfg -s apache2
svc:/network/http:apache2> setprop start/privileges =
astring:basic,net_privaddr
26
27. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Servicios criptográficos
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoría
● Recursos e información
27
28. USE IMPROVE EVANGELIZE
ACLs de filesystems
● Por encima de los permisos UNIX (octales o
modales) y de los bits especiales (SUID,
SGID y Sticky)
● Existentes en UFS (Unix FileSystem)
● Sintaxis:
# setfacl -r -m pepe:fichero1:6 fichero1
# getfacl fichero1
...
pepe:fichero1:rw-
# ls -ltr fichero1
- rw-r--r--+ 1 root sys 301 Ene 24 18:15 fichero1
28
29. USE IMPROVE EVANGELIZE
ACLs de filesystems
● Existentes en ZFS (Zettabyte FileSystem)
● Sintaxis:
# chmod A
+everyone@:delete_child/delete:file_inherit/dir_in
herit:deny /mypool/pepe
# cp /etc/motd /mypool/pepe
# ls -l /mypool/pepe/motd
- rw-r--r--+ 1 pepe users 301 Ene 24 18:15 motd
# rm /mypool/pepe/motd
rm: archive/motd not removed: Permission denied
# echo "Hello World" > archive/motd
# zfs get aclmode,aclinherit mypool/pepe
29
30. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Servicios criptográficos
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoría
● Recursos e información
30
31. USE IMPROVE EVANGELIZE
Servicios criptográficos
● Permiten crear un certificado de CA
● Realizan peticiones de firma de certificados de
tipo servidor o/y usuario
● Firman las solicitudes con el certificado de CA
Utilidad OpenSSL de serie:
# perl /usr/sfw/CA.pl -newca
# openssl genrsa -out cakey.pem
# openssl req -new -key cakey.pem -out
PEM.csr
# openssl ca -policy policy_anything -cert
cacert.pem -in PEM.csr -out ./PEM.cert
31
33. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Servicios criptográficos
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoría
● Recursos e información
33
34. USE IMPROVE EVANGELIZE
Filtros de red y firewall
● Filtros de red denominados Tcp_Wrappers
● Integrados con los servicios de sistema
gestionados por SMF (SSH, TELNET, FTP,
RPC...)
# svccfg -s rpc/bind setprop
config/enable_tcpwrappers=true
# svcadm refresh rpc/bind
# inetadm -m telnet tcp_wrappers=true
# inetadm -l telnet | grep tcp_wrappers
tcp_wrappers=TRUE
# cat “sshd: 10.73.130.15” >> /etc/hosts.allow 34
35. USE IMPROVE EVANGELIZE
Filtros de red y firewall
● IPFilter es un firewall a nivel de módulos de
kernel (no es un proceso)
● Filtrado de tráfico TCP / UDP y traducción
de direcciones IP (NAT) y puertos (NAPT)
● Es un servicio propio de SMF
# vi /etc/ipf/ipf.conf
block in log on pcn0 all
pass in quick on pcn0 proto tcp from 172.16.0.0/16 to
172.16.1.100/32 port = 22
# tail -f /var/adm/ipfilter.log
pcn0 @0:4 b 10.73.130.68,50315 -> 10.73.130.251,22
PR tcp len 20 44 -S IN 35
36. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Servicios criptográficos
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoría
● Recursos e información
36
37. USE IMPROVE EVANGELIZE
Virtualización lógica
● Virtualización de entornos operativos (Zona)
● Anfitrión OpenSolaris = zona global
● No globales:
− Invitado OpenSolaris = zona sparse
− Invitado CentOS/RHEL = zona brandz
− Acceso directo a los dispositivos sólo bajo
configuración
− Procesos con menores privilegios que los
que se ejecutan en la zona global
− Alto % de entorno montado en modo lectura
37
38. USE IMPROVE EVANGELIZE
Virtualización lógica
● Zona no global + gestión de recursos de
tipo hardware = Contenedor
● Resource Manager es el gestor de recursos
que actúa bajo situaciones de competencia
● Permite establecer limites de consumo para
cada recurso (CPU, Memoria, Swap...)
● Sintaxis:
# zoneadm list -iv
0 global running / native shared
- zonelx installed /opt/zones/zonelx lx shared
# zonecfg -z zonelx info 38
39. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Distribuciones Binarias
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoria
● Recursos e información 39
40. USE IMPROVE EVANGELIZE
Herramientas de auditoría
● BART (Basic Audit Reporting Tool) captura
información acerca de la integridad de un
archivo
# find /etc/security | bart create -I
/etc/security D 512 40755 user::rwx,group::r-x,mask:
r-x,other:r-x 46dcb5b6 0 3
...
● Esa información se almacena en imagenes,
las cuales puedes ser comparadas para
identificar archivos modificados de forma
diferencial entre ellas.
40
41. USE IMPROVE EVANGELIZE
Herramientas de auditoría
# bart compare manifest-before manifest-after
/etc/security/exec_attr: size control:29654 test:29664
mtime control:46e8a76e test:46efee70 contents
control:caf727ccd4de989974c2c81fa7cfdf29
test:071e79250e05b2363415ee5f05d25324
● En este ejemplo se observa como el fichero
/etc/security/exec_attr ha sufrido alguna
modificación en cuanto a la definición de su
tamaño, su fecha de cambio y en su resumen
MD5 (Similar a la funcionalidad de productos
como Tripwire y Aide)
41
42. USE IMPROVE EVANGELIZE
Herramientas de auditoría
●BSM (Basic Security Module) no se
encuentra activo por defecto. Es necesario
habilitarlo (preferiblemente en “Run Level” S)
# bsmconv
●Una vez activo es posible consultar y al
mismo tiempo, visualizar eventos
# auditreduce -u gbrunett -m AUE_su | praudit -s
header,104,2,AUE_su,,sec-b1600-0,2007-09-23 15:29:00.248 -04:00
subject,gbrunett,root,gbrunett,gbrunett,gbrunett,0 0sec-b1600-0
text,success for user root
return,success,0
zone,global
42
43. USE IMPROVE EVANGELIZE
Herramientas de auditoría
● Permite enviar la salida de los eventos de la
auditoría a través del syslog
# tail -f /var/adm/messages
Sep 23 15:29:00 sec-b1600-0 audit: [ID 702911
audit.notice] su ok session
2868335681 by gbrunett as root:gbrunett in global from
sec-b1600-0 text
success for user root
● Además podemos trasformar la información
de auditoría para que puede ser presentada
en ficheros de tipo XML, mediante una sola
instrucción 43
45. USE IMPROVE EVANGELIZE
Agenda
● Un poco de historia
● Qué es OpenSolaris?
● Distribuciones Binarias
● Seguridad
− Minimización y bastionado
− Perfiles, roles y privilegios
− ACLs de filesystems
− Filtros de red y firewall
− Virtualización lógica
− Herramientas de auditoría
● Recursos e información 45
46. USE IMPROVE EVANGELIZE
Recursos e información - ¡ Unete !
● Portal internacional opensolaris.org
=> (http://opensolaris.org)
● kit de inicio OpenSolaris (KIOPS)
=> (http://get.opensolaris.org/)
● Portal OpenSolaris Hispano
=> (http://es.opensolaris.org)
● Lista de distribución OpenSolaris Hispano
(http://mail.opensolaris.org/mailman/listinfo/ug-sposug)
● Canal IRC OpenSolaris Hispano
=> (irc://irc.freenode.net/opensolaris-es)
● OpenSolaris Day 08 y más...
46
47. USE IMPROVE EVANGELIZE
¡ Muchas Gracias !
Víctor M. Fernández Gómez
Comunidad OpenSolaris Hispano
vfernandezg@gmail.com
http://vfernandezg.blogspot.com