Os Perigos do Software Evidencial – ou Quem Garante o Bafômetro?

No Lawfare Blog, Susan Landau escreve um excelente ensaio sobre os riscos apresentados pelos aplicativos usados em dispositivos de coleta de evidências (um bafômetro é provavelmente o exemplo mais óbvio). Bugs e vulnerabilidades nessa classe de equipamento podem levar a evidências imprecisas. Para compor o problema, a natureza proprietária do software torna difícil para a equipe de defesa dos réus examiná-lo. A seguir um brevíssimo resumo da essência do material.

Imagem: iStock

[…]

Os engenheiros de software propuseram um teste de três partes.

Primeiro, o tribunal deve ter acesso ao “Log de erros conhecidos”, algo que deve fazer parte de qualquer bom projeto de software desenvolvido profissionalmente.

Em seguida, o tribunal deve considerar se as provas apresentadas podem ser afetadas materialmente por um erro de software. Ladkin e seus co-autores observaram que a maioria das funcionalidades não apresentará erro, mas o momento preciso em que o software registra o uso do dispositivo pode facilmente estar incorreto.

Finalmente, os especialistas em confiabilidade recomendaram verificar se o código adere a um determinado padrão da indústria usado em uma versão não computadorizada da tarefa (por exemplo, os contadores sempre registram todas as transações – portanto, o software usado na contabilidade também deve registrar).

[…]

Objetos inanimados há muito servem como prova em tribunais: a maçaneta da porta contendo uma impressão digital, a luva encontrada na cena de um crime, o resultado do bafômetro que mostra um nível de álcool no sangue três vezes o limite legal. Mas o último desses exemplos é substancialmente diferente dos outros dois. Os dados de um bafômetro não são a entidade física em si, mas sim um cálculo de um software a respeito do nível de álcool no hálito de um motorista potencialmente bêbado. Desde que a amostra de respiração tenha sido preservada, pode-se sempre voltar e testá-la novamente em um dispositivo diferente.

O que acontece se o software cometer um erro e não houver mais nenhuma amostra para verificar? Ou, e se o próprio software produzir a evidência contra o réu? No momento em que escrevemos este artigo, não havia nenhum precedente no qual a lei permita que o próprio réu examine o código subjacente.

[…]

Dada a alta taxa de erros em sistemas de software complexos, meus colegas e eu concluímos que, quando programas de computador produzem uma prova, os tribunais não podem presumir que o software probatório seja confiável. Em vez disso, a acusação deve disponibilizar o código para uma “auditoria contraditória” pelos especialistas designados pelo réu[1]. E para evitar problemas em que o governo não tenha o código para que este seja inspecionado, os contratos de compras governamentais devem incluir a garantia de entrega do código-fonte do software adquirido – código que seja mais ou menos legível pelas pessoas – para cada versão do código ou dispositivo.

Ler o trabalho na íntegra [em inglês] em Lawfare Blog.

* * *

O comentário pertinente é: o Estado pode exigir calibração regular do bafômetro, mas quem os inspeciona? Há garantia de que o poder público multará a polícia por não verificar se os bafômetros estão calibrados de forma adequada além de estar também funcionando corretamente? E quem calibra os calibradores?

Se nenhuma amostra da respiração for retida, apenas o registro da observação do software, como a leitura de um bafômetro é essencialmente diferente de um boato ou palavra-de-boca? Será porque o bafômetro é “tecnológico”? Assumir que o instrumento é mais preciso que uma testemunha humana, apenas porque é tecnológico, gera outros grandes problemas conceituais.

Mas acho que o ponto mais amplo é este: dada a quase total falta de responsabilidade da indústria do software, a inescrutabilidade do código proprietário e a qualidade duvidosa da maioria do software comercial, um tribunal – que busca a verdade – não deve acolher prima facie evidências que consistam exclusivamente do resultado de um software.

Este não é um problema técnico, mas um problema legal causado por políticas inadequadas: a indústria do software precisa de regulamentação, responsabilidade e reforma das leis de direitos autorais.

[1] Um especialista que consultei – que um dia estará escrevendo neste espaço, gentilmente me explicou [o que agradeço penhoradamente] que esse protocolo não existe no ordenamento brasileiro. Mas da explicação depreendo que a lei brasileira pode comportar soluções análogas a essa.

