Rastreo de contactos COVID-19: ¿Cuál es la situación de la codificación segura?

Publicado el 08 de julio de 2020
por Pieter Danhieux
ESTUDIO DE CASO

Rastreo de contactos COVID-19: ¿Cuál es la situación de la codificación segura?

Publicado el 08 de julio de 2020
por Pieter Danhieux
Ver recurso
Ver recurso

Una versión de este artículo apareció originalmente en DevOps Digest. Se ha actualizado y sindicado aquí.

A estas alturas, estoy seguro de que todos estamos un poco cansados de la frase "en estos tiempos sin precedentes"... pero, realmente son tiempos sin precedentes. ¿Quién habría pensado a finales del año pasado que este año estaríamos corriendo para derrotar una pandemia destructiva a nivel mundial, y lanzando todo lo que pudiéramos a ella? Habría parecido casi irrisorio, y más propio de una nueva serie de ciencia ficción de Netflix que de nuestra realidad mundial. El COVID-19 ha transformado por completo nuestra vida social, nuestra economía y nuestra seguridad laboral, por no hablar de las prioridades políticas.

Uno de los contraataques a COVID-19 ha sido la tecnología, y muchos países han puesto en marcha aplicaciones de rastreo de contactos. Australia cuenta con COVIDSafe, basada en la aplicación TraceTogether de Singapur. Hong Kong, Taiwán, China, Corea del Sur, Israel y Alemania han implementado, o están en vías de hacerlo, la tecnología de rastreo de contactos. El Reino Unido ha sido la región más afectada de Europa, con decenas de miles de muertes relacionadas con el virus y una elevada tasa de infección. El lanzamiento de su aplicación es inminente. Los Estados Unidos -también muy afectados por la trágica pérdida de vidas de muchas personas- también han puesto en marcha la tecnología, pero su enfoque de rastreo de contactos estado por estado hace que su situación sea bastante compleja.

Con la excepción de los países más controlados por el Estado, como China y Taiwán, el uso de estas aplicaciones es voluntario, lo que obliga a los ciudadanos a descargar y utilizar la tecnología por voluntad propia. Algunos índices de adopción son más exitosos que otros; por ejemplo, la aplicación TraceTogether de Singapur tuvo un índice de adopción del 25%, lo que la hace bastante ineficaz para su objetivo.

La idea de las aplicaciones de rastreo de contactos es sólida. Esta tecnología, cuando funcione bien, garantizará que se descubran rápidamente los focos de infección y que se realicen pruebas exhaustivas, dos componentes esenciales para luchar contra la propagación de un virus contagioso. Sin embargo, las palabras "gobierno" y "rastreo" no suenan precisamente muy atrayentes, y es natural que la gente sea cautelosa acerca de lo que la descarga de algo así significaría realmente para ellos.

Entonces, ¿cuáles son las principales preocupaciones de los usuarios? Si nos guiamos por los comentarios en línea, algunos de estos recelos son:

  • Falta de confianza en que el gobierno utilice los datos recogidos de forma responsable
  • Temor por la protección de los datos personales frente a los ciberataques
  • Falta de claridad sobre qué datos se recogen realmente, dónde se almacenan y con quién.
  • ... y para los desarrolladores/geeks entre nosotros, la solidez de las aplicaciones.

Siempre es un poco preocupante cuando las aplicaciones se construyen rápidamente, y estas aplicaciones de rastreo de contactos tienen que desplegarse en un tiempo récord. Es una pesadilla para los desarrolladores, la gente de seguridad y las agencias gubernamentales.

Entonces, ¿es la desconfianza una reacción válida? ¿Y qué deberíamos considerar prioritario en nuestra assessment de aplicaciones de rastreo de contactos COVID-19 y la seguridad del usuario final? Como experto en seguridad, mi instinto es, por supuesto, profundizar en los elementos de ciberseguridad del programa, es decir, cómo de segura es la base de código de una aplicación que todos (con la mejor de las intenciones) somos empujados a instalar.

Muchas de las aplicaciones son copias unas de otras (y heredan los mismos problemas).

La aplicación COVIDSafe de Australia se basa esencialmente en OpenTrace, al igual que el programa TraceTogether de Singapur. El problema, sin embargo, es que TraceTogether ha tenido una serie de problemas y una escasa aceptación, ya que sólo el 25% de la población ha optado por utilizarlo, muy por debajo del 75% necesario para que sea eficaz. Ha habido quejas sobre su rendimiento general, especialmente en iOS, incluyendo el agotamiento muy rápido de las baterías. COVIDSafe tiene un posible fallo de UX en su versión para iOS, ya que requiere que el teléfono esté desbloqueado y la aplicación se ejecute en primer plano para registrar todos los datos correctamente.

