vulnerabilidades tipos son software sistema las languard informatico gfi espaƱol ejemplos cuales security

security - son - tipos de vulnerabilidades de software



Encontrando Vulnerabilidades en Software (3)

Estoy interesado en conocer las técnicas que se utilizaron para descubrir vulnerabilidades. Conozco la teoría sobre desbordamientos de búferes, explotaciones de cadenas de formato, ecc, también escribí algunas de ellas. Pero todavía no me doy cuenta de cómo encontrar una vulnerabilidad de una manera eficiente.

No busco una varita mágica, solo busco las técnicas más comunes, creo que buscar en toda la fuente es un trabajo épico para algún proyecto que admite que tiene acceso a la fuente. Tratar de difuminar la entrada manualmente no es tan cómodo también. Así que me pregunto sobre alguna herramienta que ayude.

P.ej

No me doy cuenta de cómo el equipo de desarrollo puede encontrar vulnerabilidades a los iPhones de jailbreak tan rápido. No tienen código fuente, no pueden ejecutar programas y, como hay una pequeña cantidad de programas predeterminados, no espero una gran cantidad de brechas de seguridad. Entonces, ¿cómo encontrar este tipo de vulnerabilidad tan rápidamente?

Gracias de antemano.


Aparte del exceso de búfer y las vulnerabilidades de la cadena de formato, es posible que desee leer un poco sobre la inyección de código . (mucho de lo que se encontrará estará relacionado con la web / DB, pero profundizar) AFAIK esto fue una gran fuerza en jailbreaking the iThingies. El sustrato móvil de Saurik le permite (s) (-ed?) Cargar los .dylibs de terceros, y llamar a cualquier código contenido en ellos.


En las capas inferiores, el examen manual de la memoria puede ser muy revelador. Ciertamente, puede ver la memoria con una herramienta como Visual Studio, y me imagino que alguien incluso ha escrito una herramienta para reconstruir de forma cruda una aplicación según las instrucciones que ejecuta y las estructuras de datos que coloca en la memoria.

En la web, he encontrado muchas vulnerabilidades relacionadas con secuencias simplemente invirtiendo el orden en que ocurre una operación (por ejemplo, una transacción en línea). Debido a que el servidor tiene estado pero el cliente no tiene estado, puede explotar rápidamente un proceso mal diseñado emulando una secuencia diferente.

En cuanto a la velocidad del descubrimiento: creo que la cantidad a menudo supera la brillantez ... pone una pieza de software, incluso una buena, en manos de un millón de personas aburridas / curiosas / motivadas, y es probable que se descubran vulnerabilidades. Hay una tremenda prisa por sacar productos por la puerta.


No hay una forma eficiente de hacerlo, ya que las empresas gastan una buena cantidad de dinero para producir y mantener software seguro. Idealmente, su trabajo en la protección del software no comienza con la búsqueda de vulnerabilidades en el producto terminado; tantas vulnerabilidades ya se han erradicado cuando el software está fuera.

De vuelta a su pregunta: dependerá de lo que tenga (binarios de trabajo, código fuente completo / parcial, etc.). Por otro lado, no encuentra NINGUNA vulnerabilidad sino aquellas que cuentan (por ejemplo, aquellas que el cliente de la auditoría o el propietario del software). ¿Derecha?

Esto le ayudará a comprender las entradas y funciones de las que debe preocuparse. Una vez que los haya localizado, es posible que ya tenga una idea de la calidad del software: si no es muy bueno, probablemente Fuzzing le encuentre algunos errores. De lo contrario, debe comenzar a entender estas funciones y cómo se usa la entrada dentro del código para entender si el código puede ser subvertido de alguna manera.

Un poco de experiencia lo ayudará a evaluar cuánto esfuerzo debe poner en cada tarea y cuándo debe seguir adelante. Por ejemplo, si ve que se usan algunas prácticas incorrectas, profundice más. Si ve que crypto se implementa desde cero, profundice. Etc