Vantaggi per la sicurezza caricando staticamente i moduli nel server Apache

4

Nel webserver httpd di Apache ci sono due modi per caricare i moduli nel server, statici e dinamici.

Ci sono alcuni moduli che devono essere caricati statici, e.q. mod_so e core.

Il mod_so deve essere caricato per abilitare il caricamento dinamico del modulo, ma è anche necessario quando tutti i moduli vengono caricati staticamente.

La mia domanda è: è più sicuro caricare moduli come mod_ssl statico piuttosto che dinamico?

Ho configurato e testato su server web httpd-2.4 Apache.

    
posta Thomas K 06.11.2014 - 15:20
fonte

2 risposte

2

Il caricamento statico fa la differenza per la sicurezza solo in situazioni in cui le persone malintenzionate possono alterare i file caricati dinamicamente, a quel punto è giusto dire che hai problemi più grandi a portata di mano.

Se vogliamo davvero parlare di sicurezza in relazione ai moduli statici di Apache, allora potremmo argomentare quanto segue: i moduli non statici semplificano i pacchetti di terze parti. In un sistema Linux, ad esempio, avresti un pacchetto "principale" di Apache e potresti avere un modulo fornito da un altro pacchetto. Ad esempio, su un server Ubuntu recente, potresti avere il pacchetto apache2-bin , che fornisce Apache stesso e libapache2-mod-php5 , che fornisce il supporto PHP come modulo non statico. Il supporto PHP può trovarsi in un altro pacchetto proprio perché è un modulo non statico.

Se viene trovato un problema di sicurezza nel modulo PHP, allora quel pacchetto può essere corretto (con un nuovo pacchetto patchato) subito, senza dover sostituire il pacchetto principale di Apache in alcun modo. Quindi, si spera, il processo di risoluzione sia più veloce: meno persone coinvolte, pacchetti fissi più piccoli da scaricare ... In questo senso, i moduli non statici possono essere pensati come un miglioramento della sicurezza, ma questo è molto indiretto. Ciò che migliora la sicurezza qui è la possibilità di dividere il codice base in diversi pacchetti che possono essere aggiornati separatamente, e moduli non statici supportano tale modello.

Si noti che i moduli statici potrebbero ancora essere gestiti come pacchetti indipendenti, ma ciò richiederebbe al gestore pacchetti di ricompilare (o almeno ricollegare) il binario di Apache ogni volta che un modulo statico viene aggiornato. La ricompilazione all'aggiornamento è una strategia praticabile (questo è ciò che i sistemi * BSD come FreeBSD fanno con le loro "porte") ma, di regola, le distribuzioni Linux hanno scelto il percorso "pacchetti binari".

    
risposta data 06.11.2014 - 15:45
fonte
0

Penso che ci siano due principali rischi per la sicurezza con il collegamento dinamico:

  1. Sostituzione del modulo: qualcuno potrebbe sostituire un modulo che stai caricando con la propria versione. Questo probabilmente registra gli ID di sessione e le relative chiavi di sessione.
  2. Pre-caricamento: qualcuno si rende conto che esiste una directory nel percorso di ricerca della libreria che viene controllata prima del caricamento del modulo corrente. L'utente malintenzionato inserisce la propria versione del modulo in quella directory e il suo modulo viene trovato e caricato prima che il modulo originale possa essere trovato.

Tuttavia, entrambi questi attacchi richiederebbero molto probabilmente l'accesso da parte di root. Il primo può essere facilmente mitigato eseguendo qualche tipo di controllo di integrità sui moduli stessi. Un programma come TripWire ti dirà se un file / modulo è stato modificato in qualche modo. Il secondo è possibile limitare i percorsi della libreria alle directory di proprietà di root e mantenere il numero di percorsi controllati al minimo.

Se qualcuno ha già accesso root al tuo server, probabilmente avrai problemi più grandi.

    
risposta data 06.11.2014 - 16:10
fonte

Leggi altre domande sui tag