Si bien los problemas anteriores son molestos, la preocupación más acuciante es que las vulnerabilidades de Bluetooth son abundantes y ni TraceTogether, ni la australiana COVIDSafe, son inmunes a ellas. El 14 de mayo, el NIST informó de que COVIDSafe tenía una vulnerabilidad de denegación de servicio que permitía a un atacante bloquear la aplicación de forma remota si se encontraba en la distancia del apretón de manos Bluetooth. Esto permitiría a un ataque organizado interrumpir el rastreo de contactos en áreas densamente pobladas, donde es más útil - algo explicado en detalle por el investigador de seguridad Richard Nelson. Se sabe que afecta a COVIDSafe, TraceTogether, ProteGO de Polonia y ABTraceTogether de Canadá - todos heredan el problema de la llamada manuData.subdata defectuosa de OpenTrace.

También hay otros problemas de privacidad y seguridad relacionados con la funcionalidad Bluetooth en general. El hecho de que esta tecnología se utilice para rastrear el movimiento humano a través de una identificación única (TempID) y recopilar datos significativos supondrá inevitablemente un gran interés por parte de los atacantes para comprobar los puntos débiles, momento en el que habrá que analizar exactamente qué se recopila, dónde se almacena y durante cuánto tiempo.

Algunas aplicaciones ya están mostrando signos de errores simples que causan debilidades complejas.

El ingeniero de software australiano Geoffrey Huntley ha estado estudiando el código fuente de COVIDSafe y, lamentablemente, hay problemas que no se están poniendo de manifiesto para nosotros, los usuarios finales.

Un ejemplo crítico era un error lógico que violaba la privacidad y que permitía a un atacante realizar un seguimiento a largo plazo de los dispositivos; algo que supone un enorme riesgo para los usuarios vulnerables, por no mencionar que contraviene la política de privacidad de la propia aplicación.

Es importante señalar que estas vulnerabilidades lógicas han sido parcheadas a partir del 14 de mayo, pero la cuestión más apremiante es que esto se dejó sin parchear, en la naturaleza, durante 17 días después de que el Sr. Huntley informó. Él y otros miembros de la comunidad de seguridad impresionante están rastreando CVEs relacionados con la aplicación COVIDSafe aquí.

Una cosa que Huntley señala, después del parche, es que incluso la solución muestra signos de, bueno, incompetencia. En su registro público, señala que el parche implicaba añadir lógica en lugar de simplemente borrar una caché defectuosa, siendo esta última una solución mucho más sólida. Ambos funcionan, pero la solución en vivo carece de delicadeza - una preocupación con una aplicación tan importante.

Aunque tenemos miembros diligentes de la sociedad que utilizan su propio tiempo y experiencia para examinar el código fuente y poner de relieve los problemas, su trabajo es mucho más difícil que si el código fuera abierto en primer lugar. Tal y como están las cosas, 28 aplicaciones siguen estando cerradas a los investigadores de seguridad.

La codificación segura sigue haciéndonos tropezar en la línea de meta.

Aunque ciertamente puedo simpatizar con los desarrolladores sobrecargados de trabajo -así como con la situación altamente inusual de tener que producir una aplicación que salve vidas en medio de una pandemia- lo anterior debería resaltar que unas simples vulnerabilidades en lo que es esencialmente una base de código comunal podrían significar problemas significativos para millones de usuarios.

Me gustaría pensar que la mayoría de la gente quiere ser buenos ciudadanos, apoyar la aplicación y dar a todos la mejor oportunidad posible de rastrear los contactos y controlar los brotes de este horrible virus. Yo también apoyo la tecnología que puede ayudar a conseguirlo, pero en muchos sentidos, esto ha desvelado la falta general de principios de codificación segura inherente a los desarrolladores de todo el mundo.

En cualquier situación en la que el software tiene que ser escrito rápidamente, los errores no son precisamente inesperados. Sin embargo, las vulnerabilidades de seguridad más comunes, como los fallos lógicos, las malas configuraciones y los errores de inyección de código, deberían poder evitarse a medida que se escribe el código, y no después de que los sombreros blancos voluntarios lo desmenucen.

