seguridad en open solaris

39
USE IMPROVE EVANGELIZE Víctor M. Fernández Gómez Comunidad Hispana OpenSolaris (OSUG) [email protected] http://vfernandezg.blogspot.com “ Seguridad en OpenSolaris

Upload: conferencias-fist

Post on 17-Jan-2015

464 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Seguridad en Open Solaris

USE IMPROVE EVANGELIZE

Víctor M. Fernández GómezComunidad Hispana OpenSolaris (OSUG)

[email protected]://vfernandezg.blogspot.com

“ Seguridad en OpenSolaris”

Page 2: Seguridad en Open Solaris

2

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimización y bastionado− Perfiles, roles y privilegios− ACLs de sistemas de ficheros− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoría

● Recursos e información

Page 3: Seguridad en Open Solaris

3

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimizacion y bastionado− ACLs de sistemas de ficheros− Perfiles, roles y privilegios− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoria

● Recursos e información

Page 4: Seguridad en Open Solaris

4

USE IMPROVE EVANGELIZE

Un poco de historia

● OpenSolaris nace en Junio de 2005● 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 enmarcha

Page 5: Seguridad en Open Solaris

5

USE IMPROVE EVANGELIZE

Un poco de historia - Licencia CDDL

Page 6: Seguridad en Open Solaris

6

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimizacion y bastionado− ACLs de sistemas de ficheros− Perfiles, roles y privilegios− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoria

● Recursos e información

Page 7: Seguridad en Open Solaris

7

USE IMPROVE EVANGELIZE

Que es OpenSolaris?● No es un sistema operativo, tampoco esun entorno de desarollo● Proyecto de código abierto patrocinado porSun Microsystems ● Esfuerzo por unir a las comunidades dedesarrolladores, ya sean de Sun ó de otrasorganizaciones open source● Cualquiera puede contribuir en el código deOpenSolaris y mejorar la tecnología delsistema operativo -> OpenGrok

Page 8: Seguridad en Open Solaris

8

USE IMPROVE EVANGELIZE

Page 9: Seguridad en Open Solaris

9

USE IMPROVE EVANGELIZE

Que es OpenSolaris?● Core: consiste en el core del núcleo, lasbibliotecas y las órdenes que son distribuidasactualmente en Solaris™● Sun distribuye una imagen de lo que seráSun Solaris 11 como binario, denominadaSolaris Express● Desde el 10/07 ya esta disponible la primerarelease de una distribución completa, cuyaversión estable esta planificada para el Q2 del 2008 => INDIANA

Page 10: Seguridad en Open Solaris

10

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimizacion y bastionado− ACLs de sistemas de ficheros− Perfiles, roles y privilegios− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoria

● Recursos e información

Page 11: Seguridad en Open Solaris

11

USE IMPROVE EVANGELIZE

Distribuciones Binarias● Solaris 10● SXCE Build 79 (xVM <- Xen)

Solaris Express Community Edition● SXDE 1/08 (NetBeans, Java , Sun Studio 12 y DLight)

Solaris Express Developer Edition● Nexenta (Solaris kernel + usuario Ubuntu)

● SchilliX (Live CD)● Belenix (Live CD)● marTux (Live DVD – Sparc y x86 / x64)● Polaris (PowerPC)

Page 12: Seguridad en Open Solaris

12

USE IMPROVE EVANGELIZE

Distribuciones Binarias

Page 13: Seguridad en Open Solaris

13

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimización y bastionado− ACLs de sistemas de ficheros− Perfiles, roles y privilegios− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoría

● Recursos e información

Page 14: Seguridad en Open Solaris

14

USE IMPROVE EVANGELIZE

Minimización y bastionado● Minimización: Es la eliminación de lospaquetes innecesarios para el sistema● Bastionado: Es la modificación de la configuración del sistema para mejorar suseguridad● Premisa: Los paquetes actuales presentanuna mayor granularidad# pkginfo | grep -i telnetsystem SUNWtnetc Telnet Command (client)system SUNWtnetd Telnet Server Daemon (Usr)system SUNWtnetr Telnet Server Daemon (Root)

Page 15: Seguridad en Open Solaris

15

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 aplantillas customizables

Page 16: Seguridad en Open Solaris

16

USE IMPROVE EVANGELIZE

Minimización y bastionado● Instalación como paquete# pkgadd SUNWjass-4.2.0.pkg● Permite configurar parametros finales delsistema en /opt/SUNWjass/Drivers/user.init ● Permite la auditoria del sistema (BSM yBART). Habilitar en hardening.driver y deshabilitar en undoable-hardening.driver● Ejecución en base a plantilla customizablepara la función final del sistema# cd /opt/SUNWjass# ./jass-execute -d install-Sun_ONE-WS.driver

