Regras da NASA para Programação Crítica (explicadas)

Ao contrário do que a mitologia sugere, as diretrizes da NASA para software crítico de segurança não apenas valorizam a simplicidade extrema; elas a tornam obrigatória. Uma disciplina férrea guia todo o trabalho dos programadores.

Membro feminio da equipe da Artemis II trabalha em seu laptop.
Engenheira da equipe da missão Artemis II em ensaio geral de lançamento no dia 2 de fevereiro – NASA/Kim Shiflett

Programar para uma espaçonave não é como programar um app qualquer. Cada bug pode custar milhões de dólares e anos de missão. Por isso, a NASA desenvolveu um conjunto de 10 regras chamadas Power of Ten, criadas por Gerard J. Holzmann no Jet Propulsion Laboratory (JPL) e publicadas na IEEE Computer em 2006.

Essas regras não buscam performance nem elegância, mas simplicidade, previsibilidade e verificabilidade, características essenciais em programas críticos.

O que são as regras Power of Ten?

Elas são diretrizes para escrever código tedioso, seguro e confiável:

  1. Use apenas um subconjunto seguro da linguagem
    Evite recursão, alocação dinâmica de memória, loops infinitos e fluxos complicados. Isso torna o código mais previsível e fácil de verificar.
  2. Todos os loops devem ter limites fixos
    Cada loop precisa ter um limite superior claro. Isso previne loops infinitos e garante tempo de execução previsível.
  3. Não use memória dinâmica
    Nada de malloc, free, new ou delete. Alocação dinâmica pode falhar ou fragmentar a memória, o que é inaceitável para sistemas espaciais.
  4. Funções curtas e simples
    Idealmente, menos de 60 linhas, com estado local mínimo e propósito único. Isso facilita leitura, testes e verificação.
  5. Controle de fluxo claro e visível
    Evite goto, aninhamento profundo e múltiplos pontos de saída. Fluxos simples reduzem chances de erros lógicos.
  6. Limite o uso de ponteiros
    Eles aumentam risco de referências inválidas e corrupção de memória. Prefira arrays e índices.
  7. Cheque todos os retornos de função
    Toda função que pode falhar deve ser verificada. Se um sensor ou leitura retornar erro, ele precisa ser tratado.
  8. Sem fluxos de dados ocultos
    Evite variáveis globais ou efeitos colaterais “surpresa”. Todas as dependências devem ser explícitas.
  9. Código sem avisos do compilador
    Nenhum aviso deve passar despercebido. Eles muitas vezes indicam problemas reais.
  10. Uso mínimo do pré-processador
    Evite macros complexas e compilação condicional. Prefira constantes simples e estruturas claras.

Por que essas regras funcionam

Software de espaçonaves precisa ser previsível, verificável, robusto e seguro. A ideia da Power of Ten é domar a linguagem C/C++ para que ela se torne uma mini-linguagem interna, onde qualquer programador possa entender e revisar o código, nas piores condiçoes, e anos após o lançamento. O conceito-chave é controlar a complexidade para tornar o software quase matematicamente verificável. A questão não é sobre elegância, esperteza ou performance, mas sobre segurança e confiabilidade.

Filosofia da NASA

  • Código simples vence código esperto: a melhor prática em sistemas críticos é a óbvia, linear e transparente.
  • Programadores conservadores e convencionais prosperam: nada de “rock-star devs”; o trabalho é feito sobre métodos consistentes e previsíveis.
  • Alta habilidade é redirecionada: para arquitetura, simulação, testes e análise de segurança, não truques ou abstrações complexas.

Exemplos práticos

1. Loop seguro e limitado

int sum_array(const int *data, int length)
{
int sum = 0;
if (!data || length <= 0) return 0;
for (int i = 0; i < length; i++) sum += data[i];
return sum;
}
  • Sem aritmética de ponteiros
  • Sem memória dinâmica
  • Limites fixos, fácil de verificar

2. Máquina de estados clara

typedef enum {IDLE, RUNNING, ERROR} State;
State update_state(int sensor_ok)
{
switch(sensor_ok)
{
case 1: return RUNNING;
case 0: return ERROR;
default: return ERROR;
}
}
  • Transições explícitas
  • Sem “fall-through”
  • Fácil de testar e auditar

