Con respecto a una revisión de código, ya sea una auditoria de código (SAST), desde ciberseguridad, o una revisión de código atendiendo al control de calidad de este. Siempre surge una duda recurrente, en la estimación / dimensionamiento del trabajo a realizar: mi aplicación tiene 20.000 LoC, líneas de código, ¿Cuánto se tarda en auditar?
Dentro de una auditoría de código (SAST) para una aplicación concreta hay una serie de tareas que hay que realizar, estas son mas tareas aún si quieres gestionar la seguridad en el desarrollo de software, el desarrollo seguro. Por lo que para hablar de tiempo hay que incluir muchos factores, como ejemplos: reuniones, redacción de los requisitos de seguridad, lectura de documentación del proyecto software, instalación / configuración de Kiuwan, aprobación del diseño, modelado de amenazas, entrevista con el arquitecto, comprobación de versiones, etc…
¿Qué es una auditoría de código?
Es por lo anterior que hay que tener cuidado en ubicar la siguiente medida de líneas por hora, en el dimensionamiento, no ya de un servicio o una auditoría, sino en el cálculo de tiempo de una de las subtareas requeridas. Hablando concretamente de tiempo de análisis estático de código SAST, habrá dos cálculos muy diferentes:
- Líneas por hora de SAST mediante procesamiento automático, herramientas: Este cálculo no tiene mucho sentido salvo que hablemos de marketing, tengas una herramienta SAST u otra, las líneas de que pueda llegar a procesar por hora deberá ser muy alto. Se trata de un ordenador llevando a cabo un proceso automático con reglas predefinidas, para encontrar vulnerabilidades predecibles.
- Líneas por hora de SAST manual, revisión de código de un analista: Este es el cálculo interesante, es la media de líneas de código que un profesional revisa en una hora.

Este cálculo es muy complejo, depende del proyecto de desarrollo de software y de los factores de este: lenguaje de programación, entorno tecnológico, funcionalidad de la aplicación, criticidad de esta y por lo tanto profundidad que requiere la revisión, etc… Es por esta razón de complejidad que nadie o casi nadie ofrece una medida y no puede localizarse este dato fácilmente. Sin embargo sí que puede ofrecerse una medida completamente estándar para tomar como referencia base.
Inspection Rate: This metric can be used to get a rough idea of the required duration to perform a code review. The inspection rate is the rate of coverage a code reviewer can cover per unit of time. For example, a rate of 250 lines per hour could be a baseline. This rate should not be used as part of a measure of review quality, but simply to determine duration of the task.
OWASP Code Review Guide v2
El proyecto OWASP es con mucha diferencia, la referencia internacional en cuanto a desarrollo seguro y pruebas SAST se refiere, y propone como medida básica 250 líneas por hora (Lines of Code, LoC). Esta medida según mi experiencia me parece acertada como referencia base, para un dimensionamiento aproximado de esa subtarea, para después pasar a contemplar el proyecto y su idiosincrasia, y por supuesto el resto de tareas requeridas.
A continuación dejo referencia sobre los resultados de mi búsqueda sobre este dato, ¿a ti que te parece? ¿tienes experiencia en desarrollo seguro y darías otra estimación? !te leo en comentarios!
Detalle referencias:
- Estimación: 250 líneas por hora.
- Fuente: Proyecto OWASP.
- Documento concreto: OWASP Code Review Guide v2.
- URL: https://owasp.org/www-pdf-archive/OWASP_AlphaRelease_CodeReviewGuide2.0.pdf
- Cita: Inspection Rate: This metric can be used to get a rough idea of the required duration to perform a code review. The inspection rate is the rate of coverage a code reviewer can cover per unit of time. For example, a rate of 250 lines per hour could be a baseline. This rate should not be used as part of a measure of review quality, but simply to determine duration of the task.
- Estimación: 150 líneas por hora.
- Fuente: INSTITUTE FOR DEFENSE ANALYSES.
- Documento concreto: State-of-the-Art Resources (SOAR) for Software Vulnerability Detection, Test, and Evaluation 2016.
- URL: https://rt.cto.mil/wp-content/uploads/2019/06/SOAR-Report-2016.pdf?csrt=10259386258236383335
- Cita: Typical inspection rates are two to three pages per hour for requirements, three to four pages per hour for designs, 100 to 200 lines per hour for source code, and five to seven pages per hour for test plans.