☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

terça-feira, 8 de janeiro de 2008

🧠 OMVS Shell no z/OS

 

Bellacosa Mainframe com o Unix no Mainframe ZOS conheça o Posix OMVS shell

🧠 OMVS Shell no z/OS

O Unix que mora dentro do Mainframe

👉 Ao estilo Bellacosa Mainframe


🎬 Abertura – “Tem Unix dentro do meu z/OS?”

Sim.
E não é gambiarra.
Não é emulação.
Não é “meio Unix”.

👉 É Unix de verdade, certificado POSIX, rodando lado a lado com JES2, CICS, DB2 e batch.

O nome da criatura é:

z/OS UNIX System Services (USS)

E o portal de entrada é o OMVS shell.

Se você é padawan de mainframe e ainda acha que tudo é JCL + ISPF, prepare-se:
o OMVS vai expandir sua visão do universo.


🕰️ Um pouco de história (porque Bellacosa não pula contexto)

Anos 90.
O mundo gritava: “Unix! TCP/IP! Open Systems!”

A IBM poderia ter brigado.
Mas fez o que sempre faz melhor:

👉 Engoliu o mundo… e integrou.

Nasce o USS:

  • Compatível com POSIX

  • Suporte a C, Java, shell scripts

  • Base para:

    • TCP/IP

    • OpenSSH

    • FTP

    • NFS

    • WebSphere

    • DB2 Utilities

    • Ferramentas modernas

👉 Sem OMVS, z/OS não conversa com o mundo moderno.


🚪 Entrando no OMVS – Primeiro contato do Padawan

Opção 1️⃣ – ISPF Command Line

OMVS

Boom 💥
Você saiu do mundo verde clássico e entrou no shell Unix do mainframe.


Opção 2️⃣ – Via TSO

TSO OMVS

Mesmo efeito.
Outra porta do mesmo templo.


Opção 3️⃣ – SSH (modo Jedi)

ssh usuario@hostname

👉 Aqui você já nasce adulto.
Terminal moderno, scripts, automação.


🐣 Onde estou? Quem sou eu?

Primeiro comando que todo padawan executa:

pwd

Resposta típica:

/u/renato

📌 /u é o “HOME” padrão dos usuários USS.

Confirme quem você é:

whoami

📁 Navegação básica (sem medo)

ls # lista arquivos ls -l # lista detalhada ls -a # mostra arquivos ocultos cd dir # entra no diretório cd .. # sobe um nível cd # volta pro HOME

👉 Sim, igual Linux.
👉 Não, não é coincidência.


📄 Trabalhando com arquivos

touch arquivo.txt vi arquivo.txt cat arquivo.txt more arquivo.txt less arquivo.txt rm arquivo.txt cp a b mv a b

⚠️ Cuidado Bellacosa
rm no USS não pergunta.
Não tem ISPF UNDO.
Aqui é vida real.


🧬 Comandos essenciais do OMVS (lista de ouro)

Sistema

uname -a # info do sistema df -k # espaço em disco du -sk * # tamanho de diretórios ps -ef # processos top # monitor em tempo real

Usuários e permissões

id chmod 755 file chown user:grp file

📌 Sim, RACF manda por baixo.
USS respeita UID, GID, mas quem manda é o SAF.


Processos

ps -ef | grep nome kill -9 PID

👉 Sim, você pode matar processo.
👉 Não, não mate coisa que você não entende 😈


🔄 “Bellacosa, como eu VOLTO pro z/OS?”

Pergunta clássica.
Resposta simples:

exit

Ou:

logout

👉 Você volta direto pro TSO/ISPF, são e salvo.

📌 Não existe reboot do mainframe porque você saiu do OMVS.
Relaxa.


🧙‍♂️ Truques & Dicas de Velho Jedi

🧩 1. Dataset ≠ Arquivo USS

USS usa HFS/ZFS, não dataset.

Mas existe ponte:

cat "//'HLQ.DATASET'"

🤯 Sim.
Dataset como se fosse arquivo.


🧩 2. Shell scripts no z/OS

#!/bin/sh echo "Hello, Mainframe Unix!"

Executa:

chmod +x script.sh ./script.sh

👉 Batch + Shell = automação poderosa.


🧩 3. Variáveis de ambiente

export PATH=$PATH:/usr/local/bin

👉 Java, DB2, ferramentas modernas dependem disso.


🧩 4. Histórico secreto

Setinha ↑ ↓ funciona 😏
Sim, até no OMVS.


🥚 Easter Eggs do USS

🥚 echo $?
Mostra o return code do último comando
👉 Sim, tipo COND CODE do Unix.

🥚 /bin/date
Unix date rodando no mainframe desde os anos 90.

🥚 Strings Unix em dumps z/OS
Sim, você já viu stack trace Unix dentro de dump mainframe.
Agora sabe por quê.


🤔 Comentários Bellacosa (sem filtro)

👉 OMVS é:

  • Subestimado

  • Mal ensinado

  • Essencial

👉 Quem ignora USS:

  • Sofre com FTP

  • Não entende WebSphere

  • Apanha em troubleshooting TCP/IP

👉 Mainframe não é só batch.
É plataforma híbrida antes de “cloud híbrida” virar buzzword.


🧑‍🎓 Caminho do Padawan → Jedi

Passo a passo recomendado:

1️⃣ Aprender navegação básica
2️⃣ Editar arquivos com vi
3️⃣ Entender permissões
4️⃣ Usar ps, kill, df
5️⃣ Integrar shell com batch
6️⃣ Acessar via SSH
7️⃣ Automatizar tarefas
8️⃣ Entender RACF + USS
9️⃣ Troubleshooting real
🔟 Virar referência na equipe 😎


🏁 Encerramento

OMVS não é “opcional”.
É parte do DNA moderno do z/OS.

Quem domina OMVS:

  • Entende o passado

  • Opera o presente

  • Está pronto pro futuro

👉 Mainframe não é velho.
Velho é quem não explora tudo o que ele tem.


segunda-feira, 7 de janeiro de 2008

Bellacosa Index Page: Checklist de Indexação

  

✅ Checklist de Indexação 



SEO não é sobre truques, mas sobre clareza, qualidade e consistência.
Ao seguir este checklist, você cria uma base sólida para crescer organicamente, ganhar visibilidade e construir autoridade nos motores de busca de forma sustentável.

🔹 1. Visibilidade nos motores de busca

📍 Blogger → Configurações → Preferências de pesquisa

  •  Visibilidade nos motores de busca:
    ☑️ SIM (permitir indexação)

❌ Se estiver “Não”, o Google não indexa nada do blog.


🔹 2. Meta tags do blog (muito importante)

📍 Configurações → Preferências de pesquisa → Meta tags

  •  Descrição: ATIVADA

  •  Descrição clara, objetiva e com palavras-chave do blog

⚠️ Não usar textos vazios ou genéricos.


🔹 3. Meta tags dos posts

📍 Editor de post → Opções do post

Para cada post:

  •  Robôs personalizados: padrão (index, follow)

  •  NÃO marcar “Não indexar”