Confiança Zero: Nada é Seguro na Internet

O decreto de segurança cibernética do presidente Joe Biden, assinado no último 12 de maio, estipula que o governo federal americano adote uma “arquitetura de confiança zero” em seus sistemas computacionais. Isso levanta algumas questões. O que é segurança de confiança zero? E mais, se a confiança no usuário é ruim para a segurança, por que a maioria das organizações do governo e do setor privado a pratica?

Imagem: iStock

Uma consequência do excesso de confiança online é a epidemia de ‘ransomware‘ [programas maliciosos que sequestram o sistema em que operam, através da encriptação do conteúdo], um problema global crescente, que afeta grandes e pequenas organizações. Intrusões de alta visibilidade, como a recentemente experimentada pela empresa Colonial Pipeline, nos EUA, são apenas a ponta do iceberg.

Houve pelo menos 2.354 ataques de ransomware em governos locais, instalações de saúde e escolas nos Estados Unidos no ano passado. Embora as estimativas variem, as perdas com ransomware parecem ter triplicado em 2020 para mais de US$ 300.000 por incidente. E os ataques estão ficando mais sofisticados.

Um tema recorrente em muitas dessas violações é a confiança perdida – em fornecedores, funcionários, software e hardware. Como profissional de sistemas e estudioso de segurança digital tenho interesse em questões de confiança. Comentemos aqui alguns aspectos da arquitetura de confiança zero, e como ela contribui para a resistência dos sistemas distribuidos.

Segurança sem confiança

A confiança, no contexto das redes de computadores, refere-se a sistemas que permitem o acesso de pessoas, ou outros computadores, com pouca ou nenhuma verificação sobre quem são e se estão autorizados a ter acesso. Por outro lado, ‘confiança zero’ é um modelo de segurança que pressupõe que as ameaças são onipresentes, dentro e fora das redes. Assim, a confiança zero depende de verificações contínuas por meio de informações de várias fontes. Essa abordagem pressupõe a inevitabilidade da violação dos dados. Em vez de se concentrar exclusivamente na prevenção de violações, a segurança de confiança zero procura garantir que os danos sejam limitados, que o sistema seja resiliente e possa se recuperar rapidamente.

Usando uma analogia epidemiológica, a abordagem da confiança zero para a segurança cibernética sempre pressupõe que uma infecção está apenas a um perdigoto – ou, neste caso, um clique – de distância. Dito de outra forma, em vez de defender o castelo, esse modelo assume que os invasores já estão dentro das muralhas.

Não é difícil ver os benefícios do modelo de confiança zero. Se a Colonial Pipeline tivesse adotado um sistema parecido, o ataque de ransomware de que foi vítima provavelmente teria falhado e as pessoas não teriam entrado em pânico. E se a segurança de confiança zero fosse de uso generalizado na rede, a epidemia de ransomware que nos flagela seria muito menos custosa

Quatro obstáculos para perder a confiança

Existem pelo menos quatro barreiras que impedem a adoção de arquiteturas de confiança zero nos sistemas governamentais e privados.

Em primeiro lugar, os sistemas legados e a infraestrutura geralmente são impossíveis de atualizar. Alcançar a segurança de confiança zero requer uma defesa em camadas, que envolve a construção de vários níveis de segurança. No entanto, é muito difícil de implementar em sistemas que não foram construídos com esse objetivo em mente, porque essa arquitetura requer verificação independente em cada camada.

Em segundo lugar, mesmo que seja possível fazer upgrade, o custo será significativo. É caro, demorado e potencialmente perigoso reprojetar e reimplantar sistemas, especialmente se eles forem feitos sob medida. O Departamento de Defesa dos EUA sozinho opera mais de 15.000 redes em 4.000 instalações espalhadas por 88 países.

Terceiro, as tecnologias ponto-a-ponto, como os computadores que executam Windows 10 em uma rede local, não são adequadas à confiança zero porque são baseadas principalmente em senhas, e não em autenticação multifator em tempo real. Senhas podem ser quebradas por botnets que calculam rapidamente muitas senhas possíveis – os chamados ‘ataques de força bruta’ – enquanto a autenticação multifator em tempo real requer, além de senhas, uma ou mais formas adicionais de verificação – normalmente um código enviado por e-mail ou texto. (*)O Google anunciou recentemente a decisão de exigir autenticação multifator para todos os seus usuários.