Y no es culpa de los desarrolladores, por cierto. Salen de su educación terciaria con pocas habilidades en la codificación segura, y en sus carreras, sus KPIs casi siempre se relacionan con la funcionalidad de las características y la velocidad de entrega - la parte de la seguridad es para alguien más para tratar una vez que han terminado. Tenemos que llegar a un estado final de codificación segura a velocidad, y aunque ahora no es el momento de hacer cambios culturales sísmicos en los departamentos que construyen estas aplicaciones, es un recordatorio oportuno de que nuestra área de riesgo digital se está expandiendo, y están en la pole position para marcar la diferencia si se les da las herramientas y el conocimiento para compartir la responsabilidad de las mejores prácticas de seguridad.

¿Es seguro descargar la aplicación?

Esta es la cuestión: para mí, un tipo de seguridad, he llegado a la conclusión de que los beneficios de la aplicación superan los problemas. No es ideal que las vulnerabilidades mencionadas estén -o hayan estado- presentes en este software, pero las implicaciones de que se conviertan en armas son los peores escenarios. Por el momento, el rastreo de contactos es un componente vital para ayudar a nuestros héroes médicos de todo el mundo a controlar la propagación, frenar el flujo de ingresos hospitalarios y mantenernos lo más seguros posible.

Sirve para poner de manifiesto que nos queda un largo camino por recorrer en lo que respecta a la aplicación de las mejores prácticas de seguridad por defecto en la creación de software, y es importante que el público disponga de la información necesaria para tomar decisiones informadas.

Mi familia y yo seguiremos usándolo, aunque seguimos atentos a estar al día con los parches de Android, como deberíamos hacer todos.

Ver recurso
Ver recurso

Autor

Pieter Danhieux

Pieter Danhieux es un experto en seguridad mundialmente reconocido, con más de 12 años de experiencia como consultor de seguridad y 8 años como instructor principal de SANS enseñando técnicas ofensivas sobre cómo atacar y evaluar organizaciones, sistemas y personas en busca de debilidades de seguridad. En 2016, fue reconocido como una de las personas más cool de la tecnología en Australia (Business Insider), galardonado como Profesional de Seguridad Cibernética del Año (AISA - Asociación Australiana de Seguridad de la Información) y tiene certificaciones GSE, CISSP, GCIH, GCFA, GSEC, GPEN, GWAPT, GCIA.

¿Quieres más?

Sumérjase en nuestras últimas ideas sobre codificación segura en el blog.

Nuestra amplia biblioteca de recursos tiene como objetivo potenciar el enfoque humano de la mejora de la codificación segura.

Ver blog
¿Quieres más?

Obtenga las últimas investigaciones sobre la seguridad impulsada por los desarrolladores

Nuestra amplia biblioteca de recursos está repleta de recursos útiles, desde libros blancos hasta seminarios web, que le ayudarán a iniciarse en la codificación segura orientada a los desarrolladores. Explórela ahora.

Centro de recursos

Rastreo de contactos COVID-19: ¿Cuál es la situación de la codificación segura?

Publicado el 08 de julio de 2020
Por Pieter Danhieux

Una versión de este artículo apareció originalmente en DevOps Digest. Se ha actualizado y sindicado aquí.

A estas alturas, estoy seguro de que todos estamos un poco cansados de la frase "en estos tiempos sin precedentes"... pero, realmente son tiempos sin precedentes. ¿Quién habría pensado a finales del año pasado que este año estaríamos corriendo para derrotar una pandemia destructiva a nivel mundial, y lanzando todo lo que pudiéramos a ella? Habría parecido casi irrisorio, y más propio de una nueva serie de ciencia ficción de Netflix que de nuestra realidad mundial. El COVID-19 ha transformado por completo nuestra vida social, nuestra economía y nuestra seguridad laboral, por no hablar de las prioridades políticas.

Uno de los contraataques a COVID-19 ha sido la tecnología, y muchos países han puesto en marcha aplicaciones de rastreo de contactos. Australia cuenta con COVIDSafe, basada en la aplicación TraceTogether de Singapur. Hong Kong, Taiwán, China, Corea del Sur, Israel y Alemania han implementado, o están en vías de hacerlo, la tecnología de rastreo de contactos. El Reino Unido ha sido la región más afectada de Europa, con decenas de miles de muertes relacionadas con el virus y una elevada tasa de infección. El lanzamiento de su aplicación es inminente. Los Estados Unidos -también muy afectados por la trágica pérdida de vidas de muchas personas- también han puesto en marcha la tecnología, pero su enfoque de rastreo de contactos estado por estado hace que su situación sea bastante compleja.

