Ereditato un progetto con una backdoor da gestire; il codice è stato prontamente rubato da un'entità conosciuta. Qual'è il prossimo?

-1

Ho un doozy per te - quasi pubblicato nello stack di gestione del progetto.

Mi è stato chiesto di supervisionare lo sviluppo di un progetto.

Ad un certo punto il precedente manager ha pensato che fosse prudente creare una backdoor in profondità nel budello di un oscuro modulo Java.

A causa della natura del progetto, in pratica ottiene l'accesso root sul server e sui server "slave".

L'abbiamo scoperto perché il software invia un messaggio "I'm all set up!" email al momento dell'installazione.

Il team sudamericano, in pochi minuti, ha capito chi era questo tizio e quali cambiamenti stava apportando al codice.

Non sono sicuro di come è trapelato, ma ecco le domande più dettagliate:

  • Qual è il modo migliore per evitare di essere radicati? Mi è stato detto che è possibile, anche se molto difficile , capire come funziona qualcuno che non ha familiarità con il progetto
  • C'è un modo per mantenere questa "caratteristica"? Se è stato rubato, per come lo vedo io, tutti nella squadra sono sospetti, quindi se dovessero emergere di nuovo mi piacerebbe avere un modo per scoprirlo.
  • Cosa fare con un Mr ****, **** da *****?

Più in particolare:

Un modulo Java del software contiene un modo per capire la password per l'utente root sul server, sia master che (numerosi) slave. Il modo per ottenere la password di root è offuscato tra migliaia di righe di codice, ma richiede solo un singolo token preimpostato. Non ne sono molto contento.

    
posta dsp_099 08.12.2016 - 02:21
fonte

2 risposte

4

Il modo migliore per evitare di essere rootati sarebbe rimuovere la backdoor dal progetto. Se ciò non è possibile, l'unica altra scommessa che posso vedere è isolare il programma in un contenitore e configurare un controllo degli accessi molto rigido e un filtro ip per cercare di mitigare il danno.

Se si desidera conservare la funzione (non lo consiglierei), sarebbe opportuno aggiungere una strong autenticazione (certificati e password) per assicurarsi che l'accesso non autenticato non avvenga.

Chiedi al signor **** perché l'ha fatto, chiedilo di rimuoverlo, e a meno che non avesse l'approvazione di un sacco di persone e una buona ragione lo licenziò.

    
risposta data 08.12.2016 - 03:25
fonte
2

Questo è davvero, davvero brutto. Devi fare quanto segue:

  • Se il sistema è in esecuzione, spegnilo. Non ricominciare da capo finché il problema non viene risolto. (Si potrebbe considerare di eseguirlo dietro una specie di firewall che blocca l'exploit, ma a meno che non si sia veramente sicuri di essere effettivamente protetti sarebbe anche un rischio.)
  • Supponiamo che tutti i tuoi server, inclusi gli schiavi, siano stati compromessi. Leggi questo.
  • Risolvi il problema rimuovendo la backdoor, anche se è complicata. Non farlo sarebbe come dire "Sono stato colpito da un proiettile avvelenato, ma il dottore ha detto che sarebbe stato necessario un intervento chirurgico complicato per rimuoverlo, quindi l'ho lasciato nel mio corpo".
  • chiedi a qualcuno esterno di fare una revisione completa del tuo codice, per assicurarti che non ci siano più tesori nascosti da qualche parte.
  • Verifica le routine per il commit del codice in produzione. Cosa si può fare per impedire che cose del genere possano scivolare in futuro?

Per quanto riguarda il modo di trattare con il signor X (e chiunque altro sia a conoscenza di questo), la questione non è davvero in discussione qui e non ne so abbastanza della sua motivazione a rispondere comunque. Ma ti consiglierei di avere qualche serio parere legale su questo.

    
risposta data 08.12.2016 - 10:28
fonte

Leggi altre domande sui tag