La mia versione dell'app è un'informazione sensibile

5

Per facilitare il monitoraggio delle manutenzioni e delle versioni, vorrei esporre la versione dell'app di ciascuna delle applicazioni che sviluppo su tutti i miei ambienti.

La versione dell'app e l'ultima distribuzione datetime della mia applicazione possono essere considerate come informazioni sensibili che non dovrebbero essere pubbliche? È professionale farlo?

    
posta maxime 28.03.2017 - 10:39
fonte

3 risposte

13

Un numero di versione è un ostacolo minimo per un attaccante e un grande aiuto per i difensori. Spesso gli aggressori tentano semplicemente un exploit senza preoccuparsi di controllare un numero di versione. Ottengo diversi tentativi di attacco basati su Windows nei miei log di snort e non ho posseduto una macchina Windows da decenni. L'exploit funzionante è l'unica conferma di cui hanno bisogno.

D'altra parte, la stragrande maggioranza dei tuoi utenti non sta per scaricare o creare un exploit per vedere se sono ancora vulnerabili a un bug. Dipendono dall'essere in grado di controllare il loro numero di versione rispetto a un elenco di versioni con patch.

    
risposta data 28.03.2017 - 14:43
fonte
2

Dipende.
Di quale tipo di applicazione stiamo parlando?

  1. Molte altre applicazioni / siti dipendono da questo e devono aggiornarsi alle versioni più recenti?
    (se usano la tua API, devi solo ridistribuirla e tutti usano la nuova versione Se devono scaricare e installare una nuova versione della tua app, la maggior parte di essi lo farà in un secondo momento o mai)
  2. È pubblico? (cioè visibile pubblicamente su internet?)
  3. Il codice sorgente è pubblico?

Se le risposte a tutte le domande sono "sì", probabilmente non dovresti esporre il tuo numero di versione.
Se la maggior parte o tutte le risposte sono "no", probabilmente non è che pericoloso.

Esempio 1: nginx

Una delle altre risposte utilizza nginx come esempio.
Per nginx, la risposta a tutte e tre le domande precedenti è "sì".

Questo è chiaramente un esempio in cui il numero di versione dovrebbe non essere esposto:

  • nessuno ha bisogno di conoscere il numero di versione di un server alimentato da nginx eccetto il suo amministratore, quindi non è necessario renderlo pubblico
  • un lotto di siti esegue nginx, quindi le vulnerabilità riguardano fondamentalmente la metà di Internet
  • se viene rilevata una vulnerabilità, ogni hacker può scoprire come sfruttarlo controllando il codice sorgente
    (e quando è corretto, tutti possono vedere come è stato fatto)
  • quando viene risolta una vulnerabilità, ci sono ancora milioni di server che eseguono versioni vulnerabili di nginx e alcuni di essi non saranno mai aggiornati

Esempio 2: scambio di stack

Scorri verso il basso questo stesso sito (o qualsiasi altro sito nella rete SE), e vedrai questo:

LoStackOverflowetuttiisuoisitigemellisonovisibilipubblicamente,maillorocodicesorgenteèprivatoecontrollanotutteleistanzepubbliche.

  • èpiùdifficiletrovarevulnerabilitàsenzailcodicesorgente
  • anchesevienerilevataunavulnerabilità:ilteamSEdevesolorisolverloeridistribuiretuttiisiti,quindisannochec'èancorailsitonosuInternetcheesegueancoralaversionevulnerabile.

Quindimostrareilnumerodiversionenondovrebbeessereungrossorischio,eapparentementehannodecisodimostrarlo.

(d'altraparte,probabilmenterendepiùfacileladistribuzioneeiltest:distribuiscisuunodidieciserverconbilanciamentodelcarico,apriilsitoinunbrowserevediqualeversionestaiutilizzando)

Esempio3:softwareinterno

Lamiagiornatadilavoroèun'applicazioneclosed-source,nonweb,LOBperusointernoallasocietà.

  • l'appsiauto-aggiornaautomaticamenteall'avvio
  • lepersoneinizianoalavorareinmomentidiversi(turnidinotte!)
  • spessoimplementiamoduranteilgiorno

Questosignificachenonpossiamoassicurarcichetuttistianosempreutilizzandolaversionepiùrecentee,quandoarrivanosegnalazionidibug,vogliamosaperequaleversionestavanousando.

QuindilebarreinaltodellafinestraprincipaleetuttelefinestredimessaggiodiconoqualcosacomeOurLOBApp(Versione1.23,29marzo2017),quindiquestainformazioneègarantitaperesserepresentesututtigliscreenshotchericeviamo.

L'apphasolocirca200utentielamaggiorpartediessinonsonotecnici...quindimostrareilnumerodiversioneinquestoambientenonhaassolutamentealcunrischioperchéquasinessunosachecos'èuna"vulnerabilità" o "codice sorgente" : -)

    
risposta data 29.03.2017 - 17:58
fonte
0

Il problema di esporre il controllo delle versioni se, come hai notato, quando il software è comune tra più applicazioni di diversi fornitori.

Ad esempio, dai un'occhiata a nginx ; utilizzato da milioni di utenti e aziende. Se viene rilevato qualche exploit, tutti gli utenti potrebbero essere esposti se la versione corrente è visualizzata su ogni richiesta HTTP nell'intestazione Server .

D'altra parte, le tue applicazioni sono probabilmente gestite da te. se hai trovato e sfruttato, la versione attuale della tua applicazione sarà suscettibile agli attacchi, non importa se la versione è esposta o meno.

Tuttavia, se la versione corrente non fornisce alcuna informazione utile all'utente, perché lo mostreresti? Questo può essere utile per le app desktop per diagnosticare problemi comuni del client, ma per le applicazioni web, a meno che tu non abbia un qualche tipo di sistema cache, penso che non c'è bisogno di nell'esporre il

    
risposta data 28.03.2017 - 13:02
fonte

Leggi altre domande sui tag