Con la excepción de los países más controlados por el Estado, como China y Taiwán, el uso de estas aplicaciones es voluntario, lo que obliga a los ciudadanos a descargar y utilizar la tecnología por voluntad propia. Algunos índices de adopción son más exitosos que otros; por ejemplo, la aplicación TraceTogether de Singapur tuvo un índice de adopción del 25%, lo que la hace bastante ineficaz para su objetivo.

La idea de las aplicaciones de rastreo de contactos es sólida. Esta tecnología, cuando funcione bien, garantizará que se descubran rápidamente los focos de infección y que se realicen pruebas exhaustivas, dos componentes esenciales para luchar contra la propagación de un virus contagioso. Sin embargo, las palabras "gobierno" y "rastreo" no suenan precisamente muy atrayentes, y es natural que la gente sea cautelosa acerca de lo que la descarga de algo así significaría realmente para ellos.

Entonces, ¿cuáles son las principales preocupaciones de los usuarios? Si nos guiamos por los comentarios en línea, algunos de estos recelos son:

  • Falta de confianza en que el gobierno utilice los datos recogidos de forma responsable
  • Temor por la protección de los datos personales frente a los ciberataques
  • Falta de claridad sobre qué datos se recogen realmente, dónde se almacenan y con quién.
  • ... y para los desarrolladores/geeks entre nosotros, la solidez de las aplicaciones.

Siempre es un poco preocupante cuando las aplicaciones se construyen rápidamente, y estas aplicaciones de rastreo de contactos tienen que desplegarse en un tiempo récord. Es una pesadilla para los desarrolladores, la gente de seguridad y las agencias gubernamentales.

Entonces, ¿es la desconfianza una reacción válida? ¿Y qué deberíamos considerar prioritario en nuestra assessment de aplicaciones de rastreo de contactos COVID-19 y la seguridad del usuario final? Como experto en seguridad, mi instinto es, por supuesto, profundizar en los elementos de ciberseguridad del programa, es decir, cómo de segura es la base de código de una aplicación que todos (con la mejor de las intenciones) somos empujados a instalar.

Muchas de las aplicaciones son copias unas de otras (y heredan los mismos problemas).

La aplicación COVIDSafe de Australia se basa esencialmente en OpenTrace, al igual que el programa TraceTogether de Singapur. El problema, sin embargo, es que TraceTogether ha tenido una serie de problemas y una escasa aceptación, ya que sólo el 25% de la población ha optado por utilizarlo, muy por debajo del 75% necesario para que sea eficaz. Ha habido quejas sobre su rendimiento general, especialmente en iOS, incluyendo el agotamiento muy rápido de las baterías. COVIDSafe tiene un posible fallo de UX en su versión para iOS, ya que requiere que el teléfono esté desbloqueado y la aplicación se ejecute en primer plano para registrar todos los datos correctamente.

Si bien los problemas anteriores son molestos, la preocupación más acuciante es que las vulnerabilidades de Bluetooth son abundantes y ni TraceTogether, ni la australiana COVIDSafe, son inmunes a ellas. El 14 de mayo, el NIST informó de que COVIDSafe tenía una vulnerabilidad de denegación de servicio que permitía a un atacante bloquear la aplicación de forma remota si se encontraba en la distancia del apretón de manos Bluetooth. Esto permitiría a un ataque organizado interrumpir el rastreo de contactos en áreas densamente pobladas, donde es más útil - algo explicado en detalle por el investigador de seguridad Richard Nelson. Se sabe que afecta a COVIDSafe, TraceTogether, ProteGO de Polonia y ABTraceTogether de Canadá - todos heredan el problema de la llamada manuData.subdata defectuosa de OpenTrace.

También hay otros problemas de privacidad y seguridad relacionados con la funcionalidad Bluetooth en general. El hecho de que esta tecnología se utilice para rastrear el movimiento humano a través de una identificación única (TempID) y recopilar datos significativos supondrá inevitablemente un gran interés por parte de los atacantes para comprobar los puntos débiles, momento en el que habrá que analizar exactamente qué se recopila, dónde se almacena y durante cuánto tiempo.

Algunas aplicaciones ya están mostrando signos de errores simples que causan debilidades complejas.

