L'azienda Edera, che sviluppa soluzioni per la protezione dell'infrastruttura Kubernetes e dei sistemi di intelligenza artificiale, ha presentato il progetto OpenPaX, ovvero un insieme di patch al kernel Linux con l'implementazione di metodi per contrastare lo sfruttamento delle vulnerabilità causate da errori durante il lavoro con la memoria. OpenPaX si posiziona come un analogo illimitato del set di pacchetti PaX del progetto Grsecurity, che dal 2017 è disponibile solo come parte di un prodotto a pagamento. Gli sviluppi di OpenPaX sono aperti sotto la licenza GPLv2.
Gli sviluppatori della distribuzione Alpine Linux intendono fornire nella prossima versione 3.21 una build sperimentale del kernel con le patch OpenPaX e nella versione 3.22 trasferirla nella categoria delle opzioni standard. OpenPaX può essere utilizzato anche dalle distribuzioni Gentoo e Arch Linux, che in precedenza offrivano varianti del kernel Linux con patch PaX. Gli sviluppatori di OpenPaX sperano anche di trasferire alcuni dei meccanismi di sicurezza che hanno sviluppato nel kernel principale.
Tra le funzionalità implementate in OpenPaX si segnala l'utilizzo del meccanismo W^X (write XOR Execute) nella mappatura delle pagine di memoria, che non consente la creazione di pagine di memoria disponibili contemporaneamente per la scrittura e l'esecuzione, e blocca anche il cambiamento il tipo di mappatura della pagina dalla scrittura all'esecuzione. OpenPaX dispone anche di un meccanismo di emulazione che consente di utilizzare lo stack e l'heap, in cui è vietata l'esecuzione del codice, con funzioni di trampolino, ad esempio quelle generate da libffi o GCC (l'essenza dei trampolini è che il codice per chiamare un elemento annidato o la funzione esterna viene creata dinamicamente ed eseguita nello stack). I trampolini vengono emulati intercettando gli errori di pagina quando si tenta di eseguire codice nella memoria non eseguibile ed emulando un salto.
Poiché i metodi di protezione implementati possono interrompere il normale funzionamento dei compilatori JIT, è possibile utilizzare xattr e l'utilità paxmark per controllare selettivamente l'inclusione delle funzionalità OpenPaX in relazione ai file eseguibili. È disponibile anche la modalità di attivazione soft di OpenPaX (sysctl kernel.pax.softmode=1), in cui OpenPaX è disabilitato per impostazione predefinita, ma può essere attivato selettivamente per singole applicazioni che richiedono protezione.
Inoltre, possiamo notare il rilascio del modulo kernel LKRG 0.9.9, sviluppato dal progetto Openwall e progettato per rilevare e bloccare gli attacchi, nonché prevenire violazioni dell'integrità delle strutture del kernel. Ad esempio, il modulo può proteggere da modifiche non autorizzate al kernel in esecuzione e tentativi di modificare le autorizzazioni dei processi utente (rilevando l'uso di exploit). Il modulo è adatto sia per organizzare la protezione contro gli exploit di vulnerabilità già note del kernel Linux (ad esempio, in situazioni in cui è difficile aggiornare il kernel nel sistema), sia per contrastare gli exploit per vulnerabilità ancora sconosciute. Il codice del progetto è distribuito sotto la licenza GPLv2. Puoi leggere le caratteristiche dell'implementazione di LKRG nel primo annuncio del progetto. La nuova versione fornisce compatibilità con i kernel Linux 5.10.220+, 6.10.10+, 6.11 e 6.12-rc, nonché con i pacchetti con il kernel 5.14.0-470.el9+ forniti con CentOS Stream 9 e RHEL 9. Compatibilità con i core assemblato in modalità “CONFIG_JUMP_LABEL” su sistemi con architettura ARM64.
Fonte: opennet.ru