Page 17: Seguridad en Open Solaris

17

USE IMPROVE EVANGELIZE

Minimización y bastionado● Plantilla personalizable por dos scripts:

− El script minimize-Sun_ONE-WS.finelimina los paquetes innecesarios deacuerdo 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 Solaris10, tanto para arquitecturas sparc como parax86 y x64 (Similar en cuanto a funcionalidada productos como CISscan y Titan)

Page 18: Seguridad en Open Solaris

18

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimización y bastionado− ACLs de sistemas de ficheros− Perfiles, roles y privilegios− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoría

● Recursos e información

Page 19: Seguridad en Open Solaris

19

USE IMPROVE EVANGELIZE

ACLs de sistemas de ficheros● Por encima de los permisos UNIX (octales omodales) 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

Page 20: Seguridad en Open Solaris

20

USE IMPROVE EVANGELIZE

ACLs de sistemas de ficheros● Existentes en ZFS (Zettabyte FileSystem)● Sintaxis:# chmod A

+everyone@:delete_child/delete:file_inherit/dir_inherit: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/motdrm: archive/motd not removed: Permission denied# echo "Hello World" > archive/motd# zfs get aclmode,aclinherit mypool/pepe

Page 21: Seguridad en Open Solaris

21

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimizaciòn y bastionado− ACLs de sistemas de ficheros− Perfiles, roles y privilegios− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoría

● Recursos e información

Page 22: Seguridad en Open Solaris

22

USE IMPROVE EVANGELIZE

Perfiles, roles y privilegios● Perfiles y roles forman parte del paqueteRBAC (Role-Based Access Control)● Sintaxis Perfil:# vi /etc/security/prof_attrFormat:::Allow users to run format command::# vi /etc/security/exec_attrFormat:suser:cmd:::/usr/sbin/format:uid=0# usermod -P Format pepe# su – pepe# pfexec /usr/sbin/format

0. c0d0t0 <DEFAULT cyl 2556 alt 2 hd 128 sec 32>

Page 23: Seguridad en Open Solaris

23

USE IMPROVE EVANGELIZE

Perfiles, roles y privilegios● Sintaxis Role:(No es un parametro, es “casi” un usuario)# vi /etc/security/prof_attrSnoop:::Allow users to run snoop command::# vi /etc/security/exec_attrSnoop:suser:cmd:::/usr/sbin/snoop:uid=0# roleadd -P Snoop rolesnoop# usermod -R rolesnoop pepe# su – pepe# su rolesnoop# /usr/sbin/snoop

Page 24: Seguridad en Open Solaris

24

USE IMPROVE EVANGELIZE

Perfiles, roles y privilegios● Privelege: Parámetro que permite realizarllamadas directas a funciones del sistema● Integrado con RBAC (perfiles y roles)● Integrado con SMF (Service ManagementFacility)● Sintaxis:# usermod -K defaultpriv=basic,net_privaddr

webservd# svccfg -s apache2svc:/network/http:apache2> setprop start/privileges =

astring:basic,net_privaddr

Page 25: Seguridad en Open Solaris

25

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimización y bastionado− ACLs de sistemas de ficheros− Perfiles, roles y privilegios− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoría

● Recursos e información

Page 26: Seguridad en Open Solaris

26

USE IMPROVE EVANGELIZE

Filtros de red y firewall● Filtros de red denominados Tcp_Wrappers● Al margen de los servicios Criptográficos(Openssl, IPSec y Kerberos)● Integrados con los servicios controlados 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

Page 27: Seguridad en Open Solaris

27

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.confblock in log on pcn0 allpass 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.logpcn0 @0:4 b 10.73.130.68,50315 -> 10.73.130.251,22

PR tcp len 20 44 -S IN

Page 28: Seguridad en Open Solaris

28

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimización y bastionado− ACLs de sistemas de ficheros− Perfiles, roles y privilegios− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoría

● Recursos e información

Page 29: Seguridad en Open Solaris

29

USE IMPROVE EVANGELIZE

Zonas y contenedores● Virtualización de entornos operativos● Anfitrión OpenSolaris = zona global● No globales:

− Invitado OpenSolaris = zona sparse − Invitado Linux (CentOS/RHEL) = zona

brandz− Acceso directo a los dispositivos bajo

configuración− Menores privilegios que la zona global− Alto % sistema montado solo lectura

Page 30: Seguridad en Open Solaris

30

USE IMPROVE EVANGELIZE