❌ Um post com noindex nunca aparecerá no Google.


🔹 4. Robots.txt personalizado

📍 Configurações → Preferências de pesquisa → Robots.txt personalizado

Configuração recomendada:

User-agent: * Disallow: /search Allow: /
  •  Robots.txt ATIVADO

  •  Não bloquear / ou /posts

  •  Não usar Disallow: / (isso bloqueia tudo)


🔹 5. Cabeçalho HTTP (X-Robots-Tag)

⚠️ Erro comum em templates modificados

  •  Nenhuma página importante retorna:

X-Robots-Tag: noindex

Como verificar:

  1. Abrir post no navegador

  2. Pressionar F12

  3. Aba Network → Document

  4. Ver cabeçalhos HTTP


🔹 6. Template do Blog

📍 Tema → Editar HTML

  •  NÃO existir:

<meta name="robots" content="noindex">

em páginas de post

✔️ noindex só deve existir em:

  • páginas de busca

  • arquivos

  • labels (opcional)


🔹 7. URLs corretas (SEO-friendly)

  •  URLs curtas

  •  Sem datas exageradas

  •  Palavras-chave no link

  •  Evitar caracteres estranhos

Exemplo bom:

/2025/retrospectiva-canal-el-jefe.html

🔹 8. Sitemap enviado ao Google

📍 Google Search Console → Sitemaps

Enviar:

/sitemap.xml
  •  Sitemap enviado

  •  Sem erros


🔹 9. Google Search Console – Indexação

📍 Indexação → Páginas

Verificar:

  •  Páginas indexadas

  •  Páginas excluídas

  •  Motivos de exclusão analisados

Erros comuns:

  • noindex

  • duplicadas

  • redirecionadas

  • descobertas mas não indexadas


🔹 10. Inspeção de URL (página por página)

📍 Search Console → Inspeção de URL

  •  Colar URL do post

  •  Ver status: INDEXADA

  •  Se não → Solicitar indexação


🔹 11. Conteúdo mínimo para indexação

O Google evita indexar páginas fracas.

Para cada post:

  •  +300 palavras

  •  Texto original

  •  Pelo menos 1 imagem

  •  Título claro

  •  Conteúdo útil


🔹 12. Links internos

  •  Posts linkam para outros posts

  •  Página inicial linka posts importantes

  •  Menu com links reais

✔️ Links internos ajudam o Google a descobrir páginas.


🔹 13. Velocidade e usabilidade

  •  Template leve

  •  Mobile-friendly

  •  Sem excesso de scripts externos

📌 Blogspot lento = indexação lenta.


🔹 14. Verificação manual rápida

No Google, digite:

site:SEUBLOG.blogspot.com
  •  Posts aparecem

  •  Novos posts surgem após alguns dias


🔹 15. Frequência de publicação

  •  Postar pelo menos 1x por semana

  •  Evitar longos períodos sem atualização

📈 Blog ativo = Google visita mais vezes.


🧠 DICA FINAL

Indexação não é imediata. Mesmo com tudo correto:

  • novos blogs levam semanas

  • novos posts levam dias

📌 Consistência vence pressa.


quinta-feira, 3 de janeiro de 2008

📊 Tabela de Erros Comuns no COBOL 4.x

 



📊 Tabela de Erros Comuns no COBOL 4.x

(O museu do código que sobreviveu por sorte)

“COBOL 4 não perdoa erros…
ele apenas adia a cobrança.”

— Bellacosa



🟥 ERROS DE DADOS E NUMÉRICOS (os mais perigosos)

Erro comumPor que acontece no COBOL 4Sintoma clássicoRisco real
MOVE alfanumérico → numérico sem validaçãoCOBOL 4 é permissivoResultado “estranho”Dados corrompidos
Campo COMP com lixoFalta de NUMCHECKValor inválido silenciosoABEND S0C7
Campo não inicializadoWORKING-STORAGE “herdada”Resultado imprevisívelErro intermitente
Truncamento implícitoFalta de TRUNCPerda de centavosErro contábil
Uso errado de PICPIC não condiz com o dadoMOVE aceitaCálculo errado

🥚 Easter-egg:

“Nunca deu problema” é o sintoma mais comum.


🟧 ERROS DE CONTROLE DE FLUXO

Erro comumPor que passa no COBOL 4SintomaConsequência
PERFORM sem END-PERFORMSintaxe antiga aceitaLoop infinitoCPU 100%
GO TO cruzando lógicaPermitidoFluxo ilegívelBug fantasma
PERFORM THRU mal definidoDependência de labelsExecução indevidaLógica quebrada
IF sem END-IFAmbiguidadeDecisão erradaRegra violada

Bellacosa rule:

Se tem GO TO, alguém já chorou por isso.


🟨 ERROS DE ARQUIVOS (Batch Killers)

Erro comumCausa típicaSintomaImpacto
FILE STATUS ignorado“Sempre abre”JOB termina normalDados errados
READ sem AT ENDPressuposto erradoLoop infinitoBatch travado
WRITE sem verificaçãoFalta de validaçãoArquivo inconsistenteReprocessamento
OPEN erradoCopybook confusoAbend S013/S213Job abortado

🥚 Easter-egg de produção:

O JOB “rodou verde”, mas gerou arquivo vazio.


🟦 ERROS DE MEMÓRIA E STORAGE

Erro comumPor que ocorreSintomaResultado
REDEFINES mal alinhadoEstrutura erradaDado incoerenteCorrupção
OCCURS sem limitesFalta de índiceLeitura foraS0C4
INDEX mal usadoMistura de tiposLoop erradoDados perdidos
DEPENDING ON inválidoValor sujoOCCURS erradoOverrun

🟪 ERROS DE PERFORMANCES (invisíveis)

Erro comumPor que é ignoradoSintomaCusto
MOVE desnecessárioCódigo antigoCPU altaMIPS caro
Loop mal definidoFalta de controleBatch lentoSLA estourado
Uso excessivo de DISPLAYDebug legadoLentidãoI/O inútil
Falta de OPTIMIZEPadrão conservadorCódigo ineficienteMais CPU

Bellacosa truth:

Performance ruim é bug financeiro.


🟫 ERROS DE COMPILAÇÃO (clássicos)

Erro comumCOBOL 4 permiteResultadoPerigo
Compilar sem SSRANGEDefault antigoOverflow invisívelCrash futuro
Compilar sem NUMCHECKTolerância excessivaDado inválidoS0C7
Ignorar warnings“Não quebra”Bug latenteProdução
TRUNC erradoDefault históricoTruncamentoErro monetário

☠️ ABENDS mais ligados a COBOL 4

ABENDCausa típica
S0C7Campo numérico inválido
S0C4Endereço inválido
S013Arquivo mal definido
S222Loop infinito
S0CBViolação de storage

🎓 Resumo para Padawans

✔ COBOL 4 funciona por tolerância
✔ Erros ficam escondidos
✔ Bugs surgem anos depois
✔ Migração para COBOL 5 revela tudo


🧠 Frase final Bellacosa™

