Actualmente estoy leyendo "Software Security: Build Security In" de Gary McGraw, y él hace la distinción entre errores de seguridad y fallas de seguridad. Los errores de seguridad son errores de implementación en el código y fallas en el aspecto de arquitectura / diseño del software. Escribe cómo los defectos de seguridad tienden a estar alrededor de una división 50/50 entre errores y fallas.
Sin embargo, esto fue escrito en 2006, y menciona lenguajes como C y C ++. Se habla mucho de desbordamientos de búfer, por ejemplo. Mi pregunta es la siguiente: ¿qué tan pertinente es esto para Scala? Obviamente, los errores en la implementación aún pueden causar riesgos de seguridad, pero tener un lenguaje administrado en la JVM que hace el control de límites parece que mitigaría una gran clase de errores de los que habla McGraw. ¿Es una afirmación razonable que Software Security, en un lenguaje como Scala, se ha orientado más hacia el lado arquitectónico y lógico de las cosas? O, para ser más específico, ¿es el análisis de código estático en Scala menos importante para la seguridad que para lenguajes como C y C ++? Si no, ¿por qué no?