Falla de seguridad de la Gobernación de Antioquia explica por qué un tramitador puede sacarme la cita del pasarporte pero yo no.

David Mauricio
7 min readMay 31, 2021

TLDR;

Falla de seguridad en el sistema de asignación de citas de la Gobernación de Antioquia permite que cualquier persona se asigne una cita saltándose el límite diario de 340 citas. Esto explicaría por qué los tramitadores logran sacar una cita para el pasaporte y usted no.
Update: El video ilustrativo está al final del artículo

No ha podido sacar su pasaporte y se ha preguntado por qué los tramitadores pueden obtener citas y usted no? Lo invito a leer la siguiente denuncia:

(También le invito a leer una anterior denuncia relacionada a otra falla de seguridad que exponía la información clínica de millones de personas).

Hace poco tuve que colaborarle a un amigo que no maneja muy bien computadores a crearse una cita en el sistema de asignación de citas de la Gobernación de Antioquia.

Él me pidió que le ayudara porque dice que es muy difícil obtener una cita debido a que hay mucha afluencia de gente pidiendo la cita y por esto no era posible encontrar una cita y que a veces el sistema se ‘caía’ o no respondía.

También me dijo que se acercó al centro administrativo La Alpujarra y que allí un tramitador le cobraba 200 mil pesos por sacarle una cita y que se demoraba 10 minutos. Esto específicamente me llamó mucho la atención porque no entendía en ese momento cómo a cualquier hora del día un tramitador puede obtener una cita y mi amigo madrugando varios días a las 6:00 AM no.

Así que me pidió que le tratara de obtener una cita en este sistema:

Landing del sistema de pasaportes de la Gobernación de Antioquia

Claramente indica que solo hay 340 citas diarias, tanto así que he comprobado con mis ojos que muy a las 6:00 AM el sistema, cuando no está caído, arroja durante varios días que no hay citas.

Hay algo que me pareció muy curioso, y entrando en detalles técnicos, rápidamente identifiqué que la arquitectura de este sistema de información permite alterar los datos que se envían desde la interfaz de usuario hacia el servidor, de modo que si acaso el desarrollador de este sistema lo permitiera, con o sin intención, se podría alterar el cuerpo de la petición y enviar datos por fuera de los rangos permitidos por las restricciones de la interfaz gráfica. Por ejemplo:

Interfaz de asignación de citas de pasaportes, Gobernación de Antioquia

En la anterior interfaz gráfica se ve que no se puede hacer click antes del 18 y después del 31 de Mayo de 2021. Cuando uno intenta hacer click no pasa nada y no se coloca el día en verde, sin embargo alternado leve (y estúpidamente) el código fuente de la página se puede enviar al sistema un día por fuera de este rango de fechas, por ejemplo 1 de Junio de 2021. Esto enviaría al servidor esa fecha y si el servidor lo permitiera entonces retornaría la disponibilidad de citas de dicha fecha (Pues, si es que el desarrollador lo permitiera por descuido o por alguna otra razón), algo que según yo usando mi imaginación, se vería así:

Recreación artística de cómo podría verse si fuera posible alterar los datos del código fuente del sistema

Y si eso fuera posible entonces al lado de la hora saldría la cantidad de citas que ya se encontraran asignadas. Sería ya solo cuestión de hacer click en la cita deseada y finalizar normalmente el procedimiento.

Ojo!, si es que esto fuera en realidad posible me extrañaría mucho porque significa que el numerito al lado de la hora de las citas, que representa la cantidad de citas asignadas, ya se encuentra contando citas, es decir alguien más estaría haciendo esto mismo. Podría ser este el operar de los tramitadores?.

Si todo esto fuera posible entonces mi amigo ya podría obtener su cita desde la comodidad de su casa y sin necesidad de pagar a los tramitadores esos 200 mil pesitos. Increíble, no? Ahora bien, si esta no es la forma en que los tramitadores obtienen sus citas me atrevería a pensar que hay alguien adentro que asigna citas, algo que mejor sería dejar quieto 🏴‍☠️.

Impresiones personales

