SlideShare ist ein Scribd-Unternehmen logo
1 von 75
WALC 2011
           Track 6. Seguridad Informática


                  Principios de seguridad en
                             Linux

                                                     José F. Torres M.
                                      Universidad de Los Andes
                                                 Merida, Venezuela

14/09/11          Principios de seguridad en Linux                       1
Agenda
1.    Sistemas de archivos
2.    Sistema de Bitácoras (Logs)
3.    Control de acceso de red
4.    Técnicas de autentificación
5.    Cortafuegos de host
6.    Protección de conexiones de red
7.    Sistema de detección de intrusos de Host IDSH
8.    SELinux
9.    Pruebas y monitoreo del sistema
10.   Pasos básicos para mantener sus sistema seguro
14/09/11          Principios de seguridad en Linux   2
Sistemas de archivos




14/09/11      Principios de seguridad en Linux   3
1   Sistemas de archivos
• El sistema de archivo representa la
  primera línea básica de defensa.
• Una norma básica de seguridad radica
  en la asignación a cada usuario sólo
  de los permisos necesarios para
  poder cubrir las necesidades de su
  trabajo sin poner en riesgo el trabajo
  de los demás.

14/09/11         Principios de seguridad en Linux   4
1     Sistemas de archivos
•   Riesgos
    •      Dentro del sistema Linux todo son archivos:
           desde la memoria física del equipo, hasta todos
           los periféricos
    •      Un simple error en un permiso puede permitir a
           un usuario modificar todo el disco duro, o leer
           los datos tecleados desde una Terminal etc.




14/09/11              Principios de seguridad en Linux   5
1   Sistemas de archivos
•   El sistema de archivos es la parte del
    núcleo (Kernel) mas visible por los
    usuarios;    se   encarga    de    abstraer
    propiedades físicas de los       diferentes
    dispositivos para proporcionar una interfaz
    única de almacenamiento: el archivo.
•   Cada sistema Linux tiene su sistema de
    archivos nativo. (ejemplo ext4, raiserFS,
    etc.)


14/09/11         Principios de seguridad en Linux   6
1   Sistemas de archivos
• Un primer criterio para mantener un
  sistema seguro es una correcta
  distribución      del    espacio      de
  almacenamiento.
• Esto limita el riesgo de que el
  deterioro de una partición afecte a
  todo el sistema. La pérdida se
  limitaría al contenido de esa partición.

14/09/11         Principios de seguridad en Linux   7
1     Sistemas de archivos
•   Tamaño de las particiones
    • No hay unas normas generales aplicables; el uso
      al que vaya destinado el sistema y la experiencia
      son las bases de la decisión adecuada, aunque
      por lo general se recomienda:

           • Si el sistema va a dar servicio a múltiples
             usuarios que requieren almacenamiento
             para sus datos es conveniente que el
             directorio /home tenga su propia partición.
           • Si el equipo va a ser un servidor el
             directorio /var o incluso /var/spool deberían
             tener su propia partición.


14/09/11              Principios de seguridad en Linux   8
1     Sistemas de archivos
•   Tamaño de las particiones (continuación)

           • Debe dimensionar cuidadosamente la
             partición raíz.
           • El   directorio    /usr/local  contiene   los
             programas compilados e instalados por el
             administrador. Resulta conveniente usar
             una partición propia para proteger estos
             programas       personalizados   de   futuras
             actualizaciones del sistema. Este criterio
             también se puede aplicar al directorio /opt.



14/09/11              Principios de seguridad en Linux   9
1    Sistemas de archivos
•   Montaje de las particiones

       •   Permita los mínimos privilegios en las
           opciones de montado de las particiones
       •   Noexec donde sea posible
       •   Nodev en todas las particiones excepto en
           la raiz y en las particiones enjauladas
           (chroot)
       •   Nosetuid donde sea posible excepto en la
           raiz



14/09/11           Principios de seguridad en Linux   10
1    Sistemas de archivos
•   Montaje de las particiones

       •       auto - Mount automatically at boot, or when
               the command mount -a is issued.
       •       noauto - Mount only when you tell it to.
       •       exec - Allow execution of binaries on the
               filesystem.
       •       noexec - Disallow execution of binaries on the
               filesystem.
       •       ro - Mount the filesystem read-only.
       •       rw - Mount the filesystem read-write.
       •       nodev - Don't interpret block special devices
               on the filesystem.


    14/09/11               Principios de seguridad en Linux     11
1     Sistemas de archivos
•   Montaje de las particiones

       •       suid - Allow the operation of suid, and sgid
               bits. They are mostly used to allow users on a
               computer      system      to  execute      binary
               executables      with    temporarily    elevated
               privileges in order to perform a specific task.
       •       nosuid - Block the operation of suid, and sgid
               bits.
       •       defaults - the default mount options for the
               filesystem to be used. The default options for
               ext3 are: rw, suid, dev, exec, auto, nouser,
               async



    14/09/11                Principios de seguridad en Linux       12
1      Sistemas de archivos
•   Un ejemplo de las banderas de montaje

# <file system>   <mount point>        <type>      <options>                    <dump>   <pass>
proc              /proc                proc        defaults                              0    0
/dev/sda2         /                    ext3        errors=remount-ro                     0    1
/dev/sda1         /boot                ext3        defaults,nosuid,noexec,nodev          0    2
/dev/sda5         /home                ext3        defaults,nosuid,nodev                 0    2
/dev/sda11        /opt                 ext3        defaults                              0    2
/dev/sda9         /tmp                 ext3        defaults,bind,nosuid,noexec,nodev     0    2
/dev/sda6         /usr                 ext3        defaults,ro,nodev                     0    2
/dev/sda10        /usr/local           ext3        defaults                              0    2
/dev/sda7         /var                 ext3        defaults,nosuid                       0    2
/dev/sda8         /var/log             ext3        defaults,nosuid,noexec,nodev          0    2




      14/09/11                    Principios de seguridad en Linux                       13
1.1 Protección de archivos
• Permisos de un archivo
    •      Los permisos de cada archivo son la protección
           mas básica de estos objetos del sistema
           operativo; definen quien puede acceder a cada
           uno de ellos, y de que forma puede hacerlo.
           Cuando hacemos un ls -l podemos ver sus
           permisos    junto     al   tipo    de   archivo
           correspondiente, en la primera columna de cada
           línea:
    user:~# ls -l texto.txt
    -rw-r--r--     1 user electric       512 Aug 3 2011 texto.txt


14/09/11               Principios de seguridad en Linux             14
1.1 Protección de archivos
  •    Permisos de un archivo (continuación)
  •    Propiedad:
       •  Qué usuario y grupo posee el control de los
          permisos del i-nodo. Se almacenan como dos
          valores numéricos, el uid (user id) y gid (group id).
  •    Permisos:
       • Bits individuales que definen el acceso a un Archivo
          o directorio. Los permisos para directorio tienen un
          sentido diferente a los permisos para Archivos. Más
          abajo se explican algunas diferencias.




14/09/11              Principios de seguridad en Linux      15
1.1 Protección de archivos
 •    Permisos de un archivo (continuación)
 •    Lectura (r):
      •  Archivo: Poder acceder              a los contenidos de un
         Archivo
      • Directorio: Poder leer               un directorio, ver qué
         Archivos contiene
 •    Escritura (w):
      • Archivo: Poder modificar              o añadir contenido a un
         Archivo
      • Directorio: Poder borrar             o mover Archivos en un
         directorio


14/09/11             Principios de seguridad en Linux              16
1.1 Protección de archivos
 • Permisos      de                            un     archivo
   (continuación)

 •    Ejecución(x):
      • Archivo: Poder ejecutar un programa binario o
         guión de shell
      • Directorio: Poder entrar en un directorio




14/09/11           Principios de seguridad en Linux         17
1.1 Protección de archivos
 • Permisos      de                                    un     archivo
   (continuación)
 •    Adicionalmente existe los “sticky bits” para el SUID,
      SGID estos nos conceden permisos especiales.
 •    El SUID se muestra como una s en la columna de
      ejecución de propietario, y nos permite ejecutar ese
      archivo como el propietario del mismo.
 •    El SGID aparece en la columna de ejecución del grupo,
      y nos permite ejecutar ese archivo como el parte del
      grupo al cual pertenece el mismo
           ls -lah /usr/bin/passwd
           -rwsr-xr-x 1 root root 31K 2011-10-14 10:11 /usr/bin/passwd


14/09/11                   Principios de seguridad en Linux              18
1.1 Protección de archivos
  • Permisos      de      un                        archivo
    (continuación)
  • Atributos de un archivo
       • En el sistema de archivos de Linux
         existen ciertos atributos para los
         archivos   que     pueden    ayudar a
         incrementar la seguridad de un
         sistema. Estos atributos son:



