Blog sobre seguridad informática, privacidad, anonimato, hacking ético, programación y sistemas operativos en general.

Mostrando las entradas con la etiqueta linux hardening. Mostrar todas las entradas
Mostrando las entradas con la etiqueta linux hardening. Mostrar todas las entradas

lunes, 15 de enero de 2018

SecHackLabs: Linux Hardening - Instalando tu distribución Linux de manera segura.


El corazón de nuestro sistema GNU/Linux son el Kernel y el sistema operativo. Combinados, forman el la base de su sistema, en el cual todas las aplicaciones se ejecutarán. Hablando comparativamente el sistema GNU y el kernel Linux son razonablemente seguros. Un gran número de carácteristicas de seguridad están integradas en el kernel, herramientas relacionadas a la seguridad y otras carácteristicas vienen con la mayoría de distribuciones GNU/Linux o están disponibles en la red de manera open-source. Adicionalmente GNU/Linux ofrece un control excepcional sobre quien, cómo y cuales recursos y aplicaciones pueden ser accedidas por los usuarios. Entonces ¿donde están los riesgos?

Un viejo refrán dice "El diablo está en los detalles". La seguridad de su sistema depende de una amplia variedad de elementos de configuración tanto a nivel del sistema operativo como a nivel de aplicación. Además, el sistema operativo Linux y el kernel son complejos y no siempre es fácil de configurar. De hecho, los sistemas Linux son casi infinitamente configurables, y cambios de configuración sutiles pueden tener importantes implicaciones de seguridad. Por lo tanto, muchas expocisiones (de estar expuesto a ataques) de seguridad y vulnerabilidades no siempre son obvias de inmediato, y la falta de comprensión sobre el impacto global de los cambios en los elementos de configuración puede conducir a expocisiones inadvertidas.

Además la seguridad en sistemas GNU/Linux no es estática, una vez asegurado tu sistema, este no está perpetuamente protegido, a medida que usas tu sistema, la seguridad se va debilitando. Esto puede suceder debido a cambios operacionales o funcionales, así cómo el descubrimiento de nuevas vulnerabilidades y exploits en aplicaciones y paquetes.  Asegurar su sistema es algo continuo y viviente, muchos de los cambios que se aplicarán a lo largo de esta serie de publicaciones debes hacerce más de una vez (por ejemplo, luego de un cambio a nivel operacional, una reinstalación de componentes, etc) o ya sea de manera rutinaria para mantener el nivel de seguridad en su sistema.

Por defecto, la mayoría de distribuciones GNU/Linux vienen con un gran número de paquetes instalados, aplicaciones y configuraciones de manera predeterminada para ti. Esto depende del creador de la distribución y de la finalidad de la misma.

· Instalando tu distribución Linux de manera segura.


Esta serie de publicaciones no pretende centrarse en una distribución en especifico y las recomendaciones dadas a lo largo de la misma son apicables a la mayoría de sistemas GNU/Linux. Aquí no explicaremos el proceso de instalación de ninguna distribución es especifico y se dará consejos generalizados para la instalación de tu distribución, sea cual sea tu elección. Este proceso es una de las claves del proceso de hardening, la clave de la seguridad de la tecnología de la información (IT) es la minimización de sus riesgos. Las instalaciones por defecto de la mayoría de distribuciones hacen lo contrario.

Tips Generales.

* Habilite SHA1, shadow o cualquier otro método o algoritmo que ayude a mantener sus contraseñas relativamente más seguras.

* Cuando se te pida la contraseña del usuario root introduzca una contraseña robusta, el usuario root tiene permisos para hacer todo en el sistema. Aquí dejo un link sobre cómo crear contraseñas seguras.

* Cree un usuario diferente de root con los permisos adecuados y estrictamente necesarios, de este modo se evita estar conectado siempre cómo root y además de que todo lo que se ejecute se haga con privilegios root.

* Si durante la instalación es preguntado, instale un firewall de los propuestos allí, si te proponen opciones de control para el firewall, elija aquella que permita el mínimo número de conexiones. Solamente habilite conexiones explicitas cuando esté completamente seguro de que las necesita. Recuerde que generalmente cualquier firewall instalado y configurado durante la instalación, no es adecuado para propositos de producción.
Instala solo lo que necesites.

