¿Cuáles son los aspectos únicos de un ciclo de vida de software de un ataque / herramienta en una vulnerabilidad de software?

10

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:

  1. Encuentra brecha en seguridad
  2. Explotar brecha en seguridad
  3. Procurar carga útil
  4. 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?

David Kaczynski
fuente
44
quien dice que hay algún tipo de formalidad en la piratería en absoluto
fanático del trinquete
1
Dang, cuatro buenas respuestas ya. Va a ser difícil elegir solo uno.
David Kaczynski
@DavidKaczynski también podría considerar preguntar esto en Seguridad de la Información , para obtener el punto de vista de aquellos que realmente diseñan los diversos tipos de software. Y hay grandes diferencias, dependiendo de los requisitos de seguridad ...
AviD
@AviD gracias, creo que obtuve algunas respuestas excelentes aquí con respecto al hecho de que los ciclos de vida de desarrollo para software invasivo no son inherentemente diferentes. Me gustaría aprender más sobre los objetivos u opciones del software invasivo una vez que se viola la seguridad, como infectar la computadora con un virus, crear una puerta trasera o imitar a un usuario para obtener datos.
David Kaczynski
1
@DavidKaczynski, pero mi punto es que es inherentemente diferente, o más bien, desarrollar un tipo es diferente de otro tipo. Vea, por ejemplo, la respuesta de Terry como un ejemplo, y compárelos con los virus, y nuevamente con los días cero, y nuevamente con Stuxnet, y ... Algunos estarían diseñados adecuadamente, algunos se descartarán de la noche a la mañana, depende del contexto y los requisitos diferentes. .
AviD

Respuestas:

7

¿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.

Ayrx
fuente
Todavía no hemos tenido una reunión formal para discutir objetivos o posibles vías de violación de la seguridad, por lo que no puedo decir qué tipo de código estaríamos desarrollando (o si usaríamos el software / tecnología existente para cumplir nuestros objetivos). Todavía estoy interesado en saber qué tipos de técnicas formales existen para aprovechar un sistema comprometido, como crear puertas traseras, imitar a los usuarios, infectar la computadora con un virus, etc. Supongo que ese tipo de pregunta puede ser más adecuada para la seguridad de TI
David Kaczynski
3

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.

Oded
fuente
3

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.

Thomas Owens
fuente
1

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 .

Michael Borgwardt
fuente
1

Life-Cyle nunca depende del código. Depende bastante de otros factores como:

  1. Hora
  2. Presupuesto
  3. Naturaleza del cliente
  4. Naturaleza del producto

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 .

Maxood
fuente
Esto parece un poco subjetivo. ¿Sugiere que otros métodos del ciclo de vida NO involucren al cliente durante el desarrollo o verifiquen parámetros de calidad aceptables? Por supuesto, eso no es exclusivo de Agile.
Jay Stevens