Está en la página 1de 6

Como blindar nuestro sistema Linux

Desde websecurity, nos ofrecen una serie de interesantes consejos y medidas a poner en práctica para
dotar a un sistema basado en GNU/Linux de un mayor nivel de seguridad. Partiendo de la creencia (al
menos por estos dominios) de que la seguridad total es una utopía, cuanto más hagamos por llegar a
ella, me jor que me jor.

Se da un repaso a herramientas creadas para fortalecer el núcleo (linux) con parches que pueden
protegerte de ataques por desbordamiento del búfe r, denegación de servicio y otros muy comunes.
También se revisan servicios innecesarios o que puedan ser fuente de problemas y cómo desactivarlos ,
imple mentación de políticas de seguridad en el sistema, etc, etc.

El contenido se ofrece en 5 partes para una me jor compre nsión.

Blindaje de nuestro sistema (Parte I)


dijo:

En un mundo perfecto, todos los sistemas operativos que se vendieran serían totalmente seguros, pero lo que
ocurre en la realidad es que los distribuidores de software colocan una balanza las características que se
desean, entre las que suelen estar el rendimiento, la facilidad de uso y la seguridad, siendo esta ultima la de
menor peso de la lista.

Un sistema puede tener de forma predeterminada multitud de servicios abiertos, aunque en realidad no se
utilicen para nada, por ejemplo un programa suid de root que permiten a un usuario normal controlar de
forma sencilla el sistema o bien unos permisos sobre algún fichero que se han establecido de forma poco
rigurosa. O también puede que el sistema contenga contraseñas predeterminadas conocidas por todos, o
contraseñas que aparecen en la propia documentación.

Blindar un sistema es el proceso que consiste en hacer más seguro nuestro sistema corrigiendo las opciones
permisivas que traiga activadas de forma predeterminada el sistema operativo, es esta serie de artículos
veremos unos cuantos programa que nos ayudarán a blindar nuestros sistemas, incluyendo parches para el
núcleo que pueden mejorar enormemente la seguridad de nuestro sistema.

El primer programa que veremos para blindar nuestro sistema es el Bastille, que originalmente fue un
intento de crear una distribución de Linux nueva y segura, pero resultó ser más duradero y difícil de lo que
los programadores esperaban, y cambiaron la idea y se centraron entonces en el desarrollo de un conjunto de
módulos que blindarían una distribución Linux recien instalada.

El segundo paso en la evolución de Bastille nos permite ejecutarlo en cualquier momento, no sólo
inmediatamente después de instalar el sistema, aunque según afirman supuso un enorme trabajo volver a
escribir el programa para que permita proteger sistemas no virgenes, pero desde mi punto de vista a
merecido la pena, ya que esta herramienta es muy útil.

Bastille esta disponible o bien por paquetes RPM ya preparados o partiendo del código fuente, y esta
totalmente configurable mediante un menu de texto, para los nostalgicos de la consola, o bien por una
interfaz basada en Tk. Una vez tenemos instalada la aplicación simplemente tenemos que ejecutar:

root InteractiveBastille

Y estaremos preparados para iniciar la configuración, donde podemos ver que cada menú de Bastille
describe una sistuación que se considera insegura o sospechosa, y nos pregunta si deseamos blindarla, y en
más o menos 10 minutos,que es el tiempo que se tarda en responder a las preguntas, Bastille comenzará a
blindar nuestro sistema realizando todos los cambios que le hayamos indicado.

La aplicación guarda en el fichero BackEnd.pl la configuración que hemos introducido, y si deseamos


blindar algún otro servidor más con la misma configuración, sólo tendremos que copiar ese fichero al nuevo
servidor, y ejecutar

root AutomatedBastille

Con lo que se aplicará la configuración al nuevo servidor, y estará igual de blindado que el anterior.

Como veis, la ejecución de Bastille es un proceso sencillo y rápido, y se debería ejecutar en todo sistema que
tenga que ser seguro.

Fuente: http://www.websecurity.es/blindaje-nuestro-sistemaparte- i

Blindaje de nuestro sistema (Parte II)


dijo:

Recordemos que blindar un sistema es el proceso que consiste en hacer más seguro nuestro sistema
corrigiendo las opciones permisivas que traiga activadas de forma predeterminada el sisitema operativo,
siguiendo con los programas que nos ayudarán a blindar nuestros sistemas, en esta ocasión veremos Harden
Suse y OpenWall.