14/09/11         Principios de seguridad en Linux        19
1.1 Protección de archivos
             Atributo                  Significado


             A                         Dont update Atime


             S                         Synchronous
                                       updates


             a                         Append only


             c                         Compressed file

             i                         Immutable file

             d                         No Dump

             s                         Secure deletion

             u                         Undeletable

14/09/11                Principios de seguridad en Linux   20
1.2 Listas de control de
           acceso
•   Listas de control de acceso (ACLs Access
    Control Lists)
•   Las ACL proveen de un nivel adicional de seguridad a
    los archivos extendiendo el clásico esquema de
    permisos en Unix
•   Las ACLs van a permiten asignar permisos a usuarios
    o grupos concretos; por ejemplo, se pueden otorgar
    ciertos permisos a dos usuarios sobre unos archivos
    sin necesidad de incluirlos en el mismo grupo.
•   No todos los sistemas de archivos las soportan.
•   Las banderas de montaje se deben cambiar para
    poder usarlas.
14/09/11           Principios de seguridad en Linux   21
1.3 Almacenamiento seguro
•       Cifrado de archivos:
    •      GnuPG: Gnu Privacy Guard
    •      TCFS: Transparent Cryptographic File System
    •      Cryptographic File System CFS
    •      TrueCrypt
    •      OpenSSL
    •      EncFS
    •      Cryptoloop
    •      Loop-AES
    •      Crypto-FS




14/09/11               Principios de seguridad en Linux   22
Sistema de Bitácoras (Logs)




14/09/11          Principios de seguridad en Linux   23
2   Sistema de Bitácoras
•     El sistema de bitácoras de Linux permite
      registrar, casi todos los eventos que ocurren
      en el sistema.
•     Las bitácoras pueden ser utilizadas para
      detectar actividades sospechosas en el
      sistema.
•     Las bitácoras pueden ser almacenadas de
      forma local o remota.
•     Estas por lo general son llevadas por el
      demonio syslog
    14/09/11        Principios de seguridad en Linux   24
2    Sistema de Bitácoras
•     El demonio syslog (syslogd o syslog-ng)
      • El demonio syslogd es el encargado de recolectar los
          datos de los eventos del sistema y demás actividades
          dependiendo       de    su   archivo de   configuración
          (/etc/syslogd.conf o /etc/syslog-ng/syslog-ng.conf ).
      • Los logs creados por el syslog son comúnmente usado
          por los IDS-Host
      • Los archivos de salida del syslog son en texto plano lo
          cual facilita su visualización
      • Los archivo de logs se encuentran por lo general en
          /var/logs/
      • Todas las entradas que presenta syslog tienen como
          mínimo una fecha y una hora, el nombre de la
          maquina y del programa que generó el evento.
    14/09/11            Principios de seguridad en Linux      25
2     Sistema de Bitácoras
•   Existen diferentes tipos de archivos de log dependiendo
    de la información. Por ejemplo, existe un archivo de log
    del sistema, un archivo de log para los mensajes de
    seguridad y un archivo de log para las tareas cron.
•   Los logs del sistema deben ser rotados periódicamente
    para poder disminuir su tamaño
•   Los logs pueden ser comprimidos
•   Los parámetros y la cantidad de logs que se guardan en
    el sistema dependerán en parte de la capacidad de los
    discos duros.




14/09/11            Principios de seguridad en Linux      26
2      Sistema de Bitácoras
•   Archivos de logs mas comunes:

    •      /var/log/syslog: es el archivo de log mas
           importante del sistema; en el se guardan mensajes
           relativos a la seguridad de la maquina, como los
           accesos o los intentos de acceso a ciertos servicios.
           No obstante, este archivo es escrito por syslogd, por
           lo que dependiendo de nuestro archivo de
           configuración encontraremos en el archivo una u otra
           información.




14/09/11                Principios de seguridad en Linux      27
2 Sistema de Bitácoras

  •    Archivos de logs mas comunes:
       (continuación)

       •   /var/log/messages : En este archivo se
           almacenan     datos   ’informativos’  de    ciertos
           programas, mensajes de baja o media prioridad
           destinados mas a informar que a avisar de sucesos
           importantes, como información relativa al arranque
           de la maquina.




14/09/11              Principios de seguridad en Linux    28
Control de acceso de red




14/09/11        Principios de seguridad en Linux   29
3    Control de acceso de red
•      Inetd
•      En las primeras versiones de Unix, para hacer funcionar un
       servicio de red se ejecutaban programas diferentes que
       atendían a cada uno. Al crecer el número de servicios que
       se necesitaban, se optó por una mejor idea, se empezó a
       utilizar un sólo demonio llamado /etc/inetd (El daemon de
       Internet). Este programa escuchaba en varios puertos a la
       vez y ejecutaba los servidores que se necesitaran en el
       momento en que se recibía la petición de conexión.




    14/09/11            Principios de seguridad en Linux     30
3      Control de acceso de red
•   Inetd como funciona
•   Cuando un host cliente intenta conectarse a un servicio de
    red controlado por inetd, el súper servicio recibe la petición y
    verifica por cualquier regla de control de acceso wrappers
    TCP.
•   Si se permite el acceso, inetd verifica que la conexión sea
    permitida bajo sus propias reglas para ese servicio y que el
    servicio no esté consumiendo más de la cantidad de recursos
    o si está rompiendo alguna regla. Luego comienza una
    instancia del servicio solicitado y pasa el control de la
    conexión al mismo.
•   Una vez establecida la conexión, inetd no interfiere más con
    la comunicación entre el host cliente y el servidor.


14/09/11              Principios de seguridad en Linux           31
3      Control de acceso de red
•   TCP wrappers
•   El wrappers TCP proporciona control de acceso basado en
    host a los servicios de red. El componente más importante
    dentro del paquete es la librería /usr/lib/libwrap.a. En
    términos generales, un servicio wrappers TCP es uno que ha
    sido compilado con la librería libwrap.a.
•   Cuando un intento de conexión es hecho a un servicio
    wrapped TCP, el servicio primero referencia los archivos de
    acceso de host (/etc/hosts.allow y /etc/hosts.deny) para
    determinar si el cliente tiene permitido conectarse. Luego
    utiliza el demonio syslog (syslogd) para escribir el nombre
    del host solicitante y el servicio solicitado a /var/log/secure
    o /var/log/messages.



14/09/11              Principios de seguridad en Linux           32
3      Control de acceso de red
•   TCP wrappers
•   Si a un cliente se le permite conectarse, los TCP wrappers
    liberan el control de la conexión al servicio solicitado y no
    interfieren más con la comunicación entre el cliente y el
    servidor.
•   Además del control de acceso y registro, los TCP wrappers
    pueden activar comandos para interactuar con el cliente
    antes de negar o liberar el control de la conexión al servicio
    solicitado.
•   Puesto que los TCP wrappers son una utilidad de gran valor
    a las herramientas de seguridad de cualquier administrador
    de servidor. Algunas de los demonio que utilizan TCP
    wrappers      son /usr/sbin/sshd, /usr/sbin/sendmail, y
    /usr/sbin/inetd.


14/09/11              Principios de seguridad en Linux          33
3        Control de acceso de red
•   TCP wrappers (ejemplo)
•   /etc/hosts.allow
       •   sshd: 192.168.1.0/255.255.255.0