Cómo hemos dicho, el minimalismo es importante. Si su distribución te da la posibilidad de elegir una mínima o personalizada cantidad de paquetes durante la instalación, entonces elija esa. De hecho, recomendamos que solo instale el sistema base y deje todo lo demás sin instalar.
Nosotros no te podemos dar un número detallado de paquetes que no deben ser instalados, pero muchos de ellos basta con el uso del sentido común para saber que no se necesitan. ¿Realmente necesita usted tener metasploit o aircrack-ng en un servidor web con Apache?, con ese tipo de preguntas fácilmente puedes identificar que tipos de los paquetes que vienen preinstalados son candidatos para remover.

Varias de las áreas que recomendamos revisar para remover paquetes innecesarios son:

· Juegos.
· Servidores de red.
· Demonios y servicios (Esto incluye scripts de autoarranque).
· Bases de datos.
· Herramientas Web.
· Editores.
· Paquetes relacionados con multimedia (Reproductores, quemadores de CD, etc)
· Herramientas de desarrollo y compiladores.
· Herramientas de impresión.
· Herramientas de Office.
· Herramientas de manejo de documentos.
· Entornos de escritorio y todo lo relacionado con X-Windows.

Una de las recomendaciones más importantes durante la instalación, es el elegir no instalar paquetes relacionados con X-Windows o entornos de escritorio. Además, sistemas Linux de producción (Servidores {web, email, FTP, firewall, etc}) no necesitan X-Windows para realizar sus funciones. X-Windows es una inmensa cantidad de paquetes que contiene numerosos componentes y una larga historia de vulnerabilidades que lo convierten en un componente potencialmente peligroso. Adicionalmente, Linux al contrario de Windows, no necesita entornos de escritorio o GUI's (Graphical User Interface) para funcionar, nada de lo que hagas desde un entorno de escritorio no se puede hacer desde la línea de comandos.

Precaución: No instale su distribución mientras está conectado a internet o conectado a una red que está conectada a internet.

Puede parecer una buena idea estar conectado a internet cuando usted va a obtener actualizaciones, parches de seguridad o registrar su sistema. ¿Pero en realidad lo es? Probablemete tu CD/USB/DVD de instalación esté descatualizado, un número de vulnerabilidades y fallos desde entonces han sido descubiertos. Esto significa que su sistema está potencialmente expuesto a un gran número de ataques, entonces, hasta que usted descargue todos los parches y actualizaciones, su sistema es vulnerable. Mientras usted está ocupado esperando que su sistema descargue los requeridos parches y actualizaciones y los aplique, un atacante tiene el potencial de identificar su sistema desprotegido y vulnerar este usando una vulnerabilidad que aún no ha sido parchada.

Para reducir los riesgos de conectar un sistema desprotegido a internet, te recomendamos estar offline o desconectado de internet hasta que usted haya parchado y aplicado las correspondientes actualizaciones y parches de seguridad. Para realizar esto, recomendamos descargar primero todas las actualizaciones y parches en otro sistema primero y comparar las sumas MD5 o MD5 checksums de los paquetes descargados contra los publicados por el creador del sistema en su sitio oficial, además de validar su clave GPG.

Una recomendación muy práctica de nuestra parte es que configures una máquina central de "Actualizaciones y Parches" y descargues y verifiques todos los paquetes en ella antes de instalarlos en su sistema de producción. También puede utilizar dicha máquina para probar nuevas versiones o actualizaciones antes de hacerlo con sus sistemas de producción. Para una nueva instalación, usted puede empaquetar y grabar las actualizaciones en un CD y cargarlas directamente en el sistema que va a ser actualizado o parchado.

Esperamos que este post haya sido de su utilidad, cualquier duda o sugerencia pueden dejarla en los comentarios.

Síguenos en Facebook, Twitter, unete a nuestra charla en Riot, únete a IRC o únete a Telegram.

domingo, 14 de enero de 2018

SecHackLabs: Contenido de Linux hardening.


Anteriormente habiamos iniciado con una serie de publicaciones sobre Linux Hardening, las cuales por motivos de tiempo habian quedado pausadas. Ahora hemos decidido continuarlas y para hacer que todo sea más fácil para nuestros lectores, en este post se estará actualizando cada una de las entregas que hagamos en Linux Hardening, al igual que lo estamos haciendo con la serie "Hacking con Nmap."

Propósitos de Linux Hardening.

1. Los propósitos de esta serie de publicaciones se basan en algunos principios subyacentes que son cruciales para mantener su seguridad.

• Sea minimalista y minimice el riesgo.
• Defensa en profundidad.
• Vigilancia.

Una comprensión de estos principios, en combinación con los ejemplos y un poco de sentido común, puede ayudarlo a mitigar el riesgo de un ataque a sus equipos. 

