¿Cuánto se auditan las herramientas de seguridad?

2

Solo una pregunta abierta para la comunidad de seguridad en general porque ... bueno ... lo de phpMyAdmin me ha vuelto más paranoico de lo normal ...

Específicamente, estoy pensando en Kali Linux (ex-BackTrack). Hay un lote de diferentes (impresionantes) herramientas que se incluyen en Kali , muchas de las cuales son de código abierto. Obviamente, la gente que realmente está desarrollando Kali no puede auditar completamente todo lo que ocurre.

¿Alguien? Conozco el argumento de 'muchos ojos' del código abierto. Lo he escuchado muchas, muchas veces. Pero no parece haber mucha organización.

Por lo tanto, la gente aquí ...

  • ¿Cuáles son los proyectos bien organizados para buscar en los repositorios de código abierto?
  • ¿Alguna de las personas aquí involucradas con ellos?
  • ¿Tienen el impulso suficiente para superar de manera realista a las personas que podrían intentar poner malware en las utilidades de privilegio de raíz?

editar: soy consciente de esta pregunta . Sin embargo, el hecho de que no se haya encontrado a nadie abusando de algo todavía no es prueba suficiente para que no se pueda abusar. También es consciente de que los paquetes se revisan antes de colocarlos en los depósitos de actualización. Nuevamente, tengo curiosidad acerca de cuánto pueden revisar realistamente los desarrolladores para que estén actualizados y seguros.

    
pregunta root 02.04.2013 - 11:01
fuente

1 respuesta

7

La siguiente anécdota no tiene un valor general:

En 1999, tomé el código fuente de PGP (no GnuPG, todavía en su infancia), versión 5.5, y lo compilé en mi máquina (que era un Alpha que ejecuta NetBSD, es decir, un sistema Unix bastante "normal"). El código fuente de PGP había estado disponible durante algunos años y, a menudo, se consideraba necesariamente seguro, ya que era de código abierto.

Por supuesto, casi de inmediato me encontré con errores. Miré la fuente, y resultó que:

  • El código estaba usando el tipo char como si no estuviera firmado, y, como tal, era completamente incapaz de procesar correctamente cualquier carácter más allá del conjunto ASCII de 7 bits. Fue así en todo el código.
  • El código fuente era varios cientos de archivos de origen, en más de 30 subdirectorios (y sus subdirectorios).

Así que llegué a la conclusión de que, a pesar de ser un objetivo de alto perfil, con el código fuente abierto para inspección durante varios años (el código fuente incluso había sido impreso como un libro para evitar las regulaciones de exportación de los EE. UU. De esa época), nadie se molestó en verlo (o aquellos que lo hicieron, no tenían suficiente conocimiento en C para hacerlo correctamente).

El código no facilitó la auditoría; El código de auditoría ya es un esfuerzo bastante aburrido que es poco probable que los amateurs no pagados aborden por su propia cuenta. Es mucho más interesante, para el aficionado, reescribir todo desde cero, que es exactamente lo que ocurrió (con GnuPG ).

Aunque no creo, en general, en hordas de revisores aficionados sin nombre que auditan el código simplemente porque está ahí, hay proyectos que reúnen un poco de revisión, principalmente debido a las personas que quieren para modificar el proyecto para satisfacer sus necesidades. Por lo tanto, alteraciones maliciosas de las herramientas de seguridad son algo arriesgado. Lo que encontrará en todos los proyectos, de código abierto o no, relacionado con la seguridad o no, son errores , algunos de los cuales se pueden explotar para comportarse en beneficio de terceros (es decir, vulnerabilidades ).

La forma plausible de inyectar una puerta trasera en herramientas de seguridad de código abierto es cometer un error de diseño o implementación honesto, en particular cuando se trata de PRNG (ha habido algunas denuncias, aparentemente infundadas, de tal puerta trasera en OpenBSD; consulte esta respuesta ; la puerta trasera no estaba allí, pero todos se tomaron la cosa en serio, porque es plausible ).

Sobre una base teórica pura, la auditoría externa puede encontrar todas las puertas traseras exactamente tanto como puede descubrir todos los errores en el código auditado, es decir, no puede.

    
respondido por el Thomas Pornin 02.04.2013 - 13:53
fuente

Lea otras preguntas en las etiquetas