Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Modelos de Seguridad en el Desarrollo de Software: OWASP Top 10 y OPENSAMM, Exámenes de Tecnología Electrónica

Una consultoría sobre modelos de seguridad en el ciclo de desarrollo de software, con enfoque en el OWASP Top 10 y el OPENSAMM. Se exponen buenas prácticas para garantizar la seguridad de la información en el desarrollo y fabricación de software, como el entrenamiento de seguridad integral, evaluación de amenazas y requisitos de seguridad, y pruebas de seguridad. Se recomienda el uso de modelos como el OWASP Top 10 y el OPENSAMM para minimizar los riesgos de seguridad.

Tipo: Exámenes

2020/2021

Subido el 23/05/2022

alejandra-gamba-gomez
alejandra-gamba-gomez 🇨🇴

5

(1)

2 documentos

1 / 28

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Consultoría en Modelos de Seguridad de Desarrollo de Software
Jhon Henry Riaño Castro
Leonardo Rocha Rojas
Arley David Forero Sanchez
Politécnico Gran Colombiano
Ingeniería de Ciencias Básicas
Ingeniería de Software
Mayo 2020
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Vista previa parcial del texto

¡Descarga Modelos de Seguridad en el Desarrollo de Software: OWASP Top 10 y OPENSAMM y más Exámenes en PDF de Tecnología Electrónica solo en Docsity!

Consultoría en Modelos de Seguridad de Desarrollo de Software Jhon Henry Riaño Castro Leonardo Rocha Rojas Arley David Forero Sanchez Politécnico Gran Colombiano Ingeniería de Ciencias Básicas Ingeniería de Software Mayo 2020

Introducción “La clave de un software seguro, es el proceso de desarrollo utilizado” (Brito, 2013, p.3), en un mundo donde la tecnología avanza a pasos agigantados y las brechas de seguridad en la información aumentan de la misma forma, se hace indispensable implementar o seguir modelos o estándares y buenas prácticas de desarrollo seguro que permitan minimizar los riegos a los que está expuesto cualquier software. El enfoque de los modelos debe ser un conjunto de resultados dirigidos a mejorar la calidad del software, no solo cumpliendo la funcionalidad especificada, sino también reduciendo el número de defectos y a su vez garantizar un nivel de seguridad apropiado. La seguridad por su parte ha dejado de ser un elemento aislado en la arquitectura del software pasando hacer un elemento multidimensional implícito en todo el proceso de desarrollo, y aunque parezca un proceso tedioso aporta gran valor a la compañía superando por mucho los costos en los que se incurre. En el desarrollo de este informe se presentan cuatro modelos de seguridad en el ciclo de desarrollo y una recomendación sobre el proceso estructurado a seguir desde el contexto profesional.

Antecedentes La ingeniería de software dada su responsabilidad tiene como metodología la aplicación del conocimiento y técnicas para el desarrollo de un producto, puesto que un proceso de software es una serie de actividades relacionadas que conduce a la elaboración de un producto de software, estos incluyen la especificación, diseño e implementación, validación y evaluación. Generalmente, los procesos de desarrollo de software son complejos y deben incluir personal capacitado y con los conocimientos suficientes para aplicar una metodología definida. Para el desarrollo de software, específicamente existen diferentes modelos que ayudan y facilitan las diferentes actividades y tareas que tiene un modelo y que generalmente son agrupadas a través de etapas las cuales le permite tener una guía para el desarrollo e implantación de su aplicación requerida

Implementación de programas de sensibilización. Evaluación de la aplicación: Definición de requisitos de seguridad Implementación de prácticas de desarrollo seguro Procesos de remediación de vulnerabilidades Definición y monitoreo de métricas: Publicación de políticas de seguridad operativa: Modelo 1. Open Web Application Security Project – OWASP Es un proyecto de código abierto dedicado a determinar y combatir las causas que hacen que el software sea inseguro. Es un organismo sin ánimo de lucro que trabaja para mejorar la seguridad del software a través de proyectos de código abierto. Esta comunidad genera material académico y técnico que los desarrolladores pueden utilizar para proteger la web. Su principal objetivo es crear herramientas, documentación y estándares relacionados con la seguridad en aplicaciones. Su participación es gratuita y abierta para todos. En su contenido propone 7 buenas prácticas:

  1. Scripting en sitios: esto se da cuando se permite al usuario agregar código dentro de la URL. Este código malicioso puede capturar información del usuario.
  2. Deserialización insegura: la deserialización se basa en la serialización de objetos del código de la aplicación y convertirlos a un formato que pueda utilizarse para otro propósito.
  3. Uso de componentes con vulnerabilidades conocidas: el uso de bibliotecas que permiten la reutilización de código puede ser utilizado por los atacantes para organizar ataques en caso de encontrar vulnerabilidades. Insuficiente registro y monitoreo: el tiempo que toman las empresas para detectar y documentar un ataque es demasiado amplio y permite al atacante causar un gran volumen de afectación antes de que se tome alguna medida de protección.

