Telefónica Tech Boletim semanal de Cibersegurança 29 Abril – 5 Maio Vulnerabilidade crítica nos firewalls Zyxel O fabricante de equipamentos de rede Zyxel lançou patches de segurança para uma vulnerabilidade crítica que afeta seus firewalls. A vulnerabilidade, que foi descoberta e relatada...
Telefónica Tech Boletim semanal de Cibersegurança 15 – 21 Abril Google corrige duas novas vulnerabilidades de 0-day exploradas ativamente O Google emitiu novos avisos de segurança sobre a identificação de vulnerabilidades de 0-day que afeta o navegador Chrome que está...
O lado sombrio dos aplicativos JavaScriptCarlos Ávila 11 mayo, 2020 Os aplicativos criados hoje para a interoperabilidade em diferentes sistemas operacionais, incluindo Skype, Spotify, Signal, Slack, navegadores como Brave, editores de código como o Visual Studio Code e muitos outros programas, são usados diariamente por cada um de nós e são baseados em hoje em um dos idiomas mais usados, como JavaScript. Além disso, seus diferentes componentes são adicionados a essa pilha , para seu desenvolvimento e execução no front – end e no back – end . Como dissemos no ano passado , essa linguagem popular tem inúmeras oportunidades para implantar pacotes e aplicativos para desenvolvimento de software para a Web, mas não apenas isso, mas também acrescenta que eles se tornaram muito populares para o desenvolvimento de programas. área de trabalho, independentemente do sistema operacional . Existem várias estruturas populares para o desenvolvimento desse tipo de aplicação, entre as quais o ElectronJS se destaca (como número um e mais usado), mas temos outras como NWJS, AppJS, Meteor e muito mais. Arquitetura de aplicativos ElectronJS Ao criar esses aplicativos, como qualquer outra tecnologia, os atacantes buscam maneiras de tirar proveito dessas «novas» implementações, que em muitos casos estendem falhas de design nos próprios idiomas ou, quando integradas a outros componentes, estendem os vetores de ataque, que atualmente pode representar um risco para os dados do usuário. Através da modificação desse tipo de aplicativo e sem emitir nenhum alerta ao usuário sobre o referido comportamento, os pesquisadores de segurança descobriram uma maneira de explorar pontos fracos que permitem a introdução de um código malicioso arbitrário de backdoor que executa ações maliciosas no computador da vítima ( por exemplo, as teclas de captura de teclado keylogger ou permitir que o usuário da câmera, etc.). Da mesma maneira, um consultor de segurança pode usar esses mesmos vetores de ataque em uma auditoria para revelar dados ou fazer movimentos laterais em uma rede . De fato, hoje existe ferramentas que permitem que você identifique rapidamente essas vulnerabilidades. Como proteger seus aplicativos Aqui estão algumas das referências que podem ajudar a proteger esses tipos de aplicativos: Mantenha seu aplicativo sincronizado com a versão mais recente da estrutura e componentes usados em seu desenvolvimento.Avalie as dependências usadas pelo seu aplicativo.Analisar e entender completamente a estrutura usada, isso inclui seus pontos fracos.Implemente práticas de desenvolvimento seguras em seu projeto. Este é apenas um breve lembrete para evitar negligenciar as coisas básicas durante o desenvolvimento e a implantação de nossos aplicativos. Em resumo, os vetores para novas tecnologias ou idiomas migram, atualizam, melhoram e diversificam, mas os riscos estão sempre presentes ao longo do ciclo de vida do software , portanto, você deve sempre se perguntar quantos aplicativos que eu uso poderiam Eles estão colocando meus dados privados em risco ou arriscando a reputação dos meus projetos de desenvolvimento? Análise de risco aplicada ao COVID-19As 10 principais palestras do TED para aprender sobre segurança cibernética
Análise de risco aplicada ao COVID-19Gabriel Bergel 4 mayo, 2020 Durante essas últimas semanas, vimos todos os tipos de análises e teorias em torno do Covid-19, mas provavelmente muitos não perceberam que podemos aplicar a metodologia de análise de risco , tão conhecida por nós hackers e pelos profissionais que trabalham em cibersegurança. Na primeira temporada de nossos seminários on-line, #11PathsTalks , já discutimos esse tópico, principalmente devido à importância de entender esse processo para gerenciar adequadamente os riscos tecnológicos em nossas empresas , mas também para entender bem como enfrentar novas ameaças cibernéticas. . Esse processo é cada vez mais reconhecido no setor , existem muitas metodologias, ISO (ISO 27005) e é cada vez mais exigido em mais processos de certificação internacional, como o caso do PCI DSS que o inclui como requisito no processo de Ethical Hacking . A situação atual de confinamento, quarentena, tensão, superexposição à informação, o desafio de um gerenciamento adequado do tempo em casa, etc. Isso fez meus níveis de paranóia e ceticismo crescerem e eu me questionei duas vezes mais. Entre esses tópicos, discutindo com colegas e não colegas, percebi que a maioria deles tinha dificuldade em entender como se proteger adequadamente para enfrentar essa nova pandemia do COVID-19 e percebi na ligação semanal com meus colegas da CSA sobre as muitas analogias presentes no processo de análise de risco que usamos regularmente (espero) para analisar os riscos presentes em nossa organização. Análise qualitativa de risco aplicada ao COVID-19 Risco (RAE): (Del it. Risico ou rischio, e este do ar. Clás. Rizq, que fornece a providência). 1. m. Contingência (possibilidade de algo estar acontecendo ou não) ou proximidade de danos. A análise de risco é um processo que busca identificar o risco de segurança de um ativo, determinando sua probabilidade de ocorrência, seu impacto nos negócios e os controles que mitigam o impacto (ou a probabilidade de ocorrência). Abordagem baseada em: Probabilidade – Impacto Como tradicionalmente, mas neste caso, focando apenas o COVID-19 como a ameaça que queremos analisar, identificaremos o ativo ou ativos que podem ser afetados por essa ameaça, as vulnerabilidades atuais que podem permitir a ameaça. afeta o ativo, a probabilidade de ocorrência em que essa ameaça, considerando vulnerabilidades, afeta o ativo e o impacto associado a essa ameaça, através de vulnerabilidades, afeta o ativo. Como sempre, um dos objetivos é definir quais controles minimizam a probabilidade de ocorrência ou impacto . Vamos lembrar o contexto geral: Figura 1: Contexto geral da segurança da informação Ameaça: um evento com potencial de afetar adversamente a confidencialidade, integridade ou disponibilidade dos ativos de informações. Nesse caso, é um evento com potencial para afetar nossa saúde (integridade), COVID-19 .Ativo: qualquer coisa de valor para a organização. No nosso caso, o ativo a proteger são as pessoas .Vulnerabilidade: uma fraqueza que facilita a materialização de uma ameaça. No nosso caso, eles seriam:Ter mais de 80 anosTendo problemas de saúde ou condicionamento físicoTendo doenças crônicasTendo necessidades especiais (incapacidade)Ter maus hábitos (não lavar as mãos, tossir sem cobrir a boca)Não siga as recomendações. (use máscara, respeite a quarentena)Probabilidade do risco: é a frequência com que o risco pode ocorrer em um determinado período de tempo. Níveis de probabilidade de ocorrência (neste caso, de contágio):AltaMédiaBaixoImpacto: são as consequências que teriam se um determinado ativo fosse afetado por sua confidencialidade, integridade ou disponibilidade. No nosso caso, são as consequências que haveria se um ativo (pessoa) afetasse sua saúde. Impacto possível:Baixo : fique infectado com COVID-19 e não tenha sequelas.Médio : infectado com COVID-19 e com consequências.Alto : morra de COVID-19. Matriz Simplificada de Análise de Risco – COVID-19 – Risco Inerente Risco absoluto ou inerente é o risco que os controles não consideram. Matriz Simplificada de Análise de Risco – COVID-19 – Risco Residual Risco residual é o risco resultante da aplicação de controles. Resultado da análise de risco Figura 2: Matriz de calor dos riscos identificados Resultado da Análise de Risco para COVID-19 – Risco Inerente Figura 3: Matriz de calor de los riesgos inherentes Resultado da Análise de Risco para COVID-19 – Risco Residual Figura 4: Matriz de calor de los riesgos residuales Conclusões Como pode ser verificado, o processo de análise de risco visa identificar e aplicar controles para reduzir a probabilidade de ocorrência ou o impacto associado ou ambos no melhor cenário . Na Figura 3, pode-se observar que os riscos estão todos em níveis médio e alto ; portanto, eles devem ser gerenciados aplicando os controles identificados. Dessa forma, na Figura 4 pode ser visto como a aplicação dos controles diminuiu a probabilidade de ocorrência ou o impacto associado e, portanto, os riscos diminuíram. O mais importante a entender neste caso do COVID-19 é que, ao aplicar todos esses controles ou recomendações de especialistas, não estamos eliminando o vírus, estamos apenas reduzindo a probabilidade de contágio. 10 dicas para o trabalho remoto seguroO lado sombrio dos aplicativos JavaScript
10 dicas para o trabalho remoto seguroCSAs de ElevenPaths 27 abril, 2020 Em situações em que o teletrabalho é possível ou mesmo necessário, como no caso da pandemia de coronavírus, devemos ter em mente que os sistemas de segurança usados nos centros de trabalho das empresas se tornam amplamente dependentes das redes disponíveis para os trabalhadores em casa. Por esse motivo, informamos sobre as medidas que você deve executar para tornar o teletrabalho seguro tanto para sua empresa quanto para seus funcionários e clientes: Implemente uma solução VPN confiável, do lado do servidor e do lado do cliente. Evite, na medida do possível, usar serviços de acesso remoto que dependem de terceiros ou de um provedor para se conectar entre seus clientes e seus servidores.Controle os acessos remotos através da VPN da sua empresa , detectando computadores que não estão em conformidade com as políticas de segurança definidas por você e, através de algum tipo de tecnologia, isola dispositivos que não estão em conformidade com eles até resolverem os pontos de melhoria.Durante essa pandemia que enfrentamos em todo o mundo, muitas empresas têm grande parte de sua equipe trabalhando remotamente, portanto, a disponibilidade de serviços se torna vital para o desenvolvimento de nosso trabalho. Os cibercriminosos também sabem disso e sabem que um ataque de negação de serviço no momento pode ter efeitos muito mais caóticos do que o habitual. Ative os serviços Anti-DDoS nos servidores da Web e na rede.Valide a capacidade dos canais e das configurações do servidor para que seus funcionários possam se conectar de maneira estável aos serviços da empresa. Certifique-se de que, na medida do possível, eles não tenham uma experiência ruim, mas, acima de tudo, que você não mostre mensagens conflitantes com suas dicas de segurança. Por exemplo, se você solicitar que eles não entrem em portais sem certificados digitais válidos, verifique se as plataformas que você disponibiliza para eles os possuem.Se você nunca fez testes de segurança em seus portais, pode ser um bom momento para fazer isso com soluções como o VAMPS. Os cibercriminosos estão trabalhando duro para prejudicar as empresas, sabendo que elas não têm a capacidade de monitorar tudo o que acontece em seus portais.Se você ainda não contratou os serviços SOC, pode ser um bom momento para fazê-lo . Ter profissionais fornecendo suporte e monitoramento 24 horas por dia, sete dias por semana, como esse é uma grande vantagem quando, de repente, você tem tantos usuários remotos conectados à sua infraestrutura.Lembre-se de proteger as plataformas de trabalho remoto e videoconferência , porque elas são outro vetor que os invasores procuram para fazer intrusões em sua empresa. Temos pesquisas e ferramentas que provam isso. Convidamos você a revisar nosso blog onde analisamos.Se os funcionários tiverem telefones da empresa, tente implementar um MDM para ajudá-los a manter seus dispositivos seguros e confiáveis.Nas tarefas remotas, o tempo é valioso, e é por isso que você tenta usar as ferramentas de planejamento e monitoramento de tarefas nas equipes de trabalho , como equipes, Slack, entre outras. Você pode revisar os recursos que publicaremos em nossa conta do Twitter.Lembre-se de que para manter reuniões e produtividade com sua organização, é essencial ter e usar as ferramentas do escritório que permitem fazer videoconferências ou chamadas em grupo ou poder trabalhar em grupos . A maioria dos pacotes de escritório, como o Microsoft OneDrive, os inclui incorporados em seus serviços. COVID-19: Guia de riscos e recomendações sobre segurança cibernéticaAnálise de risco aplicada ao COVID-19
COVID-19: Guia de riscos e recomendações sobre segurança cibernéticaServiço CyberThreats SCC 20 abril, 2020 Do ponto de vista da segurança cibernética, a situação atual causada pelo coronavírus também é particularmente preocupante. Usuários e empresas estão sendo ameaçados. Do serviço de ameaças cibernéticas do SCC da Telefónica, dividimos esses riscos em externos (aqueles relacionados à desinformação) e internos (aqueles relacionados ao teletrabalho). Riscos externos relacionados à desinformação O cibercrime não fica longe da situação atual . Um exemplo disso é o uso do Covid-19 por atores maliciosos conhecidos. Eles aproveitam o interesse do usuário para ocultar documentos maliciosos, executar tentativas de fraude e até explorar malware destinado a roubar informações. Campanhas de malware e ransomware, phishing / mal –spam: campanhas de phishing que personificam órgãos de saúde ou do governo e enviam anexos mal-intencionados destinados a espalhar malware como o TrickBot ou o FormBook. Campanhas de spam com o tema de contratar um seguro de saúde que visa espalhar o malware Hancitor. Ataques de ransomware contra organizações de saúde como a OMS. Novas famílias de ransomware, como o «Coronavirus», foram desenvolvidas.Recomendações:Desconfie de e-mails de fontes incomuns.Não clique nos links incluídos no corpo dos emails.Não ative as macros para anexos se elas não forem de usuários confiáveis.Antes de inserir credenciais pessoais, verifique a legitimidade dos serviços por meio de seu URL.Aplicativos interativos : disseminação do malware AZORult através do acesso a mapas interativos com estatísticas sobre infecções, recuperações e mortes por país; pacotes e técnicas de processamento multi-sub. O AZORult é um dos botnets que a maioria das credenciais comprometeu no ano passado.Alerta social, desinformação : trata-se de trotes ou enganos que buscam alarmar os cidadãos usando informações falsas que podem se espalhar rapidamente graças a aplicativos de mensagens instantâneas. Esses aplicativos tornam essas informações virais e aumentam possíveis incidentes. Infodêmico é um termo cunhado pela OMS para se referir à “superabundância de informações que dificulta que as pessoas encontrem fontes e orientações confiáveis quando precisam delas”. Sem dúvida, é o melhor parceiro dessa pandemia.RecomendaçõesSempre analise a fonte das notícias que estão sendo consumidas e tente alcançar a fonte original.Não fique na manchete, leia as informações completamente.O melhor remédio é não contribuir para a disseminação de informações não verificadas. Riscos internos relacionados ao teletrabalho Devido à chegada do Covid-19, muitas empresas e usuários foram forçados a teletrabalhar em grande escala. Isso implica um risco aumentado, uma vez que software vulnerável ou informações incorretamente protegidas podem ser alvo de ataques e invasões. A situação também pode aumentar o surgimento de insiders. Vulnerabilidades : conexões VPN : aumento no volume de funcionários que usam essas redes, para que sua disponibilidade possa ser afetada. Além disso, a falta de uso pode significar que eles não têm um nível de segurança apropriado.Recomendações:Configurações de segurança atualizadas.Tenha um plano de contingência caso o serviço de acesso remoto falhe.RDP: controle o acesso a recursos e equipamentos por meio de configurações de backdoor ad hoc, conexões RDP não seguras e outras configurações.Vulnerabilidades, computadores pessoais : impossibilidade de usar recursos hospedados nas instalações da empresa, além de controlar a instalação de programas securitizados em estações de trabalho. A equipe de terceirização pode dificultar o controle de estações de trabalho securitizadas.Recomendações:Evite a prática de Traga seu próprio dispositivo (BYOD). Em vez disso, use equipamentos corporativos, pois os equipamentos pessoais podem não ser protegidos por sistemas de segurança corporativos.Evite o uso de programas não corporativos ou pouco usados.Informações confidenciais, exposição de informações : surge a necessidade de mover ferramentas, acessar credenciais ou outros recursos no computador do qual você trabalhará remotamente. Os insiders, pessoas com acesso a informações privilegiadas, correm um risco maior se pertencerem às equipes de TI.Recomendações:Evite o uso de ferramentas não privadas de colaboração e compartilhamento (Github –public-, Bitbucket, Pastebin, Trello, etc.).Controle a possibilidade de que as pessoas afetadas pelos ajustes na equipe possam filtrar informações privilegiadas.Informações confidenciais, representação de equipes : o aumento de mensagens das equipes de comunicação, RH ou TI, incluindo instruções para teletrabalho, aumenta os e-mails falsos que os personificam e destinam-se a fornecer ao funcionário recursos comprometidos ou links para sites maliciosos.RecomendaçõesSempre use canais de comunicação oficiais que possibilitem aos funcionários receber informações atualizadas de fontes corporativas sobre as ações a serem tomadas. Os programadores saudáveis comem cereais criptográficos todas as manhãs10 dicas para o trabalho remoto seguro
Os programadores saudáveis comem cereais criptográficos todas as manhãsElevenPaths 13 diciembre, 2019 Qual é o pior pesadelo de um programador? A criptografia, segundo os autores do estudo Why does cryptographic software fail: “Nosso estudo cobriu 269 vulnerabilidades criptográficas reportadas na base de dados CVE desde janeiro de 2011 até maio de 2014. Os resultados mostram que somente 17% dos erros se encontram nas bibliotecas criptográficas (o que podem ter consequências devastadoras) e o 83% restante são erros causados por uso indevido de bibliotecas criptográficas por parte de aplicações individuais. Observamos que a prevenção de erros em diferentes partes de um sistema requer técnicas diferentes e que não existem correções efetivas para tratar certos tipos de erros, como a geração de chaves criptográficas frágeis”. E se olharmos para o mundo Android? Na pesquisa An Empirical Study of Cryptographic in Android Applications os autores contam que: “Desenvolvemos técnicas de análise para avaliar automaticamente os apps da loja Google Play. Das 11.748 aplicações que utilizam APIs criptográficas, 88% (10.327) cometem ao menos um erro.” O que esses estudos confirmam é que a criptografia raramente é o elo mais frágil na segurança, ela não existe somente nos livros de matemática mas para que funcione é necessários estar escrita em softwares, integrada a um sistema maior e mais complexos, integrada a um sistema operacional, executada em hardware, conectada a uma rede e operada por usuários. Cada um desses passos traz consigo dificuldades e vulnerabilidades: São essas as falhas cometidas por desenvolvedores ao implementar a criptografia e que abrem caminho para o desastre. Esse artigo reúne os erros mais típicos que todo desenvolvedor deve evitar para criar aplicações que utilizam criptografia de maneira sólida. Se reinventar a roda é uma má ideia, em criptografia causa o caos O artigo Great Crypto Failures, assinado pelos investigadores da Checkpoint Software, revisam falhas épicas de implementação criptográficas em ransomware. Ao focar na criação de um código leve e único, os cibercriminosos criadores dessa ameaça de deparam com a necessidades de escrever suas próprias implementações de algoritmos criptográficos como AES ou RSA ao invés de recorrer a biblioteca padrão. Essa não é uma tarefa fácil, mais eficaz seria recorrer às bibliotecas criptográficas criadas por especialistas que sabem muito bem o que fazer. Muitas linguagens de programação contam com uma ou várias APIs de criptografia. Por exemplo, o Java oferece a Java Cryptographic Extensions (JCE), enquanto o .NET tem as chaves de espaço de nomes System.Security.Cryptography. Assim como bibliotecas mais primitivas oferecidas por linguagens de programação, existem conjuntos abertos independentes como o OpenSSL, Bouncy Castle e o NaCl, para citar as mais populares e robustas. Todas essas APIs proporcionam serviços como a criptografia propriamente dita, geração de chaves secretas, códigos de autenticação de mensagens, handshake de chaves, gestão de certificados, assinatura digital etc. Bingo! Use uma biblioteca e o problema estará resolvido! Certo? Bem, não tão rápido. Na realidade, os problemas apenas começaram. É correto afirmar que estas APIs foram criadas para permitir que desenvolvedores de aplicações aplique facilmente a criptografia, mas elas fazem com que os desenvolvedores não se envolvam com os detalhes técnicos necessários para a correta implementação correta dos recursos. A codificação dos algoritmos é terceirizada aos provedores das APIs, que são os reais especialistas. O que pode dar errado? A criptografia é mais difícil do que parece. Para o desespero dos programadores, as APIs oferecem uma ampla variedade de algoritmos diferentes que, por sua vez, admitem múltiplos modos e opções de configuração. Além disso, cada fornecedor pode utilizar algoritmos adicionais ou, pior ainda, proporcionar diferentes valores pré-determinados para a mesma chamada da API. Como resultado, os desenvolvedores enfrentam o desafio de utilizar e orquestrar corretamente todos os componentes de uma API, sem entender a fundo o seu funcionamento. Se atrevam a entrar no túnel do terror criptográfico Imagine que você é um programador Android, o rei da programação, que não recebeu qualquer conteúdo sobre criptografia na escola, um dia você precisa aplicar um recurso de segurança tão trivial como criptografar uma variável de texto. Como você resolveria o problema? O primeiro passo é consultar o oráculo Google para saber se algo ali pode te ajudar, no entanto você vai precisar muito mais do que simplesmente criptografar a informação. Em uma apresentação recente, Maximilian Blochberger, criador da biblioteca criptográfica Tafelsatz, buscou no Google: “Android encryption example” E o resultado apresentado pelo sistema de busca em primeiro lugar foi: SecretKeySpec skeySpec = new SecretKeySpec(raw, ”AES”);Cipher cipher = Cipher.getInstance(”AES”);cipher.init(Cipher.ENCRYPT_MODE, skeySpec);byte[] encrypted = cipher.doFinal(clear);return encrypted;}[…]byte[] keyStart = ”this is a key”.getBytes();KeyGenerator kgen = KeyGenerator.getInstance(”AES”);SecureRandom sr = SecureRandom.getInstance(”SHA1PRNG”);sr.setSeed(keyStart);kgen.init(128, sr); // 192 and 256 bits may not be availableSecretKey skey = kgen.generateKey();byte[] key = skey.getEncoded();byte[] encryptedData = encrypt(key,b);byte[] decryptedData = decrypt(key,encryptedData); Vamos analisar o código acima linha por linha: encrypt(byte[] raw, byte[] clear) Não se valida a extensão dos valores de entrada ou de saída. Todos sabemos quão perigoso é trabalhar com buffers que não tenham nenhum tipo de validação. Entre outros problemas, pode-se produzir transbordos, leitura para além do array e outros pequenos problemas. SecretKeySpec skeySpec = new SecretKeySpec(raw, ”AES”); Um desenvolvedor não tem por que saber criptografia. Ele só quer proteger uma cadeia de texto. Com qual algoritmo? Não se faz nenhuma ideia, desde que seja seguro. Todas as bibliotecas oferecem uma grande variedade de algoritmos. São todos eles seguros? Infelizmente não. Em um artigo anterior, listamos os algoritmos que não devem ser usados. Se você consultar o artigo irá encontrar o AES entre os seguros, então a linha acima está correta. Ou não? Bem, não, não está porque no JCE “AES” é a abreviação de “AES/ECB/PKCS5PADDING”, que significa que a criptografia AES será usada no modo ECB de encadeamento de blocos e com a descrição do algoritmo de preenchimento escrita em PKCS#5. Se você leu o artigo sobre criptografia insegura, vai lembrar que o modo ECB é inseguro. Infelizmente, as próprias bibliotecas criptográficas podem não proporcionar opções seguras por padrão e sem as oferecem, podem usar algoritmos obsoletos por questões de compatibilidade com aplicações legadas. SecureRandom sr = SecureRandom.getInstance(”SHA1PRNG”); Se utiliza aqui o algoritmo SHA1, hoje considerado inseguro. byte[] keyStart = ”this is a key”.getBytes(); Se inicializa a chave de criptografia com uma lenha lida a partir de um parâmetro estático. Isso é uma péssima ideia. Tão ruim que ninguém poderia pensar em usar o código como descrito acima, certo? Na verdade, a derivação da chave de criptografia AES a partir de uma senha é um processo completamente falho. Existem protocolos muito mais seguros, como o PBKDF2. byte[] encryptedData = encrypt(key,b); Os dados de entrada são criptografados com a chave recém gerada. Se usamos a mesma chave para criptografar os mesmos dados, obteremos o mesmo resultado, falta diversificação! Em um bom protocolo de criptografia, mesmo que você use a mesma chave para cifrar a mesma mensagem, obterá sempre um resultado diferente. Isso é possível graças ao uso de aleatoriedade, como um vetor de inicialização aleatório, ou um contador como no modo CTR. Tecnicamente é necessário buscar que a criptográfica tenha a propriedade IND-CPA. byte[] decryptedData = decrypt(key,encryptedData); E, para terminar, que rufem os tambores, o cifrado não está autenticado o que garante a confidencialidade, mas não a autenticidade. Por exemplo, o AES-GCM proporciona ambos os recursos. Para um pequeno código exemplo, que aparece como primeiro resultado na busca do Google quando se pesquisa por “Android encryption example”, o resultado é assustador. Não se pode estranhar que 88% dos apps tenham algum erro de criptografia. Mas os problemas não acabam aqui. Inclusive, se você resolver todos os problemas demonstrados aqui, começarão aqueles realmente complicados. De onde o código vai acessar a senha do usuário? Onde vai armazenar a chave de criptografia gerada? Como vai gerenciar essa informação na memória durante a execução? De me maneira vai criptografar a própria execução? Quem tem acesso à essas chaves? Quantas vezes se reutiliza o mesmo usuário ou senha? Por quanto tempo essas informações são armazenadas? Se são exportadas para outros sistemas, como estarão protegidas? É uma lista enorme de perguntas, cujas respostas estão contidas todas no tema de gestão de chaves, uma disciplina complexa da criptografia. O que você pode fazer? Algumas dicas para quando você precisar de criptografia em seus programas Se você seguir as seguintes dicas, não podemos garantir a segurança total, mas asseguramos que seu app não estará a caminho do desastre total. 1) Nunca invente algoritmos criptográficos, use os que já existem e que sejam reconhecidamente seguros. No artigo “A criptografia insegura que você deveria deixar de usar” há uma lista de algoritmos considerados inseguros aqueles que devem ser utilizados em seu lugar. Por mais fácil que pareça inventar um algoritmo criptográfico, o processo não passa disso, aparência! Das raras vezem em que se explorou um sistema por causa da fragilidade de um algoritmo, as causas foram: Utilização de um algoritmo obsoletoUtilização de um algoritmo criado pelo próprio desenvolvedor Não cometa esse erro! 2) Nunca codifique algoritmos criptográficos, use bibliotecas de confiança Há tantos detalhes sutis que, se você não entende perfeitamente o funcionamento do algoritmo ou a biblioteca escolhida, o mais provável é que algo saia mal. Profissionais com conhecimento mais específico e avançado já trabalharam arduamente nesses componentes. Aproveite! Use uma API de criptografia confiável. 3) Entenda como rodam as funções e parâmetros da biblioteca criptográfica que você escolheu A melhor biblioteca não servirá para nada se não for bem utilizada. Você terá que tomar decisões como: O tipo de encadeamento de blocos, nunca use ECB. Use outros modos com vetores de inicialização aleatórios e diferentes a cada execuçãoO tamanho das chaves deve ser de 128 bits para criptografia simétrica, 3.072 bits ou mais para RSA e 256 bits ou mais para ECCUtilizar ou não salts: use sempre, que eles sejam aleatórios e diferentes a cada chamada da aplicaçãoQual o tipo de padding utilizarEtc. Existe um universo de bibliotecas disponíveis. Algumas delas, como a OpenSSL, são muito complexas e difíceis de usar mesmo para aqueles que entendem de criptografia, elas dão acesso à funções de baixo nível e isso significa que, para fazer tarefas complexas, como autenticar e cifrar uma mensagem, seja necessário invocar uma dúzia de funções diferentes. Quantas oportunidades para cometer um erro! Por esse motivo, alguns profissionais de criptografia benevolentes, preocupados com o bem da humanidade, criaram bibliotecas intuitivas e fáceis de usar, com funções com o mais alto nível possível. No lugar de expor funções básicas, essas bibliotecas dão acesso às tarefas, como por exemplo “autenticar e criptografar uma mensagem” ou “assinar um documento”. É a própria API que se encarrega dos detalhes mais operacionais de cada ação. Algumas bibliotecas que você pode avaliar e que usam essa filosofia são NaCl, Tafelsalz ou Libsodium, todas elas com o objetivo se tornar quase impossível cometer um erro de segurança na implementação. 4) Gerencia suas chaves Utiliza chaves geradas aleatoriamente. Não use sementes estáticas ou que possam ser facilmente adivinhadas, como a hora. Você vai precisar de funções criptográficas seguras e sua API as terá, lembre que a função random() não serve! Não use senhas como chaves. Use funções de derivação de chaves a partir de senhas. Não sofra, a sua API as terá. Nunca use chaves constantes. Se você usa criptografia assimétrica: Não copie chaves privadas, nem as armazene e texto plano, você também não deve escrevê-las nos códigos dos seus apps (hard-code)Evite usa a mesma chave pública para operadores diferentes: criptografia, autenticação, assinatura etc. Uma programação ruim torna qualquer criptografia insegura Por mais que uma biblioteca criptográfica seja a prova de erros, o programador tem que entender o que está fazendo, mesmo que superficialmente. A realidade é que muitos desenvolvedores não têm compreensão formal da aplicação da criptografia em suas aplicações, mesmo que sejam especialistas no desenvolvimento de software. Veja, não é necessário se converter no Cavaleiro Criptográfica da Ordem das Cifras, mas também não causará mal nenhum ler um bom tutorial sobre criptografia ou realizar algum curso online de qualidade. E se você quiser provar seus conhecimentos sobre o tema, enquanto escreve códigos, há bons desafios no Cryptopals. Consuma seus cereais criptográficos todas as manhãs! Como se está ocultando o Emotet e malwares de macro nos últimos temposCOVID-19: Guia de riscos e recomendações sobre segurança cibernética
Como se está ocultando o Emotet e malwares de macro nos últimos temposElevenPaths 7 noviembre, 2019 Nesse blog vamos revisar de forma rápida algumas formas simples para reconhecer visualmente nas linhas de código as últimas ameaças de malware de marco. Apresentaremos três exemplo comuns hoje em dia, mas podem existir muitos mais. Você poderá ver uma imagem clara do que o usuário verá e como será incitado a executar as macros maliciosas e finalizaremos com uma breve revisão da estrutura de código de cada amostra com sua característica principal. O malware de macro é uma ameaça muito ativa nos últimos tempos que está passando por uma dourada desde 2014, depois de muitos anos de silencia (praticamente desde o início dos anos 2000). Ultimamente, o Office por si só, seja através de vulnerabilidades ou de macros maliciosas, está se convertendo em uma ameaça crítica. No gráfico abaixo, podemos observar que que os ataques e falhas que usam a plataforma Office cresceram até 70% do total em 2018. A seguir, vamos analisar três exemplos de malware de macro típicos. Cases para nada O has analizado nesse exemplo é o seguinte: 0af2ecaab930bdcb2daff398115a17750c96b5d34cb69df0b9884d5363043ebf Quando se abre o arquivo malicioso, o documento mostra uma imagem similar a esta, esperando que o próprio usuário habilite as macros. O arquivo contém até 12 macros, de diferentes tamanhos: As macros mais pesadas se caracterizam pela grande quantidade de código comentado. Nessa amostra em particular, foram usadas muitas instruções “case” que nãos ervem para nada além de ofuscar o código e tentar enganar os antivírus. Comentários sem sentido A amostra analisada é: f86caacee45fe5c5d010cd4ce227e9218612a27db4a5126e2ed0d5ae125fc4a4 Quando o usuário abre o documento, é mostrada a tela abaixo, esperando que ele próprio haja para garantir a infecção. Os arquivos maliciosos estão hospedados em sites comprometidos (normalmente em WordPress) onde também estão armazenados outros documentos perigosos e payloads que podem ser descarregados nos dispositivos dos usuários. No exemplo, encontramos quatro macros, duas mais volumosas e outras duas menores. A macro de 680 bytes nesse exemplo usa em seu código elementos visuais orientados a eventos (por exemplo campos de texto que chamam funções). Os elementos visuais não são mostrados e servem, novamente, somente para despistar os antivírus. Esse último recurso abaixo é bastante comum nas últimas ameaças Emotet. As macros contêm uma infinidade de comentários, palavras aleatórias reais misturadas com funções matemáticas também com a função de evitar a detecção. O objetivo: iniciar uma nova instância do navegador para fazer o download de mais arquivos maliciosos. Emotet clássico, MACs e e-mails criados Há vários tipos de malware na família Emotet, mas o exemplo em azul acima é um dos mais habituais. A amostra analisada é: 99cbb727d4e6ae593f1106b4d8bdb5e312001619 Novamente, as amostras incluem cerca de cinco macros. Aqui podemos ver que o código está cheio de comentários, são valores como endereços de e-mail aparentemente válidos, endereços MAC e valores de hash. Todos os valores nessas linhas não têm função aparente, além de despistar os antivírus. Conclusões e recomendações Ainda que não tenhamos realizado uma análise muito exaustiva de cada amostra, pudemos ver os exemplos mais representativos do malware de macro. É possível encontrar outras aparências visuais e formatos mas temos que notar que, sempre que o documento incite o usuário a habilitar macros explicitamente, é bem possível que ele seja um malware. O que acontece quando esses documentos são executados? Depende, mas a carga maliciosa pode incluir desde ransomware até instruções para movimentação lateral de exploração na rede. Resumidamente, podemos concluir que: As ameaças malware de macro continuam sendo usadas e os motores de antivírus tem muitos problemas na detecção estática graças aos truques utilizados nos códigos e que vimos anteriormenteNão conhecer o inimigo torna mais difícil o combate. É importante conhecer os exemplos de macros maliciosas, como as capturas de tela apresentadas aqui, isso permitirá que o usuário não habilite as macros Na dúvida, e se o documento contiver informação confidencial, você pode usar a nossa ferramenta Diario. Verificação em duas etapas no WhatsApp, segurança adicional ou enganação?Os programadores saudáveis comem cereais criptográficos todas as manhãs
Verificação em duas etapas no WhatsApp, segurança adicional ou enganação?ElevenPaths 29 octubre, 2019 O WhatsApp é a aplicação de mensagens mais utilizada no mundo, somando mais de 1,5 Bilhão de usuários em mais de 180 países. Essas aplicações de comunicação cada dia mais usadas são atualizadas com medidas de segurança para garantir a privacidade dos usuários, uma delas é a verificação em duas etapas. O WhatsApp introduziu o recurso em 2016, anos mais tarde do que outros players como Google (2012) e Facebook (2011). Houve recentemente casos de uso indevido de aplicações de mensagens, como a invasão do WhatsApp de Albert Rivera, líder do partido Ciudadanos na Espanha, e o que ficou conhecido como Vaza Jato, o hacking que tornou pública a troca de mensagens entre promotores e juízes no Brasil. Esses ataques ocorreram apesar da verificação de dois fatores, o que indica que, hoje, essa é uma medida básica de segurança. Como funciona a verificação em duas etapas? Em linhas gerais, a verificação em duas etapas do WhatsApp funciona assim: Ao conectar a aplicação pela primeira vez em um novo dispositivo, é solicitada um passo adicional de verificação de acesso caso esse recurso estivesse ativado para a contaUma vez instalado, o app pedirá de maneira periódica um código de verificação criado pelo usuário para confirmar a continuidade do acesso legítimos à conta Aparentemente, ambos os recursos são destinados a proteger as contas, mas de maneira diferente: a primeira é evitar que a conta seja sequestrada a partir de outros dispositivos e a segunda é evitar acesso à conta caso o dispositivo em que ela esteja cadastrada seja perdido ou roubado. Mas o quadro não é tão simples assim, já que a solicitação recorrente da senha não é, na realidade, uma medida de segurança considerada como segundo fator de autenticação. Isso porque o código não é necessário para acessar as conversas no app, na verdade é possível driblar essa verificação, como mostramos no vídeo abaixo. O que o Facebook tem a dizer? No vídeo podemos ver como a verificação em duas etapas não impede o acesso à informação do app, mesmo sem o conhecimento do código, isso nos levou e pensar em uma possível vulnerabilidade que levamos ao conhecimento do Facebook, empresa dona do WhatsApp e que gerenciam seu programa de bug bounty. Nossa mensagem foi a seguinte: Descrição “Usando um telefone Android, Xiaomi Redmi Note 5, com Android versão 8.1.0 e um Huawei Note Pro, ambos usando a versão 2.18.277 do WhatsApp, pudemos realizar o by pass na autenticação em dois fatores.” Impacto “É possível acessar todas as informações nos dispositivos quando o by pass no 2º fator de autenticação é realizado, também pode-se enviar e receber mensagens e conversas em grupo.” A resposta do Facebook foi a seguinte: Conscientização É importante que os usuários entendam os recursos de proteção que são aplicados aos seus dados pessoais e, nesse caso, que saibam que se não dispõem do PIN ou padrão de bloqueio do dispositivo, ainda é possível acessar as conversas armazenadas do WhatsApp. Na minha opinião, adicionar um sistema que parece com uma medida de segurança sem que o seja realmente, cria uma falsa sensação de segurança no usuário. O incômodo de receber a solicitação do PIN de forma habitual pode levar alguns usuários a desativar por completo o segundo fator de autenticação já que, como indica o próprio WhatsApp em seu site, não é possível ter um recurso habilitado sem ou outro. Desabilitar por completo as verificações adicionais põem em risco as contas do usuário. Entendemos que o WhatApp introduziu essa medida com a intenção de facilitar o uso pelo usuário, mas como vimos ele tem problemas de implantação. Esperamos que o WhatsApp corrija essa implementação, modificando como ela funciona para permitir que o usuário decida seus recursos de proteção de conta de maneira mais granular. Para todos nós que trabalhamos com cibersegurança, é importante conhecer esses casos de uso e não cair nesse tipo de medida que pode confundir o usuário. WebAuthn, outra proposta para um mundo sem senhasComo se está ocultando o Emotet e malwares de macro nos últimos tempos
WebAuthn, outra proposta para um mundo sem senhasElevenPaths 25 septiembre, 2019 Falamos em várias ocasiões sobre o estado atual das autenticações, de como a combinação nome de usuários e senha está ficando antiquada, não só por suas fragilidades relacionadas ao momento de seleção de uma boa senha, mas também pela maneira como se armazena esses dados nos diversos sistemas. Dentre as alternativas propostas para solucionar esses problemas, o WebAuthn nos parece interessante. Até hoje, todas as estratégias de melhoria ao esquema atual de autenticação foram patches ou “panos quentes”. Os atacantes podem exfiltrar a base de dados com hashes e recuperar senhas mediante ataques rainbow table, basta adicionar um sal à senha. As senhas escolhidas pelo usuário são fracas ou previsíveis? Criemos um conjunto de regras, maiúsculas, números, símbolos que, ao final e paradoxalmente, farão com que o usuário as esqueça e resete sua senha a cada login. Se há uma constante na ciência e na tecnologia é que tudo muda. Mas a mudança aqui não deve ser manter o sistema e adicionar um segundo fator de segurança, ou uma solução de gestão de identidades que nada mais fazem do que “centralizar” o problema. Sabemos que o desaparecimento da combinação usuário e senha não vai acontecer no curto ou mesmo no médio prazo, as novas soluções para o problema serão adotadas somente após o conhecimento geral das falhas desse sistema que levarão à exploração de alternativas que permitam, progressivamente, nos livrar desse padrão. Falamos do WebAuthn, iniciativa adotada por Microsoft, Mozilla, Google e Yubico, dentre outros. A ideia é simples: substituir a criação de autenticação de contas em aplicações web baseadas em senhas por um esquema focado em criptografia de chave pública e apoiado em mecanismos de autenticação já existentes nos sistemas como o Windows Hello ou o Apple Touch ID. Essa técnica tem um efeito importante, ainda que não definitivo, em relação ao armazenamento de credenciais em servidores, já que não se armazena nenhum dado secreto do usuário em bases de dados. O que os atacantes encontrariam seria um conjunto de chaves públicas que não tem qualquer utilizada para acessar a conta alvo e muito menos utilizar esses dados para se conectar a múltiplos websites, o que resolve outro grande mal: o uso repetido de senhas para vários serviços. Assim, quando o usuário se registra em uma aplicação web, não se solicita qualquer dado de acesso, nesse processo, de forma transparente, serão geradas duas chaves, uma pública que será armazenada na aplicação e outra privada (essa a mais importante) que permanecerá guardada no dispositivo do usuário. Essa última é que servirá para assinar tudo o que sair do dispositivo e a pública se encarregará de constatar a autenticidade no lado do servidor. No esquema abaixo podemos ver o ciclo de registro em uma aplicação web: Como podemos ver, o papel central do processo se reserva ao navegador (na realidade em qualquer user-agent que implemente as APIs), que incorpora a API específica de WebAuth para se comunicar com o relaying (a aplicação na qual se deseja efetuar o login) e o “autenticador” que pode ser, por exemplo, um leitor de digitais ou sistema de reconhecimento facial que vai certificar a identidade do usuário. Após esse registro, o sistema está pronto para realizar a autenticação. Como podemos ver no esquema, as partes do processo seguem sendo as mesmas. Se trata nesse caso de um ciclo muito similar ao de registro, só que mais simplificado, que dá resposta a um desafio gerado pela aplicação a qual queremos nos conectar e da qual já temos cadastro. O “autenticador”, por exemplo o leitor de digitais, nos pedirá para realizar o teste de identidade e responderá ao desafio. Sem o uso de qualquer senha. Além disso, pode-se aproveitar as capacidades de pareamento dos dispositivos do usuário. Desse modo, ainda que saiamos da aplicação em um dispositivo (no celular por exemplo), podemos delegar a autenticação usando o mecanismo de autorização desse dispositivo ao acessar de outro local. O site solicitaria a autenticação, mas esse pedido seria desviado ao telefone celular do usuário, que é o dispositivo que originou a criação da conta e contém a chave privada, similar ao conceito de algumas aplicações móveis que usam como segundo fator de autenticação um “pressione aqui para autorizar acesso”. Sem dúvida nenhuma, é uma vantagem não depender da digitação de um usuário e escolha de senha forte, que não seja compartilhada em diversos sites e que não tenha que ser lembrada (no caso de não se usar um gerenciador de senhas). Por um lado, uma credencial em texto plano pode ser roubada (com o uso de um keylogger ou por descuido do usuário), ou se pode quebra-las se são fracas ou seguem um padrão, por outro lado a forma atual (segura ou não) de armazenar essas senhas (ou seu hash) em uma base de dados segue sendo um quebra cabeças para os desenvolvedores, ainda mais quando essa base de dados acaba sendo publicada por uma invasão ou vazamento. Com a capacidade biométrica implementada em dispositivos móveis a cada atualização, cresce o potencial de aplicação e integração desse sistema em todo tipo de aplicação, afinal estamos sempre com nossos celulares à mão. Ainda que não estejamos próximos do fim das senhas, iniciativas como o WebAuthn nos levam para um processo de autenticação mais seguro, sem deixar de ser mais cômodo. Vazamentos de binários: de bases de dados de cidadãos a senhas expostas em aplicações de governamentaisVerificação em duas etapas no WhatsApp, segurança adicional ou enganação?
Vazamentos de binários: de bases de dados de cidadãos a senhas expostas em aplicações de governamentaisElevenPaths 19 septiembre, 2019 Nossa equipe de CSAs realizou uma série de testes para evidenciar o estado atual da segurança de aplicações fornecidas por governos de diferentes países da fala hispânica. Realizamos uma revisão geral das falhas potenciais em relação ao desenvolvimento de software e como a falta de controles de segurança adequados poderia ser aproveitada por atacantes. Descobrimos desde senhas até base de dados completas que não deveriam ser públicas. As aplicações criadas por governos deveriam oferecer (tanto ou mais do que o resto) controle de segurança apropriados para salvaguardar a confidencialidade, integridade e disponibilidade da informação. Através dessas aplicações se resolvem trâmites aduaneiros ou tributários, gestão financeira, administração pública, serviços educativos, cobrança eletrônica, gestão de dados hospitalares e de saúde, documentação de identificação individual e muitos outros que podem conter informação sensível. Realizamos testes nos arquivos binários (executáveis) de aplicações que as organizações governamentais disponibilizam em seus sites para que os cidadãos façam o download e as instalem em seus dispositivos. Metodologia Foram analisadas 62 aplicações com foco na região latino-americana com as seguintes funções: 22 aplicativos relacionados a gestão de informações tributárias e declaração de impostos para pessoas ou empresas e 5 dedicados a gestão de informação aduaneira15 programas que permitem gerenciar informação de administração pública como dados escolares, compras públicas, dados de ministérios e previdência social10 aplicações que permitem gerenciar serviços eletrônicos como emissão de certificados digitais, processos de gestão pública e assinaturas eletrônicas6 aplicações para gestão de dados financeiros, seguros e contabilidade4 aplicações para gerenciar informação de entidades sanitárias É importante ressaltar que os testes não têm qualquer objetivo de atacar a infraestrutura tecnológica das organizações pesquisadas, assim como acessar qualquer informação sensível das organizações públicas ou facilitação de informações que possam ligá-las aos resultados obtidos no estudo. Esse documento tem o objetivo de colocar em contexto os riscos que ameaçam a segurança de cidadãos e empresas usuárias, criadas por falhas no desenvolvimento ou implementação da aplicação. Isso é muito importante especialmente porque muitos desses softwares estão, provavelmente, funcionando como parte do conjunto de aplicações instaladas dentro das redes locais dessas empresas. Resultados Apresentamos abaixo alguns dos resultados mais relevantes da pesquisa: Detectamos aplicações que incluem arquivos do tipo MS Access (.mdb) que armazenam os dados utilizados em seu funcionamento. Revisando essa funcionalidade pudemos detectar que 14% das aplicações armazenam informação sensível em texto plano, incluindo nomes de usuários, senhas, credenciais de aplicativos e, em alguns casos, até credenciais de acesso a servidores. Mesmo que algumas dessas bases de dados estivessem protegidas por senha, após uma descompilação de código pudemos obter várias dessas senhas. Em relação às medidas de segurança aplicadas aos binários (arquivos executáveis das aplicações), encontramos 8 melhores práticas de segurança utilizadas durante a criação que previssem um impacto maior no sistema operacional, caso vulnerabilidades sejam exploradas. Em algumas descompilações de binários (feitas com facilidade ao utilizarem .NET), podemos observar senhas de acesso às bases de dados. Uma boa prática para eliminar falhas de segurança durante o desenvolvimento de softwares é proibir o uso de funções descontinuadas ou obsoletas. Essas funções são assinaladas como vulneráveis nas diferentes linguagens de programação e, muitas vezes, por fabricantes. Além disso, é importante usar versões atualizadas de tecnologias de programação e bibliotecas de terceiros. Conclusões De acordo com nossa análise, podemos destacar as seguintes conclusões gerais: No total encontramos 148 funções obsoletar ou vulneráveis utilizadas no desenvolvimento das 62 aplicações. Entre as mais utilizadas estão memcpy(), strlen(), strcpy(), strcat() e sprintf() que podem criar um grau relevante de insegurança no host onde a aplicação é executadaEm relação ao nível de segurança identificado nos binários, podemos destacar que as tecnologias mais recentes como CFG não estão ativadas em nenhum dos apps analisados. Outros tipos de controles como ASLR e DEP só estão presentes em 30% das aplicações. A habilitação de recursos “anti-exploiting” é uma prática crítica e necessário no ciclo de desenvolvimento para elevar o nível de segurançaA proteção do código fonte desses programas está presente somente em 8 das 62 aplicações, que usam ofuscação em alguns dos casos de maneira parcialSó 8% dos programas usam certificados digitais para atestar sua autenticidade, o que não permite ao cidadão conferir se aquele executável é original ou nãoIdentificamos que 17 aplicações estabeleceram comunicação com serviços nas entidades e que somente quatro delas usava canais seguros HTTPS. Em 13 aplicações era possível interceptara informação através de canais inseguros.5 aplicações são detectadas como contendo código malicioso no momento de sua execuçãoPudemos identificar que 20 aplicações armazenam configurações (URLs, IP privados, nomes de usuário, senhas, chaves API etc.) em texto planoPudemos identificar 8 credenciais (nomes de usuário e senhas, JKS Keys, tabelas de conexões e bases de dados) escritas em texto plano no código O relatório completo está disponível aqui: Binary leaks: Análisis de las aplicaciones proporcionadas por gobiernos en HISPAM from ElevenPaths Blockchain e cibersegurança: uma breve aproximação (parte 1)WebAuthn, outra proposta para um mundo sem senhas
Blockchain e cibersegurança: uma breve aproximação (parte 1)ElevenPaths 17 septiembre, 2019 O blockchain vai mudar as regras da tecnologia da informação da mesma maneira que o software de código aberto o fez há alguns anos, ou como fez o Linux para o desenvolvimento de aplicações modernas. A dúvida que surge é quanto tempo vai demorar para que a tecnologia blockchain se converta em um padrão de mercado para proteger as informações compartilhadas entre redes abertas e privadas? Todas as informações apontam que esse cenário não demora muito para se tornar realidade. Em termos simples, o blockchain não substituirá os bancos de dados relacionais, o modelo ao qual estamos todos acostumados, mas criará um novo paradigma para os dados transacionais dentre (e fora) das empresas, isso é disruptivo por si só. Conceitualmente, isso é o TCP/IP aplicado ao mundo dos negócios e das transações. Nos anos 70 e 80, não se podia imaginar o quanto o protocolo de comunicação era robusto e escalável como se mostrou, agora sabemos que o TCP/IP nos permite utilizar todas as funções e aplicações na web. O blockchain tem o mesmo potencial. Falando sobre a parte que nos interessa mais, a cibersegurança vai aumentar em efetividade, na teoria o as aplicações incluem a prevenção de fraude, detecção de manipulação de dados, encriptação e auditoria. Algo genial! Além disso, tudo funciona de maneira descentralizada, em uma rede compartilhada em que cada um dos participantes conhece seu papel. Um blockchain é a compilação de registos conhecidos como blocos, protegidos por criptografia. Cada um desses blocos compartilha informação de outros blocos da cadeia, dados sobre transações e timestamps. Quando se completa um bloco o sistema atribui a ele um código seguro único que o vincula ao próximo a ser criado, temos uma rede peer to peer, combinada a um servidor distribuído de timestamp, com administração autônoma. Não há necessidade de um administrador, na verdade os usuários do blockchain são os administradores. Além disso, as redes de blockchain podem ser usadas para contratos inteligentes ou scripts que são executados automaticamente quando cumpridas determinadas condições. Por exemplo, os usuários da criptomoeda Ethereum devem cumprir as condições pré-determinadas que provam que aquela pessoa detém o dinheiro que diz possuir. Os usuários de múltiplas blockchain podem criar contratos que requem mais do que um conjunto de entradas para ativar uma transação. O Facebook assinava um dos seus apps com uma chave privada compartilhada com outros apps no Google Play desde 2015Vazamentos de binários: de bases de dados de cidadãos a senhas expostas em aplicações de governamentais