WSL2, al ejecutar un kernel Linux completo dentro de Windows, hereda capacidades de seguridad del subsistema Linux y del entorno de Windows. Esto permite aplicar técnicas avanzadas como sandboxing y control de llamadas al sistema mediante seccomp
, protegiendo aplicaciones y conteniendo procesos potencialmente inseguros.
Entendiendo el modelo de seguridad de WSL2 Link to heading
- WSL2 corre dentro de una VM ligera sobre Hyper-V
- Tiene su propio espacio de usuarios, red y sistema de archivos
- Puede acceder al sistema de archivos Windows, pero de forma controlada
- Hereda los permisos y restricciones del usuario de Windows anfitrión
Aunque no es un contenedor, se puede aplicar aislamiento similar con herramientas del ecosistema Linux.
Usar seccomp para limitar llamadas al sistema Link to heading
seccomp
permite definir qué llamadas al sistema (syscalls
) puede hacer un proceso. Esto es útil para bloquear funcionalidades peligrosas o limitar comportamientos.
Instalar herramientas necesarias:
sudo apt install -y seccomp libseccomp-dev strace
Ejemplo de script bloqueando execve
(ejecución de procesos):
#include <linux/seccomp.h>
#include <linux/filter.h>
#include <linux/audit.h>
#include <sys/prctl.h>
#include <unistd.h>
#include <stdio.h>
int main() {
prctl(PR_SET_SECCOMP, SECCOMP_MODE_STRICT);
printf("Hola, mundo seguro!\n");
execl("/bin/ls", "ls", NULL); // Esta llamada será bloqueada
return 0;
}
Compilar y ejecutar:
gcc secure.c -o secure
./secure
El intento de ejecutar /bin/ls
fallará, mostrando que execve
fue bloqueado.
Usar Firejail para sandboxing de procesos Link to heading
Firejail crea entornos aislados para correr procesos sin acceso a partes sensibles del sistema.
Instalar:
sudo apt install -y firejail
Ejecutar un programa con aislamiento:
firejail --private gedit
Esto corre gedit
en un entorno aislado, sin acceso al home del usuario.
Configurar perfiles personalizados para más control:
firejail --profile=mi_perfil.profile programa
Reforzar seguridad con permisos de archivo Link to heading
Aplicar técnicas tradicionales:
chmod -R go-rwx ~/proyecto_secreto
chattr +i archivo.conf # Evita que sea modificado
También se pueden usar namespaces y cgroups para limitar CPU, RAM y accesos.
Buenas prácticas Link to heading
- Usar usuarios no privilegiados por defecto
- Aislar procesos críticos con
firejail
o seccomp - Limitar accesos al sistema de archivos de Windows desde
/mnt/c/
- Auditar procesos con
strace
oauditd
Conclusión Link to heading
WSL2 no solo ofrece potencia para desarrollo, sino también mecanismos de seguridad avanzados para proteger datos y procesos. Con herramientas como seccomp, Firejail y permisos reforzados, se puede alcanzar un alto nivel de aislamiento sin perder flexibilidad, incluso en entornos compartidos o productivos.