A segurança sempre foi um dos aspectos mais importantes da tecnologia da informação e, atualmente, muitas organizações e seus desenvolvedores adotam uma mentalidade que prioriza a segurança ao criar aplicações. Esses princípios e ações são frequentemente descritos em conjunto como “DevSecOps”, termo que abrange toda a cultura e a abordagem de segurança de aplicações. DevSecOps significa desenvolvimento, segurança e operações. Seu objetivo é incorporar uma mentalidade que prioriza a segurança em todos os aspectos da tecnologia da informação e da infraestrutura.
Uma das áreas mais recentes e empolgantes da tecnologia da informação é a blockchain, que conta com um enorme ecossistema de protocolos e aplicações descentralizados cujo objetivo é nos levar a uma versão atualizada da web, chamada por muitos de Web3.
O que é a Web3 e o que exatamente é um aplicativo descentralizado?
O termo Web3 abrange vários conceitos que se concentram em aspectos da arquitetura de aplicações e da experiência do usuário:
- Descentralização
- Abertura
- Imutabilidade
- Programabilidade
- Transparência
Esses conceitos fundamentais visam devolver aos usuários o controle sobre sua identidade por meio da criptografia de chave pública e ampliar a adoção da economia ponto a ponto por meio de diversos mecanismos e protocolos de blockchain. Muitas blockchains e seus protocolos associados podem processar transações avançadas e gerenciar estados usando contratos inteligentes executados em ambientes virtualizados isolados.
Em seguida, esses dados são sincronizados entre todos os nós da rede por meio de um mecanismo chamado algoritmo de consenso. Esse mecanismo permite que usuários ou nós se coordenem em um ambiente distribuído para garantir que todos os nós do sistema concordem com uma única fonte de verdade, mesmo que alguns agentes falhem. Além disso, muitas blockchains operam de forma resistente à censura, mantendo seus protocolos abertos e sem necessidade de permissão.
Como é o cenário atual?
Há um risco adicional em uma arquitetura baseada em blockchain, pois a infraestrutura central da rede geralmente é sustentada por uma criptomoeda digital baseada em tokens, que costuma ter valor monetário. Esses tokens são mantidos em endereços, geralmente armazenados em contas de propriedade externa ou em contratos inteligentes. E, como a confiança também é distribuída por meio do uso de criptografia de chave pública, cada endereço da rede está sujeito a ataques.
O saldo de cada conta é distribuído pela rede no que é conhecido como livro-razão público, ficando visível para qualquer pessoa, o que abre uma brecha para que hackers ataquem usuários ou contratos específicos. Isso torna a privacidade e o anonimato aspectos particularmente importantes para a blockchain. Muitas vezes, as pessoas que gerenciam essas contas são alvos de ataques ou, devido à posição que ocupam, têm a possibilidade de agir de forma ilícita, com ameaças que incluem:
- Engenharia social
- Gerenciamento inadequado de confiança ou chaves
- Desvio de recursos e fraude
- Golpes
Além disso, a presença tecnológica dessas diversas tecnologias de blockchain, protocolos e aplicações descentralizadas já é ampla e está crescendo rapidamente. Portanto, é importante considerar as implicações de segurança desse ecossistema em rápida expansão. Tudo o que é desenvolvido com base no conceito central de descentralização possui uma superfície maior e, consequentemente, mais pontos de ataque que devem ser cuidadosamente analisados e protegidos.
Veja alguns tópicos que vale a pena considerar ao auditar a segurança de suas aplicações descentralizadas e de sua infraestrutura tecnológica:
- Blockchains de camada 1 (Bitcoin e Ethereum)
- Blockchains de camada 2 (sidechains e rollups)
- Contratos inteligentes
- Compiladores
- Carteiras de software
- Carteiras de hardware
- Clientes de blockchain (mineradores e validadores)
- Corretoras com custódia (centralizadas)
- Corretoras DeFi (descentralizadas)
- Provedores
- Marketplaces (NFTs)
Vetores de ataque comuns em contratos inteligentes
Quando falamos de DevSecOps no ciclo de vida de desenvolvimento de uma aplicação, geralmente nos referimos ao desenvolvimento orientado à segurança. Essa prática também é conhecida como deslocamento da segurança para a esquerda. Trata-se de um dos aspectos mais importantes da cultura DevSecOps, pois começa com os desenvolvedores pensando na segurança como código. Como os contratos inteligentes baseados em blockchain podem armazenar valores e atuar como um banco, o código contido neles fica ainda mais vulnerável a ataques e deve ser escrito com rigorosos critérios de segurança em mente.
O setor já presenciou diversos ataques a contratos inteligentes que exploravam vulnerabilidades, geralmente no código. Um dos maiores ataques da história ocorreu no ano passado, quando a Poly Network, um protocolo entre diferentes blockchains, informou que um invasor havia comprometido um contrato inteligente e transferido o equivalente a US$ 610 milhões em diversos ativos para endereços de carteiras externas sob seu controle.
Há muitas vulnerabilidades no desenvolvimento de contratos inteligentes, mas alguns dos ataques mais frequentes são:
- Underflow e overflow – Geralmente ocorrem quando operações aritméticas fazem com que números inteiros sem sinal atinjam o tamanho máximo em bytes, fazendo com que o valor dê uma “volta” e podendo causar um comportamento inesperado na lógica de negócios da sua aplicação.
- Reentrância de contrato – A ação de explorar um contrato reentrando nele repetidamente, o que geralmente permite ao invasor sacar mais fundos do que deveria.
- Front running de transações – Refere-se ao processo em que alguém usa tecnologia ou uma vantagem de mercado para obter conhecimento prévio sobre transações futuras.
- Segredos mal gerenciados.
- Controle de acesso mal implementado.
O que você pode fazer para equilibrar as condições?
- Crie uma cultura que priorize a segurança. Os conceitos de DevSecOps são um excelente ponto de partida para organizações que buscam desenvolver uma cultura voltada à segurança.
- Realize auditorias. As auditorias oferecem uma nova perspectiva sobre a lógica da aplicação e os processos operacionais, ajudam a identificar vulnerabilidades no código e inspiram confiança nos usuários da sua aplicação. MythX e Slither são excelentes ferramentas para auditar contratos inteligentes da Ethereum.
- Ofereça recompensas por bugs e realize testes de invasão colaborativos. A segurança colaborativa é um método comprovado para ajudar a fortalecer sua postura de segurança. Ao inscrever sua empresa em programas de recompensa por bugs e realizar testes de invasão em seus aplicativos e em sua infraestrutura, você pode se antecipar a vulnerabilidades e ataques.
- Adote uma estratégia de código aberto. A transparência da sua aplicação é importante em uma tecnologia como a blockchain, pois permite que os participantes decidam aderir com base na verificação e nas auditorias do seu código. Além disso, ter componentes de código aberto aumenta a responsabilização do seu projeto perante a comunidade.
- Implemente múltiplas assinaturas para operações administrativas. A implementação de contratos inteligentes que adotam uma arquitetura de múltiplas assinaturas para funções administrativas, como a transferência de propriedade, fundos e outras operações críticas, proporcionará uma camada adicional de segurança à sua aplicação.
Conclusão
Blockchain, aplicações descentralizadas e os diversos protocolos relacionados a eles estão crescendo rapidamente. Essas novas e empolgantes formas de implantar aplicações têm o potencial de transformar radicalmente diversos setores. No entanto, é fundamental priorizarmos a segurança e implementarmos uma cultura DevSecOps sempre que possível.
Leitura complementar
Um bom primeiro passo na jornada de qualquer pessoa pelo universo do blockchain é ler o whitepaper do protocolo no qual você está desenvolvendo:
Em seguida, estude ataques e vulnerabilidades anteriores, chegando até mesmo a tentar reproduzir o ataque em seu ambiente de desenvolvimento.
Para adquirir experiência prática em segurança no Ethereum, recomendo os seguintes programas de capture the flag (CTF), nos quais vulnerabilidades ou “flags” ficam ocultas em programas ou sites propositalmente vulneráveis para ensinar os fundamentos da segurança.
Sobre o autor

