I richiedenti di lavoro presentano il codice, in che modo le aziende lo testano in modo sicuro?

1

I candidati per i lavori di ingegneria del software a volte affrontano sfide di codifica come parte del processo di intervista. La società può inviare un codice per i richiedenti e un'attività di sviluppo con una scadenza e i richiedenti restituiscono il codice con le modifiche basate sull'attività di sviluppo.

In che modo le aziende che presentano queste sfide di codifica testano in sicurezza il codice che ricevono dai candidati? Naturalmente i candidati potrebbero avere la stessa domanda, come funzionano in modo sicuro sul codice inviato a loro, ma dato che il candidato raggiunge un'azienda affermata immagino che le aziende siano più affidabili in questa situazione. Quali precauzioni dovrebbero essere adottate per aprire, esplorare ed eseguire in sicurezza il codice che qualcuno a malapena ha inviato?

Un buon esempio del codice in questione è un'intera soluzione di Visual Studio di ~ 100.000 righe di codice C ++, con l'attività di sviluppo che richiede la modifica o l'aggiunta di 100 righe in tutta la soluzione.

Forse la risposta è semplicemente una questione di fiducia, ma mi chiedo se ci sono precauzioni tecniche che le aziende adottano per garantire che nessun candidato possa ottenere codice maligno in esecuzione sui computer dell'azienda. Ho taggato virtualizzazione e sandbox perché le macchine virtuali sembrano un modo ragionevole per sandbox il codice in questione, ma se testare il codice richiede che il computer esegua i test per installare un software esteso e costoso, questo è ancora il metodo appropriato o solo? In questo caso, esistono alcuni tipi di scansioni anti-malware?

    
posta cr0 19.07.2017 - 18:51
fonte

1 risposta

4

In larga misura, questo è un problema che si risolve da solo. Per capire perché, dobbiamo prima capire gli obiettivi di un test come questo. Più specificamente, l'esecuzione del codice è non in alto nell'elenco delle priorità. Comprenderlo, tuttavia, lo è.

I problemi che saranno affrontati dallo sviluppatore saranno ben compresi dagli intervistatori e gli intervistatori avranno qualche aspettativa su come il problema verrà risolto, tecnicamente. Se si tratta di un problema all'interno di una base di codice esistente, la prima cosa che farò è diffare la base di codice iniziale e la soluzione degli sviluppatori per vedere ogni singolo cambiamento che hanno fatto, e le modifiche che non mi aspetto stanno andando per distinguersi e ottenere maggiore attenzione. Anche i cambiamenti che mi aspetto otterranno un livello significativo di controllo, in quanto mi assicuro di aver capito cosa ha fatto lo sviluppatore e di valutare la qualità del lavoro.

Quindi, a parte il fatto che se volessi fare qualcosa di malizioso devi nasconderlo in bella vista in un changeset che sarà completamente rivisto dal codice da persone che sono entrambi molto bravi e che sanno già esattamente cosa si aspettano di vedere, ma c'è la sfida dell'opportunità. Come attaccante, dovresti ottenere un colloquio presso una società che vuoi attaccare, per una posizione che ti permetta di fare un test di codifica, e il test di codifica deve essere di complessità sufficiente e consentire un margine di manovra sufficiente sia per inserire nascondi il tuo attacco E poi i revisori devono effettivamente scegliere di compilarlo ed eseguirlo per poter eseguire l'attacco. E l'ambiente in cui viene eseguito, deve consentire tutto ciò che l'obiettivo finale del tuo payload deve essere raggiunto. In definitiva, ciò richiede che un lotto di stelle sia perfettamente allineato, e c'è quasi certamente un modo più semplice e meno rischioso. Non ha senso come vettore di attacco.

    
risposta data 19.07.2017 - 19:16
fonte

Leggi altre domande sui tag