Entrevista con el CEO de GitHub: "El copiloto tiene que evitar las filtraciones de datos"
SecOps charló con Thomas Dohmke sobre la nueva función de Copilot que bloquea posibles leaks en código fuente. IA, programación y más.
Dark News es un resumen semanal de noticias de seguridad informática. Los temas están seleccionados por Juan Brodersen según estos criterios de edición.
[Nota: Por vacaciones, esta entrega fue programada y no contiene noticias de actualidad. La semana que viene no hay SecOps y vuelvo el 30 de junio.]
16 jun
🤖 Por qué hablamos con Thomas Dohmke
Hace unas semanas publiqué una entrevista con el CEO de GitHub, Thomas Dohmke, en Clarín. La posibilidad de entrevistarlo surgió porque estuvo de gira por América Latina. Cuando es así, los equipos de prensa ofrecen entrevistas para darle difusión y, de alguna manera, publicidad gratis en los medios.
Quizás por esto, siempre es un desafío preparar una entrevista para sacarle algo interesante a una personalidad que, por defecto, suele tener el casete bastante puesto: los cargos de CEO dejan muy pocos títulos y mucha corpo-talk vacía. Sin embargo, buscando otras entrevistas y hurgando en lo que se sabe de estos personajes, algo se puede sacar.
Durante la charla, que duró cerca de 50 minutos, “perdimos” unos 20 hablando de su vida. Dohmke tiene una historia particular porque nació en la Alemania oriental y aprendió a programar en un clon de la KC 85, una serie de microcomputadoras producidas de ese lado del muro. De hecho, cuando habla en inglés tiene una pronunciación completamente alemanizada, al punto que debo reconocer que me costó bastante transcribir la entrevista (el transcriptor automático de Office se confundía muchísimo y lo hice de manera manual).
Lo que sí logré detectar fue que, más allá del cargo gerencial que tiene, sigue conectado con la programación: desde chico desarrolló una suerte de copia del Monkey Island. Después hizo un software de seguros que arrancó como un hobby y terminó siendo su primer trabajo serio. Y dos días antes de sentarse a hablar en las oficinas de Microsoft para esta charla, venía de dar una conferencia en San Pablo en la que hizo, en 18 minutos, una aplicación en vivo frente a un auditorio repleto de asistentes: el famoso juego de la viborita.
Cuando ya íbamos más de la mitad de la entrevista, Dohmke me dijo “todavía no hablamos nada de Copilot”, para apurar un poco la charla y apuntarla al lugar que nos congregaba: dar a conocer la función de IA que tiene la herramienta para programadores. Básicamente, sugiere piezas de código para agilizar o resolver problemas de manera automática, según la interpretación que haga de lo que el usuario esté intentando escribir.
Todavía es difícil saber cuán útil pueda ser una herramienta que funcione como un predictivo. Charlando con Maxi Firtman, por ejemplo, me contó que para él es más molesta que útil: “Me interrumpe el flujo de pensamiento”, dijo.
En todo este contexto, Copilot tiene una función especial enfocada en ciberseguridad para advertir a un programador cuando está exponiendo -o a punto de exponer- un dato sensible. Eso parece interesante y, en un mundo ideal, podría cerrarle una puerta a una filtración futura.
La idea de esta entrega, por fuera de las noticias de actualidad, es reproducir acá las preguntas en torno a los problemas relacionados a filtraciones de datos y seguridad informática, algo que dejé por fuera en la nota de Clarín por una cuestión de audiencias.
🔒 El foco en la seguridad
La estrategia de Microsoft de hacer una alianza con OpenAI a partir de la explosión de ChatGPT convirtió a la empresa en un hub de productos atravesados por la inteligencia artificial.
Si a esto se le suma que Microsoft viró durante los últimos años para fortalecer sus soluciones de seguridad informática (algo esperable, debido a la enorme superficie de ataque que tiene la compañía con Windows y Office), un producto como Copilot cobra fuerza en el ambiente de la seguridad de la información.
─¿Qué lugar ocupa la seguridad informática en Copilot de GitHub?
─Hablar de ciberseguridad en GitHub es un tema central. Si pensamos en el espíritu de la plataforma como “el hogar de código”, donde se alojan muchos proyectos de código abierto, también hay que pensar que muchos clientes empresariales utilizan ese código abierto en sus proyectos. Y hemos visto en el pasado lo que llamamos un problema en la seguridad de la cadena de suministro del software, donde una vulnerabilidad en una biblioteca puede generar serios problemas.
─¿Qué sería esa cadena de suministro?
─Por ejemplo, supongamos que hay una vulnerabilidad debido a una biblioteca específica de código abierto. Eso se puede utilizar en muchos proyectos empresariales. Y eso puede implicar el manejo de datos privados, de ellos y de sus clientes. Eso es una cadena de suministro que implica a varias partes, y la idea es que la podamos asegurar.
─¿Y qué hace Copilot en ese contexto?
─Copilot ayuda a ver cuáles son las bibliotecas de código abierto más recientes que el proyecto está usando, por poner un caso, y hace un pull request para crear automáticamente una actualización y que el proyecto use la última versión. Es, en cierto modo, un gestor de actualizaciones para las dependencias de código abierto, el copiloto tiene que frenar las filtraciones de datos.
─¿Cómo haría esto?
─Mediante el escaneo de “secretos”. Esto previene que accidentalmente comprometas contraseñas, tokens API, o claves SSH en un repositorio, porque si alguien más descubre esa información sensible, pueden acceder a tus cuentas. Si se trata de un repositorio público es automático, si es uno privado, alertamos al programador y le impedimos seguir. Se bloquea el push directamente y pide eliminar esa secuencia particular que está comprometiendo datos.
Dohmke se refería así a la función que tiene GitHub para bloquear automáticamente las posibles filtraciones, como claves API y tokens de acceso para todos los repositorios de código público.
El anuncio, que fue durante la primera semana de mayo, en realidad es un deploy más refinado de una versión en beta que estaba disponible desde abril de 2022.
Lo que hace esta función es prevenir de manera activa los leaks de datos al escanear “secretos”, como los llama la compañía, antes de permitir un “git push”. Opera sobre 69 tipos de tokens, entre claves de APIs, claves privadas, secretas, tokens de autenticación, de acceso, certificados de administración, credenciales y otros parámetros sensibles.
La novedad es que desde este año deja de estar disponible sólo para repositorios privados de organizaciones licencias avanzadas de GitHub para estar disponible de forma general en todos los repositorios públicos.
Reducir la superficie de ataque
Dohmke reconoció la dificultad que implica manejar organizaciones con empleados y evitar que estos sean la puerta de entrada para los atacantes.
─El vector de ataque que más preocupa suelen ser los empleados. ¿Apuntan a atacar este aspecto?
─En parte, básicamente evitamos que los empleados de una empresa expongan accidentalmente contraseñas y credenciales. Por esto tenemos también el escaneo de código que ayuda a definir las vulnerabilidades. Por ejemplo, si escaneás tu código en busca de vulnerabilidades comunes, como ser una inyección SQL, entonces Copilot puede ayudarte a solucionar ese problema pero también a entendenerlo.
─O sea que Copilot cumple también una función pedagógica en ese caso.
─Exacto, uno le puede preguntar a Copilot, resaltar un tramo del código y preguntarle qué problema de seguridad ve allí. ¿Cómo podría un atacante explotar esa vulnerabilidad? ¿Qué haría el atacante si encontrara esto? ¿Cómo podría prevenir que esto suceda?
─¿Esto funciona sobre el código abierto o el cerrado?
─Todo esto funcionará si todos los proyectos de código abierto y cerrado trabajan juntos manteniendo todas las dependencias actualizadas, mediante el escaneo de vulnerabilidades y luego ofreciendo compilación a los desarrolladores donde pueden explorar esas vulnerabilidades y corregirlas. Básicamente estamos cerrando el bucle que será una parte cada vez mayor del ciclo de vida del software.
Más sobre el escaneo de secretos, en el sitio de GitHub
La entrevista que le hice en Clarín, donde hay más detalles de su historia personal, se puede leer en este enlace.