•   /etc/hosts.deny
       ALL: ALL: SPAWN ( 
              echo -e "n
              TCP Wrappers: Connection refusedn
              By: $(uname -n)n
              Process: %d (pid %p)n
              User: %un
              Host: %cn
              Date: $(date)n
            " | /usr/bin/mail -s "Connection to %d blocked" root) &




14/09/11                 Principios de seguridad en Linux             34
Técnicas de autentificación




14/09/11         Principios de seguridad en Linux   35
4 Técnicas de
             autentificación
• Método clásico
    •      Uso del archivo /etc/passwd
    •      El problema una atacante podría tratar de romper la
           contraseña, aunque esto es poco probable, el
           atacante cifrara una palabra junto a un determinado
           salt, y comparar el resultado con la cadena
           almacenada en el archivo de claves.




14/09/11               Principios de seguridad en Linux     36
4 Técnicas de
             autentificación
• Método clásico
    •      De esta forma, un atacante puede leer el archivo
           /etc/passwd y mediante un programa “crackeador”
           como Crack o John the Ripper cifrará todas las
           palabras de un archivo denominado diccionario,
           comparando el resultado obtenido en este proceso
           con la clave cifrada del archivo de contraseñas; si
           ambos coinciden, ya ha obtenido una clave para
           acceder al sistema de forma no autorizada




14/09/11               Principios de seguridad en Linux     37
4 Técnicas de
           autentificación
• Shadow Password
•   La idea básica de este mecanismo es impedir que los
    usuarios sin privilegios puedan leer el archivo donde se
    almacenan las claves cifradas. En equipos con
    /etc/shadow el archivo /etc/passwd sigue siendo legible
    para todos los usuarios, pero a diferencia del mecanismo
    tradicional, las claves cifradas no se guardan en él, sino
    en el archivo /etc/shadow, que sólo el root puede leer.




14/09/11             Principios de seguridad en Linux       38
4 Técnicas de
           autentificación
• Shadow Password
•   El aspecto de /etc/shadow es en cierta forma similar al
    de /etc/passwd que ya hemos comentado: existe una
    línea por cada usuario del sistema, en la que se
    almacena su login y su clave cifrada. Sin embargo, el
    resto de campos de este archivo son diferentes;
    corresponden a información que permite implementar
    otro mecanismo para proteger las claves de los usuarios.




14/09/11            Principios de seguridad en Linux      39
4 Técnicas de
             autentificación
• Claves de un solo uso (one time
  password)
           • Tokens de hardware
• Autentificación por medio de llaves




14/09/11             Principios de seguridad en Linux   40
4 Técnicas de
            autentificación
• Sistemas de autentificación de red
  centralizadas

    •      LDAP
    •      Kerberos
    •      Radius
    •      Nis+



14/09/11              Principios de seguridad en Linux   41
4          Técnicas de autentificación

  • Otras métodos de autentificación
  • PAM (Pluggable Authentication Module)
       •   PAM no es un modelo de autenticación en sí, sino
           que se trata de un mecanismo que proporciona una
           interfaz entre las aplicaciones de usuario y
           diferentes métodos de autenticación, tratando de
           esta forma de solucionar uno de los problemas
           clásicos de la autenticación de usuarios




14/09/11             Principios de seguridad en Linux    42
4          Técnicas de autentificación

 • PAM
      •    Mediante PAM podemos comunicar a nuestra
           aplicaciones con los métodos de autenticación que
           deseemos de una forma transparente, lo que
           permite integrar las utilidades de un sistema Unix
           clásico (login, ftp, telnet...) con esquemas
           diferentes del habitual password: claves de un solo
           uso,    biométricos,    tarjetas  inteligentes...




14/09/11              Principios de seguridad en Linux      43
4          Técnicas de autentificación


    AM
    l PAM también se puede utilizar para modificar como se
    almacenan las contraseñas y cambiar parámetro tales
    como: tamaño mínimo o máximo, reusó de contraseñas,
    tiempo de vencimiento, entre otros.

    or ejemplo


    assword   required   pam_unix.so nullok obscure min=6 max=11 md5

14/09/11                  Principios de seguridad en Linux             44
Protección de conexiones de red




14/09/11            Principios de seguridad en Linux   45
5          Protección de conexiones de red

• Para proteger las conexiones de red
  Linux puede usar herramientas y
  protocolos tales como tales como:
       •    Ssh, tuneles
       •    Ipsec
       •    CIPE
       •    Vtun
       •    PKI
       •    OpenVPN
       •    FreeS/WAN
       •    Stunnel
14/09/11             Principios de seguridad en Linux   46
Cortafuegos de host




14/09/11      Principios de seguridad en Linux   47
6    Cortafuegos de host
• Utilice políticas por omisión tales
  como:
    • Para iptables:
           • iptables -P INPUT DROP
           • iptables -P OUTPUT DROP
           • iptables -P FORWARD DROP
    • Para iptables en IPv6:
           • ip6tables -P INPUT DROP
           • ip6tables -P OUTPUT DROP
           • ip6tables -P FORWARD DROP

14/09/11            Principios de seguridad en Linux   48
14/09/11   Principios de seguridad en Linux   49
6   Cortafuegos de host
• También puede utilizar paquetes tales
  como:
   • Firestarter
   • Shorewall
   • TuxFrw
   • KmyFirewall
   • knetfilter

14/09/11         Principios de seguridad en Linux   50
6       Cortafuegos de host
• Parámetros del kernel:
       •   icmp_echo_ignore_all: Ignore todas los peticiones ICMP
           ECHO. Habilitando esta opción se previene que el host
           responda a peticiones ping.
       •   icmp_echo_ignore_broadcasts:        Ignore    todas   las
           peticiones ICMP ECHO con destino broadcast o
           muliticast. Esto evita que su red sea utilizada como red
           amplificadora de ataques
       •   ip_forward: Hablita o deshabilita el enrutamiento IP
           entre interfaces
       •   tcp_syncookies: Protégé de ataques “SYN Attack”.
       •   rp_filter: habilita la protección de que solo se reciben
           paquetes con origen que concuerde con la interfaz
14/09/11               Principios de seguridad en Linux           51
6       Cortafuegos de host
       •   Parámetros del kernel (Continuación):

       •   secure_redirects: Solo acepte paquetes ICMP para los
           enrutadores.
       •   log_martians: Escriba en el log los paquetes con
           direcciones privadas o imposibles.
       •   accept_source_route: Habilita o deshabilita el recibir
           paquetes enrutados por origen




14/09/11               Principios de seguridad en Linux        52
Sistema de detección de intrusos de Host
                  IDSH
                  IDS de target




 14/09/11     Principios de seguridad en Linux   53
7      IDS de target
• Tripwire:
•   El software de aseguramiento de integridad de los datos
    Tripwire, monitorea la consistencia de archivos y directorios
    de sistema críticos identificando todos los cambios hechos a
    ellos. Esto lo hace mediante un método automatizado de
    verificación que se ejecuta a intervalos regulares. Si
    Tripwire detecta que uno de los archivos monitoreados ha
    sido cambiado, lo notifica al administrador del sistema vía
    email. Debido a que Tripwire puede fácilmente identificar los
    archivos que son modificados, agregados o eliminados, se
    agiliza el proceso de recuperación luego de una entrada
    forzada pues mantiene el número de archivos que deben
    ser restaurados a un mínimo.

14/09/11              Principios de seguridad en Linux         54
7     IDS de target
• Tripwire:
•   Estas habilidades hacen de Tripwire una herramienta
    excelente para los administradores de sistemas que
    requieren tanto de facilidades para detección de intrusos
    como de control de daños para sus servidores.
•   Tripwire compara los archivos y directorios con una base de
    datos de la ubicación de archivos, las fechas en que han
    sido modificados y otros datos. Tripwire genera la base
    tomando una instantánea. Esta base de datos contiene
    fundamentos — los cuales son instantáneas de archivos y
    directorios específicos en momentos particulares. Los
    contenidos de la base de datos de fundamentos deberían
    ser generados antes de que el sistema esté en riesgo, esto
    es antes de que se conecte a la red.
14/09/11             Principios de seguridad en Linux        55
7      IDS de target
•   Tripwire:
•   Después de crear la base de datos de fundamentos, Tripwire compara
    la base de datos actual con la base de datos de fundamentos e informa
    de cualquier modificación, adición o eliminación.

•   Otras alternativas
    •       AIDE (Advanced Intrusion Detection Environment)
    •      samhain (integrity checker y host intrusion
           detection system)
    •      sXid
    •      Integrit




14/09/11                Principios de seguridad en Linux              56
7      IDS de target
• AIDE
    •      AIDE (Entorno Avanzado de Detección de
           Intrusiones).
    •      Genera una base de datos que puede ser usada
           para verificar la integridad de los archivos en el
           servidor. Usa expresiones regulares para
           determinar que archivos son tomados para
           añadirlos a la base de datos.
    •      El archivo de conf. Crea una base de datos a
           partir de una serie de reglas y expresiones
           regulares

14/09/11               Principios de seguridad en Linux    57
7        IDS de target
• samhain (integrity checker y host                             intrusion
    detection system)
•   El es un sistema de detección de intrusos basados en host,
    el cual provee:
       •       revisión de integridad para sistemas de archivos
       •       Monitoreo   y análisis de bitácoras
       •       Detección de rootkits
       •       Monitoreo de puertos
       •       Cambio de SUID
       •       Monitoreo de procesos ocultos
       •       Posee capacidades de monitoreo múltiples hosts con
               diferentes SO
       •       Puede utilizarse para llevar bitácoras centralizadas
    14/09/11                 Principios de seguridad en Linux         58
SELinux




14/09/11   Principios de seguridad en Linux   59
8 SELinux (Security Enhancement Linux)

• El SELinux es una modificación de kernel
  que refuerza “mandatory access control”
  y por lo tanto permite mayor control
  sobre cuales recursos los usuarios y las
  aplicaciones tienes privilegios de uso.
  SElinux permite mayor granularidad al
  control de acceso



14/09/11      Principios de seguridad en Linux   60
8 SELinux (Security Enhancement Linux)

• Permite que los usuarios y aplicaciones
  tengan     los   mínimos      privilegios
  necesarios para poder ejecutar sus
  tareas, esto contribuye a la seguridad
  debido a que disminuye la cantidad de
  daño que se puede infligir. Por ejemplo
  puede negar el cambio de la perisología
  de determinados archivos.


14/09/11      Principios de seguridad en Linux   61
Pruebas y monitoreo del sistema




14/09/11            Principios de seguridad en Linux   62
9 Pruebas y monitoreo del sistema

• Las pruebas y monitoreo del sistema
  debe centrarse el:
    •      Logins y passwords
    •      Sistemas de archivos
    •      Red
    •      Logs del sistema




14/09/11            Principios de seguridad en Linux   63
9 Pruebas y monitoreo del sistema

• Pruebas de fortaleza de passwords

    • John the Ripper
    • Cracklib




14/09/11        Principios de seguridad en Linux   64
9 Pruebas y monitoreo del sistema
•   Cuentas sin password
    • Para ello revisar el archivo /etc/shadow
    • Ejemplo
    • # awk -F: '$2 =="" {print $1 “ sin password"}'
       /etc/shadow
    • # pedro sin password

•   Cuentas de superusuario
    • Para ello revisar el archivo /etc/pasword
    • Ejemplo
    • # awk -F: '$3 ==0 {print $1 " es superuser"}'
       /etc/passwd
    • # root es superuser
14/09/11            Principios de seguridad en Linux   65
9 Pruebas y monitoreo del sistema

• Usuarios que se han entrado al
  sistema

    • Para esto usar el comando:
           • # Lastlog
    • También se puede revisar los últimos
      acceso de red mediante el comando:
           • # tail /var/log/secure


14/09/11              Principios de seguridad en Linux   66
9 Pruebas y monitoreo del sistema

• Sistemas de archivos
    • Estandarizar el uso de los IDS de target
      tales como los ya mencionados
    • Para encontrar archivos con permisos de
      escritura para todos:
           •   # find / -xdev -perm +o=w ! ( -type d -perm
               +o=t ) ! -type l -print




