Machine Translated by Google
Edificio Seguro
Software
en un complejo
Ambiente
Mejores prácticas de MongoDB
Machine Translated by Google
Creación de software seguro en un
entorno complejo
En 2007, comenzamos nuestra búsqueda para crear un nuevo tipo de
base de datos, una que liberaría el genio en todos al hacer que los datos
fueran increíblemente fáciles de usar.
El resultado fue MongoDB, una base de datos líder equipo, y la cultura puede ser tan importante como la
en la industria entregada como una edición destreza técnica. Pero desde el lanzamiento de nuestro
comunitaria de código abierto y como un producto primer producto, hemos desarrollado y fortalecido un conjunto
comercial para la empresa. de principios que nos ayudan a incorporar la seguridad en nuestros
En 2016, lanzamos MongoDB Atlas, una edición productos y nuestra cultura en todos los niveles. Al mostrar cómo
multinube de MongoDB. Atlas es ahora la base de hemos aprendido a abordar la seguridad, esperamos que otros
MongoDB Cloud, una colección de productos integrados equipos de desarrollo aprendan de nuestra experiencia.
de múltiples nubes.
No puede ser sorprendentemente fácil trabajar con Estos son los principios que nos han ayudado a
los datos si son vulnerables a los ataques. Cuando incorporar la seguridad en nuestros productos:
protegemos los datos contra ataques a través de
° Adoptar una filosofía rectora
medidas de seguridad, inevitablemente introducimos
fricciones. Nuestro objetivo es ofrecer una seguridad ° Hacer de la seguridad un ciudadano de primera
de datos completa y robusta manteniendo la facilidad de
° Diseño para la responsabilidad compartida
uso como una prioridad.
° Integre la seguridad en el proceso y las herramientas de
Como todas las empresas de software empresarial,
desarrollo de su producto
hemos tenido problemas con esto. Sabemos que no existe
una varita mágica que resuelva las complejidades y
° Depurar la especificación
contradicciones inherentes a la creación de sistemas que sean
fáciles de usar, seguros y compatibles, a escala. Todo lo ° Diseñe cuidadosamente los valores predeterminados
contrario.
° Aproveche al máximo las pruebas automatizadas
La seguridad puede ser tanto un arte como una ciencia:
pregúntele a cualquiera que haya estado alguna vez en un avión rojo. ° Subirse a hombros de gigantes
No puede ser sorprendentemente
fácil trabajar con los datos si son
vulnerables a los ataques.
2
Machine Translated by Google
Creación de software seguro
en un entorno complejo
Adoptar una Filosofía Guía
Diseñar e implementar seguridad para cualquier Para hacer eso, comience con
sistema complejo es mucho más fácil cuando las su misión principal. Nuestra misión es:
suposiciones, los valores y los objetivos se establecen Liberar el genio que todos llevamos dentro
explícitamente. En conjunto, estos elementos haciendo que sea increíblemente fácil trabajar
constituyen una filosofía rectora que facilita tener con los datos.
discusiones productivas sobre la construcción de
mecanismos de seguridad efectivos. Si bien esta misión es amplia y
Ya existe un montón de buenas ideas sobre la ambiciosa, tiene profundas
seguridad en forma de filosofía, marcos y prácticas. No implicaciones para la ingeniería de seguridad.
De esta misión se desprende que:
hay necesidad de empezar desde cero. Nos hemos
inspirado en muchas fuentes en el panorama de la ° La seguridad debe ser integral y robusta
información y la ciberseguridad, adaptándolas a sin presentar obstáculos irrazonables.
nuestros desafíos únicos a escala.
° MongoDB debe ser seguro
Algunos marcos que pueden ser útiles en la en cualquier plataforma con cualquier dato.
elaboración de una filosofía guía de seguridad
° Debemos equilibrar constantemente la tensión
incluyen:
entre la seguridad óptima y la usabilidad óptima.
° El Marco de Ciberseguridad del NIST se apoya
mucho en los controles y las mejores prácticas
° Debemos facilitar la seguridad a nuestros
para trabajar con los sistemas de información federales.
equipos de diseño y desarrollo de productos, y
° El Marco de Ciberseguridad ISO27001 se centra para operaciones en la nube.
en el riesgo y pretende ser un recurso para todo
Cada organización y producto encontrará
tipo de organizaciones.
sus propios problemas de seguridad.
° Defensa en profundidad es un marco rector de A medida que surjan estos problemas,
defensa operativa con una larga historia en el una filosofía guía le ayudará a evitar
espacio académico, industrial y de defensa. repetir los mismos argumentos sobre cómo
resolver mejor las tensiones comunes.
Si bien cada marco de seguridad contiene algunas
ideas excelentes, no están grabadas en piedra. Cada
organización es diferente y debe adaptar su marco a
sus propias condiciones.
3
Machine Translated by Google
Creación de software seguro en
un entorno complejo
Su enfoque de la seguridad debe estar respaldado por una comprensión y un
análisis de su superficie de ataque. Como plataforma moderna de datos de múltiples nubes,
nuestra superficie de ataque es inusualmente amplia y profunda.
° MongoDB se implementa como una base de datos de ° MongoDB es un bloque de construcción
edición comunitaria de código abierto y como una central para cualquier aplicación en la que
edición empresarial totalmente compatible. Ambas se utilice: aloja los datos de la aplicación. Hacer
ediciones se pueden implementar en las instalaciones o que sea fácil de usar mientras se mantiene una
en la nube. sólida seguridad operativa es un desafío constante.
° MongoDB Atlas es una base de datos como servicio ° MongoDB se utiliza en sistemas de misión
que se ejecuta en todas las principales plataformas de en sectores como salud, servicios financieros,
nube pública. Más de un millón de bases de datos manufactura, servicios públicos, comercio
activas operan diariamente en MongoDB Atlas. electrónico y defensa. A menudo, hay mucho en
juego y las industrias están altamente reguladas.
° La plataforma MongoDB Cloud se ha ampliado más
allá de Atlas para incluir nuevos productos y
características, como Search, Data Lake y
funcionalidad móvil, ampliando la superficie de
ataque.
Nuestro desafío se vuelve más complejo por el hecho de que MongoDB se ejecuta en numerosas plataformas
y ofrece a sus usuarios muchos grados de libertad para construir una amplia gama de sistemas.
En otras palabras, nos encontramos con todo tipo de situaciones locas, cargas de trabajo, amenazas y casos de uso.
Debido a que la seguridad debe
abordarse temprano y con
frecuencia, no puede ser dominio
exclusivo de expertos especializados.
4
Machine Translated by Google
Creación de software seguro en
un entorno complejo
Haga de la seguridad un ciudadano de primera clase
La seguridad se convierte en un ciudadano de nuestros productos, nuestros equipos de liderazgo y
primera clase cuando se aborda desde el principio seguridad atraen constantemente la atención sobre la
del proceso de desarrollo de software, como parte de una seguridad y ayudan a crear y respaldar una cultura que
cadena integrada de eventos que incluye la consideración valora la seguridad. Pero en seguridad, una mentalidad
de los requisitos, el diseño y la implementación. Cuando la de arriba hacia abajo y los esfuerzos de arriba hacia
seguridad se refuerza después de la fase de diseño, los abajo solo llegan hasta cierto punto. Es por eso que
productos sufren inevitablemente un bajo rendimiento y cada uno de nuestros ingenieros está capacitado y
facilidad de uso. equipado para pensar en la seguridad desde cero. Este
enfoque permite que cualquier persona plantee
Debido a que la seguridad debe abordarse temprano
inquietudes sobre el diseño y diga "no" cuando un
y con frecuencia, no puede ser dominio exclusivo de
diseño propuesto comprometería la seguridad.
expertos en seguridad especializados. Además de
contribuir directamente al diseño de
5
Machine Translated by Google
Creación de software seguro en un
entorno complejo
Diseño de seguridad para
Responsabilidad compartida
En el mundo moderno de la nube pública, debemos reconocer En generaciones anteriores de software empresarial, la
el paradigma de la responsabilidad compartida. Este concepto seguridad se garantizaba de dos formas:
reconoce que los riesgos de seguridad inherentes a la nube pública
deben ser asumidos por todos los involucrados. Cada equipo
° Utilizar adecuadamente las herramientas para configurar el
involucrado en la construcción de un sistema, desde el proveedor
control de acceso y permisos de los usuarios
de la nube hasta el equipo de operaciones, los desarrolladores y los
usuarios, debe hacer su parte. ° Asegurarse de que los perímetros fueran
protegido con software y hardware especializado
Pero la responsabilidad compartida no significa igual
responsabilidad. Si los mecanismos inseguros están disponibles Hoy en día, se le da menos énfasis a la seguridad perimetral
para los clientes, los utilizarán sin darse cuenta. Nuestro trabajo es tradicional. Ahora, conceptos como la confianza cero reconocen
hacer que la carga de la responsabilidad del cliente sea lo más que cada sistema debe tener límites fuertes en todos los niveles,
pequeña posible, para que los clientes puedan concentrarse en usar porque cada sistema puede potencialmente ser atacado tanto
los datos. desde dentro como desde fuera de la organización.
— nuestra misión principal.
En un mundo de responsabilidad compartida, creando una El libro blanco sobre la seguridad de MongoDB Atlas
plataforma multiproducto como MongoDB proporciona una visión detallada de cómo hemos implementado
La nube en múltiples proveedores de nube viene con un estos requisitos.
nuevo conjunto de requisitos:
Para las industrias reguladas que utilizan servicios en la nube hoy
° La plataforma debe ofrecer capas de seguridad para que los en día, el cumplimiento de las normas internas y externas también
casos de uso simples puedan manejarse con facilidad, al
es una responsabilidad compartida.
mismo tiempo que brinda las capacidades necesarias para
Por ejemplo, para cumplir con el estándar de la industria de tarjetas
usos más avanzados. ° La plataforma debe estar diseñada
de pago (PCI), un cliente no puede simplemente comprar software,
para anticipar las diferentes formas en que los usuarios se acercarán hardware o servicios en la nube que afirmen cumplir con PCI.
a ella, de modo que los mecanismos de seguridad no requieran
un esfuerzo significativo por parte de los clientes.
El cumplimiento de PCI requiere que la seguridad de la información
se incorpore a lo largo del ciclo de vida del desarrollo del sistema,
° Los usuarios deben recibir orientación así como disposiciones para la seguridad física. Nuestro papel es
sobre la implementación de la seguridad y el asegurarnos de brindarles a los clientes las herramientas y las
cumplimiento en diversos contextos. pautas que necesitan para cumplir plenamente con el menor
° La automatización en la nube debe implementarse esfuerzo posible.
seguridad de acuerdo a los parámetros establecidos por los usuarios.
6
Machine Translated by Google
Creación de software seguro en un
entorno complejo
Integre la seguridad en su producto
Proceso de desarrollo y herramientas
Nuestro proceso de desarrollo de productos de varias capas incluye seguridad en todos los niveles.
El modelado de amenazas y la inteligencia son La prueba es un trabajo duro y debe enfatizarse
los puntos de partida para la funcionalidad nueva y constantemente. Para que las pruebas sean lo más sencillas
existente. Estos nos permiten mantenernos enfocados y posible tanto para los desarrolladores como para los usuarios,
actualizados sobre las nuevas formas de ataque favorecidas hemos creado herramientas y automatizado
por los malos actores, y nos ayudan a anticipar y simular sistemas Estos se describen en detalle en su propia
esos ataques y sus posibles efectos. Luego, podemos crear sección, a continuación.
especificaciones de productos que minimizan la superficie de
La transparencia de las pruebas permite a los
ataque y agregan
usuarios acceder a nuestras pruebas de seguridad. Estas
pruebas están disponibles en evergreen.mongodb.com /
auditorías y controles apropiados.
waterfall/mongodb-mongo-master
Las especificaciones del producto siempre se
La revisión de expertos externos de la industria y la
redactan teniendo en cuenta la seguridad. Las
academia ayuda a mejorar los procesos y las decisiones
especificaciones de nuestros productos requieren una
en cada etapa del ciclo de vida del desarrollo del producto.
evaluación de las implicaciones de seguridad antes de que
Puede ser especialmente útil cultivar expertos en las áreas
pueda comenzar cualquier trabajo de ingeniería.
que son más importantes para el producto o en las que se
Luego, las especificaciones se mejoran
está fortaleciendo. Hemos encontrado útil traer a personas
mediante el modelado y la depuración de amenazas.
externas con una gran experiencia en especialidades como
Las herramientas de desarrollo incorporan motores de almacenamiento encriptado, encriptación a nivel
consideraciones de seguridad en todos los niveles de campo y TLS.
y en todos los lenguajes de codificación.
En ciberseguridad, la innovación
puede ser fácilmente un error.
7
Machine Translated by Google
Creación de software seguro en
un entorno complejo
Depurar la especificación
Los errores y las vulnerabilidades de seguridad son
más probables cuando las especificaciones son ambiguas.
Al desarrollar especificaciones internas para funciones de seguridad importantes,
cada organización tendrá sus propios métodos para encontrar y resolver ambigüedades.
Seguimos un proceso riguroso para diseñar y depurar la especificación, que incluye:
Recopilación y comprensión de los requisitos del cliente.
Escribir la especificación para cumplir con esos requisitos.
Evaluación en profundidad de estas especificaciones
a través de un proceso de revisión del equipo colaborativo
Obtener retroalimentación a medida que esas especificaciones se incorporan
al código. Si es necesario, revisamos nuestras suposiciones.
Este método elimina los pensamientos turbios que pueden generar problemas en el futuro.
8
Machine Translated by Google
Creación de software seguro en
un entorno complejo
Diseñe cuidadosamente los valores predeterminados
Cuando MongoDB se creó por primera vez como una Al configurar nuestros valores
edición de código abierto, los casos de uso más destacados predeterminados, hacemos estas preguntas:
fueron las implementaciones locales. ° ¿Cuál es la probabilidad de que un incumplimiento
Pero MongoDB rápidamente se hizo popular para
¿Se cambiará o apagará la configuración? °
las aplicaciones orientadas a la web. Algunas de las
¿Cuáles son los riesgos de seguridad asociados con la
configuraciones predeterminadas, diseñadas para
configuración predeterminada?
implementaciones locales, no eran óptimas para la
seguridad de los sistemas públicos con acceso a Internet. ° ¿Cómo afectan los valores predeterminados a la
Nuestra misión es garantizar que nuestra configuración usabilidad y el rendimiento? ° ¿Qué advertencias
predeterminada evite resultados negativos y permita a los debemos dar sobre nuestros incumplimientos?
clientes hacer un uso completo de la funcionalidad del
producto. No importa si un producto tiene 20 formas de ° ¿Qué alternativas deben documentarse?
proteger la seguridad si el valor predeterminado es
desactivarlas todas.
No importa si un producto
tiene 20 formas de proteger
la seguridad si el valor
predeterminado es desactivarlas todas.
9
Machine Translated by Google
Creación de software seguro en un
entorno complejo
Aproveche al máximo las pruebas automatizadas
Nuestro proceso de desarrollo de productos utiliza pruebas de seguridad automatizadas en todos los niveles. Ejecutamos
miles de horas de CPU de pruebas cada semana, ejecutando compilaciones las 24 horas del día, los 7 días de la semana en
miles de nodos de cómputo en todas las principales plataformas de hardware, sistemas operativos y lenguajes de software.
Probamos usando revisiones de código de pares; pruebas unitarias, de regresión y A/B; análisis de código estático y
dinámico; y análisis de ejecutables y pruebas de parámetros y condiciones extremas basadas en aprendizaje automático. Cuando
encontramos fallas, las abordamos y volvemos a probar agresivamente.
Estas son algunas de las formas específicas en que probamos:
Pruebas de parámetros impulsadas por lenguaje de máquina. Usando ML, probamos cada
combinación de parámetros para todas las API y opciones de configuración.
“Pruebas de tortura” de fuerza bruta, utilizando parámetros con valores extremos en cantidad
o longitud. Realizamos simulaciones en decenas de millones de rutas de entrada para detectar
fallas potenciales, para cada versión de software de producción del motor de base de datos
principal.
Prueba de análisis ejecutable que busca código compilado en busca de posibles
vulnerabilidades.
Las pruebas automatizadas son un viaje a largo plazo. Pero puede agregar un nivel simple de prueba
automatizada a su proceso de desarrollo e implementación, y expandir esa prueba con el tiempo.
Agregue un nivel simple de pruebas
automatizadas a su desarrollo e
implementación, y amplíelo con el tiempo
10
Machine Translated by Google
Por qué el mundo
se está volviendo multinube
Pararse en los hombros de los gigantes
En algunas áreas de la ciberseguridad, la innovación Por otro lado, a veces es posible utilizar técnicas
puede ser fácilmente un error. A menudo tiene más comprobadas de manera innovadora.
sentido usar métodos aburridos pero probados que Por ejemplo, hemos creado un sistema innovador para el
intentar abrir nuevos caminos. El cifrado es un área clave cifrado de nivel de campo de extremo a extremo que permite
en la que utilizamos métodos establecidos y maduros. a los usuarios controlar completamente el acceso a sus
datos. Esto permite que los sistemas de nube pública se
Nuestro enfoque es incorporar algoritmos primitivos bien utilicen de maneras que no permiten que el sistema y el
estudiados y bien caracterizados que hayan resistido una personal operativo de la nube pública
revisión rigurosa por pares y el escrutinio de la industria. administradores para poder ver el
datos o ver el contenido de consultas confidenciales.
Machine Translated by Google
Creación de software seguro en
un entorno complejo
Conclusión
Cada organización tiene un conjunto de requisitos de y construir bases de datos que se utilizan en
seguridad en rápida expansión. Eso significa que aplicaciones altamente reguladas, altamente sensibles y
nuestro conocimiento colectivo sobre la seguridad de misión crítica en todo el espectro.
también debe seguir ampliándose. Estos principios nos Esperamos que brinden información y orientación a otros
han permitido integrar la seguridad en cada paso de equipos de software, lo que permitirá que nuestros esfuerzos
nuestro proceso de desarrollo, para crear una cultura colectivos tengan un mayor impacto y que nuestros usuarios
que valora la seguridad, se acerquen a nuestras ofertas con confianza.
MongoDB Atlas ofrece un servicio administrado para
la base de datos más popular para aplicaciones modernas.
Con seguridad, flexibilidad y resiliencia diseñadas desde cero, algunas
de las empresas más innovadoras del mundo confían en Mongo DB Atlas
para sus necesidades globales de disponibilidad, escalabilidad y cumplimiento.
Migrar a MongoDB Atlas
O contáctenos ¡Para descubrir mas!
12