Attualmente sto leggendo "Sicurezza del software: Build Security In" di Gary McGraw, e lui fa la distinzione tra bug di sicurezza e difetti di sicurezza. I bug di sicurezza sono errori di implementazione nel codice e difetti sono più sul lato architettonico / design del software. Scrive come i difetti di sicurezza tendono ad essere intorno a una divisione 50/50 tra bug e difetti.
Tuttavia, questo è stato scritto nel 2006 e menziona linguaggi come C e C ++. Si parla molto di buffer overflow, ad esempio. La mia domanda è questa: quanto è pertinente questo per Scala? Ovviamente i bug nell'implementazione possono ancora causare rischi per la sicurezza, ma avere un linguaggio gestito sulla JVM che controlli i limiti sembra attenuare una vasta classe di bug di cui parla McGraw. È ragionevole affermare che la sicurezza del software, in un linguaggio come Scala, ha spostato maggiormente verso il lato architettonico e logico delle cose? Oppure, per essere più specifici, l'analisi del codice statico in Scala è meno importante per la sicurezza di quanto lo sarebbe per le lingue come C e C ++? In caso contrario, perché no?