ScholarGate
Asistente

Seguridad de Software y Aplicaciones

La seguridad de software y aplicaciones aborda las vulnerabilidades que surgen de cómo se escriben e implementan los programas, y los métodos para encontrarlas, prevenirlas y explotarlas, reconociendo que la mayoría de las brechas provienen de software defectuoso en lugar de criptografía rota.

Encontrar tema con PaperMindPróximamenteFind papers & topics
Tools & resources
Descargar diapositivas
Learn & explore
VídeoPróximamente

Definition

La seguridad de software y aplicaciones es el campo que se ocupa de identificar, prevenir y mitigar las debilidades de seguridad en el software, y de comprender cómo los atacantes las descubren y explotan.

Scope

Esta área cubre la seguridad del software en sí: clases de vulnerabilidades (errores de seguridad de memoria, inyección, fallos lógicos) y cómo se explotan, prácticas para construir software seguro (diseño seguro, revisión de código, pruebas, fuzzing), el análisis de software malicioso y las preocupaciones específicas de las aplicaciones web. Aborda las perspectivas ofensivas y defensivas conjuntamente. Excluye los algoritmos criptográficos y la infraestructura de red y control de acceso, tratados en áreas relacionadas.

Sub-topics

Core questions

  • ¿Qué clases de fallos de programación conducen a vulnerabilidades explotables?
  • ¿Cómo convierten los atacantes una vulnerabilidad en ejecución de código o robo de datos?
  • ¿Cómo se puede diseñar, escribir y probar el software para que sea seguro desde el principio?
  • ¿Cómo se analiza y se defiende el software malicioso?
  • ¿Por qué las mismas clases de vulnerabilidades se repiten a pesar de décadas de concienciación?

Key concepts

  • clases de vulnerabilidad
  • seguridad de la memoria
  • desbordamiento de búfer
  • ataques de inyección
  • explotación y mitigaciones
  • ciclo de vida de desarrollo seguro
  • análisis estático y dinámico
  • fuzzing
  • análisis de malware

Key theories

Seguridad de la memoria y explotación
Los lenguajes sin seguridad de la memoria permiten errores como los desbordamientos de búfer que permiten a los atacantes sobrescribir datos de control y secuestrar la ejecución; comprender la explotación (y las mitigaciones como ASLR, DEP, canarios de pila) es central para la seguridad del software.
Integrar la seguridad
La seguridad es más efectiva cuando se integra a lo largo de todo el ciclo de vida de desarrollo —a través del modelado de amenazas, codificación segura, revisión de código y pruebas— en lugar de añadirse después, moviendo los defectos a la izquierda donde son más baratos de corregir.

Clinical relevance

Las vulnerabilidades de software impulsan la mayor parte de los incidentes de seguridad en el mundo real: los errores de seguridad de memoria en C/C++ subyacen a una gran parte de las vulnerabilidades críticas, los fallos de inyección comprometen las bases de datos y los ataques a la cadena de suministro (SolarWinds, Log4Shell) se propagan a través de las dependencias. El campo moldea directamente cómo se endurecen los sistemas operativos, los navegadores y las aplicaciones, y cómo operan los ecosistemas de divulgación de vulnerabilidades, parches y recompensas por errores.

Evidence & guidelines

El campo se organiza en torno a bases de conocimiento compartidas: el OWASP Top Ten y el catálogo CWE de debilidades comunes, el sistema CVE/NVD rastrea las vulnerabilidades divulgadas con puntuaciones de gravedad CVSS, y el marco MITRE ATT&CK mapea las técnicas de los atacantes. Los marcos de desarrollo seguro (Microsoft SDL, NIST SSDF / SP 800-218) y los lenguajes seguros para la memoria (Rust) representan las mejores prácticas actuales.

History

La seguridad del software surgió a medida que los sistemas en red exponían los programas a atacantes remotos. El gusano Morris de 1988 explotó un desbordamiento de búfer; el 'Smashing the Stack' de Aleph One en 1996 popularizó la técnica de explotación, lo que impulsó mitigaciones (canarios de pila, memoria no ejecutable, ASLR). La década de 2000 formalizó el desarrollo seguro (SDL de Microsoft después del memorándum de Computación Confiable de 2002), y las crisis recurrentes —Heartbleed, Log4Shell— mantienen el campo central, impulsando ahora la adopción de lenguajes seguros para la memoria.

Key figures

  • Gary McGraw
  • Ross Anderson
  • Elias Levy (Aleph One)
  • Dan Geer

Related topics

Seminal works

  • anderson2020
  • mcgraw2006
  • aleph1996

Frequently asked questions

¿Por qué siguen apareciendo las mismas vulnerabilidades (como los desbordamientos de búfer)?
Gran parte del software crítico está escrito en lenguajes inseguros para la memoria, los plazos y la complejidad invitan a errores, y el código antiguo persiste durante décadas. Incluso con concienciación, una sola verificación pasada por alto puede ser explotable, por lo que el campo favorece cada vez más los lenguajes seguros para la memoria y el análisis automatizado.
¿La seguridad de las aplicaciones es independiente de la criptografía?
Son complementarias. La criptografía protege los datos si se usa correctamente, pero las aplicaciones suelen romperse por fallos lógicos, inyección o errores de memoria que eluden la criptografía por completo. Se necesita una seguridad de software sólida para que las protecciones criptográficas se mantengan realmente.

Methods for this concept

Related concepts