Harden Suse ha sido desarrollado por Marc Heuse es un programa que blinda los sistemas Suse, entre las
medidas que toma Harden Suse destacan:

* Desactiva todos los servicios de la red, excepto unos poco como son SSH y VPN.
* Comenta todos los servicios que se incluyen en el fichero /etc/inetd.conf y tcpwrapper se configura para
permitir únicamente conexiones desde el sistema local.
* Registra todos los intentos de conexión, mostrando por pantalla las últimas conexiones y los intentdos
fallidos.
* Configurar todo lo necesario para que el usuario root sólo pueda conectarse desde la consola local.
* Segura las contraseñas obligando a que se utilicen contraseñas largas y poniéndoles una validez máxima
de 40 días y avisando en caso de utilizar contraseñas débiles.
* Protege los ficheros de los usuarios, estableciendo el valor de umask a 077 y aumentando las restricciones
de /home
* Configura SSH de forma segura.
* Busca y elimina los programas suid desconocidos.

Además Harden Suse crea un script para deshacer todo el proceso de blindaje que se puede encontrar en
/etc/undo_harden_suse y genera un fichero de registro que contiene toda la información sobre los cambios
realizados en /etc/harden_suse.log

Otro de los programas que existen para blindar el sistema es el proyecto OpenWall, que es un parche de
seguridad para el núcleo desarrollado por Solar Designer que mejora varias características relacionadas con
la seguridad y que corrige algunos errores, para aplicar este parc he es necesario recompilar e instalar el
nuevo núcleo para que funcionen las nuevas funciones.

Entre las mejoras se incluyen:

* Protege las pilas de desbordamientos de búfer, este parche evita que la mayoría de los desbordamiento de
búfer puedan ejecutar código malicioso haciendo que el área de la pila no sea ejecutable.
* Este parche previene que se realicen cierto tipos de enlaces en el directorio /tmp, sobre el cual se suele
establecer enlaces maliciosos.
* El parche también deniega la creación de un fichero cuando existe un FIFO(named pipe) con el mismo
nombre, ya que un atacante un FIFO en /tmp para interceptar datos que normalmente deberían ir a un fichero
temporal.
* También cambia los permisos sobre /proc para que los usuarios no puedan ver información sobre los
procesos ejecutados por otros usuarios, a no ser que esten en un grupo especial.
* El parche también asegura los descriptores de ficheros 0,1,2, reservados normalmente para stdin,stdout y
stderr, respectivamente. Lo que hace es asegurar que que cualquier programa sid/sgid que se arranque tenga
esos ficheros apuntado a /dev/null en caso de que no estén definidos.

El único problema de este parche es que no son cien por cien compatibles con el Linux estándar, por lo que
debes estar seguro de entender todas las implicaciones antes de decidir utilizar este parche, hay que ser un
poco valiente.

La semana que viene seguiremos con los programas que podemos utilizar para hacer nuestros sistemas más
seguros y más fiables.

Fuente: http://www.websecurity.es/blindaje-nuestro-sistema-parte-ii

Blindaje de nuestro sistema (Parte III)


dijo:

LIDS (Linux Intrusion Detection System), es un sistema de detección de intrusos de Linux que incluye un
sistema de detección de escaneados de puertos y de alertas de seguridad en el propio núcleo.

Sin embargo la caracterísitica verdaderamente potente de LIDS es que amplía en modelo de seguridad de
Linux, es decir, se distribuye como un parche para el núcleo con lo que no se pierde la seguridad que aporta
el núcleo por defecto.

Entre las características de LIDS destacan:

* Los ficheros protegidos por LIDS pueden ocultarse, protegerse contra cambios, incluso por los realizados
por el usuario root.
* Se pueden utilizar de forma más eficiente las capacidades para garantizar ciertos privilegios, como puede
ser no permitir a root modificar ciertas capacidades.
* El núcleo puede rechazar el envio de señales a procesos protegidos como SIGKILL. Además, también
permite ocultar los procesos de forma que no existirá ninguna entrada correspondiente a ese proceso en el
sistema de ficheros /proc.
* Tiene detección de escaneado de puertos integrado en el núcleo, con lo que puede detectar cualquier tipo
de los escaneados que se pueden realizar hoy en día, informando de los intentos de violación del sistema
mediante syslog o mendiante correo electrónico según se desee.