“COBOL 4 não valida.
Ele confia.
E confiança sem validação é bug.”

 

quarta-feira, 26 de dezembro de 2007

🟦 IBM Mainframe & COBOL 4.00

 


🟦 IBM Mainframe & COBOL 4.00

O elo entre o COBOL clássico e o mundo moderno

“COBOL 4 não é ruptura.
É a IBM dizendo: ‘vamos modernizar… sem quebrar nada’.”

— Bellacosa, depois de recompilar 3 milhões de linhas


🧬 Contexto histórico: onde o COBOL 4.00 se encaixa

O Enterprise COBOL for z/OS 4.0 faz parte da família COBOL 4.x, que surgiu no início da década de 2010, num momento crítico:

  • Mainframes mais poderosos (z10, z196)

  • Arquitetura 64 bits amadurecendo

  • Pressão por performance, modernização e integração

  • COBOL 3 ainda dominante… mas envelhecendo

👉 O COBOL 4 não veio para “mudar a linguagem”.
Veio para mudar o compilador.


📅 Data de lançamento (contexto realista)

  • Enterprise COBOL for z/OS 4.0: final de 2007 e primordios da primeira década de 2010.

  • Consolidação real aconteceu nas versões 4.1 / 4.2

  • Foi o degrau obrigatório antes do COBOL 5.x

💡 Tradução Bellacosa:

Se você saiu do COBOL 3 direto para o 5, o 4 foi o “meio do caminho” que você pulou… e pagou depois.



🖥️ Equipamentos mainframe indicados

COBOL 4 foi feito para explorar hardware moderno da IBM:

Mainframes ideais:

  • IBM z10

  • IBM z196

  • IBM zEC12

  • Totalmente compatível com zEnterprise

Por quê?

Porque o COBOL 4:

  • Gera código mais otimizado

  • Explora melhor o pipeline do processador

  • Se beneficia de novas instruções de CPU

🥚 Easter-egg:

Recompilar COBOL antigo em COBOL 4 sem mudar uma linha já dava ganho de performance.


🔄 O que muda em relação ao COBOL 3.x?

🧠 1️⃣ Compilador totalmente redesenhado

  • Novo backend

  • Melhor otimização de código

  • Melhor uso de registradores

👉 O código fonte parece igual.
👉 O código objeto não é.


⚙️ 2️⃣ Melhor suporte a arquitetura moderna

  • Preparação para 64 bits

  • Melhor alinhamento de dados

  • Base para o futuro COBOL 5 (LE-only)


📊 3️⃣ Performance real

  • Redução de CPU em batch

  • Melhor performance em loops

  • Melhor otimização de PERFORM

🥚 Easter-egg:

Muitos shops recompilaram só para economizar MIPS.


🧨 4️⃣ Mais rigor (menos permissividade)

Alguns “pecados antigos” começaram a ser cobrados:

  • Dados mal definidos

  • Uso implícito perigoso

  • Código que “sempre funcionou” 😅

👉 COBOL 4 começa a expor bugs escondidos há 20 anos.


🧪 Exemplo simples (nada muda… mas muda tudo)

IDENTIFICATION DIVISION. PROGRAM-ID. EXEMPLO4. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-TOTAL PIC 9(9) VALUE 0. PROCEDURE DIVISION. PERFORM 10 TIMES ADD 1 TO WS-TOTAL END-PERFORM DISPLAY WS-TOTAL STOP RUN.

➡ Em COBOL 3: funciona
➡ Em COBOL 4: funciona mais rápido

💡 O ganho está no objeto gerado, não no código.


🛠️ Dicas técnicas Bellacosa Approved™

✔ Recompile, mesmo sem modernizar

  • COBOL 4 já entrega valor só na recompilação

✔ Use parâmetros certos:

  • OPTIMIZE

  • ARCH

  • SSRANGE (para pegar erro escondido)

✔ Teste batch crítico

  • Principalmente cálculos

  • Principalmente datas

  • Principalmente arredondamentos

✔ Compare CPU antes/depois

  • Você vai se surpreender


⚠️ Armadilhas clássicas

🚨 Código que dependia de comportamento indefinido
🚨 Campos mal alinhados
🚨 MOVE CORRESPONDING em estruturas duvidosas
🚨 Arredondamento implícito não documentado

🥚 Easter-egg cruel:

COBOL 4 não cria bug.
Ele revela.


🧠 Curiosidades de bastidor

  • COBOL 4 foi o primeiro passo sério rumo ao LE-only

  • Muitas empresas ficaram “presas” no 4 por anos

  • Ele é visto como a versão mais estável da transição

  • Serviu de base para o radical COBOL 5


🧘 Primeiros passos para o Padawan

Se você está começando agora:

1️⃣ Entenda COBOL clássico primeiro
2️⃣ Saiba compilar e linkar
3️⃣ Entenda parâmetros de compilação
4️⃣ Recompile código antigo e observe
5️⃣ Leia o listing — ele ensina mais que o código

“Quem lê o listing, domina o mainframe.”


🧠 Visão Bellacosa Final™

O COBOL 4.00 não é famoso.
Não é revolucionário.
Não é hype.

Mas ele é:

  • Estável

  • Inteligente

  • O verdadeiro ponto de virada técnico do COBOL moderno

Se o COBOL fosse uma saga:

  • COBOL 3 = trilogia clássica

  • COBOL 4 = o episódio de transição

  • COBOL 5 = o reboot corajoso

E lembre-se, Padawan:

“Modernizar não é reescrever.
É entender o que funciona… e deixar melhor.”

 

quinta-feira, 1 de novembro de 2007

GHOST HUNT — O ANIME QUE TRANSFORMOU CAÇA-FANTASMAS EM UMA OPERAÇÃO DE DEBUG SOBRENATURAL DE ALTO RISCO

 

Bellacosa Mainframe e os caçadores de fantasma em Ghost Hunt

☕💣👻 OPERADOR, EXISTEM JOBS EXECUTANDO NO ALÉM!

GHOST HUNT — O ANIME QUE TRANSFORMOU CAÇA-FANTASMAS EM UMA OPERAÇÃO DE DEBUG SOBRENATURAL DE ALTO RISCO


📋 Ficha Técnica

ItemInformação
Título Originalゴーストハント (Ghost Hunt)
Título InternacionalGhost Hunt
Autora OriginalFuyumi Ono
Ilustrações da NovelShiho Inada
EstúdioJ.C.Staff
DiretorRei Mano
Exibição Original3 de outubro de 2006 a 27 de março de 2007
Episódios25
OrigemLight Novel
GêneroTerror, Mistério, Sobrenatural, Investigação, Suspense, Drama
Classificação Indicativa14 anos
StatusConcluído

☕ Introdução

Existem animes de terror que tentam assustar usando sangue.

Existem animes que usam monstros.

Existem animes que usam violência psicológica.

E existe Ghost Hunt, que consegue causar desconforto apenas com um corredor vazio, uma porta fechada ou um ruído vindo do andar de cima.

O que torna Ghost Hunt especial é que ele mistura:

  • Investigação científica

  • Paranormalidade

  • Espiritualidade japonesa

  • Psicologia

  • Folclore oriental