Quarto, fazer a migração dos sistemas de informação de uma organização para serviços em nuvem pode melhorar as condições para a adoção da confiança zero, mas apenas se tudo for feito da maneira correta. Isso exige a criação de novos aplicativos na nuvem, em vez de simplesmente mover os aplicativos existentes para a nuvem. As organizações precisam de expertise para planejar uma segurança de confiança zero ao migrar para a nuvem, o que nem sempre está disponível.

O Decreto de Biden

A ordem executiva do governo Biden tenta promover uma defesa em camadas para enfrentar os problemas de segurança cibernética do país. A ordem executiva seguiu várias recomendações da Cyberspace Solarium Commission, uma comissão formada pelo Congresso para desenvolver uma abordagem estratégica para defesa dos EUA no ciberespaço.

Entre outras coisas, a abordagem se inspira nas estruturas de confiança zero propostas pelo Instituto Nacional de Padrões e Tecnologia (National Institute for Standards and Technology – NIST). Ela também convoca o Departamento de Segurança Interna (Department of Homeland Security – DHS) a assumir a liderança na implementação dessas técnicas, inclusive em seus programas baseados em nuvem.

Quando combinada com as outras iniciativas definidas na ordem executiva – como a criação de um Conselho de Segurança Cibernética e a imposição de novos requisitos para a segurança da cadeia de suprimentos de software para fornecedores federais – a segurança de confiança zero pode, de fato, levar os EUA na direção certa.

No momento, essa ordem executiva se aplica apenas aos sistemas governamentais. Ela não teria impedido o ataque à Colonial Pipeline, por exemplo. Para colocar o país como um todo em uma posição mais segura é preciso ajudar o setor privado a também adotar essas práticas de segurança. Isso exigirá ação do Congresso.

Publicado sob a Licença Creative Commons 4.0

Adaptado de “The Conversation

Verdades, Mentiras e Automação

Sob licença, apresentamos a seguir, traduzido e adaptado, um muito temporâneo estudo publicado no último dia 21 pelos autores Ben Buchanan, Andrew Lohn, Micah Musser e Katerina Sedova, do Centro para Segurança e Tecnologia Emergente (CSET – Center for Security and Emerging Technology), analisando o terrivel problema da desinformação turbinada por tecnologias de “Inteligência Artificial” (mais propriamente referida como Aprendizado de Máquina). O texto é narrado na primeira pessoa do plural

Por milênios, campanhas de desinformação têm sido empreendimentos fundamentalmente humanos. Seus perpetradores misturam verdades e mentiras em potentes combinações, que visam semear a discórdia, criar dúvidas e provocar ações destrutivas. A campanha de desinformação mais famosa do século XXI – o esforço russo para interferir na eleição presidencial dos EUA de 2016- contou com centenas de pessoas trabalhando juntas para ampliar as fissuras preexistentes na sociedade americana.

Desde o início, escrever sempre foi um esforço fundamentalmente humano. Mas as coisas não são mais assim. Em 2020, a empresa OpenAI revelou o GPT-3, (Generative Pre-trained Transformer) um poderoso sistema de “inteligência artificial” que gera texto baseado em um estímulo provocado por operadores humanos. O sistema, que combina uma vasta rede neural, um poderoso algoritmo de aprendizado de máquina e mais de um trilhão de palavras de escrita humana para orientação, é notável. Entre outras realizações, ele já redigiu um artigo de opinião encomendado pelo The Guardian, escreveu histórias originais que a maioria dos leitores pensava ter sido escrita por humanos e criou novos memes para a Internet.

Diante dessa descoberta, consideramos uma questão simples, mas importante: pode a automação gerar conteúdo para campanhas de desinformação? Se o GPT-3 pode escrever notícias aparentemente confiáveis, é possível também que possa escrever notícias falsas convincentes; se pode redigir artigos de opinião, talvez possa redigir tweets enganosos.