El ingeniero de software australiano Geoffrey Huntley ha estado estudiando el código fuente de COVIDSafe y, lamentablemente, hay problemas que no se están poniendo de manifiesto para nosotros, los usuarios finales.

Un ejemplo crítico era un error lógico que violaba la privacidad y que permitía a un atacante realizar un seguimiento a largo plazo de los dispositivos; algo que supone un enorme riesgo para los usuarios vulnerables, por no mencionar que contraviene la política de privacidad de la propia aplicación.

Es importante señalar que estas vulnerabilidades lógicas han sido parcheadas a partir del 14 de mayo, pero la cuestión más apremiante es que esto se dejó sin parchear, en la naturaleza, durante 17 días después de que el Sr. Huntley informó. Él y otros miembros de la comunidad de seguridad impresionante están rastreando CVEs relacionados con la aplicación COVIDSafe aquí.

Una cosa que Huntley señala, después del parche, es que incluso la solución muestra signos de, bueno, incompetencia. En su registro público, señala que el parche implicaba añadir lógica en lugar de simplemente borrar una caché defectuosa, siendo esta última una solución mucho más sólida. Ambos funcionan, pero la solución en vivo carece de delicadeza - una preocupación con una aplicación tan importante.

Aunque tenemos miembros diligentes de la sociedad que utilizan su propio tiempo y experiencia para examinar el código fuente y poner de relieve los problemas, su trabajo es mucho más difícil que si el código fuera abierto en primer lugar. Tal y como están las cosas, 28 aplicaciones siguen estando cerradas a los investigadores de seguridad.

La codificación segura sigue haciéndonos tropezar en la línea de meta.

Aunque ciertamente puedo simpatizar con los desarrolladores sobrecargados de trabajo -así como con la situación altamente inusual de tener que producir una aplicación que salve vidas en medio de una pandemia- lo anterior debería resaltar que unas simples vulnerabilidades en lo que es esencialmente una base de código comunal podrían significar problemas significativos para millones de usuarios.

Me gustaría pensar que la mayoría de la gente quiere ser buenos ciudadanos, apoyar la aplicación y dar a todos la mejor oportunidad posible de rastrear los contactos y controlar los brotes de este horrible virus. Yo también apoyo la tecnología que puede ayudar a conseguirlo, pero en muchos sentidos, esto ha desvelado la falta general de principios de codificación segura inherente a los desarrolladores de todo el mundo.

En cualquier situación en la que el software tiene que ser escrito rápidamente, los errores no son precisamente inesperados. Sin embargo, las vulnerabilidades de seguridad más comunes, como los fallos lógicos, las malas configuraciones y los errores de inyección de código, deberían poder evitarse a medida que se escribe el código, y no después de que los sombreros blancos voluntarios lo desmenucen.

Y no es culpa de los desarrolladores, por cierto. Salen de su educación terciaria con pocas habilidades en la codificación segura, y en sus carreras, sus KPIs casi siempre se relacionan con la funcionalidad de las características y la velocidad de entrega - la parte de la seguridad es para alguien más para tratar una vez que han terminado. Tenemos que llegar a un estado final de codificación segura a velocidad, y aunque ahora no es el momento de hacer cambios culturales sísmicos en los departamentos que construyen estas aplicaciones, es un recordatorio oportuno de que nuestra área de riesgo digital se está expandiendo, y están en la pole position para marcar la diferencia si se les da las herramientas y el conocimiento para compartir la responsabilidad de las mejores prácticas de seguridad.

¿Es seguro descargar la aplicación?

Esta es la cuestión: para mí, un tipo de seguridad, he llegado a la conclusión de que los beneficios de la aplicación superan los problemas. No es ideal que las vulnerabilidades mencionadas estén -o hayan estado- presentes en este software, pero las implicaciones de que se conviertan en armas son los peores escenarios. Por el momento, el rastreo de contactos es un componente vital para ayudar a nuestros héroes médicos de todo el mundo a controlar la propagación, frenar el flujo de ingresos hospitalarios y mantenernos lo más seguros posible.

Sirve para poner de manifiesto que nos queda un largo camino por recorrer en lo que respecta a la aplicación de las mejores prácticas de seguridad por defecto en la creación de software, y es importante que el público disponga de la información necesaria para tomar decisiones informadas.

Mi familia y yo seguiremos usándolo, aunque seguimos atentos a estar al día con los parches de Android, como deberíamos hacer todos.

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.