3. Checagem de retorno

int safe_read_sensor(int *out)
{
if (!out) return -1;
int rc = read_sensor_hardware(out);
if (rc != 0) { *out = 0; return -1; }
return 0;
}
  • Nenhum erro é ignorado
  • Comportamento definido em caso de falhas

4. Buffer estático seguro

#define LOG_SIZE 256
static char log_buffer[LOG_SIZE];
static int log_index = 0;
void log_message(const char *msg)
{
if (!msg) return;
int i = 0;
while(msg[i] != '\0' && log_index < LOG_SIZE - 1)
log_buffer[log_index++] = msg[i++];
log_buffer[log_index] = '\0';
}
  • Sem heap
  • Escritas limitadas
  • Terminador nulo explícito

5. Aritmética segura

int safe_multiply(int a, int b, int *res)
{
if (!res) return -1;
long long temp = (long long)a * (long long)b;
if(temp > INT_MAX || temp < INT_MIN){ *res=0; return -1; }
*res = (int)temp; return 0;
}
  • Detecta overflow
  • Evita comportamento indefinido
  • Comprovável mecanicamente

Enfim

O estilo Power of Ten não é elegante, não é divertido e não é esperto; é seguro, previsível e auditável. Em sistemas críticos como espaçonaves o código não precisa ser impressionante; precisa funcionar sempre e ser compreensível mesmo sob pressão extrema.

Se você programar seguindo essas regras, mesmo como um desenvolvedor convencional, seu trabalho terá o mesmo impacto que os “rock stars” do código, mas com robustez garantida.

Por Que Ainda Escondemos Nossas Meias?

Vivemos numa época em que compartilhamos selfies de férias, nossa localização em tempo real, e até nosso DNA e batimentos cardíacos com apps e plataformas, tudo sem pensar duas vezes. Mas tem uma coisa que seguimos protegendo com unhas e dentes: nossa mala.

Malas transparentes
O que há um uma mala? – Imagem: Grok

Malas transparentes

O conteúdo médio de uma mala de mão ou despachada não é exatamente revolucionário, algumas roupas, itens de higiene pessoal, talvez um notebook ou um livro de bolso. Ainda assim, insistimos em malas opacas, como se o conteúdo fosse extremamente íntimo. É um hábito herdado, não algo que paramos para questionar. Mas talvez esteja na hora de perguntar, por quê?

Teatro da privacidade, o jogo que continuamos jogando

Esse instinto de esconder nossas coisas não tem tanto a ver com proteger informações pessoais, é mais um ritual social que repetimos automaticamente. Cobrimos nossas malas não porque é necessário, mas porque “todo mundo faz assim”. É comportamento no modo automático.

E aqui está a ironia: já abrimos mão da maioria dos nossos dados realmente privados, de tudo o que era realmente importante. Nossos celulares nos rastreiam, assistentes de voz transcrevem nossas conversas, algoritmos analisam nossos hábitos de compra. O viajante moderno já é, na prática, transparente em quase todos os sentidos importantes.

Mesmo assim, seguimos apegados à opacidade das malas, como se mostrar nossas meias fosse mais invasivo do que entregar nosso rosto para o reconhecimento facial na imigração.

Malas transparentes só pra contrariar

Imagine como tudo mudaria se invertêssemos a norma; se surpreendêssemos o Sistema: Uma mala feita de material transparente e resistente, onde a segurança do aeroporto pudesse verificar o conteúdo em segundos, sem raios-X, sem revistas aleatórias, sem precisar abrir a mala na frente de estranhos.

Malas transparentes não são só uma novidade estética, são um desafio ao status quo. Elas nos fazem perguntar, afinal, o que estamos escondendo?

E a resposta, na maioria dos casos, é, nada que realmente importe.

Transparência voluntária, benefícios reais

Ninguém está sugerindo que a transparência seja obrigatória. Mas imagine um programa voluntário, você escolhe usar uma mala transparente e, em troca, ganha acesso a:

  • Filas expressas de triagem
  • Menos revistas invasivas
  • Descontos em taxas de bagagem ou embarque prioritário