14/09/11                Principios de seguridad en Linux      67
9 Pruebas y monitoreo del sistema

• Sistemas de archivos
    •      Búsqueda de rootkits
    •      Para esto se puede utilizar herramientas tales como
    •      Chkrootkit y Rkhunter

           •   Son shells de script que busca en nuestro sistema
               binarios modificados por esos root kits usados por los
               jackers para comprometer sistemas. Adicionalmente a
               esto también se revisan los archivos de arranque que
               han sido modificados




14/09/11                  Principios de seguridad en Linux         68
9 Pruebas y monitoreo del sistema

• Red
    •      Búsqueda de puertos en escucha:
           • Usar el netstat
           • Usar herramientas tales como nmap
             • Ejemplo
             • nmap -v -sV localhost
           • lsof




14/09/11              Principios de seguridad en Linux   69
9 Pruebas y monitoreo del sistema

• Red
    •      Utilizar herramientas observar las conexiones de
           red tales como:
           • Tcpdump
           • Wireshark

    •      Revisar periódicamente si alguno de los servicios
           de red acepta contraseñas planas:
           • Para capturar las mismas podemos usar dsniff



14/09/11               Principios de seguridad en Linux   70
9 Pruebas y monitoreo del sistema

• Red
    •      Utilice un detector de intruso de red tal como
    •      SNORT

    •      Utilice herramientas tales como Nessus para
           revisar sus servicios de red en búsqueda de
           vulnerabilidades.




14/09/11               Principios de seguridad en Linux     71
9 Pruebas y monitoreo del sistema

• Logs del sistema
    •      Revise periódicamente el funcionamiento de los
           logs del sistema, y el sistema de rotado de los
           mismos.
    •      Para facilitar la visualización de los mismo puede
           usar herramientas tales como logwatch.
           • Ejemplo:
           • # logwatch --range all --print | less




14/09/11               Principios de seguridad en Linux    72
Pasos básicos para mantener sus
                 sistema seguro




14/09/11        Principios de seguridad en Linux   73
10- Pasos básicos para mantener
           sus sistema seguro
•   Restinga el acceso local a sistema (Password de bios,
    Passwords de lilo-grub, parámetros de arranque, deshabilite las
    unidades extraíbles, restringa los accesos por consola)
•   Instale solo los paquetes necesario. (elimine los compiladores,
    y lenguajes de programación que no necesite)
•   Monte sus sistema de archivos de forma apropiada.
•   Verifique periódicamente           si    existen      actualizaciones,   y
    aplíquelas con prudencia.
•   Desactive todos los servicios innecesarios
•   Asegúrese que todos los servicios que estén instalados se
    encuentren actualizados y configurados de forma apropiada
•   Utilice los tcp wrappers
14/09/11               Principios de seguridad en Linux                      74
10-Pasos básicos para mantener
           sus sistema seguro
•   Limite el numero de conexiones entrantes a sus servicios desde
    el exterior, implementando un firewall o con cualquier otro tipo
    de políticas.
•   Configure los parámetros del kernel relacionados con la red
•   Infórmese de cómo mantener y asegurar su sistema de forma
    apropiada.
•   Realice pruebas de integridad a su sistema de forma periódica
•   Utilice sistemas de detección de intrusos basados en: Red,
    host, target
•   Utilice sistemas para la detección de root-kits
•   Analice su sistema de auditoria (logs, bitácoras, etc.) de forma
    periódica
14/09/11               Principios de seguridad en Linux           75

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Ike
IkeIke
Ike
 
Suricata
SuricataSuricata
Suricata
 
Secure SHell
Secure SHellSecure SHell
Secure SHell
 
Seguridad En Base De Datos
Seguridad En Base De DatosSeguridad En Base De Datos
Seguridad En Base De Datos
 
SSL
SSLSSL
SSL
 
ORIGEN Y EVOLUCIÓN DE LAS REDES DE COMPUTADORAS
ORIGEN Y EVOLUCIÓN DE LAS REDES DE COMPUTADORASORIGEN Y EVOLUCIÓN DE LAS REDES DE COMPUTADORAS
ORIGEN Y EVOLUCIÓN DE LAS REDES DE COMPUTADORAS
 
servicios de red telnet y SSH
servicios de red telnet y SSHservicios de red telnet y SSH
servicios de red telnet y SSH
 
4. listas de control de acceso
4. listas de control de acceso4. listas de control de acceso
4. listas de control de acceso
 
Algoritmo aes
Algoritmo aesAlgoritmo aes
Algoritmo aes
 
PROTOCOLO HTTPS
PROTOCOLO HTTPSPROTOCOLO HTTPS
PROTOCOLO HTTPS
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Ssh (The Secure Shell)
Ssh (The Secure Shell)Ssh (The Secure Shell)
Ssh (The Secure Shell)
 
Stp
StpStp
Stp
 
Protocolo dns
Protocolo dnsProtocolo dns
Protocolo dns
 
Control de versiones (CVS)
Control de versiones (CVS)Control de versiones (CVS)
Control de versiones (CVS)
 
Transiciones de Procesos
Transiciones de ProcesosTransiciones de Procesos
Transiciones de Procesos
 
Wireshark Tutorial
Wireshark TutorialWireshark Tutorial
Wireshark Tutorial
 
Cifrado por RSA.
Cifrado por RSA.Cifrado por RSA.
Cifrado por RSA.
 
Building an IP Reputation Engine: Tracking the Miscreants
Building an IP Reputation Engine: Tracking the MiscreantsBuilding an IP Reputation Engine: Tracking the Miscreants
Building an IP Reputation Engine: Tracking the Miscreants
 

Andere mochten auch

Linux seguridad proteccion
Linux seguridad proteccionLinux seguridad proteccion
Linux seguridad proteccionKrlitos Xavier
 
Enrutamiento avanzado y control de tráfico en Linux
Enrutamiento avanzado y control de tráfico en LinuxEnrutamiento avanzado y control de tráfico en Linux
Enrutamiento avanzado y control de tráfico en LinuxSergi Duró
 
Su se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-esSu se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-essherlock72
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informáticajlezcano1210
 
Proyecto final administración y seguridad en linux y unix
Proyecto final administración y seguridad en linux y unixProyecto final administración y seguridad en linux y unix
Proyecto final administración y seguridad en linux y unixFrancisco Medina
 
Seguridad informática introduccion
Seguridad informática introduccionSeguridad informática introduccion
Seguridad informática introduccionCarolina Cols
 
Instalacion de redes de computadores
Instalacion de redes de computadoresInstalacion de redes de computadores
Instalacion de redes de computadoresnemabobe
 
CCNA parte 3 y 4 español
CCNA parte 3 y 4 españolCCNA parte 3 y 4 español
CCNA parte 3 y 4 españolmperez89
 
An Introduction to Linux
An Introduction to LinuxAn Introduction to Linux
An Introduction to Linuxanandvaidya
 
Seguridad en redes informáticas
Seguridad en redes informáticasSeguridad en redes informáticas
Seguridad en redes informáticaschanel-bullicolor
 

Andere mochten auch (13)

Seguridad en linux
Seguridad en linuxSeguridad en linux
Seguridad en linux
 
Linux seguridad proteccion
Linux seguridad proteccionLinux seguridad proteccion
Linux seguridad proteccion
 