Para resolver esta questão, primeiro apresentamos o conceito de parceria ou equipe homem-máquina, mostrando como o poder do GPT-3 deriva, em parte, do estímulo criado pelo homem, ao qual ele responde. Ganhamos acesso gratuito ao GPT-3 – um sistema que não está disponível para uso público – para estudar a capacidade do GPT-3 de produzir desinformação como parte de uma equipe homem-máquina.

Mostramos que, embora o GPT-3 seja bastante capaz por seus próprios méritos, ele atinge novos patamares de capacidade quando combinado com um operador/editor humano experiente. Como resultado, concluímos que, embora o GPT-3 não substitua totalmente os humanos nas operações de desinformação, ele é uma ferramenta que pode ajudar a criar mensagens de qualidade moderada a alta, em uma escala muito maior do que anteriormente possível.

Para chegar a esta conclusão, avaliamos o desempenho do GPT-3 em atividades que são comuns em muitas campanhas de desinformação modernas. A Tabela 1 descreve essas tarefas e o desempenho do GPT-3 em cada uma.

Tabela 1

Entre essas e outras avaliações, o GPT-3 provou ser tão poderoso como limitado. Quando estimulada de maneira adequada, a máquina funciona como um gravador versátil e eficaz que, no entanto, é limitado pelos dados nos quais foi treinada. Sua redação é imperfeita, mas essas suas desvantagens – como falta de foco na narrativa e tendência a adotar pontos de vista extremos – têm pouca importância na criação de conteúdo para campanhas de desinformação.

Caso os adversários optem por empregar esse tipo de automação em suas campanhas de desinformação, acreditamos que a implantação de um algoritmo como o GPT-3 esteja dentro da capacidade de governos estrangeiros, especialmente os que entendem de tecnologia, como China e Rússia. Será difícil, mas quase certamente possível para esses governos construir a capacidade computacional necessária para treinar e operar tal sistema, caso desejem fazer isso.

Mitigar os perigos da automação na desinformação é um desafio. Uma vez que o texto produzido pela GPT-3 combina tão bem com a escrita humana, a melhor maneira de impedir o uso de sistemas como o GPT-3 em campanhas de desinformação é se concentrar na infraestrutura usada para propagar as mensagens da campanha, como contas falsas nas redes sociais, em vez de tentar determinar a quem atribuir o texto.

Vale a pena considerar as mitigações porque nosso estudo mostra que há uma possibilidade real de se usar ferramentas automatizadas para gerar conteúdos para campanhas de desinformação. Em particular, nossos resultados devem ser encarados como uma estimativa pessimista do que sistemas como o GPT-3 podem oferecer. Adversários não limitados por preocupações éticas e estimulados por grandes recursos e capacidade técnica, provavelmente serão capazes de usar sistemas como o GPT-3 de maneira mais abrangente do que nós nesta pesquisa, embora seja difícil saber se eles realmente vão optar por essa linha de ação.

Em particular, com a infraestrutura certa, eles provavelmente serão capazes de aproveitar a escalabilidade que tais sistemas automatizados oferecem, gerando um grande número de mensagens e inundando o cenário de informações com as criações mais mirabolantes.

Nosso estudo mostra a plausibilidade – mas não a inevitabilidade – desse futuro, no qual mensagens automatizadas de divisão política e informações enganosas se propagam pela Internet. Enquanto mais desenvolvimentos ainda certamente estejam por vir, um fato já é aparente: as máquinas construídas por humanos agora podem ajudar a temperar a verdade e a mentira a serviço da desinformação.

Publicado sob a licença Creative Commons nc 4.0

Link para o trabalho original, na íntegra:

Blockchain e o Voto

De vez em quando sou questionado sobre ideias envolvendo sistemas de votação eletrônicos, remotos e blockchains. Este post fala sobre as propriedades mínimas de segurança que um sistema de votação precisa ter, e sobre onde as blockchains ajudam e onde não ajudam. Usamos como exemplo o sistema criptografado de votação STAR-vote. Pode ser um pouco árido para os usuários não técnicos, mas também pode ser interessante para quem gosta de se envolver mais profundamente no tema.

Uma interface digital abstrata, mostrando pastas com chave pública e dados de hash escritos em código.