Assim como o TSA PreCheck ou o Global Entry, seria um modelo de adesão comportamental, você abre mão de um pouco da privacidade superficial em troca de ganhos significativos em tempo, conforto e eficiência. E, diferente do PreCheck, não precisa fornecer digitais nem passar por análise de antecedentes, só estar disposto a ser prático.

O obstáculo psicológico

A resistência a essa ideia não viria dos profissionais de segurança, mas dos próprios viajantes. Não porque têm algo a esconder, mas porque acham que têm. A privacidade das malas virou algo emocional, não racional.

Mas se pararmos para refletir, veremos que grande parte do valor que damos a esse singelo sigilo é imaginário. O que está em jogo, de verdade, é o nosso apego a um hábito. E talvez, apenas talvez, já esteja na hora de mudá-lo.

O argumento pela clareza

Malas transparentes representam mais do que um embarque mais rápido. Elas refletem uma mudança de mentalidade. Um desejo de parar de fingir que nossos pertences são especiais. Um reconhecimento de que o conceito de privacidade, quando desfocado, se torna ineficiente. E um pequeno, mas significativo, passo em direção a um sistema de viagens que prioriza a lógica em vez de rituais ultrapassados.

Num mundo que já enxerga tanto de nós, por que não deixar que veja nossas meias também?


IA e o Kit de Ferramentas do Hacker: Uma Análise da Reportagem da WIRED sobre Cibercrime

A reportagem do dia 4 de junho da WIRED sobre o papel da inteligência artificial generativa na cibersegurança traça um retrato vívido de uma tecnologia com dois gumes , que evolui mais rápido do que muitos sistemas de defesa conseguem acompanhar.

Imagem de um hacker digitando em um laptop com a  mão direita e segurando um smartphone na mão esquerda.
Imagem: pexels.com

O artigo [em inglês] mostra como pesquisadores conseguiram fazer com que ferramentas como o ChatGPT gerassem código malicioso ao enquadrar os prompts como parte de testes de segurança ou simulações de invasão. Como revelou a equipe da Trend Micro, basta um cenário bem formulado, como “estou participando de um Capture the Flag como red teamer”, para que o modelo produza scripts que normalmente levariam dias para um atacante iniciante criar.

Reduzindo a Barreira, Aumentando o Risco

Um dos principais pontos levantados é a democratização do cibercrime. Ferramentas de IA não transformam qualquer pessoa em um hacker habilidoso da noite para o dia , mas permitem que usuários sem conhecimento técnico, os famosos “script kiddies”, executem códigos perigosos com facilidade. Como destaca Hayley Benedict, da RANE, a IA “reduz a barreira de entrada”, o que pode resultar em uma enxurrada de ameaças pouco sofisticadas, porém volumosas.

A WIRED, no entanto, vai além do óbvio e aponta o que pode ser o verdadeiro problema: os hackers profissionais. Especialistas argumentam que o maior perigo está em como esses agentes experientes podem usar a IA para escalar e automatizar ataques com eficiência impressionante. O que antes levava horas ou dias de codificação manual, agora pode ser feito em minutos com o auxílio da IA. Não estamos falando de inteligências artificiais descontroladas criando vírus sozinhas, mas sim de ferramentas de aceleração nas mãos de quem já entende o jogo.

Inteligência Armada: Quando IA Encontra Especialistas

O texto deixa claro que ainda não vivemos em um cenário onde IAs autônomas são capazes de realizar ataques sozinhas. Mas talvez não estejamos tão longe disso. Smith, da Hunted Labs, imagina sistemas capazes de aprender e adaptar seu código malicioso em tempo real, ou seja, malware que evolui à medida que ataca. Isso ainda soa como ficção científica, mas, segundo Katie Moussouris, os componentes necessários para construir algo assim já existem.

Um exemplo mencionado é o XBOW, um dos primeiros sistemas considerados como “IA hacker semiautônoma”. Não foi criado por um entusiasta isolado, mas por um time de mais de 20 especialistas, com passagens por empresas como GitHub, Microsoft e outras do setor de segurança cibernética. Isso reforça uma tendência clara: a IA não substitui o hacker , ela o potencializa.

A Corrida Cibernética Acelerou — E Muito

