Guía del Desarrollador OWASP

Fundamentos de Seguridad

2.1 Fundamentos de seguridad

Los principios fundamentales de la seguridad de aplicaciones se basan en los conceptos de seguridad a los que se hace referencia en esta Guía del Desarrollador. Esta sección tiene como objetivo proporcionar una introducción a los principios fundamentales con los que cualquier equipo de desarrollo debe estar familiarizado.

Modelo de madurez de Seguridad de Software

SAMM logo

El modelo de madurez de Aseguramiento de Software (SAMM) proporciona contexto para el alcance de la seguridad del software y los fundamentos de las buenas prácticas de seguridad:

El modelo SAMM describe estos fundamentos de seguridad de software como funciones comerciales, que a su vez se dividen en Prácticas Comerciales. El Modelo de Madurez de Aseguramiento de Software de OWASP (SAMM) se utiliza en esta Guía del Desarrollador; la mayoría de las secciones de la Guía del desarrollador hacen referencia a al menos una de las funciones o prácticas comerciales de SAMM.

Tríada CIA

La seguridad consiste simplemente en controlar quién puede interactuar con la información, qué pueden hacer con ella y cuándo pueden interactuar con ella. Estas características de seguridad se pueden describir utilizando la tríada CIA.

CIA significa Confidencialidad, Integridad y Disponibilidad y generalmente se representa como un triángulo que representa los fuertes vínculos entre sus tres principios. Esta tríada se considera los pilares de la seguridad de las aplicaciones, a menudo, la confidencialidad, la integridad o la disponibilidad se utilizan como propiedades de los datos o procesos dentro de un sistema determinado. La tríada de la CIA se puede ampliar con la tríada AAA: Autorización, Autenticación y Auditoría.

Confidencialidad

La confidencialidad es la protección de los datos contra la divulgación no autorizada; se trata de garantizar que sólo aquellos con la autorización correcta puedan acceder a los datos y se aplica tanto a los datos en reposo como a los datos en tránsito. La confidencialidad también está relacionada con el concepto más amplio de privacidad de datos.

Integridad

La integridad consiste en proteger los datos contra modificaciones no autorizadas o garantizar la confiabilidad de los datos. El concepto contiene la noción de integridad de los datos (los datos no han sido modificados accidental o deliberadamente) y la noción de integridad de la fuente (los datos provienen de una fuente legítima o fueron modificados por ella).

Disponibilidad

La disponibilidad consiste en garantizar la presencia de información o recursos. Este concepto se basa no sólo en la disponibilidad de los datos en sí, por ejemplo mediante el uso de replicación de datos, sino también sobre la protección de los servicios que proporcionan acceso a los datos, por ejemplo mediante el uso del equilibrio de carga.

Tríada AAA

La tríada de la CIA a menudo se amplía con Autenticación, Autorización y Auditoría, ya que están estrechamente vinculadas a los conceptos de la CIA. La CIA tiene una fuerte dependencia de la autenticación y la autorización; la confidencialidad y la integridad de los datos sensibles no pueden garantizarse sin ellos. Se agrega la auditoría, ya que puede proporcionar el mecanismo para garantizar pruebas de cualquier interacción con el sistema.

Autenticación

La autenticación consiste en confirmar la identidad de la entidad que desea interactuar con un sistema seguro. Por ejemplo, la entidad podría ser un cliente automatizado o un actor humano; en cualquier caso, se requiere autenticación para una aplicación segura.

Autorización

La autorización consiste en especificar derechos de acceso a recursos seguros (datos, servicios, archivos, aplicaciones, etc.). Estos derechos describen los privilegios o niveles de acceso relacionados con los recursos que se están protegiendo. La autorización suele ir precedida de una autenticación exitosa.

Auditoría

La auditoría consiste en realizar un seguimiento de los eventos a nivel de implementación, así como de los eventos a nivel de dominio que tienen lugar en un sistema. Esto ayuda a proporcionar no repudio, lo que significa que los cambios o acciones en el sistema protegido son innegables. La auditoría puede proporcionar no sólo información técnica sobre el sistema en ejecución, pero también prueba de que se han realizado acciones particulares. Las preguntas típicas que se responden mediante la auditoría son “¿Quién hizo Qué, Cuándo y potencialmente Cómo?”

Vulnerabilidades

NIST define una vulnerabilidad como ‘Debilidad en un sistema de información, procedimientos de seguridad del sistema, controles internos o implementación que podría ser explotada o activada por una fuente de amenaza.’

Hay muchas debilidades o errores en toda aplicación grande, pero el término vulnerabilidad generalmente está reservado. para aquellas debilidades o errores en los que existe el riesgo de que un actor de amenazas pueda explotarlos utilizando un vector de amenazas.

Las vulnerabilidades de seguridad más conocidas son:

HTTP y HTML

Aunque no son un elemento fundamental de seguridad como tal, las aplicaciones web dependen de comunicaciones HTTP y HTML. Tanto los desarrolladores de aplicaciones como los ingenieros de seguridad deben tener un buen conocimiento de HTTP y del lenguaje HTML junto con sus diversos controles de seguridad.

La mayoría de los equipos de desarrollo de aplicaciones estarán familiarizados con las comunicaciones HTTP y el estándar HTML, pero si es necesario consulte la formación del Consorcio W3 o de las Escuelas W3. La serie de hojas de referencia de OWASP proporciona a los desarrolladores de aplicaciones web la información necesario para producir software seguro:

Referencias


Traducción de versión original en inglés.

\newpage