Tudo isso embalado como se fosse uma série de casos investigativos.

É praticamente um cruzamento entre:

  • Arquivo X

  • Supernatural

  • Scooby-Doo (versão adulta)

  • CSI Paranormal


📖 Sinopse

Mai Taniyama é uma estudante comum que gosta de contar histórias de fantasmas.

Ao se envolver acidentalmente em uma investigação paranormal conduzida pela empresa:

Shibuya Psychic Research (SPR)

ela acaba tornando-se assistente do brilhante e arrogante investigador:

Kazuya Shibuya (Naru)

A partir daí, Mai passa a participar de casos envolvendo:

  • Escolas assombradas

  • Mansões amaldiçoadas

  • Espíritos vingativos

  • Possessões

  • Poltergeists

  • Fenômenos inexplicáveis

Cada caso leva a equipe para situações cada vez mais perigosas.


📚 A História por Trás da Obra

Ghost Hunt nasceu como uma série de novels escritas por Fuyumi Ono durante os anos 1980.

Curiosamente, a autora pesquisou profundamente:

  • Parapsicologia

  • Fenômenos sobrenaturais

  • Religiões orientais

  • Casos paranormais reais

Isso explica por que a obra possui uma abordagem muito mais técnica do que a maioria dos animes do gênero.

Enquanto outros animes simplesmente dizem:

"É um fantasma."

Ghost Hunt pergunta:

"Temos certeza?"


👻 O Que Torna Ghost Hunt Diferente?

Aqui está o grande diferencial.

Na maioria dos animes de terror:

Fantasma → susto → exorcismo.

Fim.

Em Ghost Hunt:

Fantasma → investigação → coleta de evidências → hipóteses → confronto de teorias → conclusão.

Parece quase uma análise de incidente em produção.


☕ Analogia Bellacosa Mainframe

Imagine um ambiente z/OS.

Surge um problema misterioso.

Ninguém sabe a causa.

Os logs não mostram nada.

Os operadores estão desesperados.

Os usuários reclamam.

O gerente quer respostas.

É exatamente isso que acontece em Ghost Hunt.

Só que em vez de:

  • JES2

  • CICS

  • DB2

os problemas envolvem:

  • Espíritos

  • Maldições

  • Assombrações

  • Possessões

Naru é basicamente um Analista de Suporte Nível 3 especializado em incidentes sobrenaturais.


🧑‍💻 Principais Personagens


👻 Mai Taniyama

A protagonista.

Representa o espectador.

Curiosa.

Impulsiva.

Corajosa.

É através dela que aprendemos as regras daquele universo.


🕶️ Kazuya "Naru" Shibuya

O cérebro da operação.

Frio.

Lógico.

Extremamente inteligente.

Age como um dump analyzer humano.

Nada escapa à sua investigação.


✝️ John Brown

Padre católico.

Especialista em exorcismos.

Uma das figuras mais equilibradas da série.


🔥 Houshou Takigawa

Monge budista.

Responsável pelos rituais orientais.

Também fornece momentos de humor.


⛩️ Ayako Matsuzaki

Sacerdotisa xintoísta.

Muitas vezes entra em conflito com Naru.

Representa a fé tradicional japonesa.


🔮 Masako Hara

Médium profissional.

Possui uma conexão espiritual muito mais forte do que aparenta.


🏚️ As Grandes Aventuras

Diferentemente de muitos animes, Ghost Hunt funciona por arcos independentes.

Cada caso é praticamente um incidente diferente.


Escola Assombrada

O clássico ponto de partida.

Corredores escuros.

Barulhos.

Sombras.

Uma excelente introdução ao universo.


Mansão dos Espíritos

A equipe enfrenta fenômenos muito mais agressivos.

Aqui percebemos que algumas entidades são perigosas de verdade.


Casa dos Bonecos

Um dos arcos mais perturbadores.

Utiliza o medo psicológico de forma magistral.


Labirinto Sangrento

Considerado por muitos fãs o melhor caso da série.

O nível de tensão sobe drasticamente.


Possessões e Exorcismos

Os casos finais exploram temas mais pesados:

  • Morte

  • Culpa

  • Trauma

  • Obsessão


🧠 As Mensagens Ocultas

Ghost Hunt possui muito mais profundidade do que aparenta.


O Medo do Desconhecido

A obra sugere que aquilo que não entendemos sempre parece sobrenatural.

É uma discussão constante entre:

Ciência

versus

Crença


A Verdade Pode Ser Assustadora

Muitas vezes o verdadeiro horror não é o fantasma.

É a história por trás dele.


Trauma Não Desaparece

Diversos espíritos representam emoções não resolvidas.

Mágoa.

Dor.

Arrependimento.

Culpa.


Nem Tudo Tem Explicação

Mesmo Naru, com toda sua lógica, encontra fenômenos impossíveis de explicar completamente.


🎭 Simbolismos Escondidos

Cada membro da equipe representa uma forma diferente de interpretar a realidade.

PersonagemSimbolismo
NaruCiência
AyakoTradição
John
MasakoSensibilidade
MaiCuriosidade
TakigawaEspiritualidade

A série mostra que nenhuma visão é suficiente sozinha.


🎨 Qualidade da Animação

O estúdio J.C.Staff fez um excelente trabalho.

Em vez de investir em ação exagerada, apostou em:

  • Atmosfera

  • Iluminação

  • Som ambiente

  • Silêncio

O resultado envelheceu surpreendentemente bem.


🚫 Houve Censura?

Não houve censura significativa.

Entretanto, o anime suavizou alguns elementos das novels.

As obras originais possuem:

  • Mais violência psicológica

  • Casos mais detalhados

  • Explicações mais profundas

  • Desenvolvimento maior de Naru

Alguns fãs consideram as novels superiores justamente por isso.


🌎 Impacto Cultural

Ghost Hunt ajudou a popularizar um subgênero que mais tarde inspiraria obras como:

  • Another

  • Dark Gathering

  • Ghost Hound

  • Shinrei Tantei Yakumo

  • Dusk Maiden of Amnesia

Até hoje é frequentemente citado em listas de:

"Melhores animes de terror psicológico"

e

"Melhores histórias de fantasmas dos animes."


⭐ Avaliação Bellacosa Mainframe

CritérioNota
Terror9/10
Mistério10/10
Atmosfera10/10
Personagens9/10
Suspense10/10
Reassistibilidade9/10
Impacto Emocional8/10
Sobrenatural10/10

☕ Conclusão

Ghost Hunt é um daqueles animes raros que não dependem de gore, violência extrema ou monstros gigantes para funcionar.

Seu verdadeiro poder está em criar a sensação de que existe algo errado no ambiente.

Algo observando.

Algo esperando.

Algo que não deveria estar ali.

Na linguagem do operador de mainframe:

Ghost Hunt é o equivalente a encontrar um JOB consumindo CPU há 40 anos, sem owner, sem documentação, sem JCL catalogada e sem ninguém vivo para explicar por que ele continua executando.

E quanto mais você investiga...