A la hora de instalar LIDS tienes que descargar la última versión del núcleo de Linux y el código fuente de
LIDS, y luego aplicar los parches al núcleo con el código de LIDS descargado, recompilar el núcleo,
instalarlo y reiniciar la máquina.

LIDS va a proteger el núcleo contra cualquier modificación mientrás este funcionando, a menos que seamos
root y que nos autentifiquemos con el programa lidsadm, con el que podremos realizar cualquier cambio que
queramos y se guardará en el fichero de configuración, que se encuentra en /etc/lids
Uno de los aspectos a tener en cuenta cuando se instala LIDS es configurar la aplicación para permitir que
active restricciones muy severas en la mayoría de ficheros. Se deberían proteger todos los binarios, los
ficheros de registro y los ficheros de configuración. Además LIDS permite establecer cuatro tipos distintos
de control de acceso:

* Permite la opción de denegar, haciendo que los ficheros marcados como DENY no pueda acceder ningún
usuario o programa, a menos que se permita explicitamente.
* Los fichero de sólo lectura(READ) no podrán ser modificados por nadie, ni siquiera por el root.
* Los ficheros de sólo actualización(APPEND) podrán ser únicamente abiertos para actualizarlos, pero no
podrán ser modificados, es decir, este tipo de acceso se utiliza habitualemente para los ficheros de registro, a
los que sólo se les permite crecer, impidiendo que un atacante pueda borrar líneas que darían pistas sobre sus
actuación.
* Esta opción dará permisos de escritura en el fichero a los usuarios o programas que se especifiquen.

Utilizar LIDS es una forma muy efectiva de blindar nuestra máquina contra las debilidades de las
instalaciones perdeterminadas, sin embargo no es una herramienta que puedan utilizar los temerosos, os
recomiéndo que consultéis la documentación, así como el LIDS-HOWTO antes de intentar utilizarlo.

Otro de los programas que existen para blindar el sistema es Grsecurity, que es un conjunto de parches de
seguridad para el núcleo, cuyo objetivo final es crear uns sistema seguro sencillo de configurar.

Entre las principales características incluye las funcionalidades del parche OpenWall, restricciones sobre
ficheros y capacidades similares a las que presenta LIDS, moejoras de los procesos de registro y auditorias y
varias herramientas adicionales, entre las que destaca Trusted Path Execution.

Con el artículo de esta semana hemos visto dos nuevas programas que podemos utilizar para hacer nuestros
sistemas más seguros y más fiables, la semana siguiente seguiremos viendo más programas para blindar
nuestros sistemas.

Fuente: http://www.websecurity.es/blindaje-nuestro-sistema-parte-iii

Blindaje de nuestro sistema (Parte IV)


dijo:

LCAP (Linux Kernel Capability Bounding set Editor) permite a los administradores de sitemas editar las
capabilitys bounding sets del núcleo, que es una lista de capacidades de control de acceso basados en el
propio núlceo del sistema, al que se puede encanchar cualquier proceso.

Con LCAP el administrador va a poder eliminar las capacidades que desee para hacer el sistema mas seguro,
ya que si una capacidad se elimina del bounding set, no será utilizada por ningún proceso del sistema.

LCAP modifica el fichero sysctl:/proc/sys/kernel/cap-bound, cuando se elimina una capacidad del conjunto,
no será utilzable hasta que se reinicie el sistema, además permite generar un script en /etc/init.d, que se
ejecuta al inicio del sistema, y que no elimina las capacidades que queramos.

La funcionalidad principal de LCAP puede conseguirse con otros programas como por ejemplo LIDS que
nos permite un control más granular, por lo que no es un programa que recomiende, ya que hay otros que
hacen lo mismo y más, pero me ha parecido interesante el saber que existe.

Una de las herramientas que si recomiendo es la utilización de Security-Enhanced Linux(Seguridad


mejorada en Linux), o más conocido como SELinux.
SELinux ha sido fundada por la NSA(Nacional Security Agency) y programada en colaboración con
Network Associate, se trata de un parche de seguridad para el núcleo de Linux que habilita un nivel de
seguridad de usuario extremo.
Con SELinux es posible confinar un programa con el menor nivel de acceso necesario para que pueda
realizar la tarea necesaria, funcionando en un estado falso-cerrado, que siginifica que tenemos que facilitarle
al núcleo una lista de todos los privilegios que son necesarios para que los programas se ejecuten
correctamente o sino fallarán.

