• Save
Seguretat de Sistemes
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Seguretat de Sistemes

on

  • 465 views

 

Statistics

Views

Total Views
465
Views on SlideShare
465
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Seguretat de Sistemes Presentation Transcript

  • 1. SeguretatInstal·lació i SeguretatBàsicav2011/02 Carles Mateu i Ramon Bèjar Departament dInformàtica i Enginyeria Industrial Universitat de Lleida
  • 2. Tria distribució● Temps de vida manteniment ● Ubuntu: – Release: 6 mesos – Suport: 2 Releases anteriors – LTS Server: ● Release: 2 anys. Suport: 5 anys ● Fedora: – Release: 6 mesos – Suport: 2 Releases anteriors
  • 3. Tria distribució● CentOS (RedHat): – Release: Depen de RH Enterprise (1 any, approx, minor releases). – Suport: 4 anys (i seguretat 7 anys)
  • 4. Tria distribució● Funcionalitat: ● Generalistes. – Ubuntu, Fedora, Debian, CentOS, etc. ● Especialitzades. – Graus especialització: ● Baixa: – Centos ● Alta
  • 5. Tria distribució● Especialitzades: ● Servidors. ● Seguretat. ● Virtualització. ● Infraestructura.
  • 6. Servidors.● CentOS p.e. és “gairebé” especialitzada.● Manteniment llarg.● Poques (cap) eines ofimàtiques, etc.● Molt suport a eines serveis web, etc.
  • 7. Seguretat.● Especialització: ● Firewalls ● VPNs ● Antivirus ● Etc.● Interfícies web, consoles fàcils, bona actualització. ● m0nowall, smoothwall ● Untangle, clearos, zentyal
  • 8. Virtualització.● Consoles de gestió● Hosts● Fàcil migració màquines● Suport múltiples mecanismes virtualització Proxmox VE, Sun xVM, vmware ESX, etc.
  • 9. Infraestructura.● Servidors: ● Web, mail, VoIP, etc.● Infraestructura de xarxa: ● Routers ClearOS, Zentyal, Untangle, trixbox, openWRT, Freesco, RouterOS, vyatta, etc.
  • 10. Particionament● Instal·lació per defecte ● LVM (volums lògics) ● Particions – /boot : fitxers darranc – swap: espai dintercanvi – / : directori arrel (tot lespai restant)
  • 11. Particionament● Recomanacions de particions ● /tmp : Fitxers temporals. Mida suficient (depen de les aplicacions). Sha de crear partició perquè és un directori on tothom pot escriure, i, omplir així altres particions. ● /var: Emprat per serveis de sistema (daemon) per guardar-hi fitxers que canvien sovint (dades). Crear partició per evitar que un servei de sistema pugui esgotar espai de disc daltres particions.
  • 12. Particionament● /var/log : Fitxers de registre del sistema. 10Gbytes normalment és suficient, però dependrà de la durada que vulguem de registre.Sha de crear partició per evitar que un problema en un servei ompli una partició principal.● /var/log/audit : Registre del servei dauditoria del sistema. Si lemprem, crear partició.
  • 13. Particionament● /home : Si tenim directoris dusuari, crear partició.Evita que usuaris puguin omplir particions.Facilita migració de sistema operatiu: Atenció!!!● /boot : Fitxers del gestor darranc.Només cal si gestor darranc no suporta FS principal.Convenient per actualitzacions.Si preupgrade -> mida gran (suficient 250 Mbytes).
  • 14. Particionament● Particions xifrades: ● Ideals per portàtils: en cas de pèrdua de lequip les dades no son llegibles. ● No tant ideals per servidors: – Menor velocitat daccés a disc – Major dificultat de reparació – (més difícil “perdre” un servidor)
  • 15. Gestor darranc● Posar-hi paraula daccés ● Evita modificacions a la configuració del gestor darranc. ● SINGLE BOOT!!!
  • 16. Dispositius de xarxa● En servidors: ● Si no cal, no posar DHCP. ● Si cal, tampoc posar-lo. ● Mai. – Seqüència darranc de servidors no definida. – Massa fàcil atacar i liar-la.
  • 17. Dispositius de xarxa● Eliminar allò que no faci falta: ● IPv4: Generalment necessàri. ● IPv6: Generalment no fa falta.● Posar 2 DNS (millor 3)
  • 18. Paraula clau● Recomanacions: ● Mínim 12 caràcters ● Barreja: – Majúscules – Minúscules – Caràcters especials – Números ● No diccionari ● Truquet: Nmemotècniques
  • 19. Selecció de paquets● TOTS FORA.● Anar a selecció detallada i● TOT FORA: ● Especialment X.org ● Eines de desenvolupament● Millor seleccionar paquets individuals que “meta-paquets” o grups (menys paquets).
  • 20. Arrancada inicial● Firewall: ● Activat (en servidors difícilment justificable altra cosa).● SELinux: ● Enforcing (si ens ho podem permetre)
  • 21. Actualitzacions● Un cop instal·lat: yum check-update yum update● Important, especialment en màquines de producció: ● Comprovar abans daplicar els updates ● Mantenir actualitzada la màquina (si empreu distribucions orientades a servidor/establilitat)
  • 22. Actualitzacions● yum-updatesd ● Alguns consideren poc “madur” ●Desactivar: chkconfig yum-updatesd off● Actualització manual: yum -R 60 -y update yum yum -R 15 -y update ● Posar a cron.daily (recomanat) o weekly (fent un script)
  • 23. Actualitzacions● Vigilar molt al posar repositoris addicionals: ● Seguretat ● Conflictes de paquets ≥ Actualitzacions automàtiques fallides● Aprendre com funciona bé el sistema de gestió de paquets: ● Protecció de paquets/versions ● Múltiples nuclis ● Downgrading ● Signatura paquets
  • 24. Modificacions a fitxers● Instal·larem AIDE (Advanced Intrusion Detection Environment)● Això guarda una Base de Dades de checksums dels binaris, per comprovar que no hagi passat res extrany.
  • 25. Modificacions a fitxers● Instal·lació: yum install aide● Configuració a /etc/aide.conf (nosaltres deixarem valors per defecte).● Creem base de dades inicials: /usr/sbin/aide --init
  • 26. Modificacions a fitxers● Copiem base de dades creada: cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz● Fem un check: /usr/sbin/aide --check● Podem automatitzar el check (crontab): 0 3 * * * /usr/sbin/aide --check
  • 27. Modificacions a fitxers● Copiem base de dades, /usr/sbin/aide i /etc/aide.conf a mitjà de només lectura (per si de cas). I ens apuntem sha512sum del binari, la conf i la BBDD: sha512sum /usr/sbin/aide● Verifiquem RPMs: rpm -qVa rpm -qVa | awk $2 != “c” {print $0}
  • 28. Sistema de fitxers● Evitar dispositius a particions no root: Afegir nodev a aquelles particions ext2/ext3 que no siguin / (posar ,nodev a la columna 4 daquella partició)● Afegir nodev,nosuid,noexec a mitjans removibles.
  • 29. Sistema de fitxers● Permisos de fitxer: 1 2 3 4 5 6 7 8 9 10 - r w [xs] r w s r w t Fitxer 1. Tipus: - fitxer, d directori, l link, c disp. caràcter, b disp. bloc, s socket, p pipe 2. Lectura propietàri 3. Escriptura propietàri 4. Execució propietàri (x) + SetUID (s) 5. Lectura grup 6. Escriptura grup 7. Execució grup (x) + SetGID (s) 8. Lectura altres 9. Escriptura altres 10. Execució altres (x) + sticky (t) Molts cops es passa en OCTAL: [0-7][0-7][0-7][0-7]
  • 30. Sistema de fitxers● Restringir accés a dispositius des de consola. /etc/security/console.perms.d/50- default.perms ● Eliminar (comentar) línies a partir de permission definitions, de tipus: <console> 0600 <floppy> 0600 root.floppy <xconsole> 0600 /dev/console 0600 root.root ● Reduïr consola: <console>=tty[0-9][0-9]* vc/[0-9][0-9]* :0.[0-9] :0 <xconsole>=:0.[0-9] :0
  • 31. Sistema de fitxers - USB● Eliminar suport automontatge USB. A /etc/modprobe.conf afegir install usb-storage: Això evita autocàrrega de driver USB-storage (càrrega manual possible).● Eliminació suport USB storage (permanentment): find / -name “usb-storage.ko” --exec rm {} ;● Eliminació via bootloader: ● Afegir nousb a la línia kernel a /etc/grub.conf
  • 32. Sistema de fitxers● Eliminar automontatge: chkconfig autofs off● Si per alguna cosa sha de tenir GNOME/KDE/etc. Assegurar-nos de que no es faci automontage des de lentorn gràfic.● Eliminar suport de FS no requerits (hfs, hfsplus, udf, etc.). A modprobe.conf: install hfs /bin/true
  • 33. Sistema de fitxers● Permisos de passwd, etc. : A /etc: chown root:root passwd shadow group gshadow chmod 644 passwd group chmod 400 shadow gshadow● Sticky bits: find <part> -xdev -type d ( -perm -0002 -a ! -perm -1000 ) -print chmod +t <directori>
  • 34. Sistema de fitxers● Fitxers escribibles per tothom: find <part> -xdev -type f -perm -0002 -print chmod o-w <fitxer>● Executables SUID/SGID: find <part> -xdev -type f ( -perm -4002 -o -perm -2000) -print chmod -s <fitxer>
  • 35. Sistema de fitxers● Directoris escribibles per tothom amb propietari: find <part> -xdev -type d -perm -0002 -uid +500 -print● Orfes: find <part> -xdev ( -nouser -o -nogroup) -print
  • 36. Sistema de fitxers - Executables● Serveis de sistema: umask. A /etc/sysconfig/init umask 027● Core dumps. A /etc/security/limits.conf * hard core 0● Core dumps de suid. A /etc/sysctl.conf fs.suid_dumpable = 0 (comprovar-la després darrancar) sysctl fs.suid_dumpable
  • 37. Sistema de fitxers - Executables● Comprovar lactivació dExecShield, a /etc/sysctl.conf: kernel.exec-shield = 1 kernel.randomize_va_space = 1 (comprovar-la després darrancar) sysctl kernel.exec-shield sysctl kernel.randomize_va_space
  • 38. Sistema de fitxers - Executables● Si disposem a BIOS de NX (No Execute, AMD) o XD (Execute Disable, Intel), assegurar-nos de tenir-ho activat.● Comprovar-ne soport: /proc/cpuinfo -> pae,nx● Si 32bits i suport de PAE/NX assegurar-nos de tenir kernel PAE: yum install kernel-PAE
  • 39. Control daccés● Restringir laccés a root a només: ● console, tty[1-9] (i si requerit ttyS[0-9]) (a /etc/securetty)● Limitar capacitat de su: ● Comprovar existència de grup wheel ● Només grup wheel pot fer su. A /etc/pam.d/su: auth required pam_wheel.so use_uid
  • 40. Control daccés● Emprar sudo per comandes de root %wheel ALL=(ALL) ALL (a /etc/sudoers)● Editar amb visudo!
  • 41. Control daccés● Restringir login a comptes de sistema (no root): ● Buscar comptes de sistema: awk -F: {print $1 ”:” $3 ”:” $7} /etc/passwd ● Identificar-ne els de sistema● Per cada compte de sistema (no root) ● Bloquejar: usermod -L <compte> ● Eliminar shell: usermod -s /sbin/nologin <compte>
  • 42. Control daccés● Revisar la política dexpiració de passwords.● A /etc/login.defs ● PASS_MAX_DAYS 60 ● PASS_MIN_DAYS 7 ● PASS_MIN_LEN 8 ● PASS_WARN_AGE 7● Aplicar a usuaris individuals: chage -M 60 -m 7 -W 7 <usuari>
  • 43. Control daccés● Crear un grup únic per cada usuari (automàtic si no emprem -g al crear usuaris).● Crear un grup que tingui tots els usuaris humans del sistema groupadd <grup> usermod -G <grup> <usuari> ● Permet restringir algunes comandes a usuaris humans (p.e. eines de lentorn gràfic): chgrp <grup> <fitxer> chmod 750 <fitxer>
  • 44. Control daccés● Demanar autenticació en single boot Es trivial arrancar en single (si podem modificar el bootloader) i trencar la seguretat del sistema. Afegir a /etc/inittab: ~:S:wait:/sbin/sulogin● Eliminar arrancada interactiva. A /etc/sysconfig/init: PROMPT=no
  • 45. PAM● Implementa autenticació modular● Objectes que podem carregar/descarregar cada cop que sha dautenticar un usuari● Permet configurar combinacions múltiples de seguretat de forma fàcil.● Permet afegir nous sistemes dautenticació (smartcard, biométrics, etc.) sense dificultat● Configuració a /etc/pam.d/<servei> Servei system-auth configuració base daltres serveis.
  • 46. PAM● Tenim 2 móduls per qualitat de passwords: pam_cracklib i pam_passwdqc(*)● pam_cracklib (a /etc/pam.d/system-auth):● Buscar: password requisite pam_cracklib.so try_first_pass retry=3● Canviar per password required pam_cracklib.so try_first_pass retry=3 minlen=12 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0
  • 47. PAM● Instal·lar pam_passwdqc yum install pam_passwdqc● Més potent que pam_cracklib● Buscar (a /etc/pam.d/system-auth): password requisite pam_cracklib.so try_first_pass retry=3● Canviar per password requisite pam_cracklib.so try_first_pass retry=3 minlen=12 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0
  • 48. PAM● Móduls (inclosos): ● pam_unix : Autenticació, gestió passwords, etc. tradicionals. ● pam_deny: Denegació permanent. ● pam_warn: logging a syslog ● pam_nologin: si ∃/etc/nologin, només root entra, altres veuen contingut de nologin ● pam_tally2: Bloqueig usuaris si fallen login.
  • 49. PAM● Móduls (addicionals): ● pam_ldap: usa LDAP per gestionar usuaris. ● pam_smb: usa servidor SMB. ● pam_krb5: usa Kerberos 5. ● pam_ccreds: caché autenticació ● pam_pkcs11: autenticació PKCS #11/NSS
  • 50. SELINUX● SELinux és un mecanisme de seguretat de guarda que controla: ● Males configuracions de serveis/daemons ● Control daccés a fitxers per part de programes
  • 51. SELINUX● Model tradicional UNIX: DAC (Discretrionary Access Control). ● Processos pertanyen a un usuari/grup ● Fitxers pertanyen a usuari/grup ● Permisos per propietàri/grup/altres ● Permís final: en funció del usuari/grup+permisos de fitxer
  • 52. SELINUX● SELinux proporciona control MAC (Mandatory Access Control): ● Cada procés i cada objecte del sistema té un security context ● Això és un label que conté informació detallada de lobjecte. ● Per que un procés accedeixi a un objecte si està permés per unes regles (relatives al contexte)
  • 53. SELINUX● SELinux també defineix transicions de contextes (canvis en funció de regles) ● Un usuari pot executar un procés, però aquest pot estar corrent amb un context diferent (més restrictiu, p.e.).● No substitueix DAC, sinó que sha de complir DAC+MAC. ● SELinux només pot augmentar la seguretat, no afeblir-la.
  • 54. SELINUX● Definir la política és complexe. 2(3,4,..) disponibles ja definides: ● targeted: Regles de tipus TE (Type Enforcement) i algunes RBAC (Role Based Access Control). Restringeix molts serveis, deixa llibertat als usuaris “humans” ● strict: Regles de tipus TE (Type Enforcement) i moltes RBAC (Role Based Access Control). Afecta a molts programes del sistema.
  • 55. SELINUX ● Activació de SELinux a /etc/selinux/config:# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - No SELinux policy is loaded.SELINUX=enforcing# SELINUXTYPE= can take one of these two values:# targeted - Targeted processes are protected,# mls - Multi Level Security protection.SELINUXTYPE=targeted Revisar a /etc/grub.conf: ● selinux=0 ● enforcing=0
  • 56. SELINUX ● Accés:[root@udlnet-08-096 ~]# sestatusSELinux status: enabledSELinuxfs mount: /selinuxCurrent mode: enforcingMode from config file: enforcingPolicy version: 21Policy from config file: targeted
  • 57. SELINUX● Informació de problemes: ● SETroubleshoot: dona informació (visual) dels problemes. En servidors -> innecessàriachkconfig setroubleshoot offyum erase setroubleshoot
  • 58. SELINUX● Buscar problemes de mala configuració (o no configuració):ps -eZ | egrep “initrc” | egrep -vw “tr|ps|egrep|bash|awk” | tr : | awk {print$NF} Busca daemons que hagin rebut els labels de initrc_t (per no estar configurats).
  • 59. SELINUX● Buscar dispositius no configurats:ls -Z /dev | grep unlabeled_t No nhi hauria dhaver cap
  • 60. SELINUX● Les polítiques ja existents són, generalment, suficients.● yum search selinux-policy-*● Definir polítiques (selinux-polgengui del paquet): policycoreutils-gui (yum install policycoreutils-gui)● No a la màquina segura!
  • 61. SELINUX● SELinux targeted són regles que permeten a un subjecte de fer algunes operacions en alguns objectes.● La informació daquestes decisions de seguretat es guarda al AVC (Access Vector Cache).● Les denegacions les registra el daemon audit (/var/log/audit/audit.log o /var/log/messages) i setroubleshoot
  • 62. SELINUX● En cas derrors dexecució (si se sospita de SELinux). ausearch -m AVC, USER_AVC -sv no ● Llistarà tots els missatges devents de tipus AVC i USER_AVC (Access Vector Cache) que hagin estat negatius. ps -p <PID> -Z ● Mirar en quin contexte està un procés (PID) ls -Z <fitxer> ● Mirar en quin contexte està un fitxer
  • 63. SELINUX● En quins casos hi ha un AVC denial: ● El programa està amb el contexte incorrecte. – Contexte incorrecte a lexecutable ● Lobjecte usat no té el contexte correcte: – Reconfiguracions o canvis restorecon -v FITXER ● Mala configuració de la política system-config-selinux semanage
  • 64. SELINUX● En quins casos hi ha un AVC denial: ● Procés i objecte estan correctes, però no hi ha cap política que lligui procés i objecte. Si ja hi ha policy, per arreglar-ho: system-config-selinux getsebool/setsebool Per crear-ne un: ausearch -m AVC -sv no -ts recent | audit2allow
  • 65. SELINUX● Endurir SELinux● Revisar els booleans (controls/configuracions). ● Un boolean és una variable que indica si una cosa es permesa (a nivell de sistema global o dobjecte). getsebool -a ● A /usr/share/doc/selinux-policy-*/html/ hi ha la descripció de tots els paràmetres possibles.
  • 66. SELINUX● Editar la política (selinux-polgengui)
  • 67. SELINUX● Editar la política (selinux-polgengui)
  • 68. SELINUX● Editar la política (selinux-polgengui)
  • 69. SELINUX● Editar la política (selinux-polgengui)
  • 70. SELINUX● Editar la política (selinux-polgengui)
  • 71. SELINUX● Editar la política (selinux-polgengui)
  • 72. SELINUX● Editar la política (selinux-polgengui)
  • 73. SELINUX● Editar la política (selinux-polgengui)
  • 74. SELINUX● Editar la política (selinux-polgengui)
  • 75. SELINUX● Editar la política (selinux-polgengui)
  • 76. SELINUX● Canviar la política: ● minimum ● targeted ● strict ● MLS (Per ordre creixent de seguretat). targeted és la recomanada, strict si ens ho podem permetre. Si ho canviem, cal re-etiquetar el disc: touch /.autorelabel autorelabel (al grub)
  • 77. Logging ● Assegurar-nos que els logs son correctes (/etc/syslog.conf)kern.* /var/log/kernel.logauth,user* /var/log/messages.logdaemon.* /var/log/daemon.logsyslog.* /var/log/syslog.loglocal0,local1,local2,local3,local4,local5,local6.* /var/log/unused.log*.info;mail.none;authpriv.none;cron.none /var/log/messagesauthpriv.* /var/log/securemail.* -/var/log/maillogcron.* /var/log/cron*.emerg *uucp,news.crit /var/log/spoolerlocal7.* /var/log/boot.log
  • 78. Logging● Revisar els permisos dels fitxers log (han dexistir, i tenir (root:root, 0600).● Assegurar-nos de que hi ha rotació correcta de logs: ● /etc/logrotate.conf i /etc/logrotate.d/* ● Tenir espai per guardar-los
  • 79. Logging● En instal·lacions grans o crítiques: enviar logs a servidor de logs. ● A /etc/syslog.conf *.* @serverlog.udl.cat ● Al receptor, a /etc/sysconfig/syslog: SYSLOGD_OPTIONS=”-m 0 -r -s udl.cat”● Al receptor tenir espai de disc i logrotate correctament, encara és més crític.
  • 80. Logging● Al servidor emprar monitorització de logs (o a tots els hosts si no tenim centralitzat).● Eina disponible Logwatch● Assegurar-nos que està a /etc/cron.daily● Configuració mínima (/etc/logwatch/logwatch.conf): HostLimit = no SplitHosts = yes MultiEmail = no Service = -zz-disk_space
  • 81. Auditing● Disposem deines dauditing als sistemes, emprarem auditd● auditd està capacitat fins i tot per complir requeriments de Defensa USA.● Activació: chkconfig auditd on● Les dades es guarden a /var/log/audit/audit.log
  • 82. Auditing● Configuració a /etc/audit/audit.conf● Assegurar-nos de que tenim espai.● En instal·lacions crítiques, es recomana que en cas de no poder fer audit, saturi la màquina. max_log_file = MIDA● Audit guarda 4 fitxers de MIDA per defecte.
  • 83. Auditing● Recomanat: partició per audit.● Si hem daturar en cas de no poder auditar: space_left_action = mail action_mail_acct = root admin_space_left_action = halt● Audit rota logs si va curt despai, si cal retenir- los: max_log_file_action = keep_logs
  • 84. Auditing● Assegurar-nos que els processos arrancats a init també fan audit: audit=1 (a grub.conf)● Tenim jocs de regles ja preparats (/usr/share/doc/audit*/*rules) capp.rules lspp.rules nispom.rules stig.rules● Corresponen a recomanacions de NSA.● STIG la més interessant (i suficient). cp /usr/share/doc/audit*/stig.rules /etc/audit/audit.rules
  • 85. Auditing● aureport ens llista el que passa.● Per veure els intents de login davui i ahir: aureport -l -i -ts yesterday -te today● Per veure anomalies (dispositius a mode promisc, processos morint extranyament, etc.). aureport --anomaly
  • 86. AuditingSummary Report======================Range of time in logs: 18/03/10 20:54:29.316 - 15/04/10 17:01:01.503Selected time for report: 18/03/10 20:54:29 - 15/04/10 17:01:01.503Number of changes in configuration: 9Number of changes to accounts, groups, or roles: 0Number of logins: 6Number of failed logins: 4Number of authentications: 6Number of failed authentications: 3Number of users: 1Number of terminals: 7Number of host names: 4Number of executables: 5Number of files: 0Number of AVCs: 1Number of MAC events: 22Number of failed syscalls: 0Number of anomaly events: 0Number of responses to anomaly events: 0Number of crypto events: 0Number of keys: 0Number of process IDs: 24Number of events: 138