Mostrando entradas con la etiqueta arquitectura. Mostrar todas las entradas
Mostrando entradas con la etiqueta arquitectura. Mostrar todas las entradas

martes, 30 de mayo de 2023

Desarrollo seguro: todo empieza en la arquitectura

La arquitectura constituye los cimientos sobre los cuales se erigirán nuestras aplicaciones. 

Desarrollo seguro: todo comienza en la arquitectura

Fuente: open stand

Posibles riesgos

El desarrollo seguro comienza con el diseño y la definición de nuestra arquitectura, teniendo en mente las posibles amenazas que pudieran poner en riesgo nuestro sistema, especialmente aquellas derivadas por el uso de componentes que:

  • no estén identificados.
  • sean antiguos o incompatibles, que estén obsoletos o hayan dejado de ser soportados.
  • posean vulnerabilidades conocidas.
  • tengan puertos abiertos no indispensables.

Mejores prácticas

A continuación se detallan las mejores prácticas a la hora de diseñar, definir y mantener una arquitectura segura:
  • Inventario que identifique cada componente de la arquitectura. Todo componente debe estar identificado, o de lo contrario se incurrirá en riesgos de seguridad.
  • Revisión del bastionado de componentes:
    • Identificación de dependencias internas:
      • Módulos.
      • Librerías.
      • Frameworks.
      • Plugins o complementos.
      • Servicios.
      • Otras.
    • Estado de actualización.
    • Configuraciones:
      • Puertos activados (solo los indispensables).
      • Usuarios y contraseñas personalizados (no por defecto).
      • Modo de depuración desactivado.
      • Otras configuraciones de seguridad (ajustadas a una mayor seguridad).
  • Identificación de vulnerabilidades y sus parches de seguridad. En caso de no existir parche:
    • analizar el riesgo y su impacto
    • proponer y adoptar:
      • un plan de vigilancia.
      • un plan de contingencias.
    • realizar un estudio de viabilidad de componentes alternativos.
  • Asegurar la seguridad perimetral lógica mediante la segmentación de red, firewalls, dispositivos IDS, etc.
  • Asegurar la protección de datos mediante:
    • autorización entre entornos.
    • copias de seguridad.
  • Proporcionar un entorno virtual como zona de trabajo, a ser posible, por lenguaje de programación.
  • Mantener las actualizaciones más recientes de:
    • lenguajes de programación
    • paquetes instalados
    • frameworks y librerías
    • herramientas de análisis y seguridad de los IDEs
  • En caso de trabajar con DevSecOps, dotar de herramientas de análisis de seguridad a lo largo del ciclo de vida del software, antes del despliegue en cada entorno.

Referencias

domingo, 31 de enero de 2021

Introducción a las Arquitecturas Orientadas a Eventos (AOE / EDA)

 


La Arquitectura Orientada a Eventos (AOE / EDA) está tomando más protagonismo en los últimos años, ante la demanda creciente de escenarios de baja latencia, escalado rápido, histórico de cambios, asincronía, alta disponibilidad y resiliencia.

El concepto de AOE/EDA no es algo nuevo, pero con el rebufo de los microservicios, ha sido una solución eficiente al desacoplamiento y al efecto de caída en racimo o en cascada.

En esta presentación aprenderemos los conocimientos básicos para conocer sus conceptos:

  • Conceptos básicos de Arquitectura Orientada a Eventos
    • Paradigma de AOE / EDA
    • Eventos
      • Tips para eventos
      • Protocolos de eventos
      • Streams
    • Ventajas de AOE / EDA
    • Desventajas de AOE / EDA
    • Cuándo usar AOE / EDA
    • Eventos Vs Comandos Vs Consultas
  • Componentes de una Arquitectura Orientada a Eventos
    • Generadores
    • Mensajes
    • Componentes de Mensajería
    • Canales
    • Patrones de Mensajería
    • Procesadores
    • Coordinación mediante un bus de eventos
    • Ejemplo de un sistema complejo
  • Patrones
    • Notificación de eventos
    • Transferencia del estado de los eventos
    • Abastecimiento de eventos (Event Sourcing)
    • CQRS (Command Query Responsability Segregation)
    • Sagas
    • Microservicios orientados a eventos
    • Microservicios en Event Backbone
    • Base de datos por servicio
  • Apache Kafka
  • Amazon EventBridge

La presentación completa se puede ver y descargar en el siguiente enlace: Introducción a Arquitecturas Orientadas a Objetos