Problemi di sicurezza dai server Hudson & Jenkins pubblicamente visibili?

6

L'avvio di un amico ha implementato una serie di servizi business-critical su un server Hudson / Jenkins eseguito su un container Tomcat. Questo non è un progetto open source, infatti molti aspetti di questo progetto sono confidenziali. Jenkins è usato principalmente come mezzo per eseguire batch e amp; gthering deriva da quei lotti.

In qualche misura il sistema è stato bloccato, ad esempio è stato installato un plug-in che ha lo scopo di bloccare gli attacchi di induzione della password a forza bruta. Il sistema Jenkins è stato configurato per l'unica cosa che puoi vedere prima di accedere è una schermata di accesso, quindi questi utenti possono riconfigurare o eseguire qualsiasi cosa sul server Jenkins.

La domanda: questo sistema rappresenta una minaccia significativa per la sicurezza dell'azienda? Abbiamo preso tutte le misure di sicurezza pertinenti e ragionevoli.

Ad esempio, è possibile che qualche tipo di vulnerabilità ancora sconosciuta nello stack possa diventare la base di un exploit, ma quanto dovremmo preoccuparci di un rischio che è nel migliore dei casi non quantificabile, nel peggiore dei casi solo teorico?

    
posta Rory Alsop 17.01.2012 - 13:06
fonte

4 risposte

7

Devi prendere misure come:

  • Un firewall per assicurarsi che solo le porte necessarie per essere accessibili siano
  • Lista bianca anziché lista nera (che significa negare l'accesso a tutti e dare accesso a qualsiasi cosa abbia effettivamente bisogno di accesso)
  • Dovrebbe essere accessibile da internet? (Forse una VPN è sufficiente)
  • ...

E potrebbe esserci sempre un exploit, il problema con gli exploit è che non si sa mai quando qualcuno troverà un buco nel sistema. E non puoi valutare quanto dovresti essere preoccupato a meno che tu non dia un'occhiata al codice sorgente e al design del servizio. Quando vedi che ha scarsa convalida o cattiva progettazione, sai che devi essere allarmato, se è ben progettato, ben codificato e c'è una validazione decente, puoi essere meno preoccupato. Ma c'è sempre la possibilità che ciò possa accadere.

La tua domanda è abbastanza ampia da una parte e molto localizzata dall'altra.

    
risposta data 17.01.2012 - 13:18
fonte
5

Se non è possibile spostare Hudson / Jenkins su un altro server, allora utilizzerei un proxy inverso per disabilitare l'accesso remoto a qualsiasi cosa tranne Hudson (aggiungere anche SSL).

C'è sempre una probabilità che ci siano bug in Tomcat in Hudson, ecc. Puoi solo minimizzare l'impatto che possono causare.

    
risposta data 17.01.2012 - 13:32
fonte
4

C'è un rischio. Questo rischio è non quantificato (non sappiamo, o al momento importa, quanto sia rischioso). Contro tale rischio, non c'è alcun vantaggio nel lasciarlo pubblico. Quindi, non vale la pena valutare il rischio perché qualunque sia il rischio, il rapporto è contro il nulla.

Poiché so da un'altra domanda che stavi guardando EC2, utilizza una zona di sicurezza privata che consente l'accesso solo dagli indirizzi IP della tua azienda privata. Se lo mantieni interno anziché su EC2, ti suggerisco di compiere sforzi simili per eliminare tutto il traffico che non proviene dalla tua rete prevista.

    
risposta data 17.01.2012 - 14:19
fonte
1

Guardando il tuo setup, mi chiedo se hai davvero bisogno di accedere al di fuori dell'azienda? In caso affermativo, è possibile utilizzare VPN, HTTPS, certificati, ... Per proteggere la comunicazione dal proprio client al server Jenkins?

Uno dei tuoi commenti riguarda davvero me:

... these users can re-configure or run anything on the Jenkins server.

Gli utenti devono essere in grado di fare qualsiasi cosa su quel server Jenkins (solo dare il permesso / l'accesso a ciò che è effettivamente necessario e non ciò che potrebbe essere necessario in un futuro imprevedibile)? L'autorità può essere abbassata per Jenkins / Tomcat (Jenkins funziona con l'autorità di livello root / servizio)? Puoi limitare gli utenti a essere spettatori solo quando si connettono da fuori? Che ne dici di proteggere la tua rete aziendale da qualsiasi possibile minaccia proveniente dal server Jenkins (firewall). In altre parole, considera il server Jenkins come se non fosse parte della rete aziendale.

    
risposta data 17.01.2012 - 19:30
fonte

Leggi altre domande sui tag