Todos os artigos
-
Como detectar testes de segurança executados por engano com privilégios de administrador
Garante que um teste de segurança exercita a identidade de baixo privilégio pretendida, e não um padrão privilegiado da fixture. Este método original verifica a autoridade efetiva antes de se confiar em uma asserção de acesso negado ou em um fluxo de usuário bem-sucedido.
-
Padrões seguros e design fail-closed
O princípio de padrões à prova de falha (fail-safe defaults), de Saltzer e Schroeder, baseia o acesso em permissão explícita, de modo que um erro negue o acesso em vez de concedê-lo. Hoje isso significa autorização com negação por padrão, configuração que se recusa a iniciar quando falta uma definição de segurança e caminhos de erro que fecham o acesso em vez de abri-lo.
-
Noções básicas de recuperação para aplicações com LLM: chunking, identificadores de trechos e citação do que foi recuperado
A geração aumentada por recuperação (RAG) fornece ao modelo trechos recuperados de documentos. O que importa é como os documentos são divididos, que contexto cada chunk carrega e como a resposta aponta para um trecho específico, para que o leitor possa verificá-la.
-
Runbooks para operação: guias que uma pessoa de fora consegue executar de madrugada
Um runbook por serviço responde, nesta ordem: o que o serviço faz, como saber em um minuto se está saudável, quais falhas conhecidas existem (com sintoma, comando de diagnóstico e contramedida), quais ações são seguras ou perigosas e quem escalar e quando; a revisão é feita por alguém que não o escreveu.
-
Mapear uma afirmação de code review ao comportamento alterado exato que ela sustenta
Monte um mapa de revisão enxuto que impeça que verificações aprovadas, mas não relacionadas, sejam usadas como evidência de um comportamento recém-alterado.
-
Como encontrar portas em escuta e o processo responsável com ss
O comando ss -tulpn lista todos os sockets TCP/UDP em escuta junto com o processo dono, e o endereço de bind indica se a exposição é apenas local, em toda a rede ou dual-stack. Interpretar esse endereço corretamente separa um serviço exposto de propósito de um exposto sem querer.
-
Contas de serviço em diferentes famílias de SO: privilégio mínimo para os próprios serviços em segundo plano de um agente
Cada SO oferece uma forma de executar um serviço sem login normal e sem senha gerida manualmente: usuários de sistema Linux com shell nologin ou DynamicUser= do systemd, contas virtuais e contas de serviço gerenciadas por grupo (gMSA) no Windows, e usuários daemon no macOS. Escolher a mais restrita importa para tudo o que um agente instala para rodar sem supervisão.
-
Canonicalizar URLs sem alterar o significado
Use uma chave de comparação definida pela aplicação e preserve a URL exata da requisição quando a normalização puder alterar o roteamento ou as assinaturas.
-
Conceder permissões de acesso pelo princípio do menor privilégio
Cada identidade – pessoa, serviço ou agente – recebe apenas os direitos que a sua tarefa normal exige, e só pelo tempo necessário: uma role de banco de dados própria por serviço com GRANT apenas no necessário, processos sem root e com capabilities individuais em vez de poder total, elevação temporária para pessoas e limpeza periódica.
-
Locks distribuídos e leases de líder: expiração, fencing tokens e o que um lock não consegue garantir
Um lock distribuído é um lease que expira: um processo pausado por garbage collection, disputa de CPU ou atraso de rede pode continuar agindo depois que o lease já passou para outro cliente. Só um fencing token monotonicamente crescente, verificado pelo recurso protegido, torna esse lock seguro para fins de correção; um lock usado apenas para evitar trabalho duplicado exige menos.
-
Fan-out especulativo: fazer todas as perguntas a um modelo de decisão numa única requisição e decidir no código
Como a TypeSafe avalia em paralelo todas as perguntas de uma requisição contra um único estado, o padrão documentado é enviar de uma só vez todas as perguntas de que um fluxo de trabalho possa precisar, inclusive as que só importam em alguns ramos, e deixar o código ignorar as respostas irrelevantes; o cookbook do fornecedor relata que uma requisição em lote foi 12,2x mais barata e 10,0x mais rápida do que chamadas sequenciais no seu próprio exemplo.
-
Verificação de assinaturas de webhooks do GitHub: X-Hub-Signature-256, comparação em tempo constante e IDs de entrega
O GitHub assina cada entrega de webhook com HMAC-SHA256 sobre o corpo bruto da requisição e envia o resultado como sha256=<digest hex> no cabeçalho X-Hub-Signature-256. O receptor deve recalcular o digest a partir dos bytes exatos recebidos, compará-lo com uma função de tempo constante e usar X-GitHub-Delivery para reconhecer eventos reenviados; o antigo X-Hub-Signature (HMAC-SHA1) existe apenas por compatibilidade.
-
Suporte a várias linhas de release: quais correções vão para onde
Uma política de suporte é uma tabela de linhas de release, cada uma com um status (feature, bugfix, somente segurança, fim de vida), e uma regra que define quais classes de correção são portadas para quais linhas. O Python mantém uma série com releases de bugfix por dois anos e releases somente de segurança por mais três; o Django porta correções críticas para o último feature release e correções de segurança e perda de dados para os dois últimos, além das linhas de suporte de longo prazo; o Rust suporta apenas a versão estável mais recente. Um projeto pequeno deve publicar a tabela e adotar por padrão a promessa mais restrita que consiga cumprir.
-
Mantenha um registro de evidências para respostas baseadas em várias fontes
Associe cada afirmação relevante a uma seção da fonte, a uma versão e a um grau de incerteza, para que as contradições continuem visíveis durante a síntese.
-
Transformar um bug em um teste de regressão
Antes de corrigir, o bug é reproduzido como um teste automatizado que falha pelo motivo relatado; a correção o deixa verde e o teste permanece como sentinela. Com o pytest, dá para repetir só esse teste (`--lf`), e um bug adiado é registrado como `xfail(strict=True)`, para que um desaparecimento silencioso seja notado.
-
O tempo de secagem de roupa em varal interno acompanha a diferença entre a temperatura do ambiente e o ponto de orvalho melhor do que a umidade relativa isolada
Hipótese: o National Weather Service define o ponto de orvalho como a temperatura até a qual o ar precisa ser resfriado para atingir 100 % de umidade relativa e observa que a umidade relativa pode induzir a erro, pois o mesmo valor representa quantidades diferentes de umidade em temperaturas diferentes. Propõe-se que, para cargas molhadas semelhantes pesadas em intervalos no mesmo varal interno, o tempo até a massa se estabilizar seja ordenado entre dias melhor pela diferença entre a temperatura do ambiente e o ponto de orvalho do que pela umidade relativa, numa comparação dentro de uma mesma residência; nenhum resultado é afirmado.
-
Montar dados de teste com builders: padrões válidos, desvios explícitos
Um builder de dados de teste fornece, para cada entidade, um objeto padrão válido e deixa o teste definir apenas os campos de que a sua asserção depende. Assim, o teste mostra o que importa, e uma nova coluna obrigatória altera um único ponto em vez de cem testes. A abordagem distingue-se de fixtures compartilhadas e do Object Mother, cujo acoplamento forte Martin Fowler descreve.
-
Alterar as políticas criptográficas do sistema no RHEL com update-crypto-policies
A política criptográfica do sistema no RHEL define os algoritmos e as versões de protocolo padrão oferecidos por OpenSSL, GnuTLS, NSS, libkrb5 e OpenSSH, e pode ser alterada com um único comando, sem editar a configuração de cada aplicação. Esta metodologia mostra como consultar, definir e testar uma política, e explica por que serviços já em execução precisam ser reiniciados para aplicá-la.
-
Solaris Zones: o que a zona global controla e como as kernel zones diferem das zonas não globais
A zona global administra todas as zonas não globais; os subcomandos de zoneadm/zonecfg, exceto listagem e ajuda, exigem a zona global e autorização específica. Uma kernel zone executa seu próprio kernel e nível de atualização, ao contrário de uma zona não global, que compartilha o kernel da zona global.
-
Lumen no Unreal: escolha o tracing e a qualidade conforme a cena que você precisa renderizar
Avalie a iluminação indireta dinâmica e os reflexos do Lumen a partir da representação de tracing, da estrutura da cena, da escalabilidade e de testes visuais repetíveis.
Legível por máquina: JSON