mais percebe que talvez fosse melhor nunca ter aberto o ticket. ☕👻💣🖥️


terça-feira, 18 de setembro de 2007

📧 A Autópsia de um E-mail — Ninguém Esperava a Spanish Inquisition!

 

Bellacosa Mainframe e como funciona um email

☕ Um Café no Bellacosa Mainframe

📧 A Autópsia de um E-mail — Ninguém Esperava a Spanish Inquisition!

SMTP → DNS → MX → SPF → DKIM → DMARC → antispam → mailbox, sob o olhar desconfiado dos inquisidores da Internet

Imagine a cena.

São 03:17 da madrugada.

Naturalmente.

Porque sistemas de produção raramente escolhem um horário civilizado para revelar seus segredos.

Em algum lugar do mundo, um usuário termina uma mensagem absolutamente inocente:

Para: joao@empresa.com
Assunto: Relatório de Produção

Ele escreve:

“Olá João, segue o relatório solicitado.”

Anexa um PDF.

Olha rapidamente para a mensagem.

E aperta:

SEND.

Pronto.

Na cabeça do usuário, aconteceu isto:

EU
 │
 │ SEND
 ▼
JOÃO

Que adorável.

Que inocente.

Que absolutamente errado.

Porque naquele exato instante o pequeno e-mail é arrancado do conforto do cliente de correio eletrônico e lançado em uma das maiores burocracias automatizadas criadas pela humanidade.

Ele encontrará servidores SMTP, consultará DNS, procurará registros MX, atravessará conexões de rede e será interrogado por SPF, DKIM, DMARC, mecanismos de reputação, antispam, antivírus e políticas corporativas.

Tudo isso antes de conseguir tocar na sagrada pasta:

INBOX.

Nosso pequeno e-mail ainda não sabe.

Mas alguém bate à porta.

— Toc, toc.

— Quem está aí?

Três homens aparecem.

Vestidos de vermelho.

O primeiro carrega uma enorme documentação de DNS.

O segundo segura uma chave criptográfica.

O terceiro traz uma política DMARC impressa em pergaminho.

E gritam:

NOBODY EXPECTS THE SPANISH INQUISITION!

Bem-vindo à autópsia de um e-mail.



🎬 Ato I — O botão SEND é apenas o começo

Uma das primeiras coisas que precisamos destruir é a ideia de que apertar SEND significa que o destinatário recebeu alguma coisa.

Não significa.

Significa apenas que você entregou a mensagem para a próxima etapa de uma cadeia.

Dependendo da arquitetura utilizada, existem diferentes componentes envolvidos, mas podemos imaginar inicialmente:

Usuário
   │
   ▼
Cliente de e-mail
   │
   ▼
Servidor de envio
   │
   ▼
Internet
   │
   ▼
Servidor destinatário
   │
   ▼
Mailbox

Essa representação já é melhor.

Mas ainda é simples demais.

Quando abrimos a máquina:

MESSAGE
   │
   ▼
SMTP
   │
   ▼
DNS
   │
   ▼
MX
   │
   ▼
SMTP DESTINO
   │
   ├── SPF
   ├── DKIM
   ├── DMARC
   ├── reputação
   ├── antispam
   ├── antimalware
   └── políticas
         │
         ▼
      MAILBOX

Agora começamos a enxergar o problema.

Enviar e-mail é fácil.

Convencer o outro servidor a aceitar o e-mail é outra história.



📮 Ato II — SMTP, apresente-se!

O primeiro grande personagem dessa história é o SMTP — Simple Mail Transfer Protocol.

A palavra Simple merece carinho.

Ela pertence àquela época maravilhosa da computação em que alguém ainda acreditava que alguma coisa conectada à Internet permaneceria simples.

SMTP nasceu para transportar mensagens.

Podemos imaginar uma conversa bastante simplificada:

SERVIDOR: 220 mail.empresa.com ESMTP

CLIENTE: EHLO mail.remetente.com

SERVIDOR: 250 Hello

CLIENTE: MAIL FROM:<vagner@example.com>

SERVIDOR: 250 OK

CLIENTE: RCPT TO:<joao@empresa.com>

SERVIDOR: 250 OK

CLIENTE: DATA

SERVIDOR: 354 Start mail input

Então chegam cabeçalhos, corpo da mensagem, anexos codificados e demais informações necessárias.

O protocolo possui uma característica maravilhosa para quem gosta de entender computadores:

é uma conversa.

Um lado fala.

O outro responde.

Existem códigos.

Existem estados.

Existem erros.

Para quem trabalha com mainframe, isso deveria soar familiar.

É praticamente um diálogo transacional.

Você pede alguma coisa.

O outro lado responde se aceitou ou não.

Mas antes de nosso SMTP conseguir entregar a mensagem existe uma pergunta bastante importante:

Onde está o servidor responsável por empresa.com?



🌎 Ato III — DNS, encontre o castelo!

Nosso destinatário é:

joao@empresa.com

Temos duas partes importantes.

joao

é a caixa ou identidade local.

E:

empresa.com

é o domínio.

Mas empresa.com pode possuir site, APIs, servidores, aplicações e dezenas de outros serviços.

Qual máquina recebe e-mail?

Precisamos perguntar ao DNS — Domain Name System.

E não estamos simplesmente perguntando:

“Qual é o IP de empresa.com?”

Queremos algo mais específico:

“Quem recebe e-mails destinados a empresa.com?”

É aí que aparece nosso próximo personagem.



🏰 Ato IV — MX aponta o portão

O registro MX — Mail Exchange indica servidores responsáveis pelo recebimento de e-mail de determinado domínio.

Poderíamos encontrar algo conceitualmente parecido com:

empresa.com. MX 10 mail1.empresa.com.
empresa.com. MX 20 mail2.empresa.com.

Temos dois servidores.

E temos prioridades.

Normalmente, valores menores possuem maior preferência.

Assim:

              empresa.com
                   │
                   ▼
                  DNS
                   │
          ┌────────┴────────┐
          ▼                 ▼
        MX 10             MX 20
          │                 │
          ▼                 ▼
 mail1.empresa.com   mail2.empresa.com

Nosso servidor finalmente encontrou o castelo.

Aproxima-se.

Bate à porta.

— Bom dia. Tenho uma mensagem para João.

A porta abre lentamente.

Um homem vestido de vermelho pergunta:

— Seu nome?

— SMTP.

— Domínio?

— example.com.

— IP?

— Bem...

NOBODY EXPECTS THE SPANISH INQUISITION!



🔥 Ato V — Cardeal SPF entra na sala

O primeiro inquisidor é o SPF — Sender Policy Framework.

Ele não está particularmente interessado no conteúdo romântico, comercial, financeiro ou absolutamente inútil da mensagem.

Sua pergunta é outra:

Este sistema está autorizado a enviar mensagens em nome da identidade de domínio relevante para SPF?

Aqui encontramos um conceito que confunde muita gente.

Existe aquilo que vemos:

From: vagner@example.com

Mas existe também o chamado envelope SMTP.

Durante a comunicação podemos ter:

MAIL FROM:<bounce@example.com>
RCPT TO:<joao@empresa.com>

O SPF está relacionado à identidade SMTP usada nesse processo, não simplesmente ao From: visual que aparece no cliente do usuário.

O destinatário verifica a política SPF publicada pelo domínio através do DNS.

A pergunta conceitual é:

Este IP está autorizado
a enviar para este domínio?

A resposta poderá resultar em condições como:

PASS
FAIL
SOFTFAIL
NEUTRAL

entre outras possibilidades previstas pelo mecanismo.

Se o resultado for favorável, nosso Cardeal SPF anota:

PASS.

— Muito bem. Próximo!

Nosso e-mail suspira aliviado.

Péssima decisão.

Porque o segundo inquisidor acaba de entrar.


🔏 Ato VI — Cardeal DKIM exige a assinatura

O segundo homem olha para a mensagem.

— Documentos?

— Aqui.

— Identificação?

— Aqui.

— Assinatura?

Silêncio.

O DKIM — DomainKeys Identified Mail introduz assinatura criptográfica ao processo.

A organização remetente possui uma chave privada.

Partes determinadas da mensagem são utilizadas no processo de geração da assinatura.

Um cabeçalho DKIM pode conter informações semelhantes a:

DKIM-Signature:
 v=1;
 a=rsa-sha256;
 d=example.com;
 s=selector1;
 ...

Duas informações são particularmente interessantes para nossa investigação:

d=example.com

e:

s=selector1

O d= informa o domínio relacionado à assinatura.

O s= fornece o selector.

Com essas informações, o destinatário pode consultar o DNS e encontrar a chave pública correspondente.

Algo conceitualmente como:

selector1._domainkey.example.com

Agora podemos visualizar:

REMETENTE
    │
    ▼
mensagem
    │
    ▼
chave privada
    │
    ▼
assinatura DKIM
    │
    ▼
════════ INTERNET ════════
    │
    ▼
DESTINATÁRIO
    │
    ▼
consulta DNS
    │
    ▼
chave pública
    │
    ▼
verificação
    │
    ▼
DKIM PASS / FAIL

O Cardeal DKIM examina cuidadosamente os documentos.

Olha para o e-mail.

Olha novamente para os documentos.

— Assinatura válida.

O e-mail sorri.

— Então posso entrar?

— HAHAHAHAHA!

Não.


🧐 Ato VII — Uma assinatura válida não significa “mensagem verdadeira”

Essa distinção é fundamental.

DKIM não é um selo mágico dizendo:

“Tudo que está escrito nesta mensagem é verdade.”

Ele ajuda a verificar criptograficamente a assinatura associada a determinado domínio e a integridade das partes assinadas segundo o mecanismo.

Isso é diferente de validar o conteúdo humano.

Uma mensagem pode estar perfeitamente assinada e dizer:

“Compre minha coleção de pedras lunares terapêuticas que executam COBOL.”

A criptografia não avalia a qualidade da oferta.

Ela verifica propriedades técnicas da assinatura.

Essa diferença entre:

autenticação

e:

confiança

será importantíssima daqui para frente.


👑 Ato VIII — Entra o Grande Inquisidor DMARC

As portas se abrem.

Todos ficam em silêncio.

Chega o terceiro cardeal.

DMARC — Domain-based Message Authentication, Reporting and Conformance.

O DMARC pergunta algo extremamente interessante:

“Muito bem. SPF falou uma coisa. DKIM falou outra. Mas isso combina com o domínio que o usuário está vendo no From:?”

A palavra mágica aqui é:

ALIGNMENT

Imagine:

From:
vagner@bellacosa.com

Enquanto determinada autenticação SPF está associada a:

mailer-outraempresa.net

E DKIM possui:

d=servico-terceiro.net

Podemos possuir resultados tecnicamente válidos em determinadas verificações e, ainda assim, precisar responder:

Essas identidades estão alinhadas com bellacosa.com para fins de DMARC?

Podemos representar a ideia:

               HEADER FROM
                   │
                   ▼
             bellacosa.com
              /         \
             /           \
            ▼             ▼
          SPF            DKIM
           │               │
      alignment       alignment
             \           /
              \         /
                 DMARC

De maneira simplificada, DMARC pode ser satisfeito quando existe SPF válido e alinhado ou DKIM válido e alinhado conforme suas regras.

O Grande Inquisidor olha para nosso pequeno e-mail.

— SPF?

— PASS!

— DKIM?

— PASS!

— Alignment?

Silêncio dramático.

Uma orquestra imaginária começa a tocar.

— PASS!

Todos comemoram.

O e-mail corre em direção à Inbox.

O Cardeal DMARC segura-o pela gola.

— Onde pensa que vai?


⚖️ Ato IX — none, quarantine ou reject

DMARC também permite que o domínio publique uma política.

Entre as políticas clássicas encontramos:

p=none
p=quarantine
p=reject

p=none permite essencialmente uma postura de monitoramento em relação ao tratamento DMARC.

p=quarantine solicita tratamento mais cauteloso para mensagens que falham à política.

p=reject solicita que mensagens que falhem sejam rejeitadas.

O domínio está dizendo ao mundo algo próximo de:

“Se alguém tentar se passar por mim e não atender às minhas regras de autenticação, eis como desejo que você trate a situação.”

Isso é extremamente importante contra determinadas formas de falsificação de identidade de domínio.

Mas existe uma pegadinha maravilhosa.

Nosso e-mail passou SPF.

Passou DKIM.

Passou DMARC.

Então está garantido na Inbox?

NÃO!

E essa é uma das lições mais importantes desta autópsia.


🕵️ Ato X — “Sabemos quem você é. Agora precisamos decidir se gostamos de você.”

Autenticação não é reputação.

Repita comigo:

autenticação não é reputação.

Um operador de spam pode possuir seu próprio domínio.

Pode configurar SPF corretamente.

Pode implementar DKIM.

Pode publicar DMARC.

E continuar enviando porcaria industrial em escala planetária.

Portanto, depois da Spanish Inquisition da autenticação, aparece outro departamento.

ANTISPAM.

Esse pessoal não usa roupas vermelhas.

Usa dashboards.

O que é muito mais assustador.


🔬 Ato XI — A máquina de suspeitar

Sistemas modernos de proteção de e-mail podem considerar uma quantidade enorme de sinais.

Por exemplo:

IP remetente
domínio
reputação
volume de mensagens
velocidade de envio
histórico
SPF
DKIM
DMARC
URLs
anexos
conteúdo
headers
padrões de phishing
malware
feedback de usuários

Não devemos imaginar necessariamente uma fórmula universal:

spam_score = 73

válida para todos os provedores.

Cada plataforma possui seus próprios mecanismos.

Mas como modelo mental podemos visualizar:

                   EMAIL
                     │
       ┌─────────────┼─────────────┐
       ▼             ▼             ▼
 AUTENTICAÇÃO    REPUTAÇÃO      CONTEÚDO
       │             │             │
       └─────────────┼─────────────┘
                     ▼
                 ANÁLISE
                     │
          ┌──────────┼──────────┐
          ▼          ▼          ▼
        ACCEPT      SPAM      REJECT

