Problema di sicurezza su come rendere pubblico il mio codice in GitHub

8

Sto sviluppando un grande sito Web di community / forum e vorrei caricare il mio codice su GitHub per avere almeno una sorta di controllo di versione su di esso (perché non ho nient'altro che un file .rar come backup, nemmeno SVN), per consentire agli altri di contribuire al progetto, e forse anche usarlo per permettere ai miei potenziali futuri datori di lavoro di vedere alcuni dei miei codici come alcuni sorta di curriculum.

Ma quello che mi sto chiedendo ora, e sono sorpreso di non aver visto nessuno menzionarlo prima è l'aspetto di sicurezza di esso. Non sta pubblicando il codice di un sito web un buco di sicurezza ENORM ? È come dare a un potenziale hacker oa chiunque desideri trovare un potenziale exploit, anche considerando che i file critici non vengono caricati (password del database, script di autenticazione, ecc.).

Ovviamente ci sono milioni di progetti caricati su GitHub e nessuno troverà il mio solo per caso. Ma se lo cercano, sarebbe davvero lì.

Bottomline: il mio problema non riguarda il copyright o le licenze, ma altri che trovano exploit nel mio sito web.

Mi manca qualcosa qui?

    
posta federicot 24.11.2012 - 10:59
fonte

5 risposte

24

I'm I missing something here?

Sì. Affidarsi a persone che non conoscono il proprio codice sorgente per impedire che trovino exploit di sicurezza al suo interno è noto come sicurezza attraverso l'oscurità .

Il problema: non funziona. Gli hacker esperti non hanno bisogno del codice sorgente per trovare e sfruttare le vulnerabilità. Faranno un po 'di fuzzing per trovare input che causano problemi e quindi usare le loro conoscenze su come il sistema operativo / linguaggio / framework sottostante lavora per identificare una vulnerabilità.

È ampiamente riconosciuto che avere il codice sorgente aumenta la sicurezza pubblica abilitando le persone ben intenzionate a trovare vulnerabilità e correggerle , o almeno a dirlo allo sviluppatore . Ci sono due importanti ragioni per cui funziona:

  • In genere ci sono più buone intenzioni delle persone malintenzionate
  • Qualsiasi vulnerabilità riscontrata da una persona ben intenzionata verrà risolta per tutti; gli hacker hanno meno probabilità di collaborare

Ovviamente non funziona con i progetti di animali domestici che hanno pochi utenti attivi, ma è anche estremamente improbabile che vengano presi di mira da un hacker.

    
risposta data 24.11.2012 - 11:14
fonte
6

Prima di tutto, è possibile utilizzare il controllo della versione (distribuito) senza rendere pubblico il repository. Puoi semplicemente creare un repository sul tuo computer locale e inviare / rimuovere da altri computer. Puoi anche caricare il repository (offrendoti più backup e una collaborazione più semplice) senza renderlo pubblico. GitHub offre repository privati a pagamento, Bitbucket fa lo stesso e rende gratuiti i piccoli repository (5 persone o qualcosa). Certo, quindi non ottieni gli altri benefici che hai citato.

L'aspetto della sicurezza è piuttosto limitato. Ci sono molti, molti validi vettori di attacco che possono essere testati facilmente senza guardare il codice sorgente (lato server) (come essere attenti ai parametri GET e POST, controllare i cookie e la gestione delle sessioni, aggiungere input che dovrebbero essere sfuggiti e controllare se lo sono, ecc.). Se sei vulnerabile a qualcuno di loro, un aggressore determinato può sfruttarli ragionevolmente rapidamente senza guardare il codice sorgente. Gli errori più oscuri e difficili da sfruttare sono (probabilmente) anche più difficili da individuare nel codice sorgente, quindi, di nuovo, non perdi molto.

D'altra parte, renderlo pubblico e accettare i contributi può attirare persone che possono individuare gli exploit, senza alcun significato illecito, e parlarne (o persino correggerli da soli). Questo vale doppiamente se è davvero popolare ma non sei un esperto di sicurezza (senza offesa, ma non suona come uno, ad esempio, non hai menzionato la sicurezza attraverso l'oscurità e il modo in cui la tua preoccupazione non è un caso) .

    
risposta data 24.11.2012 - 11:22
fonte
3

BitBucket ha repository privati gratuiti e supporta sia git che mercurial.

    
risposta data 24.11.2012 - 16:23
fonte
2

Mettendo da parte il problema della sicurezza e se rendere pubblico il tuo codice lo valorizzerebbe o meno, puoi configurare tu stesso un sistema di controllo del codice sorgente sul tuo computer. In caso di git è banale, basta inizializzare un repository locale e il gioco è fatto, ma impostare un SVN non è un compito scoraggiante. Forse un'ora o due seguendo i tutorial, se hai poche conoscenze precedenti su come configurare SVN.

Quindi puoi ancora beneficiare del controllo del codice sorgente, indipendentemente dal fatto che tu abbia finito o meno di utilizzare un servizio online.

    
risposta data 24.11.2012 - 11:46
fonte
0

La maggior parte degli hacker dannosi viene eseguita in modo anonimo. Qualcuno in Russia sta eseguendo uno script che analizza gli host per le porte aperte, o che cosa hai. Nessuno invierà esplicitamente il tuo codice solo per trovare il modo di hackerare per fare del male. A meno che tu veramente non faccia incazzare qualcuno.

    
risposta data 24.11.2012 - 18:25
fonte

Leggi altre domande sui tag