Vista general de Linux
Es una creencia popular que los programas de código abierto son seguros porque su código fuente está disponible. Siempre hay una expectativa de que la verificación comunitaria sucede regularmente; sin embargo, este no siempre es el caso. Depende de varios factores, como la actividad del proyecto, la experiencia de los desarrolladores, el nivel de rigor aplicado a las revisiones del código, y la frecuencia con la que se presta atención a partes específicas del código que pueden permanecer intactas durante años.
De momento, Linux de escritorio tiene algunas áreas que pueden ser mejoradas al ser comparadas con sus contrapartes propietarias, por ejemplo:
- Una cadena verificada de inicio, como el Inicio Seguro de Apple (con el enclave seguro), el Arranque Verificado de Android, el Arranque Verificado de ChromeOS, o el proceso de inicio de Windows con TPM. Estas características y tecnologías de hardware pueden ayudar a prevenir la manipulación persistente ocasionada por algún malware o ataque de 'evil-maid'.
- Una fuerte solución de aislamiento como la que se encuentra en macOS, ChromeOS y Android. Las soluciones de aislamiento utilizadas comúnmente de Linux como Flatpak y Firejail, aún tienen mucho por recorrer.
- Fuertes mitigaciones de vulnerabilidades.
A pesar de estos inconvenientes, las distribuciones Linux de escritorio son geniales si quieres:
- Evitar la telemetría que, regularmente, viene con los sistemas operativos propietarios.
- Mantener la 'libertad del software'.
- Tener sistemas enfocados en la privacidad como Whonix o Tails.
Nuestra página generalmente utiliza el término "Linux" para describir las distribuciones Linux de escritorio. Otros sistemas operativos que también utilizan el kernel de Linux como ChromeOS, Android y Qubes OS no se discuten aquí.
Nuestras recomendaciones de Linux:
Elegir tu distribución¶
No todas las distribuciones Linux son iguales. Mientras nuestra página con recomendaciones de Linux no fue creada para ser una fuente autorizada para decidir cuál distribución debes utilizar, hay algunos aspectos que debes considerar al elegir cuál distribución usar.
Ciclo de lanzamiento¶
Recomendamos encarecidamente que elijas las distribuciones que permanecen cerca a los lanzamientos estables, comúnmente denominadas como distribuciones de lanzamiento continuo. Esto se debe a que las distribuciones de lanzamiento de ciclo congelado, normalmente no actualizan las versiones de sus paquetes y se encuentran detrás en actualizaciones de seguridad.
Para las distribuciones congeladas como Debian, se espera que los encargados de mantener los paquetes adapten los parches para corregir vulnerabilidades, en lugar de actualizar el software a la "siguiente versión" lanzada por el desarrollador original. Algunos arreglos de seguridad no reciben un CVE (programas de menor popularidad) del todo y no llegan a la distribución con este modelo de parches. Por ello, a veces las correcciones de seguridad son pospuestas hasta la siguiente versión importante.
No creemos que retener paquetes y aplicar los parches provisionales sea una buena idea, porque se aleja de la forma en que el desarrollador se pudo asegurar que el software funcione. Richard Brown tiene una presentación sobre esto:
Actualizaciones tradicionales vs. Atómicas¶
Tradicionalmente, las distribuciones de Linux se actualizan secuencialmente, actualizando los paquetes deseados. Las actualizaciones tradicionales, como las utilizadas en las distribuciones basadas en Fedora, Arch Linux y Debian, son menos confiables, si un error se produce al actualizar.
Las distribuciones de actualizaciones Atómicas, aplican las actualizaciones en su totalidad o no del todo. Normalmente, los sistemas de actualización transaccional también son atómicos.
Un sistema de actualización transaccional crea una instantánea que se realiza antes y después de haber aplicado una actualización. Si una actualización falla en cualquier momento (debido a situaciones como fallas de electricidad), la actualización puede revertirse fácilmente al "último estado bueno conocido".
El método de actualizaciones Atómicas es utilizado para distribuciones inmutables como Silverblue, Tumbleweed y NixOS, y puede obtener confiabilidad con este modelo. Adam Šamalik brinda una presentación sobre cómo rpm-ostree
funciona con Silverblue:
Distribuciones "enfocadas en la seguridad"¶
A menudo existe cierta confusión entre las distribuciones "enfocadas en la privacidad" y las distribuciones "pentesting". Una búsqueda rápida para "la distribución más segura de Linux" suele arrojar resultados como Kali Linux, Black Arch y Parrot OS. Estas distribuciones son distribuciones de pruebas de penetración ofensivas que incluyen herramientas para probar otros sistemas. Estas no incluyen ninguna "seguridad adicional" o mitigaciones defensivas destinadas a un uso regular.
Distribuciones basadas en Arch Linux¶
Las distribuciones basadas en Arch no son recomendables para los que se inician en Linux, (independientemente de la distribución) ya que requieren un mantenimiento regular del sistema. Arch no dispone de un mecanismo de actualización de la distribución para las opciones de software subyacentes. Por ello, hay que estar al tanto de las tendencias actuales y adoptar las tecnologías a medida que van sustituyendo a las prácticas más antiguas.
Para un sistema seguro, también se espera que tenga suficientes conocimientos de Linux para configurar correctamente la seguridad de su sistema, como la adopción de un sistema de control de acceso obligatorio, la configuración de listas negras de módulos del kernel, el endurecimiento de los parámetros de arranque, la manipulación de parámetros sysctl, y saber qué componentes necesitan como Polkit.
Cualquiera que utilice el repositorio de usuarios de Arch (AUR), debe estar cómodo en auditar PKGBUILDs que instalan desde ese servicio. Los paquetes AUR son contenidos producidos por la comunidad y no se examinan de ninguna manera, por lo que son vulnerables a los ataques a la cadena de suministro de software, como de hecho ha sucedido en en el pasado. AUR debe utilizarse siempre con moderación y, a menudo, hay muchos malos consejos en diversas páginas que dirigen a la gente a utilizar ciegamente AUR helpers sin suficiente advertencia. Se aplican advertencias similares al uso de Archivos de Paquetes Personales (PPA) de terceros en distribuciones basadas en Debian o Proyectos Comunitarios (COPR) en Fedora.
Si tienes experiencia con Linux y deseas utilizar una distribución basada en Arch, sólo recomendamos Arch Linux de línea principal, no cualquiera de sus derivados. Desaconsejamos específicamente estos dos derivados de Arch:
- Manjaro: Esta distribución retiene los paquetes durante 2 semanas para asegurarse de que sus propios cambios no se rompan, no para asegurarse de que el flujo ascendente sea estable. Cuando se utilizan paquetes AUR, suelen compilarse con las últimas bibliotecas de los repositorios de Arch.
- Garuda: Utilizan Chaotic-AUR que compila automáticamente y a ciegas paquetes del AUR. No existe ningún proceso de verificación que garantice que los paquetes AUR no sufran ataques en la cadena de suministro.
Kicksecure¶
Aunque recomendamos encarecidamente no utilizar distribuciones obsoletas como Debian, existe un sistema operativo basado en Debian que ha sido reforzado para ser mucho más seguro que las distribuciones típicas de Linux: Kicksecure. Kicksecure, en términos demasiado simplificados, es un conjunto de scripts, configuraciones y paquetes que reducen sustancialmente la superficie de ataque de Debian. Cubre muchas recomendaciones de privacidad y seguridad por defecto.
Kernel Linux-libre y distribuciones "Libre"¶
Recomendamos encarecidamente no utilizar **** el kernel Linux-libre, ya que elimina las mitigaciones de seguridad y suprime las advertencias del kernel sobre microcódigo vulnerable por razones ideológicas.
Recomendaciones Generales¶
Cifrado de unidad¶
La mayoría de las distribuciones de Linux tienen una opción dentro de su instalador para habilitar LUKS FDE. Si esta opción no se configura en el momento de la instalación, tendrá que hacer una copia de seguridad de sus datos y volver a instalar, ya que el cifrado se aplica después de particionar el disco, pero antes de formatear el sistema de archivos. También te sugerimos que borres de forma segura tu dispositivo de almacenamiento:
Swap¶
Considera el uso de ZRAM o swap cifrado en lugar de swap sin cifrar para evitar posibles problemas de seguridad con los datos sensibles que se graben en el espacio swap (espacio de intercambio). Las distribuciones basadas en Fedora utilizan ZRAM por defecto.
Wayland¶
Recomendamos utilizar un entorno de escritorio compatible con el protocolo de visualización Wayland, ya que se ha desarrollado teniendo en cuenta la seguridad. Su predecesor, X11, no soporta el aislamiento GUI, permitiendo que todas las ventanas graben pantalla, registren e inyecten entradas en otras ventanas, haciendo inútil cualquier intento de sandboxing. Aunque hay opciones para hacer X11 anidado como Xpra o Xephyr, a menudo vienen con consecuencias negativas en el rendimiento y no son convenientes de configurar y no son preferibles sobre Wayland.
Afortunadamente, entornos comunes como GNOME, KDE, y el gestor de ventanas Sway tienen soporte para Wayland. Algunas distribuciones como Fedora y Tumbleweed lo utilizan por defecto, y es posible que otras lo hagan en el futuro, ya que X11 está en modo de mantenimiento duro. Si estás utilizando uno de esos entornos es tan fácil como seleccionar la sesión "Wayland" en el gestor de pantalla del escritorio (GDM, SDDM).
Estamos en contra de usar entornos de escritorio o gestores de ventanas que no tengan soporte para Wayland, como Cinnamon (por defecto en Linux Mint), Pantheon (por defecto en Elementary OS), MATE, Xfce e i3.
Firmware propietario (actualizaciones de microcódigo)¶
Las distribuciones de Linux como las que son Linux-libre o DIY (Arch Linux) no vienen con las actualizaciones de microcódigo propietarias que a menudo parchean las vulnerabilidades. Algunos ejemplos notables de estas vulnerabilidades incluyen Spectre, Meltdown, SSB, Foreshadow, MDS, SWAPGS, y otras vulnerabilidades de hardware.
Nosotros recomendamos encarecidamente que instale las actualizaciones del microcódigo, ya que su CPU ya está ejecutando el microcódigo propietario de fábrica. Tanto Fedora como openSUSE tienen las actualizaciones de microcódigo aplicadas por defecto.
Actualizaciones¶
La mayoría de las distribuciones de Linux instalan automáticamente las actualizaciones o le recuerdan que debe hacerlo. Es importante mantener el sistema operativo actualizado para que el software esté parcheado cuando se detecte una vulnerabilidad.
Algunas distribuciones (especialmente las dirigidas a usuarios avanzados) son más básicas y esperan que hagas las cosas tú mismo (por ejemplo, Arch o Debian). Será necesario ejecutar manualmente el "gestor de paquetes" (apt
, pacman
, dnf
, etc.) para recibir actualizaciones de seguridad importantes.
Además, algunas distribuciones no descargan automáticamente las actualizaciones de firmware. Para eso necesitarás instalar fwupd
.
Ajustes de privacidad¶
Aleatorización de direcciones Mac¶
Muchas distribuciones Linux de escritorio (Fedora, openSUSE, etc.) vienen con NetworkManager, para configurar los ajustes de Ethernet y Wi-Fi.
Es posible aleatorizar la dirección MAC cuando se utiliza NetworkManager. Esto proporciona un poco más de privacidad en las redes Wi-Fi, ya que hace más difícil rastrear dispositivos específicos en la red a la que estás conectado. No te hace anónimo.
Recomendamos cambiar la configuración a aleatoria en lugar de estable, como se sugiere en el artículo.
Si estás utilizando systemd-networkd, necesitarás configurar MACAddressPolicy=random
que habilitará RFC 7844 (Perfiles de anonimato para clientes DHCP).
No tiene mucho sentido aleatorizar la dirección MAC para las conexiones Ethernet, ya que un administrador del sistema puede encontrarte mirando el puerto que estás utilizando en el conmutador de red. La aleatorización de las direcciones MAC Wi-Fi depende del soporte del firmware de la Wi-Fi.
Otros identificadores¶
Hay otros identificadores del sistema con los que conviene tener cuidado. Deberías pensar en esto para ver si se aplica a tu modelo de amenaza:
- Nombres de host: El nombre de host de tu sistema se comparte con las redes a las que te conectas. Debes evitar incluir términos identificativos como tu nombre o tu sistema operativo en tu nombre de host, en su lugar, cíñete a términos genéricos o cadenas de caracteres aleatorias.
- Nombres de usuario: Del mismo modo, tu nombre de usuario se utiliza de diversas maneras en todo el sistema. Considera la posibilidad de utilizar términos genéricos como "usuario" en lugar de tu nombre real.
- ID de máquina:Durante la instalación se genera un ID de máquina único que se almacena en tu dispositivo. Considera configurarlo en un ID genérico.
Contador de sistema¶
El Proyecto Fedora cuenta cuántos sistemas únicos acceden a sus réplicas utilizando una variable countme
en lugar de un ID único. Fedora hace esto para determinar la carga y aprovisionar mejores servidores para las actualizaciones cuando sea necesario.
Esta opción está actualmente desactivada por defecto. Recomendamos añadir countme=false
en /etc/dnf/dnf.conf
por si se habilita en el futuro. En sistemas que utilizan rpm-ostree
como Silverblue, la opción countme se desactiva enmascarando el temporizador rpm-ostree-countme.
openSUSE también utiliza un ID único para contar los sistemas, que puede desactivarse borrando el archivo /var/lib/zypp/AnonymousUniqueId
.