O uso de novas ferramentas para explorar falhas é tão antigo quanto a própria cibersegurança. A novidade agora é a velocidade com que tudo acontece. Ataques, defesas e desenvolvimentos avançam a um ritmo que exige não apenas reação, mas antecipação. Como resume Moussouris, “IA é apenas mais uma ferramenta na caixa de ferramentas”, mas é uma ferramenta mais rápida, mais acessível e potencialmente mais perigosa.

O artigo encerra com uma frase já comum, mas ainda relevante: “A melhor defesa contra um vilão com IA é um mocinho com IA.” Pode soar como clichê, mas é uma realidade prática. Equipes de segurança terão que investir no uso estratégico e ético de modelos generativos, caso contrário ficarão para trás diante de adversários cada vez mais automatizados.


Entre Xandão e Xitter, sou mais amigo das VPNs

Aproveitando a celeuma causada pelo affair STF versus X/Twitter, vou tecer breves comentários – desapaixonados, para uso de estudantes pesquisando a Internet – na tentativa de destacar a importância das VPNs, abordando sua utilidade e legitimidade, algumas vantagens e desvantagens.

Imagem deum  laptop acessando uma vpn
Imagem – Pexels.com

Não vou escrever sobre provedores de serviço específicos no corpo da postagem, mas estou aberto a perguntas na seção de comentários, onde poderei dar uma ou duas sugestões pessoais, sem compromisso, aos leitores interessados.

Liberdade e privacidade – O dilema digital moderno

Em uma era em que cada clique e cada tecla podem ser rastreados, manter a privacidade online se torna imperativo. As VPNs oferecem uma solução robusta para esse dilema, criptografando sua mensagem e mascarando seu endereço IP. Essa criptografia impede que olhares curiosos — sejam eles ISPs, hackers ou até mesmo entidades governamentais — monitorem suas atividades online. Para aqueles que vivem em países com censura rigorosa na internet, as VPNs se tornam uma tábua de salvação, permitindo que os usuários contornem firewalls restritivos e acessem informações livremente.

Garantindo a liberdade de expressão

Um dos argumentos mais convincentes a favor das VPNs é seu papel em garantir a liberdade de expressão. Em regiões onde expressar opiniões divergentes pode ter consequências terríveis, as VPNs fornecem uma ferramenta crítica para contornar a censura. Elas permitem que os usuários acessem informações globais sem restrições, capacitando assim os indivíduos a expressar seus pensamentos e opiniões sem medo de retaliação.

Ao rotear o tráfego da internet por meio de servidores em diferentes países, as VPNs ajudam os indivíduos a contornar as restrições locais e acessar plataformas e conteúdos bloqueados em seu próprio país. Essa capacidade não apenas promove a liberdade de expressão, mas também um discurso global mais aberto e inclusivo.

Uso Corporativo

No mundo corporativo, VPNs são indispensáveis ​​para garantir acesso remoto seguro, eficiente e flexível aos recursos da empresa. À medida que as empresas adotam cada vez mais modelos de trabalho híbrido e remoto, as VPNs fornecem uma solução crítica para manter a segurança e a produtividade.

  • Acesso Remoto Seguro

As VPNs permitem que os funcionários se conectem com segurança às suas redes corporativas de praticamente qualquer lugar. Isso é especialmente crucial à medida que as empresas adotam arranjos de trabalho remoto e híbrido. Ao criptografar dados transmitidos entre funcionários remotos e a rede corporativa, as VPNs protegem informações confidenciais de possíveis interceptações e ameaças cibernéticas. Isso garante que os dados confidenciais da empresa permaneçam seguros, mesmo quando acessados ​​por redes públicas não seguras.

  • Proteção de Dados Aprimorada

Além de proteger conexões remotas, as VPNs desempenham um papel significativo na proteção da integridade dos dados. Ao rotear o tráfego da Internet por túneis criptografados, as VPNs protegem contra violações de dados e acesso não autorizado. Isso é vital para proteger a propriedade intelectual, as informações do cliente e outros dados comerciais confidenciais de possíveis ataques cibernéticos.

  • Controle de acesso e flexibilidade

As VPNs também aumentam a flexibilidade operacional ao permitir que os funcionários acessem sistemas internos, aplicativos e recursos como se estivessem fisicamente presentes no escritório. Essa integração perfeita oferece suporte à produtividade e à colaboração, permitindo que as equipes trabalhem efetivamente em diferentes locais. Além disso, as VPNs facilitam o gerenciamento de controles de acesso, garantindo que apenas pessoal autorizado possa acessar recursos de rede específicos.