Sea minimalista y minimice el riesgo.

El primer principio, el del minimalismo, también se puede expresar con el acrónimo KISS o Keep It Simple Stupid (Mantén esto simple estúpido). La forma más segura de reducir los riesgos para sus hosts es no introducir riesgos en primer lugar. Por ejemplo, muchas distribuciones instalan servicios, herramientas, aplicaciones y funciones que podría representar un riesgo para su equipo. En algunos casos estas activan e inician servicios automaticamente. También crean usuarios para estos servicios y aplicaciones que a menudo no son necesarios o podrían ser utilizados por un atacante para comprometer su equipo. El primer paso para minimizar el riesgo para sus equipos es eliminar este excesivo e innecesario material. El segundo paso es asegurarte de que estés controlando lo que está instalado e instalará en sus equipos. No instale más de lo que necesita, no ejecute servicios o funciones que no necesita, y no tenga usuarios que no necesita.

Esto es algo que tienes que hacer desde cero con la instalación de un nuevo host hardened o si desea hacer hardening a un host existente. Obviamente, minimizando la funcionalidad de un sistema existente es más difícil. Debe asegurarse de estar completamente al tanto de que todas las funciones que se necesiten funcionen y asegúrarse de no desactivar o eliminar algo que se requiere en ese equipo para proporcionar la funcionalidad requerida. Endurecer un equipo de producción requiere pruebas exhaustivas y recomiendamos que continúe solo si tiene la capacidad de anular cualquier cambio y revertir a su configuración original en caso de que un cambio de seguridad tenga un efecto adverso. 

Defensa en profundidad.

El segundo principio de buena seguridad es la defensa en profundidad. En su forma más básica, la defensa en profundidad significa tomar un enfoque en capas para defender a sus equipos. El concepto de defensa en profundidad propone el uso de capas de tecnología, políticas y procesos para proteger sus sistemas. Esto significa que, siempre que sea posible en su entorno, no confíe en una sola capa para la defensa de tus equipos.

Podemos tomar de ejemplo su conectividad a Internet. Solo instalando un firewall entre su red interna e Internet no es suficiente. Además de un firewall entre su red e Internet, debe proteger sus hosts internos individuales, instalar un sistema IDS de algún tipo, realizar pruebas de penetración regulares y escaneo de vulnerabilidad de su equipo. Debe aplicar este principio a todos los componentes de seguridad de su equipo.

Vigilancia.

Una de las mayores amenazas para su seguridad es simplemente no hacer nada. No importa cuán seguros estén sus equipos en este momento, ellos, a diferentes velocidades, se volverán menos seguros con el paso del tiempo. Esto es una consecuencia de la entropía simple, como cambios en sus aplicaciones, entorno y requisitos que alteran la configuración y el potencial de sus sistemas. También es una consecuencia de la naturaleza cambiante de las amenazas en su contra. Lo que te has protegido ahora puede no ser lo que necesita para protegerse en el futuro. Esto es más obviamente manifestado como nuevas vulnerabilidades y exploits de esas vulnerabilidades que se descubren en los sistemas operativos, aplicaciones y herramientas que tiene en ejecución.

Debe asegurarse de incluir administración de seguridad y monitoreo como parte de sus actividades regulares de administración de sistemas. Verifique sus registros, audite a sus usuarios y grupos, y supervisa tus archivos y objetos en busca de actividad sospechosa. Conozca las rutinas y la configuración de sus hosts; cuanto más comprenda sobre los ritmos normales de sus equipos, más fácil será detectar anomalías que podrían indicar que estás bajo ataque o que has sido vulnerado.

También debe asegurarse de estar al día con vulnerabilidades, amenazas y exploits. A lo largo de estas publicaciones hablaremos sobre algunas de las fuentes de información que puede utilizar para hacer esto. Deberías suscribirte o revisar la información relacionada con la seguridad que distribuyen sus proveedores, así como aquellos disponible de fuentes de terceros como SANS o CIS.

Finalmente, realice pruebas de vigilancia. Y prueba de nuevo. Realice evaluaciones regulares de seguridad de su equipo y entorno. Buscar vulnerabilidades utilizando herramientas como Nessus, metasploit, nmap o herramientas comerciales. Considere el uso de terceras partes para realizar la prueba de penetración de su entorno y equipos. La garantía de seguridad continua es vital para asegurarse de que se mantente protegido y endurecido contra ataques.


Síguenos en Facebook, Twitter, unete a nuestra charla en Riot, únete a IRC o únete a Telegram.

* Contenido de Linux Hardening.