Un lock file registra le versioni esatte delle dipendenze di un progetto, invece di indicare solo gli intervalli di versione consentiti. Esempi includono file come package-lock.json, yarn.lock o poetry.lock. Bloccando le versioni risolte, rende le build riproducibili: lo stesso codice sorgente dovrebbe installare lo stesso insieme di dipendenze oggi, domani e su un'altra macchina.
Nella sicurezza informatica, i lock file sono importanti perché la variazione delle dipendenze può nascondere rischi. Aiutano i difensori a esaminare le modifiche, confrontare le build e rilevare quando un aggiornamento di un pacchetto introduce un comportamento inatteso. Negli attacchi, gli avversari spesso cercano di sfruttare aggiornamenti rapidi delle dipendenze o la confusione della supply chain; un lock file può rallentare questo processo mantenendo in uso versioni note e affidabili fino a quando una modifica non viene esaminata. Non è una difesa completa, ma insieme al code review, ai controlli di provenienza e agli aggiornamenti tempestivi, è un controllo fondamentale per catene di fornitura software più sicure.


