Seguridad software
diver1217Ensayo7 de Febrero de 2021
5.622 Palabras (23 Páginas)233 Visitas
Asignatura | Datos del alumno | Fecha |
Seguridad en el Software | Apellidos: Gutiérrez Monroy | 14 de diciembre de 2020 Página de 19 |
Nombre: Roberto |
[pic 1]
[pic 2]
TITULO:
MODELADO DE AMENAZAS
ALUMNO:
ROBERTO GUTIÉRREZ MONROY
MAESTRIA:
Ingeniería de Software y Sistemas Informáticos
PROFESOR:
M.G.T.I. OMAR URIEL DOMINGUEZ MENDOZA
FECHA:
14 DICIEMBRE DE 2020
Introducción Modelado de Amenazas[pic 3]
El modelado de amenazas es el proceso informático mediante el cual las amenazas potenciales, vulnerabilidades estructurales o la ausencia de salvaguardas adecuadas, se pueden identificar, enumerar y priorizar, la técnica permite la protección de sistemas, aplicaciones, redes y servicios [1].
Radica en facilitar un análisis de forma sistemática para saber la inclusión de controles o defensas requeridas; tomando en cuenta la operatividad del sistema a diseñar, la postura y ejecución probable de un atacante, etapas o aplicaciones más activas, o más vulnerables; lo anterior atiende las cuestiones que surgen durante el desarrollo de un software seguro, tales como "¿Dónde soy más vulnerable a un ataque?" , "¿Cuáles son las amenazas más relevantes?" y "¿Qué debo hacer para protegerme contra estas amenazas?" .
El modelado es un análisis por medio de diagramas de flujo de datos, en el que se muestra el funcionamiento del sistema (gráficamente). Aplica un marco para ayudar a encontrar y corregir problemas de seguridad. Los sistemas que se publican sin un modelado de amenazas previo ponen en peligro a clientes y organizaciones. Esta técnica la puede aplicar cualquier persona que sepa cómo funciona su sistema y que tenga conocimientos prácticos sobre seguridad de la información.
La técnica se divide en cuatro fases diferentes, cada una de las cuales contiene pasos importantes para ayudarle a crear un diagrama de flujo de datos y a analizarlo en busca de posibles amenazas.
[pic 4]
- Diseño - Recopilar todos los requisitos del sistema y crear un diagrama de flujo de datos.
- Interrupción- Se aplica el modelado de amenazas al diagrama de flujo de datos buscando los posibles problemas de seguridad.
- Corrección- Atención de los problemas detectados; se aplican la atención correcta de controles de seguridad.
- Verificación- Se verifica que los controles de seguridad cumplan con su función específica, se reinicia el ciclo para implementar nuevas funciones o correcciones de errores.[pic 5]
INDICE TEMATICO
Metodologías Existentes 4
Correctness by Construction (CbyC) 4
Security Development Lifecycle (SDL) 5
Metodología STRIDE 6
Planteamiento. Caso de Estudio 8
Diagrama DFD 10
Matriz STRIDE 11
Análisis DREAD 13
Salvaguardas 18
Conclusiones 19
Referencias 19
INDICE FIGURAS
Figura 2. Etapas Metodología Correctness by Construction 4
Figura 3. Etapas Security Development Lifecycle 5
Figura 4. Etapas Metodología STRIDE 7
Figura 5. Diagrama DFD 10
INDICE TABLAS
Tabla 1. Matriz STRIDE 11
Tabla 2. Análisis DREAD 13
Tabla 3. Salvaguardas 18
Metodologías Existentes[pic 6]
Por definición metodología, es una serie de técnicas de rigor científico que se aplican sistemáticamente durante un proceso de investigación para alcanzar un resultado teóricamente valido[2].
Su aplicación diversa en los sistemas informáticos y desarrollo en la seguridad; permite entender el tipo de amenazas o vulnerabilidades de un sistema a través de los ojos de los atacantes, identificando la confiabilidad de los accesos, la jerarquización de privilegios y estableciendo posibles rutas o puntos de amenazas con el fin de mitigarlas, administrarlas o eliminarlas por completo.
El Modelar las amenazas permite justificar que características de control y seguridad deberán ser implementadas o robustecidas a fin de proteger los activos informáticos. El objetivo, reducir el número de debilidades y vulnerabilidades del software y su creciente dependencia ante amenazas; su efectiva dependerá del enfoque y aplicación requerida.
Existen diversas metodologías de análisis, Algunas de las más utilizadas por sus características aplicativas y efectividad son:
Correctness by Construction (CbyC)
Método efectivo en el desarrollo de software que requiere de un nivel de seguridad critico comprobable, su meta es obtener un cumulo de defectos mínimos y una alta asertividad al cambio; es decir, se busca que sea complicado introducir errores y que estos se remuevan una vez introducidos al sistema de total y efectivamente del software o sistema. Desde el principio en el desarrollo del software, se establecen los parámetros y funciones correctas, con elementos de alta rigurosidad de seguridad; definiciones detalladas del comportamiento del sistema bajo un esquema sólido y verificable. Su desarrollo establece la ejecución de las siguientes fases:[pic 7]
Figura 2. Etapas CbyC
- Requerimientos Establece el propósito, funciones y necesidades del usuario, diagramas de clases y definiciones operativas.
- Diseño de Alto Nivel Descripción interna del sistema (distribución de funcionalidad, estructura de bases de datos, mecanismos para las transacciones y comunicaciones).
- Especificación del Software Documenta las especificaciones de interfaz de usuario, niveles superiores y prototipos de validación.
- Especificación de Pruebas Ejecución de pruebas a valores limites, de comportamiento y de requerimientos no funcionales.
- Fase de Diseño Detallado Conjunto de módulos y procesos y la función respectiva según la jerarquía y procesamiento establecido.
- Fase de Especificación de los Módulos Define el estado y el comportamiento por cada módulo de software tomando en cuenta el flujo de información.
- Fase Codificación Pruebas de análisis estático al código para eliminar tipos de errores; en caso de ser necesario, modificaciones, correcciones o adiciones al código.
- Construcción del Software Desarrollo de tipo ágil; estructura básica del sistema con todas las interfaces y módulos de comunicación; funcionalidad limitada que se incrementara en cada interacción del ciclo.
Security Development Lifecycle (SDL)
Tipo de metodología propuesta por Microsoft, conformada por 16 actividades enfocadas a robustecer la seguridad en el desarrollo del software. Propone fases de seguridad, análisis estático, dinámico, planes y procedimientos de respuesta a incidentes. Su característica principal es el modelado de amenazas por medio de la inspeccion del código fuente, a fin de encontrar los puntos débiles del sistema los cuales sean vulnerables ataques o intenciones de falla maliciosas. La aplicación de esta metodología se conforma por las siguientes fases:[pic 8]
...