A comunidade de computação concorda que sistemas votação rodando em máquinas de votar modernas têm ao seu dispor processadores muito rápidos e uma quantidade enorme de armazenamento. Esse hardware moderno torna menos árdua a tarefa de implementar redes que exigem computação de alta-performance, como a Blockchain. Vamos então usar esse dado estrutural para um experimento mental:

Usando o work-flow da Blockchain, vamos colocar as máquinas de votação em rede, dentro da Blockchain. Assim, voilà, temos uma estrutura descentralizada, com uma cópia de cada voto em cada máquina de votação; podemos até usar o emaranhamento da linha do tempo, para que o histórico de cada máquina seja protegido por hashes armazenados em todas as outras máquinas. O problema da votação eletrônica está resolvido.

Em um sistema eleitoral implementado na Blockchain, todas as máquinas do sistema possuem todos os registros de votos, tornando impossível a fraude. É o mesmo esquema que legitima transações financeiras. Neste caso, a transação é o voto.

Mas qual é o ponto forte de uma blockchain? No aspecto mais fundamental, trata-se de ter um registro histórico inviolável sobre eventos. No contexto de um sistema de votação, significa que uma blockchain é um lugar perfeito para armazenar cédulas e proteger sua integridade. O STAR-Vote e muitos outros sistemas de votação criptografados “ponta a ponta” adota o conceito de “quadro público de avisos” para onde os votos criptografados são enviados para armazenagem até a contagem. Blockchain é a maneira óbvia de implementar o quadro público de avisos.

Cada eleitor do STAR-Vote sai do local de votação com um “recibo” que é apenas o hash de sua cédula criptografada, que por sua vez tem o hash da cédula do eleitor anterior. Em outras palavras, todos os eleitores do STAR-Vote deixam o local de votação com um ponteiro para a blockchain que pode ser verificado de forma independente.

Acontece que mesmo os sistemas de votação baseados em blockchain precisam de muitas propriedades de segurança adicionais antes que possam ser efetivamente confiáveis. Aqui está uma lista simplificada, empregando algum vocabulário típico desta área de estudos para referenciar essas propriedades.

Propriedade “Votado como pretendido”.

Um eleitor está olhando para uma tela de algum tipo e escolhe em um botão: “Alice para presidente”. A máquina de votação prontamente indica isso com um pop-up, ou algum texto destacado, ou sons. Contudo, é totalmente possível que algum malware dentro da máquina possa registrar silenciosamente o voto como “Bernie para presidente”. Portanto, qualquer sistema de votação precisa de um mecanismo para derrotar malware que ameace comprometer a integridade da votação.

Nota: Uma abordagem interessante aqui [e já consagrada pelo costume americano] é ter cédulas de papel impressas (e/ou cédulas de papel marcadas à mão) que podem ser comparadas estatisticamente às cédulas eletrônicas. Outra abordagem é ter um processo pelo qual a máquina pode ser “desafiada” a provar que criptografou corretamente a cédula.

Propriedade “Votado em privacidade”.

É importante que não seja possível identificar um eleitor em particular pela forma como ele votou. A votação moderna deve garantir que os votos sejam secretos, com várias medidas tomadas para tornar difícil ou impossível para os eleitores violarem esse sigilo.

Quando se deseja manter a propriedade de privacidade eleitoral nas máquinas da votação, significa que deve-se evitar que a máquina retenha o estado interno (ou seja, mantenha em seus circuitos uma lista dos votos em texto aberto, na ordem de votação) e também deve garantir que o texto cifrado dos votos, publicado na blockchain, não está vazando silenciosamente, por meio de canais subliminares, informações sobre o texto aberto que o gerou.

Propriedade “Contado como votado”.

Se temos eleitores levando para casa um recibo de algum tipo que identifica seu voto de texto cifrado na blockchain, então eles também podem querer ter algum tipo de prova criptográfica de que a contagem final do voto inclui seu voto específico. Isso acaba sendo uma aplicação direta de primitivos criptográficas homomórficos.

Se olharmos para essas três propriedades, é possível notar que a blockchain não ajuda muito com as duas primeiras, embora seja muito útil para a terceira.