Otra de las cosas que destacan de SELInux es que por ejemplo el usuario root es otro usuario más, sin
privilegios especiales, además está programado bajo licencia GPL lo que significa que la NSA, agencia es
famosa por su secretismo y por ser el objetivo de muchas conspiraciones, a proporcionado un parc he de
seguridad Open Source que puede utilizarse para mejorar la seguridad del sistema, y aunque en un principio
muchas personas temían que pudiera ser un intento de abrir puertas traseras o de instalar algún tipo de
spyware en sistemas Linux, el código está limpio y cumple con su propósito con creces.

Como podeís ver poner un sistema en funcionamiento con SELinux es bastante complicado, pero tendréis un
sistema extremadamente seguro.

Con el artículo de esta semana hemos visto dos nuevas programas que podemos utilizar para hacer nuestros
sistemas más seguros y más fiables, la semana siguiente seguiremos viendo más programas para blindar
nuestros sistemas.

Fuente: http://www.websecurity.es/blindaje-nuestro-sistema-parte-iv

Blindaje de nuestro sistema (Parte V)


dijo:

Systrace fue desarrollado por la gente de OpenBSD/OpenSSH y por el gurú de la seguridad Niels Provos,
esta herramienta es un generador de políticas de llamadas al sistema para OpenBSD y que actualmente se
esta portando para Linux, aunque actualmente todavía se encuentra en desarrollo.

Mediante Systrace se puede especificar a un programa determinado qué llamadas se pueden hacer al sistema
y con qué parámetros, pero al contrario de lo que sucede con otros parches descritos en los artículos
anteriores, Systrace le permite crear las políticas de forma interactiva, es decir, que puedes ejecutar un
programa bajo Systrace comprobar que llamadas al sistema se estan realizando, y decidir si las permites o
no.

La ventaja, es que se puede indicar en el momento que es lo que esta permitido y que no lo esta, de forma
que cualquier mensaje de advertencia que produzca Systrace a partir de ese momento puede indicar alguna
acción no esperada que pueda estar relacionada con algún problema de seguridad.

Como esta herramienta permite comprobar tanto llamadas al sistema como los argumentos, vas a poder crear
políticas específicas que permitan a ciertos programas acciones como crear ficheros sólo bajo ciertos
directorios y en ningún sitio más.

Otra de los usos que se suele dar a Systrace es utilizarlo para probar aplicaciones sospechosas, si por
ejemplo te encuentras ante un posible troyano, podrías ejecutar Systrace y ver exactamente que esta
intentando hacer, incluso nos permite establecer una celda con chroot para que el programa que queremos
probar realice todas sus acciones dentro de esa celda sin afectar a nuestro sistema.

La otra aplicación sobre la queríamos hablar hoy, es LSM que viene de Linux Security Module(Módulo de
Seguridad para Linux), y cuya función no consiste en generar una política de seguridad no estándar, sino en
proporcionar un mecanismo de enganche para que los programadores puedan desarrollar sus propios
módulos de seguridad.

Cuando LSM se carga en el núcleo, se colocará justo delante de varias llamadas al sistema relacionadas con
la seguridad, como las que se utilizan para determinar si un proceso de usuario o un usuario puede acceder a
un determinado fichero.

LSM pone a disposición de otros módulos estos enlaces para que puedan definir sus propios políticas de
seguridad, para poder aplicar estas políticas de seguridad es necesario parcher el núcleo, por lo que es
complicado aplicar más de un parche al mismo tiempo.

Una de las ventajas que ofrece esta interfaz consistente en las llamadas al sistema, ya que LSM puede
facilitar enormemente la implementación de nuevas políticas de seguridad y permite que los módulos se
apilen, lo que significa que va a ser posible utilizar tanto los módulos de Grsecurity como los de OpenWall
muy fácilemente, lo que además implica que los módulos podrán cargarse y descargarse con el núcleo en
funcionamiento, sin ser necesaria una compilación del nucleo.

Con el artículo de esta semana hemos visto terminado de ver los programas que podemos utilizar para hacer
nuestros sistemas más seguros y más fiables, la semana siguiente pasaremos a ver las distintas formas que
tenemos de realizar un análisis de nuestros ficheros de registro.

Fuente: http://www.websecurity.es/blindaje-nuestro-sistema-parte-v

Fuente: http://www.daboweb.com/2010/03/05/como-dotar-de-mas-de-seguridad-a-un-sistema-gnulinux/

También podría gustarte