Gobierno

• Estrategía y

métricas

• Política y

cumplimiento

• Educación y

orientación

Construcción

• Evaluación de

amenazas

• Requisitos de

seguridad

• Arquitectura de

seguridad

Verificación

• Revisión de

diseño

• Revisión de

código

• Pruebas de

seguridad

Implementación

• Administración

de

vulnerabilidades

• Fortalecimiento

de ambientes

• Habilitación

operativa

Modelo 2. Open Software Assurance Maturity Model. Es una guía de seguridad en el desarrollo de software que se encuentra estructurada en 4 funciones de negocio cada una de estas formadas por tres prácticas de seguridad. Gobierno:

1. Estrategia y métricas: a. Objetivos: - establecer un plan estratégico unificado para la seguridad de software dentro de la organización. - Medir el valor relativo de los datos y bienes, y elegir la tolerancia al riesgo. - Alinear los gastos se seguridad con indicadores de negocio pertinentes y el valor de los activos. b. Actividades:

  • Estimar el perfil global del riesgo de negocio.
  • Crear y mantener un plan de implementación para el programa de aseguramiento.
  • Clasificar datos y aplicaciones basados en riesgos de negocio.
  • Hacer obligatorio el entrenamiento de seguridad integral y certificar al personal contra la base de conocimiento. b. Actividades:
  • Realizar entrenamiento técnico de concientización en seguridad
  • Crear y mantener lineamientos técnicos
  • Realizar entrenamiento de seguridad en aplicaciones específico para cada rol.
  • Utilizar mentores de seguridad para mejora equipos.
  • Crear un portal formal de soporte de seguridad en aplicaciones.
  • Establecer exámenes o certificaciones por cada rol. Construcción.
  1. Evaluación y amenazas a. Objetivos
  • Identificar y comprender las amenazas de alto nivel para la organización y los proyectos individuales
  • Aumentar la precisión de la evaluación de amenazas y mejorar la granularidad de la comprensión del proyecto.
  • Comparar concretamente controles de compensación a cada amenaza contra el software interno y de terceros b. Actividades
  • Desarrollar y mantener modelos de amenaza específicos a cada aplicación
  • Elaborar un perfil del atacante desde la arquitectura de software
  • Desarrollar y mantener modelos de casos de abuso por proyecto
  • Adoptar un sistema de ponderación para la medición de amenazas.
  • Evaluar explícitamente el riesgo de los componentes de terceros.
  • Elaboración de modelos de amenaza con controles de compensación.
  1. Requisitos de seguridad a. Objetivos
  • Considerar explícitamente la seguridad durante el proceso de captura de requisitos de software.
  • Aumentar la granularidad de los requisitos de seguridad derivados de la lógica de negocio y riesgos conocidos.
  • Exigir que se siga el proceso de requisitos de seguridad para todos los proyectos de software y dependencias de terceros. b. Actividades
  • Deducir los requisitos de seguridad a partir de la funcionalidad de negocio.
  • Evaluar la seguridad y los lineamientos de cumplimiento para regulaciones de los requisitos.
  • Generar una matriz de control de acceso a los recursos y capacidades.
  • Especificar los requisitos de seguridad en base a los riesgos conocidos.
  • Incorporar los requisitos de seguridad a acuerdos con proveedores.
  • Ampliar el programa de auditoria para los requisitos de seguridad.
  1. Arquitectura de seguridad a. Objetivos
  • Insertar consideraciones para lineamientos proactivos de seguridad en el proceso de diseño de software.
  • Inspeccionar por completo la provisión de los mecanismos de seguridad.
  • Implementar el servicio de revisión de diseño para los equipos de proyecto
  • Desarrollar diagrama de flujo de datos para recursos sensibles.
  • Establecer puntos de liberación para la revisión de diseño.
  1. Revisión de código a. Objetivos
  • Encontrar oportunamente vulnerabilidades básicas a nivel de código y otros problemas de seguridad de alto riesgo.
  • Hacer revisiones de código más precisas eficientes durante el desarrollo a través de la automatización.
  • Exigir un proceso de código integral para descubrir riesgos específicos de la aplicación a nivel de lenguaje. b. Actividades
  • Crear listas de verificación para la revisión de requisitos de seguridad conocidos.
  • Realizar revisiones en código de puntos de alto riesgo.
  • Utilizar herramientas automatizadas de análisis de código.
  • Integrar análisis de código en el proceso de desarrollo.
  • Personalizar el análisis de código para las preocupaciones específicas de la aplicación.
  • Establecer puntos de control para la liberación de las revisiones de código
  1. Pruebas de seguridad a. Objetivos:
  • Establecer el proceso para realizar pruebas de seguridad basándose en la implementación y los requisitos de software.
  • Hacer pruebas de seguridad durante el desarrollo, más completas y eficientes a través de la automatización.
  • Exigir pruebas de seguridad especificas a la aplicación para asegurarse que los lineamientos de seguridad están implementados antes de la publicación. b. Actividades
  • Deducir casos de prueba desde los requisitos se seguridad conocidos.
  • Conducir pruebas de intrusión en cada publicación del software.
  • Utilizar herramientas automatizadas para pruebas de seguridad.
  • Integrar pruebas de seguridad en el proceso de desarrollo.
  • Emplear la automatización de pruebas de seguridad específicas de la aplicación.
  • Establecer puntos de control para la liberación de las revisiones de código Implementación.
  1. Gestión de vulnerabilidades a. Objetivos
  • Entender el plan de alto nivel para responder a los reportes de incidentes y vulnerabilidades.
  • Elaborar expectativas para prácticas de respuesta para mejorar la consistencia y las comunicaciones
  • Identificar e implementar herramientas de protección relevantes para las operaciones.
  • Expandir el programa de auditoria hacia la configuración de ambientes.
  1. Habilitación operativa a. Objetivos
  • Habilitar las comunicaciones entre los equipos de desarrollo y los operadores para datos críticos relevantes a seguridad.
  • Mejorar las expectativas de operaciones seguras y continuas al proveer procedimientos detallados.
  • Exigir la comunicación de información sobre seguridad y validar que los artefactos estén completos. b. Actividades
  • Capturar la información de seguridad critica para el ambiente de publicación
  • Documenta procedimientos para alertas de aplicación típicas.
  • Crear procedimientos de administración de cambio por distribución.
  • Mantener guías formales de seguridad de operaciones.
  • Expandir el programa de auditoria para información operativa.
  • Realizar firma de código para componentes de aplicaciones.