Atingir a propriedade “votado como pretendido” requer uma variedade de mecanismos que vão de cédulas de papel a desafios pontuais para máquinas. A blockchain protege a integridade do voto registrado, mas nada tem a dizer sobre sua fidelidade à intenção do eleitor.

Para alcançar uma propriedade “votado em privacidade”, é necessário bloquear o software na plataforma de votação e, nesse caso, bloquear a máquina de votar. E como essa propriedade de bloqueio pode ser verificada? Precisamos de garantias fortes que possam ser verificadas de forma independente. Também precisamos garantir que o usuário não possa ser enganado e levado a executar um aplicativo de votação falso. Podemos conseguir isso no contexto das urnas eletrônicas comuns, que são utilizadas exclusivamente para fins de votação. Podemos implantar centralmente uma infraestrutura de chave criptográfica e colocar controles físicos sobre o movimento das máquinas.

Mas, se estendermos este experimento mental para incluir o voto pela Internet, um desejo comumente expresso pelo público de alguns países [que talvez aconteça], veremos que não temos infraestrutura hoje para fazer isso usando telefones celulares e computadores pessoais – e provavelmente não a teremos nos próximos anos. O voto remoto [em casa, no escritório, na rua] também torna excepcionalmente fácil para um cônjuge, um chefe ou um vizinho vigiar por cima do seu ombro e “ajudá-lo” a votar da maneira que eles querem que você vote.

As blockchains acabam sendo incrivelmente úteis para verificar a propriedade “contado como votado”, porque obriga todas as máquinas do sistema a concordar com o conjunto exato de cédulas que está sendo tabulado. Se um funcionário eleitoral precisar desqualificar uma cédula por qualquer motivo, esse fato precisa ser público e todos precisam saber que uma cédula específica, ali na blockchain, precisa ser descontada, caso contrário, a matemática criptográfica não vai fechar.

Concluindo, é fácil ver como as blockchains fornecem elementos primitivos excepcionalmente úteis, que podem ajudar a construir sistemas de votação em que a contagem final é consistente com os registros de votos lançados. No entanto, um bom sistema de votação precisa satisfazer muitas propriedades adicionais que uma blockchain não pode fornecer. Embora haja uma certa sedução intelectual em fingir que votar não é diferente do que mover criptomoedas em uma blockchain, a realidade do problema é um pouco mais complicada.

Nova Vulnerabilidade no Zoom

Uma vulnerabilidade “dia-zero” no Zoom, que pode ser usada para lançar ataques de execução de código remoto (Remote Code Execution, RCE), foi divulgada por pesquisadores. Pwn2own, organizado pela iniciativa Zero-Day, é um concurso para profissionais de segurança cibernética com o objetivo de descobrir falhas em software e serviços populares.

A última competição incluiu 23 participantes, em várias categorias, como navegadores Web, software de virtualização, servidores, comunicação empresarial e escalada local de privilégio.

Para os participantes bem-sucedidos, as recompensas financeiras podem ser altas – e, neste caso, os holandeses Daan Keuper e Thijs Alkemade ganharam US$ 200.000 por sua descoberta sobre o Zoom.

Os pesquisadores (da Computest) demonstraram uma cadeia de ataque consistindo de três falhas, que provocou uma Execução Remota de Código em uma máquina-alvo, sem qualquer interação do usuário.

Zoom ainda não teve tempo para corrigir essa questão crítica de segurança.

A vulnerabilidade

Atendendo aos requisitos da divulgação responsável, os detalhes completos do método são mantidos em segredo. O que sabemos é que é uma falha de execução de código remoto (RCE): uma classe de falhas de segurança de software que permitem que um ator malicioso execute o código de sua escolha em uma máquina remota sobre uma LAN, Wan ou a Internet.

Também sabemos que o método funciona na versão Windows e Mac do Zoom, mas não afeta a versão do navegador. Não está claro se os sistemas operacionais iOS- e Android são vulneráveis, já que Keuper e Alkemade não estavam analisando essa questão.

A organização Pwn2own twittou um gif demonstrando a vulnerabilidade em ação. Pode-se ver o atacante abrir a calculadora no sistema rodando o Zoom. Calc.exe é o executável que hackers usam frequentemente como prova-de-conceito para mostrar que eles podem executar códigos arbitrários em uma máquina afetada.