Exemplos de Engenharia Acra | Documentação e tutoriais | Instalação | Feedback da Acra |
---|
Acra — conjunto de segurança de banco de dados para proteção de dados confidenciais e pessoais.
Acra fornece criptografia em nível de aplicativo para campos de dados, controle de acesso em várias camadas, prevenção de vazamento de banco de dados e recursos de detecção de intrusão em um único conjunto. O Acra foi projetado especificamente para aplicativos distribuídos (web, server-side e mobile) que armazenam dados em um ou mais bancos de dados/datastores.
Aplicativos compatíveis com Perfect Acra | Indústrias típicas |
---|---|
Aplicativos Web e móveis que armazenam dados em um banco de dados centralizado ou armazenamento de objetos |
|
Aplicativos IoT que coletam telemetria e processam dados na nuvem | |
Aplicativos de processamento de dados de alta carga |
Acra fornece ferramentas para criptografar cada registro de dados confidenciais (campo de dados, célula do banco de dados, json) antes de armazená-los no banco de dados/armazenamento de arquivos. E então descriptografá-los em uma área compartimentada segura (no lado da Acra). Acra permite criptografar dados o mais cedo possível e operar com dados criptografados.
O design criptográfico do Acra garante que nenhum segredo (senha, chave, etc.) vazado do aplicativo ou banco de dados será suficiente para a descriptografia dos dados protegidos. O Acra minimiza o escopo do vazamento, detecta comportamentos não autorizados e evita o vazamento, informando aos operadores sobre o incidente em andamento.
Esta é a Acra Community Edition, é gratuita para uso comercial e não comercial, para sempre.
| criptografia no lado do cliente e/ou no lado da Acra – cada campo de dados é criptografado usando chaves de criptografia exclusivas. |
| você seleciona quais colunas criptografar para equilibrar boa segurança e desempenho. |
| dois envelopes criptográficos: AcraBlocks e AcraStructs. AcraBlocks são contêineres simétricos rápidos, use-os por padrão. AcraStructs são contêineres assimétricos, use-os para criptografia do lado do cliente. |
| pesquise dados criptografados sem descriptografia. Projetado para consultas exatas , baseadas em AES-GCM e índice cego. |
| use mascaramento total ou parcial para remover ou mascarar dados confidenciais. |
| substitua dados confidenciais por um token e combine-os com o original somente quando necessário. |
| ferramentas integradas para geração de chaves, exportação, backup, rotação, etc. |
| através de um firewall SQL integrado. |
| usando registros de veneno (tokens de mel) para alertar sobre comportamento suspeito. |
| disponível para usuários do Acra Enterprise. |
| |
|
Acra oferece diferentes camadas de defesa para diferentes partes e estágios do ciclo de vida dos dados. Isto é a defesa em profundidade – um conjunto independente de controlos de segurança destinados a mitigar múltiplos riscos no caso de um invasor cruzar o perímetro externo.
| todos os recursos do Acra agrupados em um proxy de banco de dados que analisa o tráfego entre um aplicativo e um banco de dados e aplica funções de segurança quando apropriado. |
| Servidor API, que expõe a maioria dos recursos do Acra como API HTTP/gRPC com proteção de tráfego. |
| serviço opcional do lado do cliente para autenticação e criptografia de transporte. |
| disponível para usuários do Acra Enterprise. |
| |
| |
| |
|
| sua infraestrutura está segura desde o início, sem configuração adicional. |
| não há risco de selecionar o comprimento de chave ou preenchimento de algoritmo errado. |
| fácil de configurar e automatizar. |
| por meio de pacotes binários ou imagens Docker. |
| requer alterações mínimas no código do aplicativo. |
| em todos os componentes do Acra; compatível com pilha ELK, Datadog, Graylog, Prometheus, Grafana, Jaeger. |
| utilitários de reversão para descriptografar o banco de dados em texto simples. |
| vários projetos de exemplo baseados na Web e no Docker disponíveis. |
| execute o AcraServer em sua nuvem DigitalOcean. |
| podemos configurar e gerenciar o Acra para você. |
Acra conta com nossa biblioteca criptográfica Themis, que implementa sistemas criptográficos de alto nível baseados nas melhores implementações de código aberto disponíveis das cifras mais confiáveis. Acra estritamente não contém primitivas criptográficas criadas por você mesmo ou cifras obscuras.
Para oferecer suas garantias exclusivas, a Acra conta com a combinação de cifras bem conhecidas e esquema de gerenciamento de chave inteligente. Consulte Criptografia e gerenciamento de chaves.
Fonte cripto-primitiva padrão | OpenSSL |
Fontes criptoprimitivas suportadas ᵉ | BoringSSL, LibreSSL, compatível com FIPS, compatível com GOST, HSM |
Criptografia de armazenamento (AcraBlocks) | AES-256-GCM + AES-256-GCM |
Criptografia de armazenamento (AcraStructs) | AES-256-GCM + ECDH |
Criptografia de transporte | TLS v1.2+ ou Sessão Segura Themis |
Integração KMS ᵉ | Amazon KMS, Google Cloud Platform KMS, HashiCorp Vault, Keywhiz, etc. |
ᵉ — disponível apenas na versão Enterprise do Acra. Envie-nos um e-mail para obter uma lista completa de recursos e um orçamento.
Acra é composta por diversos serviços e utilidades. Os serviços Acra permitem construir fluxos de dados infinitamente sofisticados que são perfeitamente adequados à sua infraestrutura exata. Dependendo da sua arquitetura e caso de uso, talvez seja necessário implantar apenas serviços básicos ou todos eles.
Componentes de aplicação de segurança : serviços onde “a criptografia acontece”. Um deles é necessário: AcraServer, AcraTranslator, AnyProxy ou SDKs do lado do cliente.
Armazenamento de chaves: datastores onde o Acra mantém chaves criptografadas: Redis, tabela em seu banco de dados, qualquer armazenamento KV. Um deles é obrigatório.
Armazenamento de chave mestra: KMS, Vault. Um deles é fortemente recomendado.
Serviços e utilitários adicionais: utilitários de gerenciamento de chaves, scripts de migração de dados, serviço de segurança de transporte, ferramentas de gerenciamento de políticas. Qualquer um deles é opcional.
Consulte Acra em profundidade/Arquitetura para saber mais sobre os componentes do Acra. Consulte Acra em profundidade/Fluxo de dados para ver fluxos de dados e implantações mais típicos baseados em Acra.
Vamos ver o fluxo de dados mais simples com AcraServer.
AcraServer funciona como proxy transparente de criptografia/descriptografia com bancos de dados SQL. O aplicativo não sabe que os dados estão criptografados antes de chegarem ao banco de dados, o banco de dados também não sabe que alguém criptografou os dados. É por isso que costumamos chamar esse modo de “criptografia transparente”.
Você tem um aplicativo do lado do cliente que se comunica com o banco de dados SQL. Você adiciona o AcraServer no meio, funcionando como proxy SQL, e aponta o aplicativo para ele.
É assim que se parece o processo de gravação e leitura de dados de/para um banco de dados:
Você implanta o AcraServer e configura-o: conexão com o banco de dados, certificados TLS, seleciona quais campos criptografar, mascarar ou tokenizar, habilitar firewall de solicitação SQL, etc.
Depois que o AcraServer for implantado, ele estará pronto para aceitar solicitações SQL.
Você aponta o aplicativo do lado do cliente para o AcraServer em vez do banco de dados SQL.
Ao receber consultas SQL do aplicativo, o AcraServer analisa cada consulta e executa operações de segurança: criptografia, mascaramento, tokenização. Para saber quais valores alterar, o AcraServer utiliza um arquivo de configuração onde você descreve quais colunas devem ser criptografadas, mascaradas, tokenizadas.
Após realizar a operação, o AcraServer passa as consultas modificadas para o banco de dados, e a resposta do banco de dados – de volta para a aplicação cliente. Suponha que você opte por criptografar o campo de email: isso significa que a string original é criptografada em um contêiner criptográfico e enviada ao banco de dados como dados binários.
Quando a aplicação cliente deseja ler os dados, ela envia uma consulta SELECT ao AcraServer que os envia ao banco de dados.
Ao recuperar a resposta do banco de dados, o AcraServer tenta descriptografar, desmascarar, destokenizar campos especificados e devolvê-los ao aplicativo.
O aplicativo recebe dados em texto simples.
Exceto para operações de processamento de dados, o AcraServer também analisa consultas SQL: bloqueia as indesejadas usando o firewall SQL configurável integrado, detecta injeções de SQL usando registros venenosos, envia logs e métricas e alerta sua equipe de operações em casos suspeitos.
Confira o Guia: Integrando o AcraServer à infraestrutura para saber mais sobre os recursos do AcraServer e como usá-los.
Vamos ver o fluxo de dados mais simples com AcraTranslator.
AcraTranslator funciona como criptografia como serviço usando HTTP e API gRPC. O aplicativo envia solicitação de API ao AcraTranslator com campos de dados e operações (criptografia, descriptografia, tokenização, destokenização, etc). O aplicativo é responsável por armazenar os dados criptografados no banco de dados (NoSQL, KV store, SQL, AWS S3 – qualquer) e se comunicar com o AcraTranslator para descriptografá-los novamente.
AcraTranslator e AcraServer são componentes do lado do servidor totalmente independentes e podem ser usados juntos ou separadamente dependendo da sua infraestrutura.
Você tem um aplicativo do lado do cliente que sabe quais campos criptografar, descriptografar, tokenizar e onde armazená-los. Você adiciona o AcraTranslator e ensina o aplicativo a realizar chamadas de API para usá-lo.
É assim que se parece o processo de gravação e leitura de dados de/para um banco de dados:
Você implanta o AcraTranslator em sua infraestrutura e configura certificados TLS.
Depois que o AcraTranslator for implantado, ele estará pronto para aceitar solicitações de API.
Seu aplicativo chama o AcraTranslator e envia campos de dados e operações neles (criptografia, descriptografia, tokenização, destokenização).
Ao receber solicitações de API, o AcraTranslator realiza a operação necessária e envia o resultado de volta ao aplicativo. Suponha que o aplicativo envie o campo “e-mail” e a operação “criptografar”. Nesse caso, a string original é criptografada em um contêiner criptográfico e enviada de volta ao aplicativo como dados binários.
O aplicativo pega dados criptografados e os armazena no banco de dados/armazenamento de dados.
Assim que o aplicativo precisar obter dados de texto simples, ele lê os dados criptografados do banco de dados/armazenamento de dados e envia uma solicitação de API ao AcraTranslator. Suponha que o aplicativo envie o campo “e-mail” e a operação “descriptografar”. Nesse caso, os dados originais (blob binário) são descriptografados em uma string e enviados de volta ao aplicativo.
Exceto para operações de processamento de dados, o AcraTranslator também analisa consultas de API: detecta invasões usando registros de veneno, envia logs e métricas e alerta sua equipe de operações em casos suspeitos.
Confira o Guia: Integrando o AcraTranslator à infraestrutura para saber mais sobre os recursos do AcraServer e como usá-los.
Acra é um conjunto de componentes, a maioria deles são "do lado do servidor", o que significa que você implanta e configura o AcraServer, AcraTranslator ou AnyProxy e conecta seu aplicativo do lado do cliente a eles.
Os componentes Acra são compatíveis com vários RDBMS, armazenamentos de objetos e KV, plataformas em nuvem, sistemas externos de gerenciamento de chaves (KMS) e sistemas de balanceamento de carga.
Plataformas em nuvem | DigitalOcean, AWS, GCP, Heroku, qualquer |
RDBMS | MySQL v5.7+, PosgtreSQL v9.4-v11, MariaDB v10.3; Google CloudSQL, Amazon RDS |
Armazenamentos de objetos | sistemas de arquivos, bancos de dados KV, Amazon S3, Google Cloud DataStore |
Balanceamento de carga | HAProxy, balanceadores de nuvem |
Plataformas do lado do servidor | Ubuntu, Debian, CentOS, RHEL; Docker |
Linguagem do aplicativo do lado do cliente | qualquer :) |
O Acra de código aberto tem suporte de integração limitado, mais serviços estão disponíveis apenas no Acra Enterprise Edition.
Os componentes Acra do lado do servidor (AcraServer, AcraTranslator, AnyProxy) devem ser executados em servidores/VMs separados para melhor isolamento e compartimentação. Utilitários de gerenciamento de chaves e auxiliares de banco de dados geralmente são executados no mesmo servidor que AcraServer, AcraTranslator, AnyProxy.
Os componentes Acra do lado do servidor são executados na maioria das distribuições Linux (Ubuntu, Debian, CentOS) e como imagens Docker. Observe que os componentes Acra do lado do servidor não são compatíveis com o sistema operacional Windows como sistema operacional host, considere usar o Docker.
Consulte Primeiros passos para saber como instalar o Acra ou experimentar o Acra sem codificação.
Acra funciona com qualquer aplicativo cliente. Não importa quais linguagens você usa para escrever seus aplicativos, você pode conectá-los ao AcraServer (via SQL) e ao AcraTranslator/AnyProxy (via API) para criptografar, descriptografar, tokenizar e mascarar os dados.
Acra fornece um conjunto de SDKs do lado do cliente que são úteis apenas em casos de uso específicos:
AcraWriter – SDK para criptografar campos de dados em AcraStructs. Use-o quando a criptografia de dados no lado do aplicativo for importante (para criar fluxos de dados criptografados de ponta a ponta ou trabalhar em ambientes hostis).
AcraReader – SDK para descriptografar campos de dados do AcraStructs. Use-o quando for importante descriptografar dados no lado do aplicativo (para criar fluxos de dados criptografados de ponta a ponta ou trabalhar em ambientes hostis).
SDK para AcraTranslator – SDK que encapsula a API do AcraTranslator para uso mais conveniente.
Esses SDKs estão disponíveis para Ruby, Python, Go, C++, Node.js, iOS (Swift, ObjC), Android (Java, Kotlin), Java para desktop e PHP.
Consulte Primeiros passos para saber como instalar o Acra ou experimentar o Acra sem codificação.
Os projetos de exemplo da Acra ilustram a integração do conjunto de proteção de dados Acra em aplicativos existentes: aplicativos da web baseados em estruturas Django e Ruby on Rails e aplicativos CLI simples. Pegamos aplicativos conhecidos, detectamos dados confidenciais e adicionamos a camada de criptografia. A proteção dos dados é totalmente transparente para os usuários e requer alterações mínimas na infraestrutura e no código do aplicativo.
Desenvolvedores e operações amigáveis:
execute um único comando para implantar o aplicativo, banco de dados, componentes, logs e painéis do Acra;
leia as alterações no código e veja quão pouco é necessário para integrar a criptografia ao aplicativo cliente;
aprenda como o Acra funciona lendo logs, monitorando métricas no Prometheus, verificando rastreadores no Jaeger e observando os dashboards do Grafana;
inspecione arquivos compostos do Docker, esquemas de arquitetura, tabelas de banco de dados e muito mais.
Requisitos: Linux ou macOS com Docker instalado.
Execute projetos de exemplo do Acra |
---|
As versões mais recentes da documentação, tutoriais e demonstrações do Acra estão disponíveis no servidor de documentação oficial do Cossack Labs.
Para obter uma compreensão inicial do Acra, você pode querer:
O que é Acra para ter uma visão geral das coisas.
Controles de segurança da Acra para saber mais sobre criptografia, mascaramento, tokenização, firewall SQL, detecções de intrusão, etc.
Fluxos de dados típicos que mostram quais componentes Acra você precisa e quais são os prós e contras de cada combinação.
Leia as notas sobre a arquitetura e o design de segurança do Acra para entender melhor o que você obtém ao usar o Acra e qual é o modelo de ameaça em que o Acra opera.
Você também pode conferir os slides dos palestrantes das seguintes palestras dos engenheiros do Cossack Labs:
"Criptografia sem magia, gerenciamento de riscos sem dor", de Anastasiia Voitova.
"Criptografia de dados para aplicações web Ruby" por Dmytro Shapovalov.
"Construindo firewall SQL (AcraCensor): insights de desenvolvedores" por Artem Storozhuk.
Execute projetos de exemplo do Acra |
---|
A Acra pode ajudá-lo a cumprir as regulamentações de privacidade atuais, como:
Regulamento Geral de Proteção de Dados (RGPD)
HIPAA (Lei de Responsabilidade e Portabilidade de Seguro Saúde)
DPA (Lei de Proteção de Dados)
CCPA (Lei de Privacidade do Consumidor da Califórnia)
Configurar e usar o Acra de uma forma designada cobrirá a maioria das demandas descritas nos artigos 25, 32, 33 e 34 do GDPR e nas demandas de proteção de dados PII da HIPAA. Leia mais sobre Acra e Regulamentos.
Esta é a Acra Community Edition, a versão de código aberto do Acra, que é gratuita para uso comercial e não comercial. Informe-nos nos Problemas se você encontrar um bug, ver uma possível melhoria ou tiver um comentário sobre o design de segurança.
Também está disponível o Acra Enterprise Edition. Ele fornece melhor desempenho, redundância/balanceamento de carga, vem pré-configurado com criptografia primitiva de sua escolha (FIPS, GOST), tem integração com ferramentas de gerenciamento de chaves/segredos em sua pilha, gerenciamento de políticas, SDKs do lado do cliente e tem muitos de utilitários e ferramentas para que suas operações e SREs operem o Acra de maneira conveniente. Fale conosco para obter listas completas de recursos e um orçamento.
É preciso mais do que apenas compilar o código criptográfico para proteger os dados confidenciais. O Acra não tornará você “compatível imediatamente” com todas as regulamentações de segurança modernas, e nenhuma outra ferramenta o fará.
Ajudamos as empresas a planear a sua estratégia de segurança de dados, auditando, avaliando o fluxo de dados e classificando os dados, enumerando os riscos. Fazemos a parte mais difícil e menos cuidada para alcançar a conformidade – transformando-a do “custo de fazer negócios” na “estrutura de segurança que evita riscos”.
Se você quiser contribuir com seu código ou fornecer qualquer outro tipo de contribuição ao Acra, será muito bem-vindo. Seu ponto de partida para contribuir está aqui.
Se você é um usuário Acra, deixe um breve feedback.
Acra Community Edition é licenciado como software de código aberto Apache 2.
Se você quiser fazer uma pergunta técnica, sinta-se à vontade para levantar um problema ou escrever para [email protected].
Para falar com a ala comercial da Cossack Labs Limited, envie-nos um e-mail para [email protected].