E aqui nosso pobre e-mail começa novamente a suar.


🧨 Ato XII — “Você está carregando alguma coisa?”

O inquisidor olha para a mensagem.

— Bagagem?

— Uma.

— Abra.

Dentro:

relatorio.pdf

— O que é isso?

— Um PDF.

— Isso é exatamente o que alguém carregando um PDF malicioso diria!

O nome do arquivo não encerra a investigação.

Soluções de segurança podem analisar anexos procurando malware, formatos suspeitos, conteúdo ativo ou outros comportamentos considerados perigosos.

URLs também merecem atenção.

Imagine uma mensagem:

URGENTE!!!

SUA CONTA SERÁ CANCELADA!!!

CLIQUE AGORA:

https://dominio-estranhissimo.example

Mesmo que algum componente isolado não seja suficiente para condenar a mensagem, a combinação de diversos sinais pode torná-la altamente suspeita.

É investigação por contexto.

Algo como:

domínio recente
      +
IP problemático
      +
volume anormal
      +
linguagem urgente
      +
URL suspeita
      +
comportamento semelhante a phishing
      =
SPANISH INQUISITION TURBO MODE

🦠 Ato XIII — O inquisidor leva o anexo para a masmorra

Dependendo da solução utilizada, arquivos suspeitos podem receber análises adicionais.

Aqui entra um conceito fascinante:

sandboxing.

Em vez de simplesmente perguntar:

“Conhecemos a assinatura desse malware?”

podemos tentar observar:

“O que esse arquivo faz?”

É uma mudança extraordinária de perspectiva.

Uma abordagem procura reconhecer o criminoso pela fotografia.

A outra coloca o suspeito numa sala e observa se ele tenta desmontar a janela.

No mundo da segurança, comportamento conta muito.


📬 Ato XIV — Finalmente, a mailbox

Depois de uma jornada digna de uma campanha de RPG:

SEND
 │
 ▼
SMTP
 │
 ▼
DNS
 │
 ▼
MX
 │
 ▼
SMTP DESTINO
 │
 ▼
SPF
 │
 ▼
DKIM
 │
 ▼
DMARC
 │
 ▼
REPUTAÇÃO
 │
 ▼
ANTISPAM
 │
 ▼
ANTIMALWARE
 │
 ▼
POLÍTICAS
 │
 ▼
MAILBOX

Nosso e-mail vê finalmente uma placa:

INBOX

Corre em sua direção.

Mas aparecem três portas:

┌────────────┐
│   INBOX    │
└────────────┘

┌────────────┐
│    SPAM    │
└────────────┘

┌────────────┐
│ QUARANTINE │
└────────────┘

Existe ainda uma quarta possibilidade particularmente desagradável:

REJECT

O fato de uma mensagem ter chegado à infraestrutura destinatária não significa automaticamente que aparecerá gloriosamente diante do usuário.

Essa diferença é importantíssima durante troubleshooting.


🧾 Ato XV — A caixa-preta chamada header

Agora chegamos à parte deliciosa para quem gosta de investigação técnica.

O usuário vê:

De: Vagner
Para: João
Assunto: Relatório

O investigador pergunta:

“Mostre os headers completos.”

Porque ali encontramos a arqueologia da mensagem.

Entre informações úteis podemos encontrar:

Received:
Return-Path:
Message-ID:
Date:
From:
To:
Content-Type:
DKIM-Signature:
Authentication-Results:

Os campos Received: são particularmente interessantes.

À medida que sistemas SMTP manipulam uma mensagem, registros podem ser acrescentados.

Podemos encontrar algo conceitualmente semelhante a:

Received: from mail-a
        by mail-b;

Received: from mail-b
        by mail-c;

Essas informações ajudam a reconstruir partes do caminho percorrido pela mensagem.

É quase uma investigação forense.

A mensagem diz:

“Eu fui diretamente daqui até lá.”

O header responde:

“Curioso. Tenho testemunhas.”


🖥️ Ato XVI — O programador COBOL entra na investigação

Agora chegamos à parte Bellacosa Mainframe.

Alguém abre um incidente:

E-MAIL NÃO ESTÁ FUNCIONANDO.

Isso é quase tão útil quanto abrir um chamado dizendo:

COBOL DEU PROBLEMA.

Nossa primeira missão não é resolver.

É reduzir o universo do problema.

Pergunte:

Todos os usuários?

Um usuário?

Um domínio?

Um destinatário?

Mensagens externas?

Mensagens internas?

Somente mensagens com anexo?

Somente um tipo de anexo?

Começou quando?

Existe mensagem de erro?

Existe bounce?

Qual o timestamp?

Qual o Message-ID?

Veja como o incidente muda.

Antes:

EMAIL NÃO FUNCIONA

Depois:

Mensagens enviadas por determinado
domínio externo começaram a ser
rejeitadas às 03:17.

Agora temos alguma coisa investigável.


🥚 Easter egg — O incidente das 03:17

São 03:17.

Telefone toca.

— Bellacosa?

— Sim.

— O e-mail caiu.

Primeira pergunta:

— Todo o e-mail?

Silêncio.

— Não sei.

— Então ainda não sabemos se o e-mail caiu.

Essa frase deveria estar pregada na parede de toda War Room.

Porque existe uma tendência humana terrível de transformar:

“Eu tenho um problema.”

em:

“O sistema inteiro tem um problema.”

Nosso trabalho como investigadores é decompor.

TODOS?
  │
  ├── SIM
  │    │
  │    ├── infraestrutura?
  │    ├── rede?
  │    ├── DNS?
  │    └── serviço?
  │
  └── NÃO
       │
       ├── remetente?
       ├── domínio?
       ├── destinatário?
       ├── política?
       ├── autenticação?
       └── conteúdo?

Isso vale para e-mail.

Vale para MQ.

Vale para CICS.

Vale para Db2.

Vale para APIs.

Vale para batch.

Vale para praticamente qualquer sistema complexo.


🔍 Ato XVII — Procure o último GOOD

Aqui existe uma técnica extremamente poderosa.

Não comece perguntando:

“Onde está o erro?”

Pergunte:

“Qual foi o último ponto que sabemos que funcionou?”

Imagine:

Cliente
  │
  │ GOOD
  ▼
SMTP origem
  │
  │ GOOD
  ▼
DNS
  │
  │ GOOD
  ▼
MX
  │
  │ GOOD
  ▼
Servidor destino
  │
  │ GOOD
  ▼
SPF
  │
  │ GOOD
  ▼
DKIM
  │
  │ GOOD
  ▼
DMARC
  │
  │ ???
  ▼
Antispam

Pronto.

Acabamos de transformar um universo gigantesco em uma região investigável.

É praticamente uma busca binária operacional.

O mesmo raciocínio funciona no mainframe:

JOB entrou?
     │
     ▼
JES aceitou?
     │
     ▼
STEP executou?
     │
     ▼
Programa carregou?
     │
     ▼
Arquivo abriu?
     │
     ▼