Zonas y contenedores● Zona no global + gestión de recursos detipo hardware = Contenedor● Resource Manager es el gestor de recursosque actúa bajo situaciones de competencia● Permite establecer limites de consumo paracada recurso (CPU, Memoria, Swap...) ● Sintaxis:# zoneadm list -iv0 global running / native shared- zonelx installed /opt/zones/zonelx lx shared# zonecfg -z zonelx info

Page 31: Seguridad en Open Solaris

31

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimización y bastionado− ACLs de sistemas de ficheros− Perfiles, roles y privilegios− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoría

● Recursos e información

Page 32: Seguridad en Open Solaris

32

USE IMPROVE EVANGELIZE

Herramientas de auditoría● BART (Basic Audit Reporting Tool) capturainformació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 paraidentificar archivos modificados de formadiferencial entre ellas.

Page 33: Seguridad en Open Solaris

33

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 contentscontrol:caf727ccd4de989974c2c81fa7cfdf29test:071e79250e05b2363415ee5f05d25324

● En este ejemplo se observa como el fichero/etc/security/exec_attr ha sufrido algunamodificación en cuanto a la definición de sutamaño, su fecha de cambio y en su resumenMD5 (Similar a la funcionalidad de productoscomo Tripwire y Aide)

Page 34: Seguridad en Open Solaris

34

USE IMPROVE EVANGELIZE

Herramientas de auditoría● BSM (Basic Security Module) no seencuentra activo por defecto. Es necesariohabilitarlo (preferiblemente en “Run Level” S)# bsmconv● Una vez activo es posible consultar y almismo tiempo, visualizar eventos# auditreduce -u gbrunett -m AUE_su | praudit -sheader,104,2,AUE_su,,sec-b1600-0,2007-09-23 15:29:00.248 -04:00subject,gbrunett,root,gbrunett,gbrunett,gbrunett,0 0sec-b1600-0 text,success for user root return,success,0 zone,global

Page 35: Seguridad en Open Solaris

35

USE IMPROVE EVANGELIZE

Herramientas de auditoría● Permite enviar la salida de los eventos de laauditoría a través del syslog# tail -f /var/adm/messagesSep 23 15:29:00 sec-b1600-0 audit: [ID 702911

audit.notice] su ok session2868335681 by gbrunett as root:gbrunett in global from

sec-b1600-0 textsuccess for user root● Además podemos trasformar la informaciónde auditoría para que puede ser presentadaen ficheros de tipo XML, mediante una solainstrucción

Page 36: Seguridad en Open Solaris

36

USE IMPROVE EVANGELIZE

Herramientas de auditoría# auditreduce -u gbrunett -m AUE_su | praudit -x <?xml version='1.0' encoding='UTF-8' ?> <?xml-stylesheet type='text/xsl'href='file:///usr/share/lib/xml/style/adt_record.xsl.1' ?> <!DOCTYPE audit PUBLIC '-//Sun Microsystems, Inc.//DTD Audit V1//EN''

file:///usr/share/lib/xml/dtd/adt_record.dtd.1'> <audit> <file iso8601="2007-09-23 15:29:00.000 -04:00"></file> <record version="2" event="su" host="sec-b1600-0" iso8601="2007-09-23

15:29:00.248 -04:00"> <subject audit-uid="gbrunett" uid="root" gid="gbrunett" ruid="gbrunett" rgid="gbrunett"

pid="692" sid="2868335681" tid="0 0 sec-b1600-0"/> <text>success for user root</text> <return errval="success" retval="0"/> <zone name="global"/> </record> <file iso8601="2007-09-23 15:29:00.000 -04:00"></file> </audit>

Page 37: Seguridad en Open Solaris

37

USE IMPROVE EVANGELIZE

Agenda● Un poco de historia● Qué es OpenSolaris?● Distribuciones Binarias● Seguridad

− Minimización y bastionado− ACLs de sistemas de ficheros− Perfiles, roles y privilegios− Filtros de red y firewall− Virtualización con zonas y contenedores− Herramientas de auditoría

● Recursos e información

Page 38: Seguridad en Open Solaris

38

USE IMPROVE EVANGELIZE

Recursos e información - ¡ Unete !● Portal internacional opensolaris.org=> (http://opensolaris.org)● kit de inicio OpenSolaris (KIOPS)=> (http://get.opensolaris.org/)● Comunidad Hispana OpenSolaris=> (http://es.opensolaris.org)● Lista de distribución(http://mail.opensolaris.org/mailman/listinfo/ug-sposug)● Canal IRC Hispano=> (irc://irc.freenode.net/opensolaris-es)● OpenSolaris Day y mas...

Page 39: Seguridad en Open Solaris

USE IMPROVE EVANGELIZE

Víctor M. Fernández GómezComunidad Hispana OpenSolaris (OSUG)

[email protected]://vfernandezg.blogspot.com

¡ Muchas Gracias !