Ideias & Insights

Explorando desenvolvimento AI-first, guardrails de código e a arquitetura da descartabilidade.

Suas dependências podem ler suas variáveis de ambiente. O JavaScript deixa.

Autoridade ambiente significa que qualquer código no seu processo Node.js pode tocar o sistema de arquivos, a rede e o ambiente. Veja como removê-la com lockdown, compartments e passagem explícita de capabilities.

Uma única dependência transitiva comprometida pode exfiltrar seu , escrever no seu sistema de arquivos e abrir conexões de saída. Ela não precisa de uma…

Proximidade de Rede Não É Identidade: Como Serviços Se Autenticam Sem Autoridade Ambiente

A maior parte da confiança entre serviços vem da localização na rede, não de prova criptográfica. Veja como capabilities, mTLS e SPIFFE permitem que serviços se autentiquem sem autoridade ambiente, e por que isso é mais difícil do que deveria.

Seus microsserviços compartilham uma VPC, então confiam uns nos outros. Essa confiança é autoridade ambiente: a permissão para invocar um serviço é concedida…

Suas dependências podem ler qualquer arquivo no disco. cap-std faz com que elas peçam permissão.

A biblioteca padrão do Rust concede autoridade de sistema de arquivos ambiente a toda dependência. cap-std a substitui por APIs baseadas em capabilities que forçam o código a provar que tem direito de acessar um caminho antes de abri-lo.

Qualquer crate na sua árvore de dependências pode abrir , escrever no seu diretório ou enumerar todos os arquivos do seu projeto. A biblioteca padrão do Rust…

O Seu Serviço É um Cúmplice Inadvertido: Como Funcionam os Ataques Confused Deputy

Um ataque confused deputy engana um serviço privilegiado a usar sua própria autoridade contra si mesmo. Veja como atacantes exploram a confiança implícita, e por que a capability-based security é a solução.

O seu serviço tem uma chave de API para o seu armazenamento em nuvem. Um utilizador envia um pedido. O seu serviço obedientemente escreve um ficheiro. O…

E se cada função tivesse que receber permissão em vez de assumi-la?

A maioria do código roda com autoridade ambiente: cada função pode tocar em tudo. A segurança baseada em capabilities inverte esse modelo ao forçar funções a receber permissões explícitas e limitadas.

Sua função tem acesso ao banco de dados, ao gateway de pagamento e ao log de auditoria simplesmente porque vive no mesmo processo. Se um atacante encontra um…

O compiler deve detectar casos de estado ausentes, não a sua equipa de QA

Adicionar um novo estado à sua máquina é fácil. Lembrar-se de atualizar todos os switch statements não é. Veja como fazer o TypeScript recusar a compilação quando se esquece de um caso.

As state machines começam limpas. Três valores, três branches do switch. Depois a lógica de retry adiciona um quarto estado. A falha parcial adiciona um…