En mi universidad local, hay un pequeño club de computación para estudiantes de unos 20 estudiantes. El club tiene varios equipos pequeños con áreas específicas de enfoque, como desarrollo móvil, robótica, desarrollo de juegos y piratería / seguridad.
Estoy presentando algunos conceptos básicos de desarrollo ágil a un par de equipos, como historias de usuarios, estimación de la complejidad de las tareas e integración continua para control de versiones y compilaciones / pruebas automatizadas.
Estoy familiarizado con algunos ciclos de vida básicos de desarrollo, como cascada, espiral, RUP, ágil, etc., pero me pregunto si existe un ciclo de vida de desarrollo de software para piratear / violar la seguridad. Seguramente, los hackers escriben código de computadora, pero ¿cuál es el ciclo de vida de ese código? No creo que estén demasiado preocupados con el mantenimiento, ya que una vez que se ha encontrado y revisado la violación, el código que explotó esa violación es inútil.
Me imagino que el ciclo de vida sería algo como:
- Encuentra brecha en seguridad
- Explotar brecha en seguridad
- Procurar carga útil
- Utiliza la carga útil
¿Qué tipo de diferencias (si las hay) existen para el ciclo de vida de desarrollo del software cuando el propósito del producto es violar la seguridad?
fuente
Respuestas:
¿De qué tipo de código estás hablando?
Hay muchas herramientas de seguridad utilizadas en el proceso de piratería, incluidos escáneres como nmap , sqlmap , Nessus y muchos otros. Me imagino que tienen el mismo tipo de ciclos de vida del software que cualquier otra aplicación.
Por otro lado, hay códigos de explotación. Códigos escritos para aprovechar una vulnerabilidad y situación muy específica. Dudo mucho que necesiten algún ciclo de vida. Sin embargo, muchos códigos de explotación también están integrados con un marco de explotación más grande como Metasploit .
Después de una discusión con @AviD, me gustaría agregar algunos puntos.
Será muy diferente para situaciones específicas.
Es posible que se apresuren algunos códigos de explotación para tener en cuenta la ventana antes de parchear el día cero. El código también podría eliminarse por otras razones. Ver: CRIMEN: ¿Cómo vencer al sucesor de BEAST? para un gran ejemplo de esto. Una persona escribió un código de PoC para probar rápidamente su punto. Ninguna metodología de ciclo de vida del software se tiene en cuenta para códigos como este.
El malware armado como stuxnet o FLAME probablemente lo haga. Software empaquetado como Metasploit do.
Entonces la respuesta correcta es ... depende.
fuente
No veo por qué debería haber un ciclo de vida de desarrollo específicamente diferente según el propósito del producto.
El software desarrollado para violar la seguridad puede tener una vida tan larga como cualquier otro tipo de software y requerirá la misma cantidad de mantenimiento y trabajo.
Los diferentes creadores de dicho software adoptarán diferentes ciclos de vida según sus necesidades.
fuente
Los modelos de desarrollo que especifique son solo eso: modelos de desarrollo. Son extremadamente útiles cuando realiza desarrollo de ingeniería: cuando tiene requisitos, cuando tiene que crear o modificar arquitecturas de sistemas o diseños de componentes, cuando necesita construir o modificar un producto y las pruebas asociadas, y cuando lo entrega a un cliente.
No estoy seguro de que estos modelos se puedan aplicar directamente a proyectos más orientados a la investigación, en los que intenta responder preguntas u obtener más información sobre un sistema (o las debilidades de seguridad del sistema, en su caso particular).
Sospecharía que los modelos iterativos / incrementales, como los métodos ágiles y el modelo espiral, serían los más útiles para formar una base. En cada iteración, puede trabajar para responder preguntas o definir más parámetros para trabajar, lo que podría incluir o no escribir ningún código. Quizás varios métodos de investigación científica también podrían proporcionar una base interesante.
fuente
La piratería ha visto recientemente una fuerte profesionalización, lejos de los piratas informáticos individuales que lo hacen "por diversión" o para ganar fama, hacia la colaboración entre especialistas con el objetivo de ganar dinero. El resultado han sido "kits de piratería" comerciales completos como el kit de explotación Blackhole, donde las debilidades específicas del software se pueden integrar fácilmente como complementos. Supongo que dichos productos se desarrollan casi exactamente como cualquier otro producto de software.
Aparentemente, también existe un mercado en desarrollo para exploits de día cero .
fuente
Life-Cyle nunca depende del código. Depende bastante de otros factores como:
En su escenario, la metodología Agile Life Cyle sería más útil. La razón es que necesita involucrar a su cliente durante el desarrollo y debe verificar los parámetros de calidad aceptables de su producto. La metodología ágil lo ayudaría inmensamente a mejorar su software de piratería mediante la recopilación de los comentarios de sus clientes y luego trabajar gradualmente de manera gradual .
fuente