Editor vi , ficheros y dispositivos Linux
Editor vi , ficheros y dispositivos LinuxEditor vi , ficheros y dispositivos Linux
Editor vi , ficheros y dispositivos Linux
 
Enrutamiento avanzado y control de tráfico en Linux
Enrutamiento avanzado y control de tráfico en LinuxEnrutamiento avanzado y control de tráfico en Linux
Enrutamiento avanzado y control de tráfico en Linux
 
Su se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-esSu se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-es
 
Seguridad informática
Seguridad informáticaSeguridad informática
Seguridad informática
 
Proyecto final administración y seguridad en linux y unix
Proyecto final administración y seguridad en linux y unixProyecto final administración y seguridad en linux y unix
Proyecto final administración y seguridad en linux y unix
 
Seguridad informática introduccion
Seguridad informática introduccionSeguridad informática introduccion
Seguridad informática introduccion
 
Instalacion de redes de computadores
Instalacion de redes de computadoresInstalacion de redes de computadores
Instalacion de redes de computadores
 
CCNA parte 3 y 4 español
CCNA parte 3 y 4 españolCCNA parte 3 y 4 español
CCNA parte 3 y 4 español
 
An Introduction to Linux
An Introduction to LinuxAn Introduction to Linux
An Introduction to Linux
 
Informatica forense
Informatica forenseInformatica forense
Informatica forense
 
Seguridad en redes informáticas
Seguridad en redes informáticasSeguridad en redes informáticas
Seguridad en redes informáticas
 

Ähnlich wie Seguridad linux 2011

Presentación sistemas archivos
Presentación sistemas archivosPresentación sistemas archivos
Presentación sistemas archivoselpropio_88
 
Sistemas de archivos en diferentes sistemas operativos
Sistemas de archivos en diferentes sistemas operativosSistemas de archivos en diferentes sistemas operativos
Sistemas de archivos en diferentes sistemas operativostatyseli
 
Administración de Linux - Manejo de Discos
Administración de Linux - Manejo de DiscosAdministración de Linux - Manejo de Discos
Administración de Linux - Manejo de DiscosCapacity Academy
 
Sistemas de archivos linux
Sistemas de archivos linuxSistemas de archivos linux
Sistemas de archivos linuxyaneli14
 
Jose hamaliel flores ramirez
Jose hamaliel flores ramirezJose hamaliel flores ramirez
Jose hamaliel flores ramirezJOSE Flores
 
Jose Hamaliel Flores Ramirez
Jose Hamaliel Flores RamirezJose Hamaliel Flores Ramirez
Jose Hamaliel Flores RamirezJOSE Flores
 
Administracion de Redes
Administracion de RedesAdministracion de Redes
Administracion de RedesAre Mar
 
Tatiana Sánchez 3
Tatiana Sánchez 3Tatiana Sánchez 3
Tatiana Sánchez 3tatyseli
 
Curso Basico Ponencia 1
Curso Basico Ponencia 1Curso Basico Ponencia 1
Curso Basico Ponencia 1Antonio Durán
 
Trabajo sistemas operativos de camilo pinzon
Trabajo sistemas operativos de camilo pinzonTrabajo sistemas operativos de camilo pinzon
Trabajo sistemas operativos de camilo pinzonManuel Chaparro
 
Controladoras de perifericos ana
Controladoras de perifericos anaControladoras de perifericos ana
Controladoras de perifericos anaanabelffffff
 
1 estructura del sistema de archivos
1  estructura del sistema de archivos1  estructura del sistema de archivos
1 estructura del sistema de archivosAprende Viendo
 

Ähnlich wie Seguridad linux 2011 (20)

Curso linux operación
Curso linux operaciónCurso linux operación
Curso linux operación
 
Presentación sistemas archivos
Presentación sistemas archivosPresentación sistemas archivos
Presentación sistemas archivos
 
Sistemas de archivos en diferentes sistemas operativos
Sistemas de archivos en diferentes sistemas operativosSistemas de archivos en diferentes sistemas operativos
Sistemas de archivos en diferentes sistemas operativos
 
Administración de Linux - Manejo de Discos
Administración de Linux - Manejo de DiscosAdministración de Linux - Manejo de Discos
Administración de Linux - Manejo de Discos
 
Linux
LinuxLinux
Linux
 
Sistemas de archivos linux
Sistemas de archivos linuxSistemas de archivos linux
Sistemas de archivos linux
 
16 fhsasoitson
16 fhsasoitson16 fhsasoitson
16 fhsasoitson
 
Red hat
Red hatRed hat
Red hat
 
Jose hamaliel flores ramirez
Jose hamaliel flores ramirezJose hamaliel flores ramirez
Jose hamaliel flores ramirez
 
Jose Hamaliel Flores Ramirez
Jose Hamaliel Flores RamirezJose Hamaliel Flores Ramirez
Jose Hamaliel Flores Ramirez
 
Administracion de Redes
Administracion de RedesAdministracion de Redes
Administracion de Redes
 
Tatiana Sánchez 3
Tatiana Sánchez 3Tatiana Sánchez 3
Tatiana Sánchez 3
 
Curso Basico Ponencia 1
Curso Basico Ponencia 1Curso Basico Ponencia 1
Curso Basico Ponencia 1
 
Trabajo sistemas operativos de camilo pinzon
Trabajo sistemas operativos de camilo pinzonTrabajo sistemas operativos de camilo pinzon
Trabajo sistemas operativos de camilo pinzon
 
Manejo de Archivos en Ubuntu
Manejo de Archivos en UbuntuManejo de Archivos en Ubuntu
Manejo de Archivos en Ubuntu
 
Artefactos linux
Artefactos linuxArtefactos linux
Artefactos linux
 
Controladoras de perifericos ana
Controladoras de perifericos anaControladoras de perifericos ana
Controladoras de perifericos ana
 
1 estructura del sistema de archivos
1  estructura del sistema de archivos1  estructura del sistema de archivos
1 estructura del sistema de archivos
 
1 estructura del sistema de archivos
1  estructura del sistema de archivos1  estructura del sistema de archivos
1 estructura del sistema de archivos
 
Linux Para Asterisk
Linux Para AsteriskLinux Para Asterisk
Linux Para Asterisk
 