Db2 conectou?

Sempre procure fronteiras entre:

GOOD → BAD

Essa fronteira frequentemente contém a pista.


📭 Ato XVIII — SMTP não é POP3 nem IMAP

Existe ainda outra confusão clássica.

SMTP é fundamentalmente associado ao envio e transferência de mensagens.

Mas depois que a mensagem está armazenada, historicamente outros protocolos são utilizados para acesso às caixas postais.

Entre eles:

POP3

e:

IMAP.

Uma visão didática:

ALICE
  │
 SMTP
  ▼
SERVIDOR A
  │
 SMTP
  ▼
SERVIDOR B
  │
  ├──── IMAP ────► BOB
  │
  └──── POP3 ────► CLIENTE

As arquiteturas modernas podem envolver APIs, sincronização proprietária, serviços em nuvem e inúmeras abstrações adicionais.

Mas essa separação é excelente para construir o modelo mental inicial:

SMTP transporta.

IMAP/POP tradicionalmente ajudam clientes a acessar mensagens armazenadas.


🧠 Ato XIX — O e-mail moderno é uma cadeia de confiança

Agora podemos finalmente enxergar o quadro completo.

Quando apertamos SEND, não estamos simplesmente transportando texto.

Estamos iniciando uma negociação de confiança.

O sistema precisa responder sucessivamente:

PARA ONDE?
     │
     ▼
DNS / MX

QUEM ESTÁ CONECTANDO?
     │
     ▼
SMTP / IP

ESTÁ AUTORIZADO?
     │
     ▼
SPF

EXISTE ASSINATURA VÁLIDA?
     │
     ▼
DKIM

AS IDENTIDADES ESTÃO ALINHADAS?
     │
     ▼
DMARC

QUAL A REPUTAÇÃO?
     │
     ▼
REPUTATION SYSTEMS

O CONTEÚDO É SUSPEITO?
     │
     ▼
ANTISPAM

EXISTE AMEAÇA?
     │
     ▼
ANTIMALWARE

QUAL O DESTINO?
     │
     ▼
INBOX / SPAM / QUARANTINE / REJECT

E aqui está a grande diferença conceitual.

SPF, DKIM e DMARC não dizem simplesmente:

“Este e-mail é bonzinho.”

Eles trabalham com propriedades de autenticação, autorização e alinhamento de identidade.

Depois disso ainda existe outra pergunta:

“Mesmo sabendo melhor quem está falando, devo confiar no que ele trouxe?”

É exatamente por isso que autenticação e antispam coexistem.


🏛️ Ato XX — A Internet aprendeu a desconfiar

Nos primórdios das redes acadêmicas, muitos protocolos nasceram em ambientes muito diferentes da Internet comercial moderna.

A rede cresceu.

Vieram empresas.

Vieram milhões de usuários.

Vieram bilhões de mensagens.

E naturalmente vieram:

spam, phishing, malware, falsificação, campanhas automatizadas e fraude.

A arquitetura precisou ganhar camadas adicionais de defesa.

É um fenômeno recorrente na computação.

Primeiro criamos:

“Faça A conversar com B.”

Depois descobrimos que precisamos perguntar:

“Quem é A?”

Depois:

“A pode fazer isso?”

Depois:

“Posso provar que é A?”

Depois:

“Mesmo sendo A, seu comportamento é aceitável?”

É praticamente a história inteira da segurança da informação condensada em uma mensagem eletrônica.


🏰 Ato XXI — A Catedral do E-mail

Gosto de pensar nesses sistemas como catedrais.

Ninguém acordou numa terça-feira e desenhou toda a infraestrutura mundial de e-mail exatamente como ela existe hoje.

Camadas foram acrescentadas.

Problemas apareceram.

Soluções surgiram.

Protocolos foram ampliados.

Mecanismos de segurança foram incorporados.

E o resultado é uma construção que atravessa décadas mantendo enorme compatibilidade com conceitos antigos.

Isso deveria soar extremamente familiar para quem trabalha com mainframe.

O novo não necessariamente destrói o velho.

Muitas vezes:

o novo envolve o velho.

SMTP continua lá.

DNS continua lá.

Sobre eles construímos novas camadas.

Essa é uma das grandes lições da engenharia de sistemas maduros.


🇪🇸 Epílogo — O julgamento final

Nosso pequeno e-mail finalmente chega diante dos três inquisidores.

Cardeal SPF pergunta:

— Servidor autorizado?

PASS!

Cardeal DKIM pergunta:

— Assinatura?

PASS!

Grande Inquisidor DMARC pergunta:

— Alinhamento?

PASS!

O antispam entra.

— Reputação?

Boa.

O antimalware pergunta:

— Anexo?

Limpo.

O sistema de políticas olha seus registros.

Silêncio.

Nosso e-mail pergunta timidamente:

— Posso entrar agora?

Todos se entreolham.

A porta abre.

Atrás dela existe finalmente:

┌──────────────────────────────┐
│            INBOX             │
│                              │
│ From: Vagner                 │
│ Subject: Relatório Produção  │
│                              │
│ 01:17                        │
└──────────────────────────────┘

O pequeno e-mail entra.

Depois de SMTP, DNS, MX, SPF, DKIM, DMARC, reputação, antispam, antimalware e políticas, finalmente cumpriu sua missão.

João chega ao escritório oito horas depois.

Abre a caixa postal.

Olha rapidamente para a mensagem.

E clica:

DELETE.

Silêncio absoluto.

SMTP olha para SPF.

SPF olha para DKIM.

DKIM olha para DMARC.

DMARC olha para o antispam.

Todos atravessaram meio planeta, executaram consultas DNS, verificaram identidades, calcularam criptografia, analisaram reputação e protegeram a infraestrutura para aquilo.

O Cardeal SPF pergunta:

— Podemos interrogá-lo novamente?

O Grande Inquisidor responde:

— Não.

— Por quê?

— Porque ninguém espera...

As portas se abrem.

...A SPANISH INQUISITION DO E-MAIL!

E em algum datacenter distante, às 03:17, outro alerta acaba de surgir.

SMTP DELIVERY FAILURE

O telefone toca.

— Bellacosa?

— Sim.

— O e-mail caiu.

— Todos?

Silêncio.

Pegue o café.

A investigação está apenas começando.


☕ Bellacosa Mainframe — moral da história

Nunca trate um sistema complexo como uma caixa preta chamada “não funciona”.

Divida-o em checkpoints.

Descubra quem falou com quem.

Identifique as evidências.

Encontre o último estado conhecido como GOOD.

Localize a transição:

GOOD
 │
 ▼
GOOD
 │
 ▼
GOOD
 │
 ▼
???
 │
 ▼
BAD

E comece exatamente ali.

Seja investigando SMTP, COBOL, CICS, Db2, MQ, RACF ou um job misteriosamente desaparecido no JES, o princípio continua extraordinariamente útil:

não interrogue o sistema inteiro quando você pode interrogar cada etapa.

Afinal...

ninguém espera a Spanish Inquisition.

Mas um bom analista de produção deveria esperar.



Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...