Quali sono i compromessi sulla sicurezza dell'utilizzo di build riproducibili?

0

Da riproducible-builds.org :

Reproducible builds are a set of software development practices that create a verifiable path from human readable source code to the binary code used by computers.

In generale, significa che dato lo stesso codice sorgente, si finisce con lo stesso binario. Vedo che il concetto ha molti vantaggi, ma mi chiedo se ci siano degli svantaggi quando non è più possibile utilizzare alcuna forma di randomizzazione durante la compilazione.

Quali sono le implicazioni del passaggio a build riproducibili?

  • Contro quali tipi di attacchi migliorerà la sicurezza?
  • Contro quali tipi di attacchi ridurranno la sicurezza impedendo le tecniche di compilazione basate sulla randomizzazione?
posta Philipp Claßen 25.08.2017 - 10:49
fonte

2 risposte

1
  • Against which types of attacks will it reduce security by preventing compilation techniques based on randomization?

Potresti pensare a una tecnica come Address Space Layout Randomization (ASLR). Tuttavia, ASLR non è una tecnica di compilazione; non è stato creato nel compilatore o nel linker. ASLR è una funzione del sistema operativo dell'ambiente di runtime. È nella parte del sistema operativo che carica il codice in memoria in una posizione casuale ogni volta che viene caricato.

Il codice distribuito non è mai casuale. In alcuni rari casi può essere univoco basato su filigrana o schemi di licenza, ma l'unico scopo di tali tecniche è che l'autore imponga la protezione della copia, la licenza o la fatturazione. Questi sono esattamente contrari allo scopo di build riproducibili.

    
risposta data 29.08.2017 - 18:03
fonte
0

Sembra che tu abbia già coperto le possibili risposte. :)

Aiuta a scoprire qualsiasi modifica non autorizzata del codice eseguibile (non impedisce la modifica). Quindi chiunque lo manomette rischia di scoprire (della manomissione, non necessariamente dell'identità dei tamper).

Quindi non "protegge" da nessun attacco, se questo è ciò che intendevi per

Against which types of attacks will it improve security?

Tuttavia, la possibilità di scoprire se stessa in un modo migliorato la sicurezza, qualcosa che potrebbe scoraggiare un avversario.

Mentre gli input casuali / mutevoli per ogni build potrebbero essere necessari per qualche motivo, è difficile dirlo per motivi di sicurezza. Non ho (ancora) incontrato alcun requisito di sicurezza che richieda l'inserimento casuale del processo di compilazione . In base alla mia esperienza limitata, direi, aumenta lo sforzo (per creare una build riproducibile) ma non danneggia in alcun modo la sicurezza.

    
risposta data 25.08.2017 - 15:28
fonte

Leggi altre domande sui tag