Seguridad linux 2011

  • 1. WALC 2011 Track 6. Seguridad Informática Principios de seguridad en Linux José F. Torres M. Universidad de Los Andes Merida, Venezuela 14/09/11 Principios de seguridad en Linux 1
  • 2. Agenda 1. Sistemas de archivos 2. Sistema de Bitácoras (Logs) 3. Control de acceso de red 4. Técnicas de autentificación 5. Cortafuegos de host 6. Protección de conexiones de red 7. Sistema de detección de intrusos de Host IDSH 8. SELinux 9. Pruebas y monitoreo del sistema 10. Pasos básicos para mantener sus sistema seguro 14/09/11 Principios de seguridad en Linux 2
  • 3. Sistemas de archivos 14/09/11 Principios de seguridad en Linux 3
  • 4. 1 Sistemas de archivos • El sistema de archivo representa la primera línea básica de defensa. • Una norma básica de seguridad radica en la asignación a cada usuario sólo de los permisos necesarios para poder cubrir las necesidades de su trabajo sin poner en riesgo el trabajo de los demás. 14/09/11 Principios de seguridad en Linux 4
  • 5. 1 Sistemas de archivos • Riesgos • Dentro del sistema Linux todo son archivos: desde la memoria física del equipo, hasta todos los periféricos • Un simple error en un permiso puede permitir a un usuario modificar todo el disco duro, o leer los datos tecleados desde una Terminal etc. 14/09/11 Principios de seguridad en Linux 5
  • 6. 1 Sistemas de archivos • El sistema de archivos es la parte del núcleo (Kernel) mas visible por los usuarios; se encarga de abstraer propiedades físicas de los diferentes dispositivos para proporcionar una interfaz única de almacenamiento: el archivo. • Cada sistema Linux tiene su sistema de archivos nativo. (ejemplo ext4, raiserFS, etc.) 14/09/11 Principios de seguridad en Linux 6
  • 7. 1 Sistemas de archivos • Un primer criterio para mantener un sistema seguro es una correcta distribución del espacio de almacenamiento. • Esto limita el riesgo de que el deterioro de una partición afecte a todo el sistema. La pérdida se limitaría al contenido de esa partición. 14/09/11 Principios de seguridad en Linux 7
  • 8. 1 Sistemas de archivos • Tamaño de las particiones • No hay unas normas generales aplicables; el uso al que vaya destinado el sistema y la experiencia son las bases de la decisión adecuada, aunque por lo general se recomienda: • Si el sistema va a dar servicio a múltiples usuarios que requieren almacenamiento para sus datos es conveniente que el directorio /home tenga su propia partición. • Si el equipo va a ser un servidor el directorio /var o incluso /var/spool deberían tener su propia partición. 14/09/11 Principios de seguridad en Linux 8
  • 9. 1 Sistemas de archivos • Tamaño de las particiones (continuación) • Debe dimensionar cuidadosamente la partición raíz. • El directorio /usr/local contiene los programas compilados e instalados por el administrador. Resulta conveniente usar una partición propia para proteger estos programas personalizados de futuras actualizaciones del sistema. Este criterio también se puede aplicar al directorio /opt. 14/09/11 Principios de seguridad en Linux 9
  • 10. 1 Sistemas de archivos • Montaje de las particiones • Permita los mínimos privilegios en las opciones de montado de las particiones • Noexec donde sea posible • Nodev en todas las particiones excepto en la raiz y en las particiones enjauladas (chroot) • Nosetuid donde sea posible excepto en la raiz 14/09/11 Principios de seguridad en Linux 10
  • 11. 1 Sistemas de archivos • Montaje de las particiones • auto - Mount automatically at boot, or when the command mount -a is issued. • noauto - Mount only when you tell it to. • exec - Allow execution of binaries on the filesystem. • noexec - Disallow execution of binaries on the filesystem. • ro - Mount the filesystem read-only. • rw - Mount the filesystem read-write. • nodev - Don't interpret block special devices on the filesystem. 14/09/11 Principios de seguridad en Linux 11
  • 12. 1 Sistemas de archivos • Montaje de las particiones • suid - Allow the operation of suid, and sgid bits. They are mostly used to allow users on a computer system to execute binary executables with temporarily elevated privileges in order to perform a specific task. • nosuid - Block the operation of suid, and sgid bits. • defaults - the default mount options for the filesystem to be used. The default options for ext3 are: rw, suid, dev, exec, auto, nouser, async 14/09/11 Principios de seguridad en Linux 12
  • 13. 1 Sistemas de archivos • Un ejemplo de las banderas de montaje # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/sda2 / ext3 errors=remount-ro 0 1 /dev/sda1 /boot ext3 defaults,nosuid,noexec,nodev 0 2 /dev/sda5 /home ext3 defaults,nosuid,nodev 0 2 /dev/sda11 /opt ext3 defaults 0 2 /dev/sda9 /tmp ext3 defaults,bind,nosuid,noexec,nodev 0 2 /dev/sda6 /usr ext3 defaults,ro,nodev 0 2 /dev/sda10 /usr/local ext3 defaults 0 2 /dev/sda7 /var ext3 defaults,nosuid 0 2 /dev/sda8 /var/log ext3 defaults,nosuid,noexec,nodev 0 2 14/09/11 Principios de seguridad en Linux 13
  • 14. 1.1 Protección de archivos • Permisos de un archivo • Los permisos de cada archivo son la protección mas básica de estos objetos del sistema operativo; definen quien puede acceder a cada uno de ellos, y de que forma puede hacerlo. Cuando hacemos un ls -l podemos ver sus permisos junto al tipo de archivo correspondiente, en la primera columna de cada línea: user:~# ls -l texto.txt -rw-r--r-- 1 user electric 512 Aug 3 2011 texto.txt 14/09/11 Principios de seguridad en Linux 14
  • 15. 1.1 Protección de archivos • Permisos de un archivo (continuación) • Propiedad: • Qué usuario y grupo posee el control de los permisos del i-nodo. Se almacenan como dos valores numéricos, el uid (user id) y gid (group id). • Permisos: • Bits individuales que definen el acceso a un Archivo o directorio. Los permisos para directorio tienen un sentido diferente a los permisos para Archivos. Más abajo se explican algunas diferencias. 14/09/11 Principios de seguridad en Linux 15
  • 16. 1.1 Protección de archivos • Permisos de un archivo (continuación) • Lectura (r): • Archivo: Poder acceder a los contenidos de un Archivo • Directorio: Poder leer un directorio, ver qué Archivos contiene • Escritura (w): • Archivo: Poder modificar o añadir contenido a un Archivo • Directorio: Poder borrar o mover Archivos en un directorio 14/09/11 Principios de seguridad en Linux 16
  • 17. 1.1 Protección de archivos • Permisos de un archivo (continuación) • Ejecución(x): • Archivo: Poder ejecutar un programa binario o guión de shell • Directorio: Poder entrar en un directorio 14/09/11 Principios de seguridad en Linux 17
  • 18. 1.1 Protección de archivos • Permisos de un archivo (continuación) • Adicionalmente existe los “sticky bits” para el SUID, SGID estos nos conceden permisos especiales. • El SUID se muestra como una s en la columna de ejecución de propietario, y nos permite ejecutar ese archivo como el propietario del mismo. • El SGID aparece en la columna de ejecución del grupo, y nos permite ejecutar ese archivo como el parte del grupo al cual pertenece el mismo ls -lah /usr/bin/passwd -rwsr-xr-x 1 root root 31K 2011-10-14 10:11 /usr/bin/passwd 14/09/11 Principios de seguridad en Linux 18
  • 19. 1.1 Protección de archivos • Permisos de un archivo (continuación) • Atributos de un archivo • En el sistema de archivos de Linux existen ciertos atributos para los archivos que pueden ayudar a incrementar la seguridad de un sistema. Estos atributos son: 14/09/11 Principios de seguridad en Linux 19
  • 20. 1.1 Protección de archivos Atributo Significado A Dont update Atime S Synchronous updates a Append only c Compressed file i Immutable file d No Dump s Secure deletion u Undeletable 14/09/11 Principios de seguridad en Linux 20
  • 21. 1.2 Listas de control de acceso • Listas de control de acceso (ACLs Access Control Lists) • Las ACL proveen de un nivel adicional de seguridad a los archivos extendiendo el clásico esquema de permisos en Unix • Las ACLs van a permiten asignar permisos a usuarios o grupos concretos; por ejemplo, se pueden otorgar ciertos permisos a dos usuarios sobre unos archivos sin necesidad de incluirlos en el mismo grupo. • No todos los sistemas de archivos las soportan. • Las banderas de montaje se deben cambiar para poder usarlas. 14/09/11 Principios de seguridad en Linux 21
  • 22. 1.3 Almacenamiento seguro • Cifrado de archivos: • GnuPG: Gnu Privacy Guard • TCFS: Transparent Cryptographic File System • Cryptographic File System CFS • TrueCrypt • OpenSSL • EncFS • Cryptoloop • Loop-AES • Crypto-FS 14/09/11 Principios de seguridad en Linux 22
  • 23. Sistema de Bitácoras (Logs) 14/09/11 Principios de seguridad en Linux 23
  • 24. 2 Sistema de Bitácoras • El sistema de bitácoras de Linux permite registrar, casi todos los eventos que ocurren en el sistema. • Las bitácoras pueden ser utilizadas para detectar actividades sospechosas en el sistema. • Las bitácoras pueden ser almacenadas de forma local o remota. • Estas por lo general son llevadas por el demonio syslog 14/09/11 Principios de seguridad en Linux 24
  • 25. 2 Sistema de Bitácoras • El demonio syslog (syslogd o syslog-ng) • El demonio syslogd es el encargado de recolectar los datos de los eventos del sistema y demás actividades dependiendo de su archivo de configuración (/etc/syslogd.conf o /etc/syslog-ng/syslog-ng.conf ). • Los logs creados por el syslog son comúnmente usado por los IDS-Host • Los archivos de salida del syslog son en texto plano lo cual facilita su visualización • Los archivo de logs se encuentran por lo general en /var/logs/ • Todas las entradas que presenta syslog tienen como mínimo una fecha y una hora, el nombre de la maquina y del programa que generó el evento. 14/09/11 Principios de seguridad en Linux 25
  • 26. 2 Sistema de Bitácoras • Existen diferentes tipos de archivos de log dependiendo de la información. Por ejemplo, existe un archivo de log del sistema, un archivo de log para los mensajes de seguridad y un archivo de log para las tareas cron. • Los logs del sistema deben ser rotados periódicamente para poder disminuir su tamaño • Los logs pueden ser comprimidos • Los parámetros y la cantidad de logs que se guardan en el sistema dependerán en parte de la capacidad de los discos duros. 14/09/11 Principios de seguridad en Linux 26
  • 27. 2 Sistema de Bitácoras • Archivos de logs mas comunes: • /var/log/syslog: es el archivo de log mas importante del sistema; en el se guardan mensajes relativos a la seguridad de la maquina, como los accesos o los intentos de acceso a ciertos servicios. No obstante, este archivo es escrito por syslogd, por lo que dependiendo de nuestro archivo de configuración encontraremos en el archivo una u otra información. 14/09/11 Principios de seguridad en Linux 27
  • 28. 2 Sistema de Bitácoras • Archivos de logs mas comunes: (continuación) • /var/log/messages : En este archivo se almacenan datos ’informativos’ de ciertos programas, mensajes de baja o media prioridad destinados mas a informar que a avisar de sucesos importantes, como información relativa al arranque de la maquina. 14/09/11 Principios de seguridad en Linux 28
  • 29. Control de acceso de red 14/09/11 Principios de seguridad en Linux 29
  • 30. 3 Control de acceso de red • Inetd • En las primeras versiones de Unix, para hacer funcionar un servicio de red se ejecutaban programas diferentes que atendían a cada uno. Al crecer el número de servicios que se necesitaban, se optó por una mejor idea, se empezó a utilizar un sólo demonio llamado /etc/inetd (El daemon de Internet). Este programa escuchaba en varios puertos a la vez y ejecutaba los servidores que se necesitaran en el momento en que se recibía la petición de conexión. 14/09/11 Principios de seguridad en Linux 30
  • 31. 3 Control de acceso de red • Inetd como funciona • Cuando un host cliente intenta conectarse a un servicio de red controlado por inetd, el súper servicio recibe la petición y verifica por cualquier regla de control de acceso wrappers TCP. • Si se permite el acceso, inetd verifica que la conexión sea permitida bajo sus propias reglas para ese servicio y que el servicio no esté consumiendo más de la cantidad de recursos o si está rompiendo alguna regla. Luego comienza una instancia del servicio solicitado y pasa el control de la conexión al mismo. • Una vez establecida la conexión, inetd no interfiere más con la comunicación entre el host cliente y el servidor. 14/09/11 Principios de seguridad en Linux 31
  • 32. 3 Control de acceso de red • TCP wrappers • El wrappers TCP proporciona control de acceso basado en host a los servicios de red. El componente más importante dentro del paquete es la librería /usr/lib/libwrap.a. En términos generales, un servicio wrappers TCP es uno que ha sido compilado con la librería libwrap.a. • Cuando un intento de conexión es hecho a un servicio wrapped TCP, el servicio primero referencia los archivos de acceso de host (/etc/hosts.allow y /etc/hosts.deny) para determinar si el cliente tiene permitido conectarse. Luego utiliza el demonio syslog (syslogd) para escribir el nombre del host solicitante y el servicio solicitado a /var/log/secure o /var/log/messages. 14/09/11 Principios de seguridad en Linux 32
  • 33. 3 Control de acceso de red • TCP wrappers • Si a un cliente se le permite conectarse, los TCP wrappers liberan el control de la conexión al servicio solicitado y no interfieren más con la comunicación entre el cliente y el servidor. • Además del control de acceso y registro, los TCP wrappers pueden activar comandos para interactuar con el cliente antes de negar o liberar el control de la conexión al servicio solicitado. • Puesto que los TCP wrappers son una utilidad de gran valor a las herramientas de seguridad de cualquier administrador de servidor. Algunas de los demonio que utilizan TCP wrappers son /usr/sbin/sshd, /usr/sbin/sendmail, y /usr/sbin/inetd. 14/09/11 Principios de seguridad en Linux 33
  • 34. 3 Control de acceso de red • TCP wrappers (ejemplo) • /etc/hosts.allow • sshd: 192.168.1.0/255.255.255.0 • /etc/hosts.deny ALL: ALL: SPAWN ( echo -e "n TCP Wrappers: Connection refusedn By: $(uname -n)n Process: %d (pid %p)n User: %un Host: %cn Date: $(date)n " | /usr/bin/mail -s "Connection to %d blocked" root) & 14/09/11 Principios de seguridad en Linux 34
  • 35. Técnicas de autentificación 14/09/11 Principios de seguridad en Linux 35
  • 36. 4 Técnicas de autentificación • Método clásico • Uso del archivo /etc/passwd • El problema una atacante podría tratar de romper la contraseña, aunque esto es poco probable, el atacante cifrara una palabra junto a un determinado salt, y comparar el resultado con la cadena almacenada en el archivo de claves. 14/09/11 Principios de seguridad en Linux 36
  • 37. 4 Técnicas de autentificación • Método clásico • De esta forma, un atacante puede leer el archivo /etc/passwd y mediante un programa “crackeador” como Crack o John the Ripper cifrará todas las palabras de un archivo denominado diccionario, comparando el resultado obtenido en este proceso con la clave cifrada del archivo de contraseñas; si ambos coinciden, ya ha obtenido una clave para acceder al sistema de forma no autorizada 14/09/11 Principios de seguridad en Linux 37
  • 38. 4 Técnicas de autentificación • Shadow Password • La idea básica de este mecanismo es impedir que los usuarios sin privilegios puedan leer el archivo donde se almacenan las claves cifradas. En equipos con /etc/shadow el archivo /etc/passwd sigue siendo legible para todos los usuarios, pero a diferencia del mecanismo tradicional, las claves cifradas no se guardan en él, sino en el archivo /etc/shadow, que sólo el root puede leer. 14/09/11 Principios de seguridad en Linux 38
  • 39. 4 Técnicas de autentificación • Shadow Password • El aspecto de /etc/shadow es en cierta forma similar al de /etc/passwd que ya hemos comentado: existe una línea por cada usuario del sistema, en la que se almacena su login y su clave cifrada. Sin embargo, el resto de campos de este archivo son diferentes; corresponden a información que permite implementar otro mecanismo para proteger las claves de los usuarios. 14/09/11 Principios de seguridad en Linux 39
  • 40. 4 Técnicas de autentificación • Claves de un solo uso (one time password) • Tokens de hardware • Autentificación por medio de llaves 14/09/11 Principios de seguridad en Linux 40
  • 41. 4 Técnicas de autentificación • Sistemas de autentificación de red centralizadas • LDAP • Kerberos • Radius • Nis+ 14/09/11 Principios de seguridad en Linux 41
  • 42. 4 Técnicas de autentificación • Otras métodos de autentificación • PAM (Pluggable Authentication Module) • PAM no es un modelo de autenticación en sí, sino que se trata de un mecanismo que proporciona una interfaz entre las aplicaciones de usuario y diferentes métodos de autenticación, tratando de esta forma de solucionar uno de los problemas clásicos de la autenticación de usuarios 14/09/11 Principios de seguridad en Linux 42
  • 43. 4 Técnicas de autentificación • PAM • Mediante PAM podemos comunicar a nuestra aplicaciones con los métodos de autenticación que deseemos de una forma transparente, lo que permite integrar las utilidades de un sistema Unix clásico (login, ftp, telnet...) con esquemas diferentes del habitual password: claves de un solo uso, biométricos, tarjetas inteligentes... 14/09/11 Principios de seguridad en Linux 43
  • 44. 4 Técnicas de autentificación AM l PAM también se puede utilizar para modificar como se almacenan las contraseñas y cambiar parámetro tales como: tamaño mínimo o máximo, reusó de contraseñas, tiempo de vencimiento, entre otros. or ejemplo assword required pam_unix.so nullok obscure min=6 max=11 md5 14/09/11 Principios de seguridad en Linux 44
  • 45. Protección de conexiones de red 14/09/11 Principios de seguridad en Linux 45
  • 46. 5 Protección de conexiones de red • Para proteger las conexiones de red Linux puede usar herramientas y protocolos tales como tales como: • Ssh, tuneles • Ipsec • CIPE • Vtun • PKI • OpenVPN • FreeS/WAN • Stunnel 14/09/11 Principios de seguridad en Linux 46
  • 47. Cortafuegos de host 14/09/11 Principios de seguridad en Linux 47
  • 48. 6 Cortafuegos de host • Utilice políticas por omisión tales como: • Para iptables: • iptables -P INPUT DROP • iptables -P OUTPUT DROP • iptables -P FORWARD DROP • Para iptables en IPv6: • ip6tables -P INPUT DROP • ip6tables -P OUTPUT DROP • ip6tables -P FORWARD DROP 14/09/11 Principios de seguridad en Linux 48
  • 49. 14/09/11 Principios de seguridad en Linux 49
  • 50. 6 Cortafuegos de host • También puede utilizar paquetes tales como: • Firestarter • Shorewall • TuxFrw • KmyFirewall • knetfilter 14/09/11 Principios de seguridad en Linux 50
  • 51. 6 Cortafuegos de host • Parámetros del kernel: • icmp_echo_ignore_all: Ignore todas los peticiones ICMP ECHO. Habilitando esta opción se previene que el host responda a peticiones ping. • icmp_echo_ignore_broadcasts: Ignore todas las peticiones ICMP ECHO con destino broadcast o muliticast. Esto evita que su red sea utilizada como red amplificadora de ataques • ip_forward: Hablita o deshabilita el enrutamiento IP entre interfaces • tcp_syncookies: Protégé de ataques “SYN Attack”. • rp_filter: habilita la protección de que solo se reciben paquetes con origen que concuerde con la interfaz 14/09/11 Principios de seguridad en Linux 51
  • 52. 6 Cortafuegos de host • Parámetros del kernel (Continuación): • secure_redirects: Solo acepte paquetes ICMP para los enrutadores. • log_martians: Escriba en el log los paquetes con direcciones privadas o imposibles. • accept_source_route: Habilita o deshabilita el recibir paquetes enrutados por origen 14/09/11 Principios de seguridad en Linux 52
  • 53. Sistema de detección de intrusos de Host IDSH IDS de target 14/09/11 Principios de seguridad en Linux 53
  • 54. 7 IDS de target • Tripwire: • El software de aseguramiento de integridad de los datos Tripwire, monitorea la consistencia de archivos y directorios de sistema críticos identificando todos los cambios hechos a ellos. Esto lo hace mediante un método automatizado de verificación que se ejecuta a intervalos regulares. Si Tripwire detecta que uno de los archivos monitoreados ha sido cambiado, lo notifica al administrador del sistema vía email. Debido a que Tripwire puede fácilmente identificar los archivos que son modificados, agregados o eliminados, se agiliza el proceso de recuperación luego de una entrada forzada pues mantiene el número de archivos que deben ser restaurados a un mínimo. 14/09/11 Principios de seguridad en Linux 54
  • 55. 7 IDS de target • Tripwire: • Estas habilidades hacen de Tripwire una herramienta excelente para los administradores de sistemas que requieren tanto de facilidades para detección de intrusos como de control de daños para sus servidores. • Tripwire compara los archivos y directorios con una base de datos de la ubicación de archivos, las fechas en que han sido modificados y otros datos. Tripwire genera la base tomando una instantánea. Esta base de datos contiene fundamentos — los cuales son instantáneas de archivos y directorios específicos en momentos particulares. Los contenidos de la base de datos de fundamentos deberían ser generados antes de que el sistema esté en riesgo, esto es antes de que se conecte a la red. 14/09/11 Principios de seguridad en Linux 55
  • 56. 7 IDS de target • Tripwire: • Después de crear la base de datos de fundamentos, Tripwire compara la base de datos actual con la base de datos de fundamentos e informa de cualquier modificación, adición o eliminación. • Otras alternativas • AIDE (Advanced Intrusion Detection Environment) • samhain (integrity checker y host intrusion detection system) • sXid • Integrit 14/09/11 Principios de seguridad en Linux 56
  • 57. 7 IDS de target • AIDE • AIDE (Entorno Avanzado de Detección de Intrusiones). • Genera una base de datos que puede ser usada para verificar la integridad de los archivos en el servidor. Usa expresiones regulares para determinar que archivos son tomados para añadirlos a la base de datos. • El archivo de conf. Crea una base de datos a partir de una serie de reglas y expresiones regulares 14/09/11 Principios de seguridad en Linux 57
  • 58. 7 IDS de target • samhain (integrity checker y host intrusion detection system) • El es un sistema de detección de intrusos basados en host, el cual provee: • revisión de integridad para sistemas de archivos • Monitoreo y análisis de bitácoras • Detección de rootkits • Monitoreo de puertos • Cambio de SUID • Monitoreo de procesos ocultos • Posee capacidades de monitoreo múltiples hosts con diferentes SO • Puede utilizarse para llevar bitácoras centralizadas 14/09/11 Principios de seguridad en Linux 58
  • 59. SELinux 14/09/11 Principios de seguridad en Linux 59
  • 60. 8 SELinux (Security Enhancement Linux) • El SELinux es una modificación de kernel que refuerza “mandatory access control” y por lo tanto permite mayor control sobre cuales recursos los usuarios y las aplicaciones tienes privilegios de uso. SElinux permite mayor granularidad al control de acceso 14/09/11 Principios de seguridad en Linux 60
  • 61. 8 SELinux (Security Enhancement Linux) • Permite que los usuarios y aplicaciones tengan los mínimos privilegios necesarios para poder ejecutar sus tareas, esto contribuye a la seguridad debido a que disminuye la cantidad de daño que se puede infligir. Por ejemplo puede negar el cambio de la perisología de determinados archivos. 14/09/11 Principios de seguridad en Linux 61
  • 62. Pruebas y monitoreo del sistema 14/09/11 Principios de seguridad en Linux 62
  • 63. 9 Pruebas y monitoreo del sistema • Las pruebas y monitoreo del sistema debe centrarse el: • Logins y passwords • Sistemas de archivos • Red • Logs del sistema 14/09/11 Principios de seguridad en Linux 63
  • 64. 9 Pruebas y monitoreo del sistema • Pruebas de fortaleza de passwords • John the Ripper • Cracklib 14/09/11 Principios de seguridad en Linux 64
  • 65. 9 Pruebas y monitoreo del sistema • Cuentas sin password • Para ello revisar el archivo /etc/shadow • Ejemplo • # awk -F: '$2 =="" {print $1 “ sin password"}' /etc/shadow • # pedro sin password • Cuentas de superusuario • Para ello revisar el archivo /etc/pasword • Ejemplo • # awk -F: '$3 ==0 {print $1 " es superuser"}' /etc/passwd • # root es superuser 14/09/11 Principios de seguridad en Linux 65
  • 66. 9 Pruebas y monitoreo del sistema • Usuarios que se han entrado al sistema • Para esto usar el comando: • # Lastlog • También se puede revisar los últimos acceso de red mediante el comando: • # tail /var/log/secure 14/09/11 Principios de seguridad en Linux 66
  • 67. 9 Pruebas y monitoreo del sistema • Sistemas de archivos • Estandarizar el uso de los IDS de target tales como los ya mencionados • Para encontrar archivos con permisos de escritura para todos: • # find / -xdev -perm +o=w ! ( -type d -perm +o=t ) ! -type l -print 14/09/11 Principios de seguridad en Linux 67
  • 68. 9 Pruebas y monitoreo del sistema • Sistemas de archivos • Búsqueda de rootkits • Para esto se puede utilizar herramientas tales como • Chkrootkit y Rkhunter • Son shells de script que busca en nuestro sistema binarios modificados por esos root kits usados por los jackers para comprometer sistemas. Adicionalmente a esto también se revisan los archivos de arranque que han sido modificados 14/09/11 Principios de seguridad en Linux 68
  • 69. 9 Pruebas y monitoreo del sistema • Red • Búsqueda de puertos en escucha: • Usar el netstat • Usar herramientas tales como nmap • Ejemplo • nmap -v -sV localhost • lsof 14/09/11 Principios de seguridad en Linux 69
  • 70. 9 Pruebas y monitoreo del sistema • Red • Utilizar herramientas observar las conexiones de red tales como: • Tcpdump • Wireshark • Revisar periódicamente si alguno de los servicios de red acepta contraseñas planas: • Para capturar las mismas podemos usar dsniff 14/09/11 Principios de seguridad en Linux 70
  • 71. 9 Pruebas y monitoreo del sistema • Red • Utilice un detector de intruso de red tal como • SNORT • Utilice herramientas tales como Nessus para revisar sus servicios de red en búsqueda de vulnerabilidades. 14/09/11 Principios de seguridad en Linux 71
  • 72. 9 Pruebas y monitoreo del sistema • Logs del sistema • Revise periódicamente el funcionamiento de los logs del sistema, y el sistema de rotado de los mismos. • Para facilitar la visualización de los mismo puede usar herramientas tales como logwatch. • Ejemplo: • # logwatch --range all --print | less 14/09/11 Principios de seguridad en Linux 72
  • 73. Pasos básicos para mantener sus sistema seguro 14/09/11 Principios de seguridad en Linux 73
  • 74. 10- Pasos básicos para mantener sus sistema seguro • Restinga el acceso local a sistema (Password de bios, Passwords de lilo-grub, parámetros de arranque, deshabilite las unidades extraíbles, restringa los accesos por consola) • Instale solo los paquetes necesario. (elimine los compiladores, y lenguajes de programación que no necesite) • Monte sus sistema de archivos de forma apropiada. • Verifique periódicamente si existen actualizaciones, y aplíquelas con prudencia. • Desactive todos los servicios innecesarios • Asegúrese que todos los servicios que estén instalados se encuentren actualizados y configurados de forma apropiada • Utilice los tcp wrappers 14/09/11 Principios de seguridad en Linux 74
  • 75. 10-Pasos básicos para mantener sus sistema seguro • Limite el numero de conexiones entrantes a sus servicios desde el exterior, implementando un firewall o con cualquier otro tipo de políticas. • Configure los parámetros del kernel relacionados con la red • Infórmese de cómo mantener y asegurar su sistema de forma apropiada. • Realice pruebas de integridad a su sistema de forma periódica • Utilice sistemas de detección de intrusos basados en: Red, host, target • Utilice sistemas para la detección de root-kits • Analice su sistema de auditoria (logs, bitácoras, etc.) de forma periódica 14/09/11 Principios de seguridad en Linux 75

Hinweis der Redaktion

  1. SUID, SGID y sticky
  2. Tcpdchk -v
  3. Tcpdchk -v
  4. lsof -i -P