DID (DEFENSE IN DEPTH) Martín Ojeda Knapp CPM Coordinador I-SEC Especialista en Seguridad de la Información I-Sec Information Security Inc. - Chile http://geeks.ms/blogs/mojeda/ Defensa en profundidad (Defense in Depth) es una iniciativa que pretende aislar en capas y dividir en diferentes áreas aisladas las instalaciones con el propósito de hacer mas difícil el acceso a nuestro ultimo bastión que serian nuestros servidores donde se contiene la información, podríamos hacer la analogía con un banco donde nuestra información es el dinero contenido en un bóveda. Para protegerlo desde la entrada ya vemos medidas de seguridad. Como barreras antigolpes de automóviles, cámaras, guardias, un área publica que podrías ser la (DMZ). Mientras mas tratamos de acercarnos a la bóveda los controles se acentúan. A continuación algunas recomendaciones que nos propone DiD (Defense in Depth) en MSAT (Microsoft Assessment Tool) herramienta que a través de un cuestionario crea un pequeña línea base de el estado de a organización en algunos tópicos básicos de seguridad. FIREWALLS Representan un mecanismo de defensa inicial que debe abarcar toda la red. Las reglas que se apliquen a los firewalls deben ser altamente restrictivas y establecerse por host y servicio. Al crear las reglas para los firewalls y las listas de control de acceso (ACL) de los routers, céntrese en primer lugar en proteger los dispositivos de control de acceso y la red frente a posibles ataques. + Asegúrese de que los datos sigan fluyendo mediante la utilización de ACL de red y las reglas para los firewalls. + Compruebe el funcionamiento de las reglas para los firewalls y las ACL de los routers para determinar si las reglas contribuyen a ataques de negación de servicio (Denial of Service, DoS). + Utilice uno o varios DMZ como parte del desarrollo sistemático y formal de firewalls. + Sitúe en esa ubicación todos los servidores a los que se puede acceder por Internet. Limite la conectividad de los DMZ. ANTIVIRUS Utilice soluciones antivirus en todo el ambiente: tanto en los servidores como en las computadoras de escritorio. Utilice soluciones antivirus especializadas para tareas específicas, como detectores de virus para servidores de archivos, herramientas de análisis de contenido y detectores de carga y descarga de datos. Configure las soluciones antivirus para que detecten virus que entren o salgan del sistema. Estas soluciones deben instalarse primero en los servidores de archivos críticos y, a continuación, en los servidores de correo, de base de datos y de red. En el caso de las computadoras portátiles y de escritorio, debe implementar una solución antivirus en el ambiente predeterminado. Si utiliza Microsoft Exchange, utilice las funciones adicionales de antivirus y los filtros de contenido para los buzones de correo. REDES PRIVADAS VIRTUALES (VPN) Utilice una VPN entre el perímetro de la red y los segmentos de red internos que necesiten más seguridad. Utilice una VPN para asegurar los protocolos de texto sin encripción de los ambientes en los que se pueda detectar o modificar el tráfico de datos. Para los usuarios remotos, debe usar una VPN que requiera autenticación de factores múltiples y que utilice tecnologías IPSEC, SSL y SSH para suministrar conectividad a los recursos necesarios de la red corporativa utilizando las reglas de control de acceso por usuario. Realice auditorías periódicas de la lista de acceso de los usuarios para el dispositivo VPN. Puede limitar el acceso administrativo del dispositivo VPN para que quede exclusivamente dentro de la red corporativa. SEGMENTACIÓN Utilice segmentaciones para separar el acceso a extranets específicas para fabricantes, socios o clientes. Cada segmentación externa de la red debe permitir que el tráfico sólo se dirija a los hosts y puertos de aplicaciones determinadas que proporcionan servicios a los clientes. Asegúrese de que existan controles de red que permitan sólo el acceso necesario para cada conexión de terceros. Limite el acceso de los servicios de red suministrados, así como el acceso entre los segmentos de red. CONTRASEÑAS COMPLEJAS PARA USUARIOS ADMINISTRATIVOS Ponga en práctica una política estricta para las cuentas administrativas mediante el uso de contraseñas complejas que cumplan estas condiciones: + Alfanumérica + Mayúsculas y minúsculas + Contiene al menos un caracter especial + Contiene como mínimo 14 caracteres Para limitar más los riesgos de ataques a las contraseñas, ponga en práctica los controles siguientes: + Vencimiento de contraseñas + Bloqueo de la cuenta después de entre 7 y 10 intentos de registro fallidos + Registro del sistema Además de las contraseñas complejas, puede recurrir a la autenticación de factores múltiples. Utilice controles avanzados para la administración de las cuentas y el registro de acceso a las cuentas (no permita que se compartan cuentas). CONTRASEÑAS COMPLEJAS PARA USUARIOS ESTÁNDAR Para las cuentas de usuarios, ponga en práctica una política que exija el uso de contraseñas complejas que cumplan estas condiciones: + Alfanumérica + Mayúsculas y minúsculas + Contiene al menos un caracter especial + Contiene como mínimo 8 caracteres Para limitar más los riesgos de ataques a las contraseñas, ponga en práctica los controles siguientes: + Vencimiento de contraseñas + Bloqueo de la cuenta después de 10 intentos de registro fallidos + Registro del sistema Además de las contraseñas complejas, puede recurrir a la autenticación de factores múltiples. Utilice controles avanzados para la administración de cuentas y el registro de acceso a las cuentas (no permita que se compartan cuentas). CONTRASEÑAS COMPLEJAS PARA USUARIOS DE ACCESO REMOTO Ponga en práctica controles de contraseñas complejas para todos los usuarios de acceso remoto, independientemente de si el acceso se concede mediante tecnologías de marcación telefónicas o VPN. Se considera que una contraseña es compleja si cumple estas condiciones: + Alfanumérica + Mayúsculas y minúsculas + Contiene al menos un caracter especial + Contiene como mínimo 8 caracteres Ponga en práctica otro factor más de autenticación para las cuentas de acceso remoto. Si lo desea, también puede utilizar controles avanzados para la administración de cuentas y el registro de acceso a las cuentas (no permita que se compartan cuentas). Con respecto al acceso remoto, resulta especialmente importante proteger el ambiente mediante políticas estrictas de administración de cuentas, prácticas seguras de registro y funciones para detectar incidentes. Para limitar aún más los riesgos de ataques de fuerza bruta a las contraseñas, puede poner en práctica los controles siguientes: + Vencimiento de contraseñas + Bloqueo de la cuenta después de entre 7 y 10 intentos de registro fallidos + Registro del sistema Para los servicios de acceso remoto también deben considerarse los sistemas que se utilizarán para acceder a la red o a los hosts. Por tanto, podría resultar conveniente controlar los hosts con acceso remoto a la red. CONTRASEÑAS COMPLEJAS La utilización de contraseñas complejas es un elemento fundamental para la defensa a profundidad. Las contraseñas complejas deben tener de 8 a 14 caracteres e incluir caracteres alfanuméricos y especiales. Debe establecer una longitud mínima, un mantenimiento del historial, una duración límite y un plazo de vencimiento para reforzar la defensa. Generalmente, el vencimiento de las contraseñas debe configurarse de la siguiente forma: + Duración máxima de 90 días + Las cuentas nuevas deben cambiar la contraseña al inicio de la sesión + Un historial de 8 contraseñas (mínimo de 8 días) Además de las contraseñas complejas, la autenticación de factores múltiples es muy importante, especialmente para las cuentas administrativas y de usuarios remotos. En todas las cuentas de usuario, se debe activar un proceso de bloqueo de cuenta tras 10 intentos de registro fallidos. Los controles para bloquear una cuenta pueden variar; algunos sencillamente se dedican a los ataques de fuerza bruta a las contraseñas y otros requieren que un administrador desbloquee la cuenta. Se aconseja activar el bloqueo en las cuentas administrativas, al menos para acceder a la red. Esto no permitirá que la cuenta se bloquee desde la consola, solamente desde la red Es posible que esta solución no sea adecuada para todas las empresas, particularmente aquellas con sitios remotos. En tales casos, lo más adecuado es que un administrador desbloquee la cuenta, de este modo se evita que los ataques pasen desapercibidos durante un largo tiempo si no se dispone de otros medios para detectar fallas de autenticación. Cuando se pongan en práctica controles de bloqueo de cuenta, siga las normas siguientes: + Bloqueo de las cuentas administrativas y de acceso remoto después de 7 a 10 intentos de inicio de sesión erróneos + Bloqueo de las cuentas de usuarios regulares tras al menos 10 intentos de inicio de sesión erróneos + Requerir la intervención de un administrador para desbloquear las cuentas de acceso remoto y de administrador, y para reactivar automáticamente las cuentas de usuarios estándar al cabo de 5 minutos. CREACIÓN DE CONTRASEÑAS PARA ADMINISTRADORES Por lo general, las limitaciones para crear contraseñas de administradores deben ser más estrictas que las que se aplican a las cuentas normales. En Windows, debe crear contraseñas de 14 caracteres alfanuméricos que incluyan caracteres especiales para las cuentas administrativas (y las cuentas de servicio). PAQUETES DE ADMINISTRACIÓN Cuando se utilizan paquetes de administración, debe robustecer y asegurar físicamente las consolas administrativas. Debe robustecer las terminales de trabajo de administración que controlan los servidores y dispositivos de la red. Use conexiones SSH o VPN para proteger los protocolos de texto sin encripción. Las terminales de trabajo de administración deben estar dedicadas a administradores de red y hosts específicos. Pruebe todos los sistemas de administración que utilizan SNMP para asegurarse de que tengan los parches más recientes y que no utilicen cadenas de conexión automáticas de la comunidad. Los sistemas compartidos no almacenan datos de administración específica. Las terminales de trabajo compartidas no se pueden usar para administrar hosts ni dispositivos de red. ARCHIVO CON LA BITÁCORA DEL USO Los archivos con la bitácora del uso se configuran para que graben las actividades planificadas sin sobrescribir entradas. Debe establecer un proceso automático de rotación de los archivos con la bitácora del uso cada día, así como la descarga de los archivos a un servidor seguro en la red de administración. Limite el acceso a los parámetros configurados y a los archivos con la bitácora del uso para evitar que sean modificados o eliminados. Los archivos con la bitácora del uso se deben revisar periódicamente para detectar actividades sospechosas o anómalas. La revisión debe extenderse al funcionamiento, mantenimiento y a la seguridad de los sistemas. Para sacar más partido de esta revisión, debe utilizar un software de correlación de eventos y de análisis de tendencias. PROCESO DE CREACIÓN PARA PARCHES Mantenga procesos de armado mediante los parches y configuraciones cerradas recomendadas del fabricante. Compruebe este proceso periódicamente. Utilice procedimientos para robustecer los hosts con el objeto de corregir y configurar correctamente los servicios y las aplicaciones de cada host. Desactive todos los servicios y las aplicaciones que no necesite. Deben robustecerse las terminales de trabajo instalando los parches recomendados, retirando también todos los paquetes y servicios que no sean necesarios y evaluando los permisos de los archivos. Incluya medidas de robustecimiento de los hosts en los procedimientos estándar de creación de terminales de trabajo. Terminales de trabajo Las terminales de trabajo son un elemento fundamental en la defensa de cualquier ambiente, sobre todo si hay usuarios remotos o itinerantes que se estén conectando. Herramientas como firewalls particulares, antivirus y software de acceso remoto son imprescindibles en todas las terminales, donde deberán configurarse correctamente. Ponga en práctica un procedimiento que exija una revisión periódica de estas herramientas para asegurarse de que la configuración refleje los cambios en las aplicaciones y los servicios usados y que, al mismo tiempo, garantice la solidez de la terminal de trabajo ante los ataques. TIEMPO DE INACTIVIDAD EN APLICACIONES CRÍTICAS Colabore con los propietarios de las empresas para definir el tiempo de inactividad aceptable en las aplicaciones críticas. A partir de estos resultados, tome las medidas oportunas para cumplir o incluso mejorar los objetivos. La disponibilidad y el rendimiento de las aplicaciones Web mejoran con la utilización de dispositivos de equilibrio de carga en los primeros niveles de los servidores Web. Los dispositivos de equilibrio de carga distribuyen las solicitudes a nodos diferentes dentro del clúster del servidor con el objetivo de optimizar el rendimiento del sistema. Si falla un servidor Web en el clúster, se envía la solicitud a otro servidor, lo que garantiza una alta disponibilidad. Póngase de acuerdo con los propietarios de las empresas para definir el tiempo de inactividad aceptable en las bases de datos y los archivos compartidos críticos. Pruebe con regularidad los mecanismos a prueba de fallas para las aplicaciones y determine si el tiempo de inactividad es excesivo. Para minimizar el tiempo de inactividad, debe utilizar un mecanismo de clúster. Cada aplicación en clúster está en el mismo dominio de seguridad, es decir, comparte una base de datos de usuario y grupo común. Las operaciones de administración dentro de un clúster de equipos y dentro de una aplicación surten efecto tanto en la aplicación como en los homólogos. Las aplicaciones que dependen de un conocimiento especial del ambiente de clúster, por ejemplo, por interacción con dispositivos de equilibrio de carga, reconocen y controlan todas las condiciones de excepción previsibles. Las respuestas adecuadas pueden ser avisar al equipo de operaciones o probar la resistencia ante fallas. La estrategia de copias de respaldo debe abordar el problema más grave que podría presentarse: la restauración de todos los sistemas y aplicaciones. Para aplicaciones críticas, el proceso de restauración debe realizarse en un tiempo mínimo y con garantías de un funcionamiento pleno. Pruebe regularmente el mecanismo de recuperación y de copias de respaldo que permite restaurar la aplicación a un estado normal de funcionamiento. ACTUALIZACIONES Y PARCHES DE TERCEROS Las empresas de desarrollo de software (ISV por sus siglas en inglés) deben ofrecer actualizaciones y parches periódicos para sus aplicaciones, en las que se explique su finalidad y el impacto en términos de funcionalidad, configuración y seguridad. Los ISV deben identificar claramente cuáles son los parches más importantes para que se apliquen rápidamente. Asimismo, deben describir los distintos mecanismos de seguridad de la aplicación y proporcionar la documentación más reciente. La empresa debe conocer las configuraciones necesarias para garantizar el nivel de seguridad más alto. ACTUALIZACIONES Y PARCHES INTERNOS El equipo de desarrollo interno debe proporcionar las actualizaciones y los parches, e indicar cuál es su finalidad y el impacto en términos de funcionalidad, configuración y seguridad. El equipo de desarrollo debe identificar claramente cuáles son los parches más importantes para que la empresa pueda instalarlos rápidamente. El equipo de desarrollo debe describir los distintos mecanismos de seguridad de la aplicación y proporcionar la documentación más reciente. La empresa debe conocer las configuraciones necesarias para garantizar el nivel de seguridad más alto. Considere la posibilidad de contratar servicios externos independientes para revisar la arquitectura y utilización de la aplicación y para identificar los problemas de seguridad que pudieran existir. PARCHES PARA VULNERABILIDADES DE SEGURIDAD CONOCIDAS Debe identificar y corregir todas las vulnerabilidades de seguridad conocidas. Visite los sitios de los fabricantes y otros proveedores de soluciones de seguridad para buscar información sobre nuevas vulnerabilidades y parches disponibles. Si no hay parches disponibles para vulnerabilidades de seguridad conocidas, intente averiguar cuándo podrá disponer de uno y desarrolle un plan de seguridad provisorio. Puede contratar servicios externos independientes para revisar regularmente el diseño de seguridad de la aplicación. Una evaluación realizada por terceros podría descubrir otros problemas que exijan mecanismos de seguridad adicionales.