Archivos de la categoría ‘Seguridad’

Torificación: ¡¡Ojo con los pings!!

Publicado: febrero 16, 2017 en Seguridad
Etiquetas:, ,

En muchas ocasiones utilizamos la torificación, bien sea usando el Transparent Proxy de Tor o torify, para conseguir que todas nuestras conexiones salgan a través de Tor. Esto es muy útil cuando vamos a usar herramientas o aplicaciones que carecen de soporte para configurar proxys o, sencillamente, para que evitar fugas.

Esto, que a priori es muy bueno, puede ser un problema si intentamos que protocolos no soportados salgan a través de Tor. Si nos paramos a leer el manual de torify, al final, nos encontramos con esto: (más…)

Hoy voy a hacer un pequeño Howto, que nos va a servir para “torificar” el sistema. ¿Por qué hacer esto? Bueno, cuando utilizamos Tor-Bowser, podemos navegar a través de la red TOR y, en principio, hacerlo con un alto grado de anonimato. Sin embargo, existen diferentes técnicas que van a permitir revelar nuestra IP.

Para clarificar un poco esto, podéis visitar https://ipleak.net (con Tor-Browser, no podrá descubrir vuestra IP mediante WebRTC, porque ya lo tiene deshabilitado).

La idea es que, por un lado, todas las consultas de DNS las hagamos a la red TOR. Por otro, vamos a enviar todo el tráfico saliente a través de TOR por defecto. El tráfico entrante y saliente, estará bloqueado por defecto. De esta manera, evitaremos que pueda ser revelada nuestra IP con mecanismos similares, basados en JavaScript. (más…)

grsecEn Mejora la respuesta de tu desktop con linux-ck, os hablé sobre el linux-ck, el kernel con unos parches, que permiten mejorar la respuesta del sistema. Sin embargo, si estamos hablando de servidores, o estamos preocupados por la seguridad del sistema, ese conjunto de parches o el kernel por defecto, no será suficiente.

El kernel por defecto viene compilado para poder utilizar SELinux o AppArmor. Para poder utilizarlos, deberemos recurrir al AUR o a repositorios no oficiales, pues, el primero necesita que ciertas partes del sistema estén parcheadas y, el segundo, unas utilidades específicas.Algo que sí está soportado desde hace poco tiempo, es grsecurity. Un conjunto de parches y utilidades, que nos van a proporcionar una funcionalidad similar a SELinux y AppArmor, además de una protección adicional, mediante PaX, que permite añadir una protección a la memoria, de manera que podamos proteger el equipo de exploits que utilizan desbordamientos de la misma.

Lo primero que vamos a hacer es instalar el kernel parcheado y generar las entradas para el Grub. No se eliminan el resto de kernels, así que no hay por qué preocuparse:

sudo pacman -S linux-grsec
sudo grub-mkinstall -o /boot/grub/grub.cfg

Las opciones de grsecurity se activan mediante sysctl y están disponibles en /etc/sysctl.d/05-grsecurity.conf. Podemos ajustar, según sea nuestra necesidad. Encontraremos opciones que van desde restringir nuevos USBs, hasta restricciones para chroot, bloquear las restricciones en sysctl para impedir modificaciones en valores de grsec, etc.

Para el caso de servidores, es muy interesante el RBAC (Role Based Access Control). Podemos crear diferentes roles para las aplicaciones, de manera que podamos controlar mejor qué pueden hacer, disminuyendo el alcance en caso de una intrusión.

Esto está desactivado por defecto y guarda alguna similitud con SELinux y AppArmor. Para habilitarlo y ver cómo crear los roles, os recomiendo echar un ojo aquí y a la documentación del proyecto. Necesitamos instalar el siguiente paquete:

sudo pacman -Syu gradm

La protección PaX está desactivada por defecto. Esto es porque no todos los binarios soportan bien todas las opciones de protección y hay que añadir excepciones para desactivar alguna. Para poder testear y revisar el estado de los binarios, instalaremos:

 pacman -Syu checksec pax-utils paxtest

Os dejo una captura, a la izquierda, un test realizado con paxtest con PaX desactivado, a la derecha, activado.

screenshot2014-07-11_210254_755473508

Hay varios métodos para controlar las excepciones que necesitemos desactivar en los binarios. El más cómodo es utilizar  paxd, un daemon que también se encuentra en community.

sudo pacman -Syu paxd

Este paquete consta de un servicio estático (está habilitado por defecto) y, en el archivo /etc/paxd.conf, se añaden las excepciones necesarias. Si lo editamos, vemos que es muy fácil deshabilitar las excepciones.

Tanto en las opciones de grsecurity, como en la configuración de paxd, se está trabajando para conseguir un equilibrio entre seguridad, funcionalidad y estabilidad, de manera que, con la paquetería soportada, no necesitemos tocar nada (instalar y a correr 😉 ).

En cualquier caso, si al instalar paxd algún binario deja de funcionar, podemos chequear si ha sido por una restricción, ejecutando:

sudo dmesg | grep nombre_binario

Por ejemplo, elinks necesita la excepción mprotect. Al ejecutarlo sin añadirla, obtendremos una “Violación de segmento”. Si ejecutamos el comando anterior, nos devolverá algo siminar a:

[ 2906.767704] grsec: denied RWX mmap of <anonymous mapping> by
/usr/bin/elinks[elinks:3800]uid/euid:1000/1000 gid/egid:1000/1000,
parent /usr/bin/bash[bash:2213] uid/euid:1000/1000 gid/egid:1000/1000

Una vez localizado el problema, editados /etc/paxd.conf y desactivamos la opción correspondiente:

 m /usr/bin/elinks

En realidad, elinks necesita añadir las excepciones emr, pero ya lo están en el fichero configuración.

Volvemos a lanzar el comando y, si todo va bien, sería interesante avisar al desarrollador en github, enviando los datos, para que pueda comprobarlo y corregirlo.

En el caso de Firefox, en algunos sistemas x86_64, crashea si no está añadida la excepción p. Es un caso curioso porque, si lo ejecutamos en safe-mode, no ocurre. Además, no es en todos los sistemas. Si, al activar PaX, Firefox crashea al poco de iniciarlo, bastará editar el /etc/paxd.conf y añadir la excepción, quedando la línea correspondiente así:

pem /usr/lib/firefox/firefox

En cualquier caso, os animo a que lo utilicéis, sobre todo, por la seguridad adicional que nos aporta.

¡Espero que os sea útil!

malware
En los artículos anteriores, vimos cómo detectar rootkits y la utilización de antivirus y antispam. En éste, vamos a ver unas herramientas para proteger nuestra red.

Lo primero que no debe faltar en nuestro equipo, es un cortafuegos. Disponemos de múltiples alternativas. Una bastante fácil de utilizar es UFW, que es un front-end de iptables. Es decir, utiliza iptables, pero la creación de reglas es mucho más sencilla. (más…)

malwareEn el artículo anterior, vimos cómo instalar un detector de rootkits. Dado que el malware se distribuye, sobre todo, mediante el correo y, además, es posible que necesitemos escanear diferentes archivos,  vamos a instalar un antivirus y un filtro antispam.

El antivirus que vamos a instalar es ClamAV, el cual está integrado en diferentes clientes de correo. Además, podríamos utilizarlo, también, para filtrar los correos electrónicos de nuestro servidor de correo, en caso de tener alguno alguno instalado. Exim, por ejemplo, está compilado en ArchLinux con soporte para filtrar los correos con ClamAV y Spamassassin. (más…)

malwareUna vez instalado el sistema, es conveniente aplicar ciertas medidas de seguridad. Al igual que en el resto de sistemas, un GNU/Linux también puede sufrir ataques de diversos tipos, así que, aunque confiemos en su seguridad, hay que establecer medidas.

Un S.O. es tecnología, no debemos dejar su seguridad en manos de la fe, que es algo místico.

Lo primero que vamos a instalar es un detector de rootkit. Vamos a configurar chequeos del sistema diarios, así como actualizaciones  de su base de datos.

(más…)

Email-LogoEXIM es un servidor de correo, utilizado por algunas distribuciones por defecto, que nos puede venir muy bien para el envío de correo local. Así podremos recibir notificaciones de algunos servicios, como pueden ser cron, fail2ban, etc.

En el caso de querer levantar un servicio de correo no solo para nuestra red local, y con acceso desde fuera de la misma, quizás sea más interesante utilizar PostFix. En este artículo veremos cómo configurar EXIM para que funcione dentro de nuestra red y, además, pueda enviar correo al exterior utilizando otro servidor smtp, por ejemplo,  una cuenta de GMAIL.

(más…)

archlinux-vert-dark-grad1

En el artículo anterior, realizamos el particionado del sistema de archivos, cifrando los volúmenes. Utilizamos LVM para crear volúmenes virtuales y LUKS para cifrarlos. Ahora, continuemos con la instalación.

Lo siguiente que debemos hacer, una vez particionado y formateado el disco, será indicar los puntos de montaje. Para comprender mejor cómo es la jerarquía del sistema de archivos en ArchLinux, podéis leer esto.

(más…)

archlinux-vert-dark-grad1

Un sistema instalado sobre un disco sin cifrar es accesible. Tan solo hay que modificar una entrada en el gestor de arranque o, en caso de que esté protegido, arrancar con otro sistema. Bastará montar el disco al que queremos acceder y podremos extraer toda la información, contraseñas de usuarios, etc.

El cifrado de discos antes de instalar un sistema, es muy importante para prevenir el acceso a los datos en caso de pérdida del equipo. En algunas distribuciones podemos realizar este cifrado desde su instalador (es el caso de Debian y derivadas o Fedora). En el caso de ArchLinux y otras distribuciones, esto no es así, por lo que veremos un método para realizar esta tarea.

(más…)

En el artículo anterior, vimos cómo configurar sudo. En ese artículo hablé de cómo se pueden especificar qué comandos puede ejecutar un usuario y configuración básica de /etc/sudoers.conf. En éste vamos a ver algunos problemas de seguridad que podemos tener en la configuración de sudo.

El primer problema es la utilización del modificador ! (negación) de uno o varios comandos. Por ejemplo, supongamos que creamos la siguiente regla:

zodiac ALL= (ALL) ALL, !passwd root

(más…)