Esta página le proporciona un vistazo somero de los pasos que son necesarios para afrontar la auditoría de un paquete.
El primer paso es elegir un paquete que realmente necesite examinarse. Debería elegir uno cuya seguridad sea crítica.
Diríjase a la lista de paquetes cuya auditoría es prioritaria para encontrar sugerencias que le ayudarán a tomar su decisión.
Una cosa que debería tener clara es que no pretendemos que el paquete se audite una sola vez. Es bueno que muchas personas elijan examinar el mismo paquete, porque se demostrará que mucha gente piensa que ese paquete es sensible a cuestiones de seguridad.
Permitiendo una selección de paquetes esencialmente aleatoria, simplificamos
la coordinación y eliminamos el problema de ¿cómo puedes fiarte de que la
persona X ha hecho un buen trabajo?
(No lo necesitamos porque asumimos que
tarde o temprano alguien decidirá examinar el mismo programa).
Tras tomar la decisión de los paquetes, tiene que comenzar la verdadera auditoría.
Si no está seguro del tipo de problemas que tiene que buscar, comience leyendo un libro sobre desarrollo de software seguro.
Secure Programming for Linux and Unix HOWTO (n.t. en inglés) tiene información de calidad que puede resultarle muy útil. Secure Coding: Principles & Practices, de Mark G. Graff y Kenneth R. van Wyk (n.t. en inglés) también es un excelente libro.
Aunque las herramientas son imperfectas, puede ser extremadamente útiles para encontrar posibles vulnerabilidades. Diríjase a la página de herramientas de auditoría para encontrar más información acerca de algunas de las herramientas de auditoría disponibles y de cómo se usan.
Además de mirar el propio código, es buena idea leer la propia documentación del paquete, e intentar instalarlo y usarlo.
Esto le debería permitir urdir maneras de subvertir el comportamiento típico del programa.
Si descubre un problema en el paquete que está examinando, debería informar de ello. Cuando informe de un fallo de seguridad, intente proporcionar también un parche, para que los desarrolladores puedan repararlo cuanto antes. No es necesario facilitar una muestra de ataque (lo que se suele llamar un exploit o una prueba de concepto), ya que el parche debería hablar por sí msimo. Suele preferirse la inversión de tiempo en proporcionar un parche adecuado que en facilitar un ataque con éxito que saque provecho del error.
Aquí tiene una lista con los pasos recomendados para cuando encuentre un error de seguridad en Debian:
Si no tiene una solución para el problema, lo mejor será que dé los máximos detalles sobre el ámbito del problema, la severidad de la incidencia y la información adicional que haya recopilado sobre ella durante su análisis.
Tenga en cuenta que estos pasos pueden variar según el riesgo asociado con la vulnerabilidad que se encuentre. Tiene que valorar el riesgo según:
Se deben dar distintos pasos, por ejemplo, para informar de un ataque local de enlaces simbólicos que sólo puedan aplicar los usuarios autenticados y que sólo provea de una forma de dañar el sistema que para informar de un desbordamiento remoto de buffer que proporcione privilegios administrativos y esté presente en un software popular y de gran difusión.
En la mayor parte de los casos, los errores de seguridad no se deberían revelar hasta que se hayan corregido. Por tanto, no informe de ellos por el sistema estándar de seguimiento de fallos. En su lugar, informe del problema directamente al equipo de seguridad, que gestionará la publicación de un paquete actualizado y, una vez corregido, informará de ello en el BTS.