Ejemplos de ingeniería de Acra | Documentación y tutoriales. | Instalación | Comentarios de Acra |
---|
Acra: paquete de seguridad de bases de datos para la protección de datos personales y confidenciales.
Acra proporciona cifrado a nivel de aplicación para campos de datos, control de acceso de múltiples capas, prevención de fugas de bases de datos y capacidades de detección de intrusiones en una sola suite. Acra fue diseñado específicamente para aplicaciones distribuidas (web, del lado del servidor y móviles) que almacenan datos en una o varias bases de datos/almacenes de datos.
Aplicaciones perfectas compatibles con Acra | Industrias típicas |
---|---|
Aplicaciones web y móviles que almacenan datos en una base de datos centralizada o almacenamiento de objetos. |
|
Aplicaciones de IoT que recopilan telemetría y procesan datos en la nube | |
Aplicaciones de procesamiento de datos de alta carga |
Acra le brinda herramientas para cifrar cada registro de datos confidenciales (campo de datos, celda de base de datos, json) antes de almacenarlos en la base de datos/almacenamiento de archivos. Y luego descifrarlos en un área compartimentada segura (en el lado de Acra). Acra permite cifrar datos lo antes posible y operar con datos cifrados.
El diseño criptográfico de Acra garantiza que ningún secreto (contraseña, clave, etc.) filtrado de la aplicación o base de datos será suficiente para descifrar los datos protegidos. Acra minimiza el alcance de la fuga, detecta comportamientos no autorizados y previene la fuga, informando a los operadores del incidente en curso.
Esta es Acra Community Edition, es gratuita para uso comercial y no comercial, para siempre.
| Cifrado en el lado del cliente y/o en Acra: cada campo de datos se cifra utilizando claves de cifrado únicas. |
| usted selecciona qué columnas cifrar para equilibrar la buena seguridad y el rendimiento. |
| dos criptosobres: AcraBlocks y AcraStructs. Los AcraBlocks son contenedores simétricos rápidos, utilícelos de forma predeterminada. AcraStructs son contenedores asimétricos, utilícelos para el cifrado del lado del cliente. |
| buscar a través de datos cifrados sin descifrarlos. Diseñado para consultas exactas , basado en AES-GCM e índice ciego. |
| utilice enmascaramiento total o parcial para eliminar o enmascarar datos confidenciales. |
| sustituya los datos confidenciales por un token y haga coincidirlos con el original solo cuando sea necesario. |
| Herramientas integradas para generación de claves, exportación, copia de seguridad, rotación, etc. |
| a través de un firewall SQL incorporado. |
| Usar registros de veneno (fichas de miel) para advertir sobre comportamientos sospechosos. |
| disponible para usuarios de Acra Enterprise. |
| |
|
Acra ofrece diferentes capas de defensa para diferentes partes y etapas del ciclo de vida de los datos. Esto es lo que es la defensa en profundidad : un conjunto independiente de controles de seguridad destinados a mitigar múltiples riesgos en caso de que un atacante cruce el perímetro exterior.
| todas las funciones de Acra empaquetadas en un proxy de base de datos que analiza el tráfico entre una aplicación y una base de datos y aplica funciones de seguridad cuando corresponde. |
| Servidor API, que expone la mayoría de las características de Acra como API HTTP/gRPC con protección de tráfico. |
| Servicio opcional del lado del cliente para autenticación y cifrado de transporte. |
| disponible para usuarios de Acra Enterprise. |
| |
| |
| |
|
| su infraestructura está segura desde el principio sin necesidad de configuración adicional. |
| no hay riesgo de seleccionar una longitud de clave o un relleno de algoritmo incorrectos. |
| fácil de configurar y automatizar. |
| a través de paquetes binarios o imágenes de Docker. |
| Requiere cambios mínimos en el código de la aplicación. |
| en todos los componentes de Acra; compatible con pila ELK, Datadog, Graylog, Prometheus, Grafana, Jaeger. |
| Utilidades de reversión para descifrar la base de datos en texto plano. |
| Numerosos proyectos de ejemplo basados en web y Docker disponibles. |
| Ejecute AcraServer en su nube DigitalOcean. |
| Podemos configurar y administrar Acra por usted. |
Acra confía en nuestra biblioteca criptográfica Themis, que implementa criptosistemas de alto nivel basados en las mejores implementaciones de código abierto disponibles de los cifrados más confiables. Acra estrictamente no contiene primitivas criptográficas de fabricación propia ni cifrados oscuros.
Para ofrecer sus garantías únicas, Acra se basa en la combinación de cifrados conocidos y un esquema de gestión de claves inteligente. Consulte Criptografía y gestión de claves.
Fuente cripto-primitiva predeterminada | AbiertoSSL |
Fuentes criptoprimitivas compatibles ᵉ | BoringSSL, LibreSSL, compatible con FIPS, compatible con GOST, HSM |
Cifrado de almacenamiento (AcraBlocks) | AES-256-GCM + AES-256-GCM |
Cifrado de almacenamiento (AcraStructs) | AES-256-GCM + ECDH |
Cifrado de transporte | TLS v1.2+ o sesión segura de Themis |
Integración KMS ᵉ | Amazon KMS, Google Cloud Platform KMS, HashiCorp Vault, Keywhiz, etc. |
ᵉ: disponible únicamente en la versión Enterprise de Acra. Envíenos un correo electrónico para obtener una lista completa de funciones y una cotización.
Acra consta de varios servicios y utilidades. Los servicios de Acra le permiten construir flujos de datos infinitamente sofisticados que se adaptan perfectamente a su infraestructura exacta. Dependiendo de su arquitectura y caso de uso, es posible que necesite implementar solo los servicios básicos o todos ellos.
Componentes de aplicación de la seguridad : servicios donde "se produce el cifrado". Se requiere uno de ellos: AcraServer, AcraTranslator, AnyProxy o SDK del lado del cliente.
Almacenamiento de claves: almacenes de datos donde Acra guarda claves cifradas: Redis, tabla en su base de datos, cualquier almacén KV. Se requiere uno de ellos.
Almacenamiento de claves maestras: KMS, Vault. Se recomienda encarecidamente uno de ellos.
Servicios y utilidades adicionales: utilidades de administración de claves, scripts de migración de datos, servicio de seguridad de transporte, herramientas de administración de políticas. Cualquiera de ellos es opcional.
Consulte Acra en profundidad / Arquitectura para obtener más información sobre los componentes de Acra. Consulte Acra en profundidad/Flujo de datos para ver implementaciones y flujos de datos más típicos basados en Acra.
Veamos el flujo de datos más simple con AcraServer.
AcraServer funciona como proxy de cifrado/descifrado transparente con bases de datos SQL. La aplicación no sabe que los datos están cifrados antes de llegar a la base de datos, y la base de datos tampoco sabe que alguien ha cifrado los datos. Por eso a menudo llamamos a este modo "cifrado transparente".
Tiene una aplicación del lado del cliente que se comunica con la base de datos SQL. Agrega AcraServer en el medio, que funciona como proxy SQL, y le dirige la aplicación.
Así es como se ve el proceso de escribir y leer datos hacia/desde una base de datos:
Implementas AcraServer y lo configuras: conexión a la base de datos, certificados TLS, seleccionas qué campos cifrar, enmascarar o tokenizar, habilitar el firewall de solicitud SQL, etc.
Una vez implementado AcraServer, está listo para aceptar solicitudes SQL.
Apunta la aplicación del lado del cliente a AcraServer en lugar de a la base de datos SQL.
Al recibir consultas SQL desde la aplicación, AcraServer analiza cada consulta y realiza operaciones de seguridad: cifrado, enmascaramiento, tokenización. Para saber qué valores cambiar, AcraServer utiliza un archivo de configuración donde se describen qué columnas deben cifrarse, enmascararse y tokenizarse.
Después de realizar la operación, AcraServer pasa las consultas modificadas a la base de datos y la respuesta de la base de datos a la aplicación cliente. Supongamos que selecciona cifrar el campo de correo electrónico: significa que la cadena original se cifra en un contenedor criptográfico y se envía a la base de datos como datos binarios.
Cuando la aplicación cliente quiere leer los datos, envía una consulta SELECT al AcraServer que la envía a la base de datos.
Al recuperar la respuesta de la base de datos, AcraServer intenta descifrar, desenmascarar, detokenizar campos específicos y los devuelve a la aplicación.
La aplicación recibe datos en texto plano.
Excepto por las operaciones de procesamiento de datos, AcraServer también analiza consultas SQL: bloquea las no deseadas utilizando el firewall SQL configurable incorporado, detecta inyecciones de SQL utilizando registros tóxicos, envía registros y métricas y alerta a su equipo de operaciones en casos sospechosos.
Consulte la Guía: Integración de AcraServer en la infraestructura para obtener más información sobre las funciones de AcraServer y cómo utilizarlas.
Veamos el flujo de datos más simple con AcraTranslator.
AcraTranslator funciona como cifrado como servicio utilizando HTTP y gRPC API. La aplicación envía una solicitud API a AcraTranslator con campos de datos y operaciones (cifrado, descifrado, tokenización, detokenización, etc.). La aplicación es responsable de almacenar los datos cifrados en la base de datos (NoSQL, KV store, SQL, AWS S3, cualquiera) y comunicarse con AcraTranslator para descifrarlos nuevamente.
AcraTranslator y AcraServer son componentes del lado del servidor totalmente independientes y se pueden utilizar juntos o por separado según su infraestructura.
Tiene una aplicación del lado del cliente que sabe qué campos cifrar, descifrar, tokenizar y dónde almacenarlos. Agrega AcraTranslator y le enseña a la aplicación a realizar llamadas API para usarlo.
Así es como se ve el proceso de escribir y leer datos hacia/desde una base de datos:
Implementa AcraTranslator en su infraestructura y configura certificados TLS.
Una vez que se implementa AcraTranslator, está listo para aceptar solicitudes de API.
Su aplicación llama a AcraTranslator y envía campos de datos y operaciones sobre ellos (cifrado, descifrado, tokenización, detokenización).
Al recibir solicitudes de API, AcraTranslator realiza la operación requerida y envía el resultado a la aplicación. Supongamos que la aplicación envía el campo "correo electrónico" y la operación "cifrar". En ese caso, la cadena original se cifra en un contenedor criptográfico y se envía de vuelta a la aplicación como datos binarios.
La aplicación toma datos cifrados y los almacena en la base de datos/almacén de datos.
Una vez que la aplicación necesita obtener datos en texto sin formato, lee datos cifrados de la base de datos/almacén de datos y envía una solicitud API a AcraTranslator. Supongamos que la aplicación envía el campo "correo electrónico" y la operación "descifrar". En ese caso, los datos originales (blob binario) se descifran en una cadena y se devuelven a la aplicación.
Excepto por las operaciones de procesamiento de datos, AcraTranslator también analiza consultas de API: detecta intrusiones utilizando registros tóxicos, envía registros y métricas y alerta a su equipo de operaciones en casos sospechosos.
Consulte la Guía: Integración de AcraTranslator en la infraestructura para obtener más información sobre las funciones de AcraServer y cómo utilizarlas.
Acra es un conjunto de componentes, la mayoría de ellos son del "lado del servidor", lo que significa que usted implementa y configura AcraServer, AcraTranslator o AnyProxy, y les conecta su aplicación del lado del cliente.
Los componentes de Acra son compatibles con numerosos RDBMS, almacenes de objetos y KV, plataformas en la nube, sistemas externos de administración de claves (KMS) y sistemas de equilibrio de carga.
Plataformas en la nube | DigitalOcean, AWS, GCP, Heroku, cualquiera |
RDBMS | MySQL v5.7+, PosgtreSQL v9.4-v11, MariaDB v10.3; Google Cloud SQL, Amazon RDS |
Tiendas de objetos | sistemas de archivos, bases de datos KV, Amazon S3, Google Cloud DataStore |
Equilibrio de carga | HAProxy, balanceadores de la nube |
Plataformas del lado del servidor | Ubuntu, Debian, CentOS, RHEL; Estibador |
Idioma de la aplicación del lado del cliente | cualquier :) |
Acra de código abierto tiene un soporte de integración limitado; hay más servicios disponibles solo en Acra Enterprise Edition.
Los componentes de Acra del lado del servidor (AcraServer, AcraTranslator, AnyProxy) deben ejecutarse en servidores/VM separados para un mejor aislamiento y compartimentación. Las utilidades de administración de claves y los asistentes de bases de datos generalmente se ejecutan en el mismo servidor que AcraServer, AcraTranslator, AnyProxy.
Los componentes de Acra del lado del servidor se ejecutan en la mayoría de las distribuciones de Linux (Ubuntu, Debian, CentOS) y como imágenes de Docker. Tenga en cuenta que los componentes de Acra del lado del servidor no son compatibles con el sistema operativo Windows como sistema operativo host; considere usar Docker.
Consulte Primeros pasos para aprender cómo instalar Acra o probar Acra sin codificar.
Acra funciona con cualquier aplicación cliente. No importa qué lenguajes utilice para escribir sus aplicaciones, puede conectarlas a AcraServer (a través de SQL) y AcraTranslator/AnyProxy (a través de API) para cifrar, descifrar, tokenizar y enmascarar los datos.
Acra proporciona un conjunto de SDK del lado del cliente que son útiles sólo en casos de uso específicos:
AcraWriter: SDK para cifrar campos de datos en AcraStructs. Úselo cuando sea importante cifrar datos en el lado de la aplicación (para crear flujos de datos cifrados de un extremo a otro o trabajar en entornos hostiles).
AcraReader: SDK para descifrar campos de datos de AcraStructs. Úselo cuando sea importante descifrar datos en el lado de la aplicación (para crear flujos de datos cifrados de un extremo a otro o trabajar en entornos hostiles).
SDK para AcraTranslator: SDK que encapsula la API de AcraTranslator para un uso más conveniente.
Estos SDK están disponibles para Ruby, Python, Go, C++, Node.js, iOS (Swift, ObjC), Android (Java, Kotlin), Java de escritorio y PHP.
Consulte Primeros pasos para aprender cómo instalar Acra o probar Acra sin codificar.
Los proyectos de ejemplo de Acra ilustran la integración de la suite de protección de datos de Acra en aplicaciones existentes: aplicaciones web basadas en marcos Django y Ruby on Rails, y aplicaciones CLI simples. Tomamos aplicaciones conocidas, detectamos datos confidenciales allí y agregamos la capa de cifrado. La protección de los datos es completamente transparente para los usuarios y requiere cambios mínimos en la infraestructura y el código de la aplicación.
Compatible con desarrolladores y operaciones:
ejecutar un único comando para implementar la aplicación, la base de datos, los componentes, los registros y los paneles de Acra;
lea los cambios de código y vea lo poco que se necesita para integrar el cifrado en la aplicación cliente;
aprenda cómo funciona Acra leyendo registros, monitoreando métricas en Prometheus, verificando trazadores en Jaeger y observando los paneles de Grafana;
inspeccione archivos de composición de Docker, esquemas de arquitectura, tablas de bases de datos y mucho más.
Requisitos: Linux o macOS con Docker instalado.
Ejecutar proyectos de ejemplo de Acra |
---|
Las versiones más recientes de la documentación, tutoriales y demostraciones de Acra están disponibles en el servidor de documentación oficial de Cossack Labs.
Para obtener una comprensión inicial de Acra, es posible que desees:
¿Qué es Acra para tener una visión general de las cosas?
Controles de seguridad de Acra para conocer más sobre cifrado, enmascaramiento, tokenización, firewall SQL, detecciones de intrusiones, etc.
Flujos de datos típicos que muestran qué componentes de Acra necesita y cuáles son los pros y los contras de cada combinación.
Lea las notas sobre la arquitectura y el diseño de seguridad de Acra para comprender mejor lo que obtiene cuando usa Acra y cuál es el modelo de amenaza en el que opera Acra.
También puede consultar las diapositivas de los oradores de las siguientes charlas de los ingenieros de Cossack Labs:
"Cifrado sin magia, gestión de riesgos sin dolor" por Anastasiia Voitova.
"Cifrado de datos para aplicaciones web Ruby" por Dmytro Shapovalov.
"Construcción de un firewall SQL (AcraCensor): conocimientos de los desarrolladores" por Artem Storozhuk.
Ejecutar proyectos de ejemplo de Acra |
---|
Acra puede ayudarte a cumplir con las normas de privacidad vigentes, tales como:
Reglamento General de Protección de Datos (GDPR)
HIPAA (Ley de Responsabilidad y Portabilidad del Seguro Médico)
DPA (Ley de Protección de Datos)
CCPA (Ley de Privacidad del Consumidor de California)
La configuración y el uso de Acra en una forma designada cubrirá la mayoría de las demandas descritas en los artículos 25, 32, 33 y 34 del RGPD y las demandas de protección de datos PII de HIPAA. Lea más sobre Acra y Regulaciones.
Esta es Acra Community Edition, la versión de código abierto de Acra, que es gratuita para uso comercial y no comercial. Háganos saber en Problemas si encuentra un error, ve una posible mejora o tiene algún comentario sobre el diseño de seguridad.
También hay Acra Enterprise Edition disponible. Proporciona mejor rendimiento, redundancia/equilibrio de carga, viene preconfigurado con primitivos criptográficos de su elección (FIPS, GOST), tiene integración con herramientas de administración de claves/secretos en su pila, administración de políticas, SDK del lado del cliente y tiene muchos de utilidades y herramientas para que sus Ops y SRE operen Acra cómodamente. Hable con nosotros para obtener listas completas de funciones y una cotización.
Se necesita algo más que simplemente compilar un código criptográfico para proteger los datos confidenciales. Acra no le permitirá “cumplir de inmediato” con todas las normas de seguridad modernas, y ninguna otra herramienta lo hará.
Ayudamos a las empresas a planificar su estrategia de seguridad de datos auditando, evaluando el flujo de datos y clasificando los datos, enumerando los riesgos. Hacemos la parte más difícil y menos atendida para lograr el cumplimiento: pasar del “costo de hacer negocios” al “marco de seguridad que previene riesgos”.
Si desea contribuir con su código o proporcionar cualquier otro tipo de información a Acra, es bienvenido. Su punto de partida para contribuir está aquí.
Si es usuario de Acra, deje un breve comentario.
Acra Community Edition tiene licencia como software de código abierto Apache 2.
Si desea hacer una pregunta técnica, no dude en plantear un problema o escribir a [email protected].
Para hablar con el ala comercial de Cossack Labs Limited, envíenos un correo electrónico a [email protected].