È possibile compilare insieme le applicazioni OS e web server / server in un singolo file eseguibile?


0

Stavo discutendo con un amico l'idea di un "server compilato da una singola applicazione", in cui il server è compilato insieme solo con le sue dipendenze in un singolo eseguibile. Nient'altro è sul server. Non c'è guscio e nient'altro lì.

L'idea è che se non c'è nient'altro che un eseguibile integrato che include i bit del sistema operativo e dei driver necessari più il server web e il codice dell'applicazione, questo sarebbe molto più sicuro di un server a cui è possibile accedere.

Ha senso, è possibile, sarebbe più sicuro?


Se non ci sono shell ... come faresti? Tutta la gestione fatta tramite una gestione web? C'era già stata una distribuzione Linux "Server" con LAMP preinstallata, e nient'altro .. è questo che intendevi?
Darius

Stai pensando troppo all'aspetto "sicurezza" delle cose e aggiungendo complessità non necessaria. Potresti realizzare qualcosa di simile a quello di cui stai parlando usando Java e costruendo un'applicazione basata su Java, compilata e capace di girare in un ambiente run time di Java, ma è il meglio che otterrai se vuoi che sia in grado di funzionare su più piattaforme; oppure potresti creare un'app Web seguendo le best practice per la sicurezza e aggiungendo l'autenticazione SSL e a 2 fattori.
CIA

Risposte:


0

Bene, non puoi far girare tutto in un singolo eseguibile, ma con Linux puoi:

  • compila un kernel che ha solo ciò di cui hai bisogno, inclusi solo i driver che desideri. È possibile compilare solo i driver richiesti direttamente nel kernel e disabilitare il caricamento del modulo. Se l'hardware cambia, devi ricompilare. Questo è difficile, molto difficile se non si dispone già di un sistema funzionante con gli strumenti di compilazione corretti e un compilatore.

  • crea il tuo init che genererebbe solo il tuo server web e lo manterrà acceso se muore. Questo è difficile.

  • includi solo gli eseguibili e le librerie dipendenti di cui hai bisogno per quel server web e qualsiasi cosa dipenda da. Questo è difficile.

  • essere pronti a creare un programma che lo installa, e aggiornare tutto da soli come correzioni di sicurezza disponibili. Questo è molto difficile.

Raggiungere quanto sopra è difficile ma non impossibile. Con una minima installazione di Debian e l'installazione del software di cui hai bisogno, puoi avvicinarti abbastanza e ottenere il beneficio di aggiornamenti regolari e un sistema di gestione dei pacchetti semplice se cambi idea sulle cose. Puoi anche compilare il tuo kernel nel modo sopra descritto e Debian fornirà gli strumenti per farlo.


Quindi pensi che questo sarebbe più sicuro?
Duke Dougal

È coerente con il principio di mantenere il più piccolo possibile di una "superficie d'attacco".
LawrenceC
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.