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
- 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
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
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
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
- 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
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.
Ver también
- Construcción de un asistente contextual para escritorio usando IA local con acceso al sistema
- Integración de inferencia local ONNX con Windows ML en apps modernas
- Integración con servicios locales vía App Services y extensión de funcionalidades entre apps
- Implementación de Background Tasks persistentes en apps modernas
- Empaquetado de apps modernas con MSIX y configuración avanzada del manifiesto