Sandboxing és una tècnica de seguretat que consisteix a executar un programa dins d’un entorn aïllat i restringit, de manera que només pugui accedir als recursos del sistema (fitxers, xarxa, altres processos, dispositius) que se li permetin explícitament.
Imagina que un programa normal té accés a “tota la casa”: pot llegir i escriure qualsevol fitxer al qual el seu usuari tingui permisos, obrir connexions de xarxa, veure altres processos, etc. El sandboxing el tanca en una “habitació” amb només els mobles que necessita per fer la seva feina, i cap més.
Si aquell programa és compromès (per un bug, una vulnerabilitat, o codi maliciós), l’atacant només hereta els permisos limitats de la “habitació”, no els de tota la casa.
Un navegador web modern és un cas clàssic de sandboxing: cada pestanya s’executa en un procés aïllat que no pot llegir directament el disc dur, la memòria d’altres pestanyes, ni accedir a la càmera o el micròfon sense demanar permís explícit — encara que el codi JavaScript d’una pàgina maliciosa intenti fer-ho.
Com més restrictiu és el sandbox, més segur és el sistema, però també és més probable que el programa “trenqui” si intenta fer alguna cosa legítima que el sandbox no havia previst. Per això, sovint cal ajustar els perfils de confinament quan una aplicació necessita accedir a un recurs que inicialment se li havia denegat.
La unitat systemd d’Apache2 ara activa MemoryDenyWriteExecute=yes per defecte com a mesura
d’enduriment de seguretat, cosa que prevé mapes de memòria
simultàniament escrivibles i executables.
El paquet apache2 d’Ubuntu 26.04 ha canviat la
unitat systemd per defecte respecte a 24.04, afegint-hi
directives de confinament que abans no hi eren.
Aquest canvi forma part d’una tendència general de 26.04: hi ha un
enduriment de sandboxing més agressiu a nivell de systemd en diversos
serveis (per exemple polkit.service amb ProtectSystem, ProtectHome, PrivateTmp, NoNewPrivileges), i SSSD i
OpenLDAP han estat despullats de privilegis root.
A més, Ubuntu 26.04 és l’última versió que admet compatibilitat amb
scripts SysV init dins de systemd, i un cop es traiu aquesta capa, cada
servei ha de fer servir un fitxer d’unitat systemd, cosa que permet que
qualsevol servei sigui sandboxat amb ProtectSystem, PrivateTmp, NoNewPrivileges, etc. — és a dir,
Ubuntu està aprofitant aquesta LTS per aplicar aquest tipus de
confinament de forma molt més sistemàtica als paquets del dipòsit.
A 24.04, els mainters del paquet apache2 (i molts
altres) encara no havien afegit aquestes directives d’enduriment a la
unitat per defecte — el confinament amb ProtectSystem/MemoryDenyWriteExecute no
formava part del paquet base. Amb 26.04, Canonical ha fet un esforç
deliberat d’enduriment de seguretat per defecte across-the-board (el
mateix any que reforcen polkit, SSSD, OpenLDAP i eliminen
SysV init), i Apache n’és una víctima col·lateral pel que fa a
compatibilitat amb aplicacions PHP.