Pasantías fuzzing para computer software de código abierto


El program de código abierto es la foundation de muchos productos de software modernos. A lo largo de los años, los desarrolladores han Confiado en componentes de código abierto reutilizables para sus aplicaciones. Es elementary que estos componentes de código abierto sean seguros y fiables, ya que las debilidades afectan a los que se basan en ellos.

Google se preocupa profundamente por la seguridad del ecosistema de código abierto y recientemente lanzó el Fundación de seguridad de código abierto con otros socios de la industria. Fuzzing es una técnica de prueba automatizada para encontrar errores alimentando entradas inesperadas a un programa de destino. En Google, aprovechamos el fuzzing a escala para encontrar decenas de miles de vulnerabilidades de seguridad y errores de estabilidad. Este verano, como parte de Iniciativa de pasantías de OSS de Google, recibimos a 50 pasantes para mejorar el estado de las pruebas de fuzz en el ecosistema de código abierto.

Los pasantes fuzzing trabajaron para integrar nuevos proyectos y mejorar los existentes en OSS-Fuzz, nuestro servicio de fuzzing continuo para la comunidad de código abierto (que ha 350+ proyectos, 22,700 errores, 89% corregidos). Varias bibliotecas de código abierto ampliamente utilizadas, incluidas, entre otras, nginx, postgresql, usrsctpy openexr, ahora tienen una cobertura de fuzzing continua como resultado de estos esfuerzos.

Otro grupo de pasantes se centró en mejorar la seguridad del Kernel de Linux. syzkaller, una herramienta de fuzzing del kernel de Google, ha sido essential en encontrar vulnerabilidades del kernel en varios sistemas operativos. Los pasantes tuvieron la tarea de mejorar la cobertura de fuzzing agregando nuevas descripciones a syzkaller como túneles ip, io_uringy bpf_lsm por ejemplo, refinando el idioma de descripción de la interfazy kernel avanzado capacidades de inyección de fallas.

Algunos pasantes optaron por escribir fuzzers para Android y Chrome, que son proyectos de código abierto en los que confían miles de millones de usuarios de Online. Para Android, los pasantes contribuyeron con varios fuzzers nuevos para áreas descubiertas: protocolos de purple como pppd y dns, códecs de audio como monomezcla, g722y marco de Android. En el lado de Chrome, los pasantes mejoraron los fuzzers de caja negra existentes, particularmente en las áreas: DOM, IPC, medios, extensiones y agregaron nuevos Fuzzers basados ​​en libprotobuf para Mojo.

Nuestro último grupo de pasantes investigó bastantes áreas de fuzzing poco exploradas, algunas de las cuales fueron evaluación comparativa de fuzzer, Fuzzing basado en ML, fuzzing diferencial, reglas de bazel para simplificar la construcción e hizo contribuciones útiles.

Durante el transcurso de la pasantía, nuestros pasantes informaron más de 150 vulnerabilidades de seguridad y 750 errores funcionales. Dado el éxito common de estos esfuerzos, planeamos continuar organizando pasantías de fuzzing cada año para ayudar a proteger el ecosistema de código abierto y enseñar a los contribuyentes entrantes de código abierto sobre la importancia de fuzzing. Para obtener más información sobre el programa de pasantías de Google y otras oportunidades para estudiantes, consulte occupations.google.com/learners. Le animamos a que aplique.



Enlace a la noticia primary