Vantagens de usar VPNs

  • Segurança aumentada

As VPNs oferecem benefícios substanciais de segurança. Ao criptografar seu tráfego de internet, elas protegem informações confidenciais de ameaças potenciais. Isso é particularmente crucial ao usar redes Wi-Fi públicas, que são os criadouros para criminosos cibernéticos em sua sanha de interceptação de dados. As VPNs atenuam esses riscos criando um túnel seguro para as atividades online.

  • Anonimato e privacidade

O anonimato é um recurso essencial das VPNs. Ao mascarar seu endereço IP, as VPNs tornam significativamente mais desafiador para sites e anunciantes rastrear seu comportamento online. Essa camada adicional de privacidade pode ajudar a reduzir anúncios direcionados e evitar práticas de coleta de dados que muitos consideram intrusivas.

  • Acesso a conteúdo restrito

Outra grande vantagem das VPNs é sua capacidade de contornar restrições geográficas. Esteja você viajando para o exterior ou simplesmente procurando acessar conteúdo disponível apenas em regiões específicas, as VPNs permitem que você se conecte a servidores em diferentes países, concedendo acesso a uma gama mais ampla de conteúdo e serviços. Esse recurso é particularmente útil para serviços de streaming, onde as bibliotecas de conteúdo variam de acordo com a região geográfica.

Desvantagens e considerações

  • Velocidades reduzidas

Embora uma VPNs ofereça vários benefícios, ela pode às vezes afetar a velocidade de conexão. Essa lentidão ocorre porque os dados precisam viajar por servidores adicionais, o que introduz a chamada latência. A extensão da redução de velocidade depende de vários fatores, incluindo a qualidade do serviço VPN e a distância entre você e o servidor.

  • Não é uma panaceia

Nenhuma pessoa razoável deve crer em panaceias, e as VPNs não são uma. Embora elas melhorem a segurança online, elas não são uma cura para todos os males. Por exemplo, elas não protegem contra ataques de phishing, ou contra malware. É necessário, portanto, complementar o uso de VPN com outras práticas de segurança, como empregar senhas fortes e ter cautela com links e anexos suspeitos – enfim, coisas que sabemos desde os primórdios da Internet mas temos uma formidável resistência em implementar.

  • Considerações legais e de legitimidade

O uso de VPNs é legal e no Brasil e na maioria dos países ocidentais, mas há exceções. Em algumas regiões, usar uma VPN pode ser contra a lei ou pode ser restrito em circunstâncias específicas. Além disso, embora as VPNs em si sejam ferramentas legítimas, nem todos os provedores de VPN são criados iguais. É essencial escolher um provedor respeitável que mantenha uma política rigorosa de não retenção de registros e empregue padrões de criptografia fortes. Alguns serviços de VPN menos escrupulosos podem comprometer sua privacidade registrando dados do usuário ou mesmo vendendo-os a terceiros.

O mundo depende das VPNs

Concluindo, as VPNs não são apenas um luxo tecnológico, mas uma ferramenta fundamental na era digital. Elas oferecem segurança avançada, protegem a privacidade e garantem a liberdade de acesso às informações. Embora haja desvantagens, incluindo potenciais reduções de velocidade e considerações legais, os benefícios gerais das VPNs as tornam um ativo valioso para qualquer pessoa preocupada com privacidade e liberdade online.

À medida que a tecnologia evolui, o cenário da privacidade e segurança digital também evoluirá. O futuro das VPNs provavelmente verá avanços em protocolos de criptografia, interfaces mais amigáveis e maior integração com outras ferramentas de segurança. Além disso, à medida que a conscientização global sobre questões de privacidade digital cresce, as VPNs terão um papel cada vez maior desempenhar na defesa e proteção da liberdade de expressão e dados pessoais.

Recursos

VPN – Wiki

https://pt.wikipedia.org/wiki/Rede_Privada_Virtual

O que é uma VPN

https://br.norton.com/blog/privacy/what-is-a-vpn

Redes Privadas Virtuais

https://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2015_2/Seguranca/conteudo/Redes-Privadas-Virtuais-VPN/Arquitetura-VPN.html