Puede que sea un sesgo personal debido a la realidad de nuestro país, no quiero pensar que aquí hay mermelada para que un incompetente proveedor de software haya hecho tremenda aberración en un sistema público financiado por alguna licitación pública para el desarrollo de este sistema (el cual pudo haber sido ‘escogido’) O que internamente haya algún tipo de arreglo entre el desarrollador (o la empresa que administra este sistema) y los tramitadores (organizados, tal vez?)… pero en mi experiencia en desarrollo de sistemas de información este error no tiene cabida para ser algo involuntario en un sistema tan grande, o si lo fuera me preocupa que este mismo sea el proveedor de software que recauda los impuestos en alguno de los otros portales de la Gobernación de Antioquia. Incluso me preocupa aún más, y de hecho no me extrañaría, que el mismo proveedor fuera el de alguna o todas las gobernaciones del territorio.

Indagando un poco…

En fin, indagando un poco y consultando el sitio web de la Gobernación de Antioquia se indica que el procedimiento es totalmente gratuito y que no requiere intermediarios o tramitadores. También comencé a prestar más atención entre mis redes sociales a la cantidad tan impresionante de personas que intentan y que incluso llevan meses tratando de gestionar su pasaporte a través de dicho portal pero no ha sido posible debido a la indisponibilidad del sistema y del número de citas que hay en el rango seleccionado.

Finalmente

Publico esto con el fin de ilustrar otros a desarrolladores, denunciar ante las autoridades y hacer un poco de veeduría ciudadana sobre los sistemas públicos. No pretendo en ningún momento fomentar a otros a que lo hagan ni a que paguen a los tramitadores (que parecen estar muy bien organizados; péguense la ida al centro administrativo La Alpujarra), sino a que conozcan la realidad de lo que opera con nuestros impuestos. Personalmente me encuentro muy indignado solo de pensar que 1. Haya manos oscuras tras la asignación de una empresa con claros nulos estándares de seguridad para el desarrollo de este sistema de información ó 2. Un posible arreglo entre desarrollador y tramitadores para introducir esta falla y ser explotable con fines económicos. Mi sentido arácnido se inclinaría por lo segundo.

Update Junio 2/2021

Ayer presenté el caso en el sitio de la gobernación, Mercurio (Que por cierto tiene fallas similares), y noté el día de hoy que ya arreglaron el problema agregando validaciones server side y alguna especie de mecanismo de intercambio de tokens que no estaba antes. Afortunadamente alcancé a documentar en video el proceso .

El parámetro sxToken fue agregado recientemente, además fue implementado del lado del servidor una respuesta nula que para la ejecución del frontend, es decir funciona pero está mal implementado

También pude ver en el código fuente la firma del desarrollador y asombrado encuentro que una empresa con varias certificaciones de calidad y seguridad es la responsable de tremendo fiasco, y que además tiene sitios en otras gobernaciones (tal como esperaba).

Créditos a Vanessa Quintero por corregirlo (?)

Además de esto encontré en el archivo del periódico El Colombiano una nota en donde en el pasado ya habían indagado acerca de por qué es imposible conseguir una cita para los ciudadanos pero no para los tramitadores. El entonces encargado de la oficina de pasaportes de la gobernación respondió con que el sistema funciona con normalidad.

Update Agosto 31/2021

He recibido respuesta del Director de Pasaportes. Adjunto la respuesta para que saquen sus propias conclusiones.

Hasta el momento en la primera parte de este artículo había descrito la situación de manera hipotética, con supuestos y teorías para poder librarme un poco de responsabilidades, sin embargo con el pasar del tiempo entendí (y ahora más que claro con la respuesta del sr Director) que debo ser claro y conciso con lo que ha pasado, a propósito de este aparte de la respuesta:

No había enviado pruebas para no meterme en problemas, pero al parecer son necesarias.

Para esto, y en vista que el director me indica que no pude hacer lo que estoy denunciando aquí, me tomé la libertad de subir a Youtube una grabación con el procedimiento y procedo a empaquetar todo esto en un proceso en Contraloría, solo para asegurarme que efectivamente esto fue un error humano, y que no hay negocio detrás de este servicio que se ha visto tan afectado y que afecta a miles de personas a diario y parece que va para largo...

A solicitud

--

--

David Mauricio

Full Stack Ruby on Rails Developer. Software Engineer @ SpiderDoor LLC