Publicações relacionadas no blog

Entrega e proteção de agentes de IA em fábricas de IA: F5 para a arquitetura de referência NVIDIA OpenShell para agentes de IA seguros
As soluções da F5 ampliam a Arquitetura de Referência NVIDIA OpenShell para agentes de IA seguros.
Como medir – e minimizar – o custo total de propriedade do seu Kubernetes
O Kubernetes pode ser baixado e executado gratuitamente, mas sua manutenção está longe de não ter custos. Assim como outras grandes plataformas de código aberto que são “gratuitas” apenas em um sentido simplista, o Kubernetes quase certamente exigirá investimentos para ser implantado e operado.
As-Code: a pilha de TI contínua
Infraestrutura, configuração, pipeline, operações. De repente, tudo é “como código”. Lori MacVittie busca esclarecer a terminologia e identificar os diferentes componentes de uma stack contínua de TI.
O estado da entrega de aplicações em 2017: automação, APIs e DevOps
Explore o relatório State of Application Delivery de 2017. Leia o blog retrospectivo da F5 sobre o início da ascensão das redes declarativas e dos pipelines de DevOps.
DevOps Summit: onde a rede foi convidada para a festa
No DevOps Summit NY, falou-se muito não apenas sobre DevOps, mas também sobre contêineres, IoT e microsserviços. As sessões se concentraram não só na mudança cultural necessária para crescer em escala com uma abordagem DevOps, mas também fizeram questão de incluir...
F5 e Nutanix convergem em infraestrutura no .NEXT
Aplicações empresariais como Microsoft SharePoint e Exchange, juntamente com a VDI, continuam sendo a espinha dorsal da sua empresa. A produtividade, embora não seja tão atraente quanto o lucro, é um fator essencial para o sucesso das operações empresariais atuais. Deixar de...