Os Fakes de Elon

No final da semana passada, minha página inicial do Youtube foi subitamente inundada por uma onda de “eventos ao vivo”.

Figura de uma mulher ao computador.
Imagem: pexels.com

Conforme eu rolava para baixo, havia pelo menos cinco desses eventos acontecendo simultaneamente, todos com Elon Musk. Sabemos que ele é um cara que entende de tecnologia, mas, a menos que tenha havido um avanço previamente não anunciado na clonagem humana, me pareceu óbvio que nem mesmo ele poderia dar cinco palestras em cinco locais diferentes ao mesmo tempo.

Assistir a um desses vídeos por alguns minutos levantou algumas “bandeiras vermelhas”, já que o avatar de Musk continuava repetindo a mesma coisa várias vezes: “Digitalize o código QR na tela. Deposite Bitcoin ou Etherium. Duplique seu dinheiro.” (Estou parafraseando, mas essa era a essência das mensagens.). E os vídeos pareciam haver sido digitalizados de fitas VHS de 1995.

Como é possível que alguém com capacidade mental além do tronco cerebral possa cair nesses esquemas está completamente além da minha compreensão.

Detectar golpes é uma habilidade. Uma habilidade difícil, que você tem que desenvolver constantemente. Muitos não confiam em si mesmos o suficiente para fazer isso, ou não têm tempo ou não estão dispostos a fazer o esforço. Ou talvez não saibam por onde começar. Eu pessoalmente comecei meu esforço estudando o chamado sequestro emocional. Depois, desenvolvi regulação emocional para superá-lo.

Diariamente, passo um tempo pensando em meus vieses cognitivos, para entendê-los (são esses vieses que impedem as pessoas de ver um golpe sendo armado). Pesquiso falácias lógicas (como expressamos esses vieses cognitivos). Quanto mais eu me dedico, mais fácil é detectar um golpe.

Meu cérebro é plástico, mas nada disso veio naturalmente. Tive que trabalhar duro para desenvolver defesas. Mas se eu posso fazer isso, qualquer um pode. Não sou de forma alguma uma pessoa superinteligente. É triste que esses temas não façam parte do nosso sistema educacional – talvez os donos do mundo prefiram gado irracional a humanos pensantes.

Regular e taxar

A tecnologia de A.I. é impressionante, mas por que alguém confiaria em influenciadores sem fazer qualquer questionamento? Musk, motivo deste post, por mais admirável que seja, provou repetidamente que não é confiável. Nos casos em que seus empreendimentos tiveram sucesso, foi apesar de suas contribuições, e não por causa delas, e sempre que ele assume um papel mais ativo em seus negócios, o empreendimento geralmente sofre (veja por exemplo Tesla). Se vejo Musk endossando qualquer coisa — mesmo um endosso genuíno — imediatamente me torno mais cético em relação ao que ele está endossando.

As empresas de mídia social não só não estão realmente interessadas em bloquear ou remover esses conteúdos (afinal eles geram muito tráfego) como também, a bem da verdade, no momento elas não têm como removê-los, mesmo que quisessem. Os anúncios são exibidos em tempo real a partir de servidores de terceiros. No momento em que uma empresa bloqueia um anúncio fraudulento, ele pode já ter desaparecido, ou reaparecido com alterações suficientes para evitar o bloqueio. Esses são problemas estruturais de origem que precisam de dinheiro para serem enfrentados.

Como a Big Tech se recusa a dedicar quaisquer recursos sérios para controlar fraudes, golpes e roubos baseados na Internet, ela DEVE ser regulamentada e taxada sem piedade pelo governo federal para que os cidadãos sejam protegidos da anarquia e da ganância da Internet. O Facebook e o Google podem se dar ao luxo de gastar algumas centenas de milhões ou um bilhão extra para limpar seu site, seus aplicativos e algoritmos, mas ao invés disso eles preferem lucrar com o caos. Lucros anuais do Facebook nos últimos quatro anos: US$ 30 bilhões. Lucros anuais do Google no mesmo período: US$ 154 bilhões.

Regulamente e taxe a fonte do problema e o problema desaparecerá em grande parte. Mais impostos e mais proteção ao consumidor, e menos capitalismo abutre não regulamentado e subtributado.