Análisis de vulnerabilidades, ¿qué métodos se pueden utilizar para descubrir objetivos? ¿Cuáles son las ventajas y desventajas de cada uno de ellos?
Escaneo de código fuente
Al verificar la estructura de archivos, reglas de nomenclatura, funciones, punteros de pila, etc. en el programa que no cumple con las reglas de seguridad, podemos descubrir posibles seguridades ocultas. fallas en el programa.
Ventajas y desventajas:
Esta tecnología de análisis de vulnerabilidad requiere dominio de lenguajes de programación, reglas de revisión predefinidas para código no seguro y verifica el código fuente mediante la coincidencia de expresiones.
Dado que el programa cambia dinámicamente cuando se ejecuta, si no considera los parámetros y el entorno de llamada de la llamada a la función, y no realiza análisis léxico y de sintaxis del código fuente, no hay manera para comprender con precisión la semántica del programa. Por lo tanto, este tipo de Este método no puede detectar vulnerabilidades de seguridad durante la ejecución dinámica del programa.
Escaneo de desensamblado
El escaneo de desensamblado es a menudo la forma más efectiva de descubrir vulnerabilidades de seguridad para programas que no revelan el código fuente. El análisis del código de desensamblado requiere una amplia experiencia y se pueden utilizar herramientas auxiliares para ayudar a simplificar el proceso, pero es imposible tener una herramienta completamente automatizada para completar este proceso.
Ventajas y Desventajas:
La ventaja de encontrar vulnerabilidades del sistema mediante el desmontaje es que, en teoría, no importa cuán complejo sea el problema, siempre se puede resolver mediante el desmontaje. Sus deficiencias también son obvias: este método requiere mucho tiempo y mano de obra, requiere un alto nivel técnico de personal y no puede detectar las vulnerabilidades de seguridad generadas durante la operación dinámica del programa.
Inyección de errores ambientales
La ejecución del programa es un proceso dinámico. No es difícil ver que el escaneo de código estático está incompleto.
Ventajas y desventajas:
La inyección de errores ambientales es un método de prueba de software relativamente maduro, que se ha utilizado ampliamente en campos como las pruebas de seguridad de protocolos. El análisis de inyección de errores del entorno de software también se basa en fallas de seguridad conocidas en el sistema operativo. Es decir, al realizar un análisis de inyección de errores en un software, se deben considerar plenamente las vulnerabilidades del propio sistema operativo en estos sistemas operativos. Puede afectar la seguridad del software en sí.