Lo haces tú mismo o confías en otra persona
Como con la mayoría de las cosas en la vida, debes hacerlo tú mismo o confiar en alguien más. Aquí, confiar abarca tanto no tener intenciones maliciosas como ser lo suficientemente competente para realizar la tarea correctamente.
Por ejemplo, puede presentar sus impuestos a usted mismo o confiar a un asesor fiscal para que lo haga (quien no solo no debería intentar defraudarlo sino también saber cómo hacerlo). presentar los impuestos!).
Si eres una empresa, hacerlo solo será realizado por uno o varios de tus empleados, que a su vez deben ser de confianza.
El tercero en el que confías, tampoco necesita ser una sola persona. Podría ser el Equipo de desarrollo de Microsoft Windows o los Desarrolladores principales de Wordpress .
En cuanto a la seguridad del código fuente, desea que el experto no solo tenga buenas intenciones, sino que también tenga conocimientos para codificar el programa de manera segura / encuentre los posibles problemas de seguridad que puedan existir.
(más algunos sistemas de borde adicionales cuando se tratan como un todo, por ejemplo, usted quiere que su código no se vea comprometido mientras lo subieron al repositorio, o el correo electrónico de su empleado indicando que los resultados son reemplazados por un hacker malicioso dentro de su red para decir que la aplicación estaba bien)
Necesitará evaluar sus opciones, evaluar el riesgo asociado con cada una y elegir el camino que mejor se adapte a sus intereses (y presupuesto).
Si tuviera que verificar la seguridad del código fuente de un blog que usaba Wordpress, generalmente confiaría en que el código original estaba bien1¹ y verificar las diferencias entre la versión oficial y la utilizada . Si el sitio web estuviera comprometido, sería mucho más fácil averiguarlo.
¹ Obviamente, verificando el registro de cambios de versiones posteriores si usó uno desactualizado.
Sin embargo, si fue desarrollado por el sobrino del propietario, esperaría encontrar muchas vulnerabilidades allí, y recomendaría una revisión exhaustiva de todo.
En su caso, debe evaluar el riesgo y el costo de desarrollar el equivalente de esa biblioteca (tenga en cuenta que la posibilidad de problemas en su producto interno no es cero, tampoco, y dependerá, entre otras cosas, de) la calidad de las personas involucradas) frente al riesgo y el costo de la auditoría y el uso de esa biblioteca.
Ahora, puede haber factores atenuantes que simplifiquen la auditoría. Por ejemplo, si el código que no es de confianza se puede ejecutar en una máquina virtual aislada, eso puede ser suficiente para no necesitar una auditoría adicional (incluso aquí, confía en la implementación de la máquina virtual). O puede considerarse suficiente para auditar las partes de ese programa que se ejecutan como root.
Para auditar una biblioteca, los analizadores de código pueden ayudar a señalar las partes problemáticas (como se señaló), pero para considerarlo limpio, en realidad habría alguien que leyera y entendiera el código, incluso si superficialmente.
Por ejemplo, la capacidad de eliminar archivos arbitrarios no es maliciosa per se . Debe comprender el programa para saber si tiene sentido.
Nuevamente, es una cuestión de amenazas y riesgos para lo que está haciendo. Si solo le preocupan los datos de la biblioteca que se están filtrando, filtrar las conexiones en el firewall podría ser suficiente. Si le preocupa que la biblioteca elimine archivos importantes (y por alguna extraña razón no puede negar dicho permiso), simplemente puede desplazarse por un montón de código que solo hizo cálculos matemáticos. Si esa biblioteca calcula los parámetros para lanzar un cohete ... bueno, ¡mejor asegúrate de que esos cálculos también sean correctos!