Auditorías de código fuente

En el contexto de las elecciones automatizadas es frecuente escuchar hablar de auditorías (o revisiones técnicas) de código fuente, como una de las fases que busca garantizar la transparencia del sistema automatizado. Este es un proceso que involucra personal con perfil técnico y que muchas veces no es correctamente explicado al público en general.

Aún sin tener conocimientos técnicos detallados, debe ser posible que todo ciudadano conozca en qué consiste el proceso que se sigue durante estas auditorías. A continuación una descripción sencilla del mismo:

Checklist Codigo Fuente

Imagen: adesigna [cc]

¿Qué es el código fuente?

Definición: Conjunto de instrucciones escritas en algún lenguaje de programación de computadoras, hechas para ser leídas y transformadas por alguna herramienta de software en instrucciones ejecutables en la máquina.

Esto quiere decir que el código fuente de un software contiene todas las instrucciones que serán ejecutadas, escritas en un lenguaje que puede ser leído y entendido por humanos, siempre y cuando éstos conozcan dicho lenguaje.

Este código fuente pasa posteriormente por una herramienta (usualmente conocida como compilador) que lo traduce a instrucciones que pueden ser entendidas por una máquina y ejecutadas.

¿En qué consiste una auditoría de código fuente?

En un proceso de auditoría, un conjunto de personas, con conocimientos técnicos, revisan el código fuente de un software, para determinar, entre otras cosas, que esté correctamente escrito, no tenga fallas, y que haga lo que se supone debe hacer. Es decir, que la auditoría permite asegurarse de que  el software cumpla con la función para la que fue diseñado, y de que además, no haga ninguna otra función, de manera oculta.

Durante el proceso de auditoría, las partes involucradas pueden hacer observaciones y, en caso de no estar conformes con algo, solicitar cambios. Sólo después de que todas las partes están conformes, el código fuente es aceptado.

¿Qué ocurre luego?

Luego de la revisión y aceptación del código fuente, se procede a compilarlo, para generar los programas ejecutables, que la máquina puede reconocer. Este proceso es también supervisado por quienes participan en la auditoría, y posteriormente el código ejecutable resultante es firmado digitalmente. Cada participante del proceso de auditoría recibe entonces una copia de esta firma digital.

La firma digital permite corroborar que el software instalado en la máquina es el mismo que se auditó y aceptó, dado que cualquier cambio en el mismo supondría una alteración en la firma digital, y por lo tanto sería rechazado en cualquier verificación posterior.

Y todo esto, ¿qué quiere decir?

Esto quiere decir que una vez realizada una auditoría de código fuente (source code review) y una compilación certificada del mismo (witnessed build), es imposible introducir cambios en el software, y que estos no sean detectados por las partes encargadas de custodiar el proceso de auditoría y sus resultados.

[Imagen original]

Comentarios (9)

  1. Bernardo octubre 10, 2012
    • Rui octubre 10, 2012
  2. Bolívar Loján Fierro enero 13, 2013
    • Rui febrero 3, 2013
      • Bolívar Loján Fierro febrero 3, 2013
  3. Luis_AM3C abril 4, 2013
    • Rui abril 4, 2013
      • Luis_AM3C abril 8, 2013
        • Rui abril 10, 2013

Deja un comentario