Pasos para una correcta implementación del modelo:

  • Realizar una revisión inicial o medir las prácticas de la organización frente a las prácticas de seguridad definidas por el modelo. o Definir el nivel de madurez actual.
  • Dos estilos de revisiones: o Ligero o Detallado
  • Construir programas de aseguramiento de la seguridad o Crear una hoja de ruta o usar una plantilla o Realizar las actividades prescritas para alcanzar el nivel de madurez esperado Beneficios de la implementación
  • Permite implementar las mejores prácticas que hoy tenemos y aprovechar la experiencia en su implementación.
  • Proporciona una manera de revisar el estado de una organización y priorizar los cambios.
  • Proporciona una manera de construir un programa de seguridad en el desarrollo mediante iteraciones claramente definidas.
  • Permite definir y medir actividades relacionadas con la seguridad.
  • Permite demostrar mejoras concretas en la seguridad.
  • Categorizar el sistema de información con base en el análisis de riesgos y potencial impacto en el negocio.
  • Garantizar el uso de procesos seguros de desarrollo de sistemas de información
  1. Desarrollo/Adquisición: En esta fase el sistema ya esta diseñado, programado o adquirido.
  • Evaluación inicial de riesgos y de la efectividad de los controles de seguridad.
  • Seleccionar y documentar los controles de seguridad.
  • Arquitectura de seguridad del diseño.
  • Implementación de control de seguridad en el diseño del sistema.
  • Desarrollar la documentación de seguridad.
  • Pruebas: análisis de seguridad.
  1. Implementación/Evaluación: En este punto se integran al sistema los controles de seguridad poniéndolo a prueba antes de su puesta en marcha.
  • Crear un plan para la certificación y acreditación.
  • Integrar la seguridad en entornos y sistemas establecidos.
  • Validar la funcionalidad y seguridad del sistema.
  • Autorizar el sistema de información.
  1. Operación/Mantenimiento: En esta fase se monitorea de manera continua para garantizar que se incorporen los requisitos y se agreguen o modifiquen componentes del software y hardware.
  • Efectuar evaluaciones de seguridad operacional para manejar modificaciones no planificadas al sistema.
  • Realizar actividades de control y gestión de configuraciones.
  • Desarrollar un monitoreo continuo que permita garantizar la efectividad de los controles de seguridad.
  1. Disposición: Esta etapa contempla el cierre y disposición del sistema, preservando la información vital.
  • Diseñar y llevar un plan de disposición (transición)
  • Garantizar la preservación de la información a través de copias de seguridad.
  • Definir política de desinfección de medios que eviten la perdida de confidencialidad.
  • Definir política de disposición de hardware y software.
  • Definir política de cierre del sistema.