☕ 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, 30 de janeiro de 2018

Shell Scripting - O Que Todo Programador COBOL Padawan Precisa Saber Sobre a Linguagem que Automatiza o Mundo Linux, DevOps, Cloud e Infraestrutura Moderna

 

Bellacosa Mainframe e o shell scripting

☕ Um Café no Bellacosa Mainframe

Shell Scripting

O Que Todo Programador COBOL Padawan Precisa Saber Sobre a Linguagem que Automatiza o Mundo Linux, DevOps, Cloud e Infraestrutura Moderna

"Você não está apenas aprendendo Shell Script. Está descobrindo a linguagem que faz no Linux aquilo que o JCL faz no Mainframe: coordenar, automatizar e colocar toda a infraestrutura para trabalhar em perfeita harmonia."


Introdução

Existe um momento na carreira de praticamente todo profissional de tecnologia em que ele percebe que digitar dezenas de comandos repetidamente não faz mais sentido.

Criar usuários.

Mover arquivos.

Executar backups.

Monitorar logs.

Subir aplicações.

Executar testes.

Parar servidores.

Gerar relatórios.

Se tudo isso pode ser automatizado, por que continuar fazendo manualmente?

Foi exatamente essa pergunta que ajudou a moldar um dos conceitos mais elegantes da história da computação: o Shell Script.

Hoje, praticamente toda infraestrutura Linux do planeta — desde pequenos servidores domésticos até supercomputadores, clusters Kubernetes, ambientes IBM LinuxONE, IBM Z, AWS, Azure e Google Cloud — depende diariamente de milhares de Shell Scripts.

Se você é um Programador COBOL Padawan, provavelmente já domina conceitos como JCL, Return Codes (RC), Jobs Batch, PROCs, Schedulers, datasets e automação no z/OS.

A boa notícia é que Shell Script não é um universo completamente novo.

Na verdade, diversos conceitos já fazem parte do seu dia a dia.

A diferença é que agora eles vivem no mundo Linux.

Pegue sua caneca de café.

Hoje vamos entender por que Shell Script continua sendo uma das habilidades mais valiosas da computação moderna.


A Origem do Shell

Para entender Shell Script precisamos voltar aproximadamente cinquenta anos.

Em 1969, Ken Thompson iniciou o desenvolvimento do UNIX nos laboratórios Bell Labs.

O sistema operacional precisava de uma interface simples para executar comandos.

Nascia então o primeiro Shell.

O Shell era apenas um interpretador.

Ele recebia comandos digitados pelo usuário.

Interpretava.

Chamava funções do Kernel.

Mostrava os resultados.

Naquela época ninguém imaginava que alguns anos depois aqueles comandos poderiam ser gravados em arquivos texto e executados automaticamente.

Assim surgiram os primeiros scripts.


O Shell Não é o Linux

Esse é um dos maiores equívocos dos iniciantes.

Muitos acreditam que Shell e Linux sejam a mesma coisa.

Não são.

A arquitetura simplificada funciona assim:

Usuário

↓

Shell

↓

Kernel Linux

↓

Hardware

O Kernel conversa com discos, memória, processadores e dispositivos.

O Shell conversa com o usuário.

Ele traduz comandos humanos em chamadas para o Kernel.


O Nascimento do Bourne Shell

Em 1977, Stephen Bourne desenvolveu o Bourne Shell (sh).

Foi uma revolução.

Pela primeira vez era possível escrever programas inteiros utilizando comandos do próprio sistema operacional.

A linguagem era simples.

Mas incrivelmente poderosa.

Até hoje praticamente todos os Shells modernos descendem dele.


O Surgimento do Bash

Em 1989, Brian Fox, no projeto GNU, lançou o Bash (Bourne Again Shell).

O nome é um trocadilho com "Born Again".

Ele foi desenvolvido para substituir o Bourne Shell tradicional, mantendo compatibilidade e adicionando diversos recursos modernos.

O Bash tornou-se rapidamente o padrão das distribuições GNU/Linux.

Hoje ele está presente em praticamente todas as distribuições Linux e em diversos sistemas UNIX.


Linha do Tempo dos Principais Shells

AnoShellCriador
1971Thompson ShellKen Thompson
1977Bourne Shell (sh)Stephen Bourne
1983Korn Shell (ksh)David Korn
1989BashBrian Fox (GNU)
1990Z Shell (zsh)Paul Falstad
2005Fish ShellAxel Liljencrantz

Cada um possui características específicas, mas Bash continua sendo a principal referência para automação.


Por que o Shell Existe?

Imagine administrar mil servidores.

Sem Shell Script seria necessário executar centenas de comandos manualmente em cada máquina.

Com um único script você consegue:

  • atualizar aplicações;

  • reiniciar serviços;

  • copiar arquivos;

  • verificar espaço em disco;

  • consultar APIs;

  • monitorar processos;

  • enviar alertas;

  • automatizar backups.

É exatamente por isso que o Shell é considerado uma das ferramentas fundamentais de DevOps.


A Filosofia UNIX

Existe um princípio que influenciou praticamente toda a engenharia de software moderna:

Faça uma coisa. Faça bem feita.

Em vez de criar programas gigantes, o UNIX passou a oferecer dezenas de pequenas ferramentas especializadas.

Cada comando resolve apenas um problema.

Por exemplo:

  • grep procura padrões.

  • sort ordena dados.

  • uniq elimina duplicatas.

  • cut extrai colunas.

  • sed transforma textos.

  • awk processa dados estruturados.

  • wc conta linhas, palavras e caracteres.

O verdadeiro poder surge quando essas ferramentas são combinadas por meio de pipes.


O Poder dos Pipes

O caractere | é muito mais do que um simples símbolo.

Ele conecta a saída de um comando diretamente à entrada do próximo.

Imagine uma linha de montagem industrial:

Matéria-prima
     ↓
Corte
     ↓
Pintura
     ↓
Montagem
     ↓
Embalagem

No Linux:

cat

↓

grep

↓

awk

↓

sort

↓

uniq

↓

wc

Cada comando realiza uma tarefa específica e entrega o resultado ao próximo.

Esse modelo permitiu construir sistemas extremamente eficientes décadas antes da popularização dos microsserviços.


Shell Script e o Mundo Mainframe

Esta é provavelmente a parte mais interessante para um Programador COBOL Padawan.

Observe a comparação:

MainframeLinux
JCLShell Script
PROCFunção
PARM$1, $2
Return CodeExit Status
DatasetArquivo
SchedulerCron
SYSINstdin
SYSOUTstdout
SYSPRINTstdout
CONDif
IF/THEN JCLif/then

Percebe a semelhança?

Os conceitos mudam de nome, mas a lógica permanece.

Quem domina JCL normalmente aprende Shell Script muito mais rapidamente.


Shebang

Todo script profissional começa com algo parecido com:

#!/usr/bin/env bash

Esse cabeçalho informa qual interpretador será utilizado.

Sem ele, o sistema pode tentar executar o script utilizando outro Shell, causando incompatibilidades.

É equivalente a informar explicitamente qual ambiente executará o programa.


Variáveis

No Shell praticamente tudo começa com variáveis.

NOME="Bellacosa"
IDADE=52

Elas armazenam dados temporários utilizados durante a execução.

O acesso ocorre por meio do caractere $.

echo "$NOME"

Diferentemente de linguagens como Java ou COBOL, não há necessidade de declarar tipos de dados.

Tudo inicialmente é tratado como texto.


Variáveis de Ambiente

Algumas variáveis já existem antes mesmo do script iniciar.

Entre as mais importantes estão:

  • HOME

  • PATH

  • USER

  • SHELL

  • PWD

  • HOSTNAME

  • LANG

  • TERM

Essas informações descrevem o ambiente onde o processo está sendo executado.


Variáveis Especiais

O Shell também cria automaticamente variáveis especiais:

  • $0 → nome do script.

  • $1 → primeiro argumento.

  • $2 → segundo argumento.

  • $# → quantidade de argumentos.

  • $@ → todos os argumentos preservando cada um individualmente.

  • $* → todos os argumentos como uma única expansão.

  • $$ → PID do processo atual.

  • $! → PID do último processo em background.

  • $? → código de retorno do último comando.

Essa coleção de variáveis torna os scripts altamente reutilizáveis.


Condições

Assim como em COBOL existe IF, o Shell possui:

if
then
else
fi

É possível tomar decisões baseadas em:

  • existência de arquivos;

  • valores numéricos;

  • comparação de textos;

  • permissões;

  • retorno de comandos.


Loops

O Shell oferece diferentes formas de repetição.

For

Ideal quando conhecemos previamente os elementos.

for arquivo in *.txt
do
    echo "$arquivo"
done

While

Executa enquanto uma condição permanece verdadeira.

Until

Executa até que uma condição seja satisfeita.


Funções

Scripts profissionais utilizam funções para evitar repetição.

backup() {
    echo "Executando backup..."
}

log() {
    echo "$(date) $1"
}

Isso melhora organização, manutenção e reutilização.


Operadores de Arquivos

Antes de manipular arquivos, normalmente verificamos seu estado.

Exemplos:

  • -f → arquivo regular.

  • -d → diretório.

  • -r → leitura.

  • -w → escrita.

  • -x → executável.

  • -e → existe.

  • -s → não vazio.

  • -L → link simbólico.

Esses testes evitam erros durante a execução.


Redirecionamento

Todo processo Linux trabalha com três fluxos principais:

StreamNúmero
stdin0
stdout1
stderr2

Com isso podemos controlar exatamente para onde cada informação será enviada.

Exemplos:

>

Sobrescreve um arquivo.

>>

Acrescenta conteúdo.

2>

Redireciona apenas mensagens de erro.

&

Permite combinar fluxos.


O Poder do grep

O grep talvez seja o comando mais famoso do Linux.

Seu nome vem de Global Regular Expression Print.

Ele pesquisa padrões em arquivos.

grep ERROR servidor.log

Combinado com expressões regulares torna-se uma poderosa ferramenta de análise de logs.


AWK

Apesar de parecer apenas mais um comando, AWK é uma linguagem completa.

Ela trabalha naturalmente com colunas.

Por isso é muito utilizada em:

  • arquivos CSV;

  • relatórios;

  • processamento de logs;

  • extração de métricas.

Poucas ferramentas conseguem manipular dados textuais com tanta eficiência.


sed

O Stream Editor permite modificar arquivos sem abrir um editor.

Trocar:

IBM

por

Red Hat

é uma simples linha de comando.

Por isso o sed aparece frequentemente em pipelines de automação.


xargs

Outro comando extremamente poderoso.

Ele transforma a saída de um programa em argumentos para outro.

É muito utilizado em conjunto com find.


Exit Status

No Mainframe conhecemos os Return Codes.

No Linux existe exatamente o mesmo conceito.

Após qualquer comando podemos consultar:

echo $?

Se retornar zero:

Sucesso.

Qualquer outro valor indica algum tipo de erro.

Scripts profissionais nunca ignoram Exit Status.


DevOps e Shell Script

Hoje praticamente toda ferramenta DevOps depende, em algum momento, de Shell Script.

Exemplos:

Docker.

Kubernetes.

GitHub Actions.

GitLab CI.

Jenkins.

Ansible.

Terraform.

OpenShift.

IBM Cloud.

AWS.

Azure.

Google Cloud.

Mesmo quando utilizamos ferramentas sofisticadas, nos bastidores normalmente existem Shell Scripts coordenando processos.


Shell Script no IBM Z

Muitos profissionais acreditam que Shell Script pertence apenas ao Linux.

Não é verdade.

O IBM z/OS UNIX System Services (USS) oferece um ambiente POSIX compatível com Shell.

Isso significa que é possível executar scripts Bash ou Korn Shell diretamente no IBM Z.

Essa integração permite:

  • automatizar tarefas administrativas;

  • integrar aplicações COBOL com ambientes UNIX;

  • manipular arquivos no USS;

  • chamar programas tradicionais;

  • trabalhar com OpenSSH, Git, Python e Java.

É um dos pilares da modernização do ecossistema IBM Z.


Curiosidades

  • O Bash possui milhares de comandos internos (builtins).

  • O Shell consegue chamar programas escritos em C, COBOL, Java, Python e diversas outras linguagens.

  • Grande parte dos scripts de inicialização do Linux são Shell Scripts.

  • O Shell pode controlar processos distribuídos por SSH em centenas de servidores simultaneamente.

  • Muitos instaladores de software corporativo são escritos em Shell Script.


Easter Eggs

Algumas curiosidades divertidas:

  • O nome Bash significa Bourne Again Shell, um trocadilho com o Bourne Shell.

  • O comando : é um comando válido que não faz absolutamente nada, retornando sucesso (0).

  • O comando true sempre retorna sucesso.

  • O comando false sempre retorna erro.

  • É possível criar scripts de apenas uma linha capazes de automatizar tarefas extremamente complexas.

  • Muitos administradores brincam dizendo que "um bom Shell Script substitui centenas de cliques".


Releases e Evolução

Ao longo das décadas, o Bash evoluiu significativamente:

  • suporte aprimorado a arrays;

  • expansão de parâmetros;

  • autocompletar inteligente;

  • histórico avançado;

  • melhorias em segurança;

  • compatibilidade POSIX;

  • otimizações de desempenho.

Novas versões continuam sendo lançadas e mantidas pela comunidade GNU, garantindo correções de bugs, melhorias de segurança e novos recursos.


Por que Aprender Shell Script em 2026?

Porque praticamente toda infraestrutura moderna depende dele.

Empresas utilizam Shell Script para:

  • automação de Data Centers;

  • CI/CD;

  • monitoramento;

  • backup;

  • segurança;

  • observabilidade;

  • containers;

  • Kubernetes;

  • administração Linux;

  • IBM Z USS;

  • LinuxONE;

  • Cloud Computing;

  • IA e MLOps;

  • automação de pipelines de dados.

Mesmo linguagens modernas como Python e Go frequentemente executam Shell Scripts durante processos de instalação, build ou deploy.


Compatibilidade com o Mundo Mainframe

Para quem vem do COBOL, aprender Shell Script oferece diversas vantagens:

  • compreensão rápida da lógica de automação;

  • facilidade para trabalhar com z/OS UNIX System Services;

  • integração com Git, DevOps e CI/CD;

  • modernização de aplicações IBM Z;

  • comunicação entre ambientes Linux e Mainframe.

Em projetos de transformação digital é comum encontrar pipelines que envolvem simultaneamente COBOL, JCL, Git, Jenkins, Ansible e Shell Script.


Conclusão

Shell Script é muito mais do que uma linguagem de comandos. Ele representa uma filosofia de engenharia que atravessa mais de cinco décadas de evolução da computação. Desde os primeiros laboratórios da Bell Labs até os atuais ambientes de nuvem híbrida, inteligência artificial, IBM Z, LinuxONE e plataformas de automação em escala global, o Shell continua sendo uma das ferramentas mais eficientes para transformar tarefas repetitivas em processos confiáveis e reproduzíveis.

Para um Programador COBOL Padawan, essa jornada é especialmente natural. Conceitos como controle de fluxo, códigos de retorno, automação batch, parametrização e orquestração já fazem parte da experiência adquirida no Mainframe. O Shell Script amplia esse repertório, conectando o universo IBM Z ao ecossistema Linux, DevOps, containers, APIs, pipelines de integração contínua e infraestrutura como código.

Aprender Shell Script hoje não significa apenas dominar comandos como grep, awk, sed, find ou xargs. Significa adquirir a capacidade de construir soluções reutilizáveis, integrar tecnologias distintas, administrar ambientes complexos e participar ativamente da modernização das plataformas corporativas. Assim como o COBOL continua movimentando bilhões de transações diariamente, o Shell Script permanece como uma das engrenagens invisíveis que sustentam servidores, aplicações, clusters e serviços em praticamente todos os grandes ambientes computacionais do mundo.

No fim das contas, o Shell Script ensina uma lição que vale para toda a carreira em tecnologia: automatize o repetitivo, simplifique o complexo e deixe que os computadores façam aquilo para o qual foram criados. Esse é o espírito do UNIX, do Linux, do DevOps e, acima de tudo, da engenharia de software moderna.

segunda-feira, 29 de janeiro de 2018

Uma tarde de musica medieval no Castelo de São Jorge

Um musico no Castelo de São Jorge em Lisboa 


Do alto de uma das 7 colinas de Lisboa, suas muralhas protegem Lisboa há mais de 2000 anos. Diversos povos passaram por aqui, derramaram seu sangue, destruíram seus portões, repararam, ampliaram, colocaram novas torres.

Para se ter uma pequena noção, acredita-se que os fenícios construíram a primeira fortificação, celtibéricos conquistaram aos primeiros, mas perderam para os romanos, godos, visigodos, vândalos e tantos outros povos passaram aqui também. Por fim os mouros os conquistaram e iniciaram os anos dourados do Al-Andaluz, por fim os portugueses ajudados por cruzados ingleses conquistaram a cidade é iniciaram a construção de um império onde o sol nunca se punha, com cidades em todos os continentes.

Hoje o castelo de São Jorge perdeu suas funções defensivas, mas agora aberto a todos os povos de boa vontade, tornou-se um imponente monumento, onde podemos passar bons momentos, apreciando toda a paisagem, o panorama é perfeito podemos ver a cidade, o rio Tejo, a margem sul com Almada e Seixal logo a vista.

Para completar restaurado tem fontes, torres e almeias, canhões em bronze, estatuas, jardins e diversas arvores para entreter o visitante. Num dia agradável de visita havia um musico tocando melodias de tempos idos, musica medieval no castelo, remetendo-nos há uma viagem no tempo para a Lisboa medieval, conhecendo a terra dos alfacinhas do seculo XIV.
.
Próximo ao castelo ainda podemos visitar as ruínas do teatro Romano, a velha Sé Catedral e seus tesouros, a casa de Santo Antônio, andar nos ícones bondes amarelos de Lisboa e se perder nas sinuosas ruas da mouraria.




domingo, 28 de janeiro de 2018

Cameron, Atenda o Telefone — Social Engineering as a Service

Bellacosa Mainframe e a social engineering as a service


☕ Um Café no Bellacosa Mainframe — Especial Red Team

Cameron, Atenda o Telefone — Social Engineering as a Service

📞 Quando o atacante não trabalha sozinho e transforma pessoas legítimas em componentes involuntários do exploit

Chicago.

Um telefone toca.

Do outro lado, alguém acredita estar falando com uma pessoa legítima.

No meio da história, Cameron está desempenhando um papel que, isoladamente, parece completamente banal.

Ele atende.

Fala.

Confirma.

Interage.

Nada de malware.

Nada de exploit remoto.

Nada de buffer overflow.

Nada de zero-day.

Mas Ferris não precisa disso.

Ele precisa apenas que Cameron funcione como parte da cadeia.

E então temos algo belíssimo:

Ferris
  ↓
Cameron
  ↓
Telefone
  ↓
Escola
  ↓
Funcionário
  ↓
Sistema

Observe com carinho.

Nenhum desses elementos isoladamente precisa estar “quebrado”.

O telefone funciona.

Cameron fala.

A escola atende.

O funcionário segue um procedimento.

O sistema registra informação.

Tudo aparentemente correto.

E ainda assim...

o resultado é errado.

É aqui que Red Team fica realmente interessante.

Porque segurança não falha apenas quando existe uma vulnerabilidade em uma peça.

Ela também falha quando componentes legítimos se combinam de uma forma que ninguém previu.

Bem-vindo ao quinto episódio de:

SAVE FERRIS — Red Team para Quem Aprendeu que o Sistema Também Mata Aula

Hoje vamos falar de cadeia de confiança, engenharia social, dependências humanas e uma ideia que deveria incomodar qualquer arquiteto:

o sistema inteiro pode ser vulnerável mesmo quando cada componente parece seguro.


📞 Cameron não é o ataque

Esse detalhe é fundamental.

Cameron não precisa entender toda a operação.

Ele não precisa conhecer a arquitetura.

Não precisa saber o objetivo final.

Não precisa possuir acesso especial.

Ele só precisa cumprir sua pequena função.

Essa é uma característica poderosa de muitas cadeias de ataque.

Cada pessoa vê apenas um fragmento.

Cada sistema vê apenas uma transação.

Cada controle valida apenas sua parte.

Ninguém enxerga o todo.

Ferris enxerga.


🧠 O atacante pensa em composição

Defensores frequentemente analisam sistemas por componentes.

Servidor seguro?

Sim.

Banco seguro?

Sim.

Rede segura?

Sim.

Usuário autenticado?

Sim.

Processo aprovado?

Sim.

Então parece que está tudo bem.

O Red Team pergunta outra coisa:

“O que acontece quando conectamos tudo?”

Essa pergunta muda o jogo.


🧀 Bem-vindo ao Swiss Cheese Model

O modelo do queijo suíço é maravilhoso porque explica exatamente isso.

Imagine várias fatias de queijo.

Cada fatia representa uma camada de defesa.

Cada uma possui buracos.

Nenhuma é perfeita.

Mas normalmente os buracos não se alinham.

Então o incidente é bloqueado.

Agora imagine:

Camada 1: Pessoa
      ○

Camada 2: Processo
          ○

Camada 3: Telefone
              ○

Camada 4: Sistema
                  ○

Se os buracos se alinham...

o ataque atravessa.

Não porque tudo falhou.

Mas porque pequenas imperfeições coincidiram.


☕ É exatamente o que Ferris faz

Ferris não precisa encontrar:

“a vulnerabilidade.”

Ele encontra:

vulnerabilidades pequenas o suficiente para parecer irrelevantes.

Cameron confia nele.

A escola espera determinados tipos de ligação.

O funcionário acredita no contexto.

O telefone não autentica intenção.

O sistema aceita o resultado daquela interação.

Separadamente, tudo parece aceitável.

Junto?

Exploit.


🔴 O grande erro: procurar uma única causa

Depois de um incidente, organizações adoram perguntar:

“Quem errou?”

É confortável.

Encontre uma pessoa.

Encontre uma falha.

Encontre um software.

Corrija.

Fim.

Só que sistemas complexos raramente falham assim.

Normalmente temos:

uma condição;

mais outra;

mais uma exceção;

mais uma dependência;

mais um contexto.

Quando tudo se alinha, temos incidente.

Ferris seria um excelente professor de causalidade sistêmica.


🧩 O exploit distribuído

Vamos imaginar a cadeia:

Ferris
 ↓
Cameron
 ↓
Telefone
 ↓
Funcionário
 ↓
Registro

Quem é culpado?

Ferris é o agente adversarial.

Mas cada componente seguinte apenas faz algo esperado.

Cameron fala.

O telefone transmite.

O funcionário interpreta.

O sistema registra.

Nenhum precisa estar comprometido tecnicamente.

Isso é um exploit distribuído pela confiança.


📞 Pessoas podem virar middleware

Essa metáfora é boa demais.

Em arquitetura, middleware conecta sistemas.

Em engenharia social, pessoas frequentemente fazem exatamente isso.

Elas recebem informação de um lado.

Interpretam.

Transformam.

Repassam.

Executam.

Pessoa como middleware.

E middleware humano possui características interessantes:

contexto;

empatia;

pressão;

memória;

autoridade;

cansaço;

urgência.

É poderoso.

E vulnerável.


🤖 Ferris cria um workflow humano

Pense como automação:

INPUT
 ↓
Cameron recebe instrução
 ↓
PROCESS
 ↓
Cameron adapta a fala
 ↓
OUTPUT
 ↓
Escola recebe mensagem

Ferris terceirizou uma etapa.

Isso é quase:

Social Engineering as a Service.

Claro que estamos brincando com a expressão.

Mas a lógica é real.

O atacante pode usar outras pessoas para realizar partes da operação.


🧠 O intermediário nem sempre sabe que participa

Esse ponto é importante.

Muitas operações maliciosas dependem de terceiros que acreditam estar fazendo algo legítimo.

Um funcionário encaminha arquivo.

Um fornecedor confirma dado.

Um atendente reseta senha.

Um colega aprova acesso.

Um usuário clica numa solicitação.

Cada um acredita estar resolvendo um problema normal.

A cadeia adversarial existe apenas na visão de quem coordena.


🎯 Orquestração é mais importante que ferramenta

Ferris não é perigoso porque possui um telefone.

Todo mundo possui telefone.

Ele é perigoso porque sabe quando usar Cameron, quando usar o telefone, quem deve receber a ligação e qual narrativa precisa existir.

Essa é a diferença entre ter ferramentas e conduzir uma operação.


☕ Red Team é coreografia

Um bom Red Team trabalha com sequências.

Reconhecimento.

Pretexto.

Contato.

Resposta.

Acesso.

Movimento.

Objetivo.

A palavra-chave é encadeamento.

Recon
 ↓
Contexto
 ↓
Pretexto
 ↓
Interação
 ↓
Confiança
 ↓
Ação

O ataque nasce da ordem.


🧱 Controle local versus segurança global

Essa distinção é essencial.

Um componente pode estar localmente seguro e o sistema globalmente inseguro.

Exemplo:

Help Desk valida três informações antes de resetar senha.

Ótimo.

Mas essas três informações estão publicamente disponíveis.

O Help Desk seguiu o processo.

O processo é que estava errado.

O componente passou.

O sistema falhou.


🧠 O funcionário fez exatamente o que foi treinado para fazer

Esse é um dos casos mais injustos em segurança.

Depois do incidente:

— O funcionário caiu no golpe.

Talvez.

Mas pergunte:

o procedimento permitia verificar adequadamente?

a pessoa tinha tempo?

o contexto era de urgência?

o atacante conhecia informações internas?

o treinamento cobria aquele cenário?

Se todas as condições empurram a pessoa para a decisão errada, talvez o problema seja arquitetura.


🔴 Erro humano é frequentemente erro de design

Essa frase vale ouro.

“Erro humano” às vezes é usado como descarte de responsabilidade.

Mas humanos fazem parte do sistema.

Se você depende deles, precisa projetar para comportamento humano real.

Não para comportamento idealizado.

Pessoas ficam cansadas.

Têm pressa.

Querem ajudar.

Confiam em colegas.

Respondem a autoridade.

Isso não é bug.

É humanidade.


🧀 Swiss Cheese em ambiente corporativo

Vamos construir uma cadeia hipotética:

LinkedIn
 ↓
Nome do gerente
 ↓
Telefone corporativo
 ↓
Help Desk
 ↓
Reset de senha
 ↓
Conta legítima
 ↓
Aplicação

Cada camada possui controle.

Mas pequenas falhas se alinham.

LinkedIn entrega contexto.

Telefone não prova identidade.

Help Desk usa validação fraca.

Conta não exige segundo fator robusto.

Aplicação confia na conta.

Resultado?

A cadeia inteira funciona para o atacante.


🕸️ Dependências escondidas

Sistemas modernos são teias.

Aplicação depende de IAM.

IAM depende de diretório.

Diretório depende de processos de RH.

RH depende de dados de pessoas.

Service Desk depende de procedimentos.

Procedimentos dependem de cultura.

Cultura depende de liderança.

Ferris não vê só “um computador”.

Ele vê a teia.


🦖 Mainframe também vive numa teia

Esse ponto é importante.

Você pode ter RACF impecável.

Perfis maravilhosos.

Auditoria excelente.

Mas como o usuário consegue identidade?

Como o acesso é solicitado?

Quem aprova?

Qual sistema provisiona?

Existe integração com IAM corporativo?

Existe conta técnica?

Existe acesso de emergência?

Ferris provavelmente atacaria antes do RACF.


🔐 Não tente quebrar a porta se alguém pode abrir

Essa é a lógica adversarial.

Se uma porta possui fechadura excelente, o atacante pode tentar:

enganar quem tem a chave;

convencer alguém a abrir;

obter credencial;

abusar de processo de recuperação.

O controle físico pode continuar perfeito.

O acesso acontece mesmo assim.


📞 O telefone é um protocolo de confiança

Pense nisso.

Durante décadas, o telefone funcionou como um canal semi-autenticado socialmente.

Você reconhece voz.

Reconhece número.

Reconhece contexto.

Mas tecnicamente, essas garantias podem ser fracas.

Ferris explora exatamente a diferença entre canal e confiança.


🤖 Em 2026, a cadeia fica mais perigosa

Agora temos:

voice cloning;

deepfake;

mensagens automatizadas;

LLMs;

agentes;

OSINT em escala.

Isso não muda a essência.

Apenas adiciona ferramentas.

A cadeia moderna pode parecer:

OSINT
 ↓
IA gera pretexto
 ↓
Voz sintética
 ↓
Funcionário
 ↓
MFA aprovado
 ↓
Conta legítima

Novamente:

cada componente isoladamente pode parecer normal.


🧠 O problema é correlação

Se cada sistema vê só seu pedaço, ninguém percebe a história.

Telefone vê ligação.

IAM vê login.

MFA vê aprovação.

Aplicação vê usuário autorizado.

Banco vê transação.

Cada sistema diz:

normal.

Mas quando correlacionamos:

Ligação suspeita
+
Reset de senha
+
Novo dispositivo
+
Acesso fora do padrão
+
Transação crítica

a história aparece.


🔵 Blue Team precisa pensar em narrativas

SIEM existe exatamente para ajudar nisso.

Não apenas coletar eventos.

Mas correlacionar.

Porque uma operação adversarial é uma história.

Logs são frases.

Incidente é o parágrafo.

O analista precisa ler o conjunto.


☕ “Todos os eventos eram permitidos”

Outra frase maravilhosa.

Sim.

Isso pode acontecer.

Um ataque pode ser composto quase inteiramente por ações permitidas.

Login permitido.

Reset permitido.

Acesso permitido.

Consulta permitida.

Transferência permitida.

O problema é o contexto.


🧠 Allowed não significa legitimate

Essa distinção merece destaque.

ALLOWED ≠ LEGITIMATE

Autorização técnica não prova legitimidade operacional.

Um usuário pode possuir permissão.

Mas a ação ainda pode ser fraudulenta.

Ferris ama essa diferença.


🪪 Contas legítimas são ouro

Atacantes gostam de contas válidas porque elas reduzem ruído.

Em vez de quebrar controles:

usam controles.

Em vez de forçar entrada:

entram pela porta.

Em vez de parecer malware:

parecem funcionário.

Cameron é parte dessa lógica.


🧨 Cadeias de ataque amam sistemas intermediários

Pense em integrações.

Um sistema confia em outro.

Outro confia em outro.

A relação vira:

A trusts B
B trusts C
C trusts D

Então a pergunta adversarial é:

se eu controlar D, até onde a confiança sobe?

Isso vale para pessoas também.


🕸️ Transitive Trust

Confiança transitiva é maravilhosa até deixar de ser.

Você confia em Cameron.

Cameron confia em Ferris.

Então, indiretamente, parte da confiança pode chegar a Ferris.

Ou:

Sistema A confia em B.

B confia em C.

C é comprometido.

Agora temos caminho.


🔐 Trust Boundary

Toda arquitetura deveria perguntar:

onde termina confiança?

onde ela é revalidada?

onde identidade muda?

onde contexto é perdido?

Essas fronteiras são críticas.


🦖 z/OS Connect como exemplo

Imagine:

Mobile App
 ↓
API Gateway
 ↓
z/OS Connect
 ↓
CICS
 ↓
COBOL

Quem autenticou o usuário?

Onde a identidade foi validada?

Que identidade chegou ao CICS?

Existe propagação?

Existe mapeamento?

Existe conta técnica?

Onde está a trilha?

Cada transição é uma trust boundary.


🧾 Se todo mundo vira APIUSER, temos Cameron demais

Se diversas pessoas chegam ao backend como uma única identidade técnica, auditoria perde granularidade.

User A
User B
User C
   ↓
APIUSER

Agora o backend sabe que a aplicação falou.

Mas talvez não saiba quem iniciou.

Essa perda de contexto pode complicar detecção.


🕵️ Quem realmente fez isso?

Depois do incidente:

— Foi APIUSER.

Excelente.

Quem era o humano?

Silêncio.

É o equivalente corporativo de perguntar:

— Quem telefonou?

— O telefone.

Obrigado.


🧠 Context propagation importa

Sistemas distribuídos precisam preservar contexto.

Identidade.

Origem.

Sessão.

Ação.

Isso permite reconstruir cadeia.

Sem contexto, cada componente parece inocente.


🔴 O atacante também usa fornecedores

Terceiros são particularmente interessantes.

Eles já possuem relações legítimas.

Conhecem nomes.

Processos.

Ambientes.

Possuem acessos.

Um fornecedor comprometido pode virar Cameron involuntário.


🧩 Supply Chain é Swiss Cheese em escala industrial

Fornecedor A depende de fornecedor B.

Ferramenta depende de biblioteca.

Pipeline depende de repositório.

Produto depende de pacote.

A cadeia inteira cria superfície.

O ataque não precisa atingir você diretamente.

Pode atingir alguém em quem você confia.


☕ Ferris não precisa entrar na escola se Cameron já fala com ela

Essa frase resume o artigo.

O atacante não precisa possuir relação direta com o alvo.

Pode usar intermediários.

Pessoas.

Sistemas.

Parceiros.

Serviços.

Integrações.

A cadeia é o exploit.


🧠 Segurança precisa olhar para pathways

Não apenas ativos.

Pergunte:

como alguém chega até o ativo?

Quais caminhos existem?

Quem pode abrir portas?

Quais sistemas possuem trust?

Quais processos concedem acesso?

Isso vira attack path analysis.


🗺️ Mapa de ataque

Imagine:

Internet
 ↓
Help Desk
 ↓
IAM
 ↓
VPN
 ↓
Application
 ↓
Mainframe

Agora coloque controles em cada etapa.

Depois pergunte:

quais dependem de decisão humana?

quais usam mesma identidade?

quais possuem exceção?

A análise fica muito mais rica.


🧠 Ferris é um orquestrador

Ele entende qual peça usar.

Cameron é ator.

Telefone é canal.

Escola é alvo intermediário.

Funcionário é processador.

Sistema é registrador.

Ferris é o controlador.

Quase uma arquitetura de microserviços sociais.


🤣 Social Engineering Microservices

Pense nisso:

Ferris Service
   ↓
Cameron Service
   ↓
Telephone API
   ↓
School Service
   ↓
Administrative Backend

Observability?

Nenhuma.

Authentication?

Social.

Authorization?

Confiança.

Logging?

Talvez papel.

Chaos Engineering?

Ferris.


🔴 Red Team testa a cadeia inteira

Isso é crucial.

Um teste superficial pode verificar apenas:

phishing.

Um Red Team mais maduro testa:

como phishing se conecta a identidade;

como identidade conecta a VPN;

como VPN conecta a aplicação;

como aplicação conecta a dados;

como detecção responde.

O valor está na cadeia.


🧪 Purple Team aprende com a cadeia

Depois, Blue e Red podem trabalhar juntos.

Onde poderíamos detectar?

No telefone?

No reset?

No novo dispositivo?

No login?

Na mudança de comportamento?

Na ação final?

Idealmente em várias camadas.

Defense in Depth.


🧀 Queijo suíço ao contrário

O atacante quer alinhar buracos.

O defensor quer desalinhá-los.

É isso.

Se uma camada falhar, outra segura.

Social Engineering
 ↓
MFA bloqueia

ou

MFA falha
 ↓
Behavior Detection alerta

ou

Detection falha
 ↓
Approval bloqueia

Não precisamos de perfeição.

Precisamos de independência.


🧱 Camadas dependentes são perigosas

Se três controles dependem da mesma informação, talvez você tenha apenas um controle disfarçado de três.

Exemplo:

Help Desk pergunta nome, CPF e data de nascimento.

Se todos são públicos, temos:

Controle 1
Controle 2
Controle 3

na apresentação.

Na prática:

OSINT

Uma única falha compromete todos.


🧠 Diversidade de controles importa

Autenticação forte.

Canal independente.

Segregação.

Detecção.

Limites.

Auditoria.

Quanto menos correlacionadas as falhas, melhor.


☕ A pergunta Bellacosa

Eu colocaria na War Room:

“Se este controle falhar, qual é o próximo?”

E depois:

“Ele depende da mesma coisa que o primeiro?”

Se depender, cuidado.


🚨 Um incidente perfeito pode parecer uma sequência de dias normais

Isso é o mais assustador.

Nada explode.

Nenhum servidor cai.

Ninguém vê caveira.

Apenas:

uma ligação;

um reset;

um login;

uma alteração;

uma transação.

Tudo legítimo isoladamente.

A fraude vive no encadeamento.


🎬 Cameron provavelmente não se vê como infraestrutura

Mas é.

No plano de Ferris, ele é componente.

Isso é uma lição importante para segurança.

Pessoas fazem parte da arquitetura mesmo quando o diagrama não mostra.

Se o processo depende delas, elas são parte do sistema.


🧠 Diagramas deveriam mostrar humanos

Muitos diagramas possuem:

User
 ↓
App

Eu adoraria ver:

Human
 ↓
Help Desk
 ↓
Manager
 ↓
IAM
 ↓
App

Porque é assim que identidade realmente vive.


🔐 Security Architecture é também Human Architecture

Treinamento.

Processo.

Cultura.

Escalada.

Verificação.

Tudo isso é controle.

E precisa ser tratado com o mesmo cuidado que firewall.


🤖 IA transforma Cameron em escala

Agora imagine milhares de interações coordenadas automaticamente.

Mensagens personalizadas.

Respostas adaptativas.

Agentes conversando.

A grande mudança não é que engenharia social nasceu.

É que ganhou escala.

Ferris artesanal virou Ferris industrial.


🛡️ Defesa também pode escalar

A boa notícia é que defesa também evolui.

Análise comportamental.

Correlation.

Risk-based authentication.

Detecção contextual.

Automação.

IA para triagem.

Mas cuidado.

Se automatizamos demais, podemos cair em Automation Bias.

Outra fatia de queijo.


🧠 O humano continua importante

Ferris vence porque entende contexto.

Defensores também precisam entender contexto.

Um alerta sozinho pode parecer irrelevante.

Um analista experiente conecta pontos.

Essa combinação de máquina + humano continua poderosa.


🔵 Rooney precisava de um SIEM melhor

Imagine Rooney vendo:

Phone Call
 ↓
Administrative Change
 ↓
Ferris Absent

Talvez percebesse.

Mas cada evento isolado não conta a história.

Rooney tinha intuição.

Faltava correlação.


☕ A grande lição

Segurança não é propriedade de componentes.

É propriedade do sistema.

Você pode comprar:

o melhor firewall;

o melhor IAM;

o melhor EDR;

o melhor mainframe;

o melhor treinamento.

Mas se a combinação criar um caminho inesperado...

Ferris entra.


🎯 Pense em caminhos, não em caixas

Arquitetura normalmente desenha caixas.

Red Team procura setas.

Caixas representam ativos.

Setas representam movimento.

E atacante vive nas setas.

Pessoa → Processo
Processo → Identidade
Identidade → Sistema
Sistema → Dado

Cada seta merece pergunta.


🧠 Quem pode influenciar quem?

Essa é a pergunta de ouro.

Quem influencia Help Desk?

Quem influencia gestor?

Quem influencia IAM?

Quem influencia pipeline?

Quem influencia API?

Quem influencia mainframe?

Mapear influência é mapear ataque.


📞 Cameron atende o telefone

E esse pequeno gesto aparentemente inocente conecta tudo.

Ferris.

Narrativa.

Canal.

Autoridade.

Escola.

Registro.

A cadeia funciona.

Nenhuma peça precisa ser “hackeada”.

Só precisa ser usada.


☕ Epílogo: o exploit está entre as peças

Esse talvez seja o ponto mais importante de toda a série até agora.

Ferris não pensa em vulnerabilidades isoladas.

Pensa em sistema.

Ele percebe que:

Cameron conhece determinada informação.

O telefone permite determinada interação.

A escola espera determinado comportamento.

O funcionário possui determinado poder.

O sistema confia no funcionário.

Então:

Ferris
 +
Cameron
 +
Telefone
 +
Escola
 +
Funcionário
 +
Sistema
 =
Resultado

Essa soma é o exploit.

Red Team precisa aprender a enxergar exatamente isso.

Porque o incidente que sua organização mais teme talvez não dependa de um zero-day maravilhoso.

Talvez dependa de seis coisas perfeitamente normais acontecendo na ordem errada.

E quando alguém perguntar depois:

— Qual controle falhou?

A resposta talvez seja desconfortável:

todos funcionaram.

O problema estava na combinação.

Esse é o Swiss Cheese Model.

Essa é a cadeia.

Esse é o mundo real.

E esse é Ferris Bueller transformando Cameron numa API humana antes mesmo de alguém inventar REST.

SAVE FERRIS.

No próximo artigo:

O Diretor Rooney Está Procurando Malware no Lugar Errado

Porque enquanto o Blue Team procura um atacante sofisticado...

Ferris talvez esteja entrando pela recepção.

☕ Um Café no Bellacosa Mainframe — Especial Red Team

SAVE FERRIS — Ferris Bueller’s Red Team

Uma série de 12 artigos sobre Red Team, segurança ofensiva, engenharia social, OSINT, integridade de dados, MFA, PAM, rollback, Blue Team, inteligência artificial, RACF e z/OS, usando Ferris Bueller para explorar uma pergunta fundamental: o sistema está realmente seguro ou apenas acredita que está?

  • Red Team
  • OSINT
  • Engenharia Social
  • Blue Team
  • MFA
  • PAM
  • IA Generativa
  • RACF
  • z/OS
  • Mainframe
1

Ferris Bueller Tinha um Plano de Ataque — Red Team Antes de Existir Red Team

Reconhecimento, criatividade adversarial e a ideia de que o verdadeiro alvo nem sempre é a tecnologia: são as suposições de quem construiu o sistema.

Red Team • Recon • Threat Modeling • Criatividade Adversarial
2

Nove Faltas? CTRL+Z — Quando o Banco de Dados Decide o que é Verdade

Integridade de dados, alteração de registros, privilégio, auditoria e a perigosa diferença entre aquilo que aconteceu e aquilo que o banco de dados afirma ter acontecido.

Integridade • Db2 • Auditoria • Insider Threat • Dados
3

Abe Froman, o Rei da Salsicha de Chicago — A Aula de Engenharia Social que Ninguém Percebeu

Pretexting, autoridade inventada e confiança contextual: Identity, Authentication e Authorization não são a mesma coisa.

Engenharia Social • Pretexting • Identity • Authentication
4

“Você Conhece o Diretor Rooney?” — OSINT Antes do Google Existir

Como dados públicos sobre pessoas, tecnologias, hábitos, empresas e relacionamentos podem revelar uma superfície de ataque antes do primeiro scan.

OSINT • Recon • LinkedIn • GitHub • Attack Surface
5

Cameron, Atenda o Telefone — Social Engineering as a Service

Ferris → Cameron → telefone → escola → funcionário → sistema. Nenhuma peça precisa falhar sozinha quando a cadeia inteira possui uma combinação explorável de confiança.

Social Engineering • Swiss Cheese Model • Human Risk
6

O Diretor Rooney Está Procurando Malware no Lugar Errado

Firewall, SIEM, EDR e Zero Trust podem funcionar perfeitamente enquanto engenharia social, Help Desk e processos humanos criam outro caminho até o objetivo.

SOC • SIEM • EDR • Zero Trust • Engenharia Social
7

A Ferrari do Cameron Não Tinha MFA

Privilégio, acesso físico, MFA, PAM, least privilege e o risco de proteger um ativo crítico apenas com medo, confiança e a esperança de que ninguém ousará tocá-lo.

MFA • PAM • Least Privilege • Privileged Access
8

Colocamos a Ferrari em Ré — Por Que Rollback Não É Backup

Rollback, restore, journaling, logs, Db2, VSAM e recuperação: voltar o estado de um sistema não significa apagar as consequências daquilo que aconteceu.

Backup • Restore • Rollback • Db2 • VSAM • Recovery
9

Rooney Invadiu a Casa Errada — Quando o Blue Team Vira o Próprio Incidente

Confirmation Bias, tunnel vision, Sunk Cost, Authority Gradient e o risco de uma resposta defensiva criar mais impacto que o próprio atacante.

Blue Team • SOC • Cognitive Bias • Incident Response
10

FerrisGPT — Agora o Adolescente Tem um Exército de Estagiários Sintéticos

IA generativa, agentes, OSINT automatizado, deepfake, voice cloning e automação transformam o ataque artesanal em uma capacidade paralela e escalável.

Generative AI • Agents • Deepfake • Voice Cloning • OSINT
11

Ferris Entra no Mainframe — RACF, z/OS e o Dia em que SPECIAL Virou o Passe para Chicago

RACF, SAF, ACEE, APF, USS, TSO, CICS, Db2, MQ, z/OS Connect, Zowe e service accounts vistos pela ótica dos caminhos de ataque até o mainframe.

Mainframe • RACF • z/OS • CICS • Db2 • MQ • Zowe
12

“A Vida Passa Muito Rápido” — O Red Team Depois que Todo Mundo Foi Embora

Red Team não termina em “conseguimos entrar”. Ataque deve gerar descoberta, evidência, correção, detecção e aprendizado para deixar a organização mais resiliente.

Red Teaming • Purple Team • Detection • Resilience • Learning

🎬 Página principal da temporada

Ferris Bueller’s Red Team: Como Hackear o Sistema Sem Precisar Roubar a Ferrari do Cameron reúne os doze episódios e conecta Red Team, engenharia social, IA, Blue Team e segurança de mainframe.

☕ Acessar o especial completo SAVE FERRIS

Sobre a série SAVE FERRIS — Red Team

A série SAVE FERRIS, publicada no Bellacosa Mainframe, utiliza situações inspiradas em Ferris Bueller para explicar conceitos de Red Team, cybersecurity, segurança ofensiva, engenharia social, OSINT, Blue Team, Purple Team, Zero Trust, MFA, PAM, inteligência artificial, RACF, IBM z/OS, CICS, Db2, MQ e segurança de mainframe.

O fio condutor é simples: um atacante não precisa necessariamente quebrar a tecnologia. Ele pode explorar relações de confiança, processos, identidades, privilégios, integrações e suposições existentes entre pessoas e sistemas.

A temporada acompanha o ciclo completo: reconhecimento → engenharia social → acesso → privilégio → impacto → detecção → correção → aprendizado.

Para Red Teams e Blue Teams, o objetivo final não é provar quem é mais inteligente, mas encontrar caminhos invisíveis antes que um adversário real os descubra.

sexta-feira, 19 de janeiro de 2018

💡 Mid-Week Tech Insight | IBM MQ for z/OS & SMF Data



 💡 Mid-Week Tech Insight | IBM MQ for z/OS & SMF Data

Mensageria crítica explicada para quem já confia mais no SMF do que em dashboard bonito




☕ 02:22 — Quando a fila começa a crescer em silêncio

Todo mainframer já viveu esse momento:
o sistema “está no ar”, ninguém reclamou…
mas o depth da fila começa a subir.

No mundo distribuído isso vira pânico tardio.
No z/OS, isso vira SMF bem lido.

Este artigo é sobre IBM MQ for z/OS + SMF como fundação real de aplicações distribuídas críticas — sem hype, sem romantização.


1️⃣ Um pouco de história: quando mensageria virou espinha dorsal 🧬

Antes de “event-driven” virar buzzword:

  • MQ já desacoplava sistemas

  • Garantia entrega

  • Preservava ordem

  • Sobrevivia a falhas

📌 Comentário Bellacosa:
MQ não nasceu para “escala web”.
Nasceu para não perder mensagem.


2️⃣ Por que SMF é a alma do MQ no z/OS 🧠

No z/OS:

  • Nada sério existe sem SMF

  • Performance sem SMF é palpite

No MQ:

  • SMF mostra o que realmente aconteceu

  • Não o que alguém acha que aconteceu

🔥 Tradução direta:
SMF é o trace definitivo do MQ.


3️⃣ O que o SMF revela sobre o MQ (e ninguém vê) 🔍

Com SMF você enxerga:

  • Volume de mensagens

  • Taxa de PUT / GET

  • Uso de CPU e I/O

  • Esperas

  • Gargalos por fila ou aplicação

😈 Easter egg:
Quem analisa SMF sabe que fila cheia não é causa — é sintoma.


4️⃣ MQ no mundo distribuído: o elo invisível 🌍

Aplicações modernas:

  • Microservices

  • Eventos

  • APIs

Mas no core:

  • MQ continua segurando o mundo

📌 Comentário ácido:
Kafka fala alto.
MQ entrega calado.


5️⃣ Passo a passo mental: analisando MQ via SMF 🧭

1️⃣ Observe o crescimento da fila
2️⃣ Correlacione com horário e carga
3️⃣ Analise PUT vs GET
4️⃣ Verifique latência e espera
5️⃣ Avalie consumo de CPU
6️⃣ Identifique aplicação causadora
7️⃣ Só então ajuste parâmetros

🔥 Regra de ouro:
Nunca aumente buffer antes de entender o gargalo.


6️⃣ SMF vs Observabilidade moderna (o encontro dos mundos) 📊

MainframeMundo distribuído
SMF MQTraces de mensageria
RMFMétricas de throughput
Queue DepthLag de consumidor
PUT/GETProducer / Consumer
AbendIncident

😈 Curiosidade:
O que hoje chamam de “lag” você sempre chamou de fila crescendo.


7️⃣ Erros comuns (e caros) ⚠️

❌ Ignorar SMF e confiar só em alertas
❌ Tratar MQ como “infra”
❌ Ajustar parâmetros sem evidência
❌ Não correlacionar com carga real

📌 Comentário Bellacosa:
Mensageria sem visibilidade vira buraco negro.


8️⃣ Guia de estudo prático 📚

Conceitos

  • Mensageria confiável

  • Desacoplamento real

  • Backpressure

  • Observabilidade

  • Capacidade

Exercício

👉 Pegue dados SMF do MQ
👉 Monte uma linha do tempo
👉 Relacione com batch, online e APIs


🎯 Aplicações reais no mundo enterprise

  • Core bancário

  • Integração mainframe-cloud

  • Sistemas regulados

  • Alta disponibilidade

  • Processamento assíncrono crítico

🔥 Comentário final:
Sem MQ, o distribuído cai.
Sem SMF, ninguém sabe por quê.


🖤 Epílogo — 03:05, filas sob controle

Enquanto alguns discutem se mensageria é “moderna”,
o MQ segue processando bilhões de mensagens… com SMF contando a verdade.

El Jefe Midnight Lunch assina:
“Mensagens podem esperar. Diagnóstico não.”

 

quinta-feira, 18 de janeiro de 2018

🥀 A Filosofia do Desejo em Anime — Parte 2: Poder, Submissão e o Mito da Mulher Ideal

 

Bellacosa Mainframe e a filosofia do desejo em anime

🥀 A Filosofia do Desejo em Anime — Parte 2: Poder, Submissão e o Mito da Mulher Ideal

O desejo humano é um sistema operacional arcaico — não tem atualização, apenas novas interfaces.
Nos animes, esse sistema aparece travestido de narrativa, estética e simbolismo.
O Japão, com sua mistura de repressão e contemplação, transformou o desejo em arte visual.
E é nesse paradoxo — entre o pudor e o fascínio — que o fetiche encontra sua morada filosófica.


A filosofia do desejo é um dos temas mais presentes nos animes, especialmente em histórias que exploram conflitos internos, sonhos impossíveis e a busca por significado. Em muitas obras japonesas, o desejo não aparece apenas como algo positivo, mas também como uma força capaz de gerar sofrimento, obsessão e transformação.

Personagens frequentemente são movidos por objetivos profundos: reconhecimento, amor, vingança, liberdade, poder ou simplesmente a necessidade de encontrar um propósito para continuar vivendo. No entanto, vários animes mostram que alcançar aquilo que se deseja nem sempre traz felicidade. Muitas vezes surge um novo vazio, criando questionamentos sobre a própria natureza humana.

Obras como Neon Genesis Evangelion, Berserk, Death Note, Monster, Code Geass, Paranoia Agent e Serial Experiments Lain exploram esse conflito de maneiras diferentes. Algumas abordam desejos individuais que entram em choque com a sociedade, enquanto outras discutem a relação entre ambição e destruição.

A influência de pensamentos budistas, existencialistas e psicológicos também é perceptível. Em diversas narrativas, o sofrimento nasce justamente do apego excessivo às expectativas e aos desejos pessoais.

Por isso, muitos animes utilizam o desejo como uma ferramenta filosófica para refletir sobre identidade, felicidade e realização. No final, a grande pergunta permanece: o que realmente buscamos quando acreditamos desejar alguma coisa? 🌙🧠🍂



⚖️ O Desejo como Poder

O poder é o fetiche supremo.
Não há nada mais erótico, em termos simbólicos, do que o ato de dominar e ser dominado
não no corpo, mas na mente.

Lelouch (Code Geass) manipula a vontade dos outros com um olhar.
Light Yagami (Death Note) mata com uma caneta.
Makima (Chainsaw Man) transforma submissão em culto.

Todos compartilham um mesmo arquétipo: o poder que desperta desejo, e o desejo que corrompe o poder.
É um jogo antigo, com regras invisíveis, onde o prazer está em quem comanda o tabuleiro —
não necessariamente quem vence a partida.

🔎 Curiosidade Bellacosa: o Japão sempre tratou a autoridade como uma forma de erotismo cultural.
O samurai se ajoelha diante do shogun com a mesma reverência de quem se entrega a um amor impossível.


🩸 Submissão: o outro lado do espelho

Se há prazer em dominar, há mistério em se entregar.
O fetiche da submissão, tão recorrente nos animes, é menos sobre humilhação e mais sobre confiança.
A submissão é, paradoxalmente, o gesto mais poderoso —
é entregar o controle e confiar que o outro não destrua sua essência.

Personagens como Shinji (Evangelion), Subaru (Re:Zero) e até Guts (Berserk)
representam essa fragilidade: o homem que sofre, que falha, mas que se ergue com a dor.
A submissão emocional se torna rito de passagem.

🔎 Curiosidade Bellacosa: Freud chamaria isso de “economia da libido”;
eu prefiro chamar de “o combustível da narrativa”.


🌸 A Mulher Ideal: o fetiche que o Japão exportou

A cultura japonesa construiu um mito perigoso e belo:
a mulher perfeita — pura, gentil, silenciosa, e ao mesmo tempo inatingível.
Rei Ayanami, Belldandy, Hinata Hyuga, Rem —
todas refletem o ideal de uma feminilidade dócil, quase sagrada.

Mas também há o outro extremo:
as mulheres dominantes, fortes, perigosas —
Makima, Esdeath, Revy, Motoko Kusanagi —
símbolos da independência que fascina e ameaça.

Ambas são projeções do mesmo desejo:
o homem dividido entre querer proteção e ser destruído.

🔎 Curiosidade Bellacosa: o fetiche pela mulher ideal é, na verdade, uma tentativa de domar o caos do mundo moderno.
O amor vira refúgio; o ideal feminino, o antivírus emocional.


Epílogo de Balcão

O desejo, nos animes, é uma lente de aumento sobre a alma humana.
Ele revela o medo, a solidão, o poder e a fragilidade de quem ama e sonha demais.
Por isso, o fetiche, quando bem explorado, não é vulgar — é filosófico.
Ele pergunta:

“O que é realmente belo: o corpo que se oferece ou o olhar que o torna desejável?”

Talvez o segredo esteja aí.
Entre submissão e poder, o fetiche é o lembrete de que o amor —
como a própria vida — só existe enquanto houver risco.

sábado, 13 de janeiro de 2018

O Portal das Mil Regiões : Atravesse o Stargate e Descobre que o Verdadeiro Guardião da Galáxia Atende pelo Nome de TOR

 

Bellacosa Mainframe CICS TOR o portal das mil regioes

☕ Um Café no Bellacosa Mainframe

O Portal das Mil Regiões

Quando um Programador COBOL Atravessa o Stargate e Descobre que o Verdadeiro Guardião da Galáxia Atende pelo Nome de TOR

"Há milhares de anos, uma antiga tecnologia foi construída para conectar mundos distantes. Não transportava pessoas... transportava transações."

Na série Stargate SG-1, uma equipe atravessa um gigantesco portal para visitar outros planetas. O Stargate não decide o que acontecerá do outro lado. Ele não derrota inimigos. Não constrói cidades. Não realiza experimentos científicos.

Ele apenas abre o caminho.

Agora imagine que, em vez de planetas, cada destino seja uma região CICS.

Em vez de uma equipe SG-1...

Temos um terminal 3270.

Em vez do Comando Stargate...

Temos um CICSplex.

E em vez do anel de endereçamento...

Temos um TOR (Terminal-Owning Region).

Hoje vamos investigar uma das arquiteturas mais elegantes já criadas na história da computação corporativa.

Prepare sua IDC (Identification Card), ajuste seu terminal 3270 e digite a transação.

O portal acaba de ser ativado.


Capítulo 1 — O Mistério da Porta que Nunca Executa Nada

Todo iniciante em CICS costuma imaginar uma arquitetura muito simples.

Terminal

    │

    ▼

Programa COBOL

    │

    ▼

DB2

Parece lógico.

O usuário digita uma transação.

O programa executa.

O banco responde.

Fim.

Mas um banco internacional não atende cinquenta clientes.

Ele atende milhões.

Uma companhia aérea não possui cem reservas.

Ela possui centenas de milhares acontecendo simultaneamente.

Uma seguradora pode manter milhares de operadores conectados durante todo o expediente.

Será que um único CICS suportaria tudo isso?

Claro que não.

Foi exatamente aí que nasceu uma das maiores ideias da engenharia de software corporativa.

Separar responsabilidades.


Capítulo 2 — O Programa Nunca Conhece o Cliente

Essa afirmação parece absurda.

Mas pense cuidadosamente.

O programa COBOL realmente conhece o usuário?

Na maioria dos grandes ambientes...

Não.

Quem conversa com o terminal é o TOR.

O COBOL apenas recebe uma requisição pronta para processamento.

Isso é parecido com um hospital.

Você conversa primeiro com a recepção.

Não diretamente com o cirurgião.

O recepcionista pergunta:

— Nome?

— Documento?

— Convênio?

— Qual o problema?

Somente depois você é encaminhado ao especialista.

O TOR faz exatamente isso.

Ele recebe.

Identifica.

Controla.

Encaminha.

Mas nunca faz a cirurgia.


Capítulo 3 — O Stargate da IBM

Na série Stargate existe um equipamento gigantesco.

Quando o endereço é discado...

O portal abre.

Terra

↓

Stargate

↓

Abydos

Observe algo interessante.

O Stargate nunca constrói uma pirâmide.

Nunca derrota Goa'ulds.

Nunca realiza pesquisas.

Ele apenas conecta dois pontos.

O TOR possui exatamente esse papel.

Usuário

↓

TOR

↓

AOR

Ele abre o caminho.

Nada mais.

Nada menos.

Essa simplicidade esconde uma engenharia monumental.


Capítulo 4 — O CICSplex é uma Galáxia

O erro mais comum dos iniciantes é imaginar que existe apenas um CICS.

Na realidade...

Os grandes bancos possuem dezenas.

Às vezes centenas.

Imagine algo assim:

               TOR-1

                  │

      ┌───────────┼──────────┐

      ▼           ▼          ▼

    AOR1       AOR2       AOR3

      │           │          │

      └──────┬────┴──────────┘

             ▼

         DB2 / MQ / VSAM

Agora imagine multiplicar isso por vinte.

Ou cinquenta.

Ou cem regiões.

Esse conjunto recebe o nome de CICSplex.

É literalmente uma galáxia de CICS trabalhando em conjunto.


Capítulo 5 — Quem é o Dono do Terminal?

O nome TOR já entrega sua missão.

Terminal-Owning Region.

Owning.

Proprietário.

Quem possui o terminal?

O TOR.

Quem controla sessões?

O TOR.

Quem mantém conexões?

O TOR.

Quem administra comunicação?

O TOR.

Quem executa COBOL?

Não.

Esse trabalho pertence ao AOR.


Capítulo 6 — O AOR é o SG-1

Na série Stargate existe a equipe de exploração.

Ela entra pelo portal.

Resolve problemas.

Enfrenta inimigos.

Retorna para casa.

No CICS...

Essa equipe é o AOR.

Application-Owning Region.

Ele realmente trabalha.

Executa:

  • COBOL

  • PL/I

  • C

  • Java

  • EXEC CICS

  • EXEC SQL

  • MQ

  • VSAM

Enquanto isso...

O TOR continua recebendo novas solicitações.


Capítulo 7 — O Endereço Galáctico

No Stargate existe um endereço formado por símbolos.

No CICS existe algo parecido.

Quando o usuário digita:

SALD

ou

EXTR

ou

PAGT

O TOR consulta suas tabelas.

Descobre:

"Essa transação pertence ao AOR-2."

Pronto.

A viagem começa.


Capítulo 8 — A Viagem da Transação

Vamos acompanhar uma única consulta de saldo.

Cliente

↓

3270

↓

TOR

↓

AOR

↓

COBOL

↓

DB2

↓

COBOL

↓

TOR

↓

Cliente

Parece simples.

Mas internamente dezenas de componentes cooperam.

É uma verdadeira coreografia.


Capítulo 9 — O TOR Nunca Consulta o Banco

Outra dúvida clássica.

"O TOR faz SELECT?"

Não.

Quem executa:

EXEC SQL
SELECT

é o programa COBOL.

Executando dentro do AOR.

O TOR nem sabe qual tabela foi acessada.

Ele apenas entrega e devolve a mensagem.


Capítulo 10 — O Grande Diretor Invisível

Quem decide qual AOR receberá a transação?

Em muitos ambientes...

O CICSPlex System Manager (CPSM).

Ele observa tudo.

CPU.

Memória.

Disponibilidade.

Carga.

Afinidade.

Estado das regiões.

Ele funciona como o General George Hammond observando dezenas de missões simultaneamente.

Se um AOR estiver sobrecarregado...

Outra região será escolhida.

Automaticamente.


Capítulo 11 — O Segredo da Afinidade

Imagine um cliente preenchendo um financiamento.

Tela 1.

Tela 2.

Tela 3.

Tela 4.

Durante o preenchimento...

Os dados permanecem temporariamente em memória.

Se o usuário fosse enviado para outro AOR no meio da operação...

Toda a conversa poderia ser perdida.

Por isso existe um conceito chamado Transaction Affinity.

Ela garante que determinadas conversas permaneçam sempre na mesma região de aplicação.

É como atravessar o Stargate com toda a equipe SG-1. Você não quer que metade da equipe apareça em outro planeta.


Capítulo 12 — O Load Balancer Antes da Internet

Hoje ouvimos falar em:

  • Kubernetes

  • Ingress Controller

  • API Gateway

  • Reverse Proxy

  • Load Balancer

Curiosamente...

O CICS fazia algo semelhante muito antes da computação em nuvem.

Internet

↓

Load Balancer

↓

Servidor A

Servidor B

Servidor C

No CICS:

Usuário

↓

TOR

↓

AOR-1

AOR-2

AOR-3

A ideia é praticamente idêntica.


Capítulo 13 — O Banco Nunca Fecha

Imagine um banco mundial.

Enquanto o Brasil dorme...

A Ásia está trabalhando.

Depois vem a Europa.

Depois a América.

O processamento nunca para.

Por isso diversos TORs podem existir simultaneamente.

TOR-1

TOR-2

TOR-3

TOR-4

Todos atendendo usuários.

Todos distribuindo carga.

Todos protegendo o ambiente.


Capítulo 14 — Um Dia na Vida de uma Transação

08:01.

O cliente consulta saldo.

08:01:00.003.

O TOR recebe.

08:01:00.005.

O CPSM encontra o melhor AOR.

08:01:00.007.

O COBOL inicia.

08:01:00.010.

O Db2 responde.

08:01:00.014.

A tela volta ao terminal.

Tudo aconteceu em poucos milissegundos.

O usuário acredita que apenas "o computador respondeu".

Na realidade...

Uma pequena frota inteira trabalhou para produzir aquela resposta.


Capítulo 15 — Easter Egg nº 1

No universo Stargate existe um dispositivo chamado DHD (Dial Home Device).

Ele não transporta ninguém.

Apenas estabelece a conexão.

O TOR desempenha um papel semelhante.

Ele não processa a lógica.

Ele estabelece o caminho.


Capítulo 16 — Easter Egg nº 2

Os fãs de Stargate lembram que cada planeta possui um endereço único.

Em CICS...

Cada transação também possui sua identidade.

CESN

CEMT

CECI

CEDA

CEDF

Cada uma "abre um portal" para uma função diferente do ambiente.


Capítulo 17 — Easter Egg nº 3

Os Asgard possuíam computadores extremamente avançados.

Mesmo assim...

Sempre existia um sistema central coordenando tudo.

No CICSplex...

Esse papel lembra o CMAS (CICSPlex Management Address Space), que mantém a visão centralizada das regiões e coopera com o CPSM na administração do ambiente. Ele não executa programas de negócio, mas ajuda a organizar e monitorar todo o ecossistema.


Curiosidades que Impressionam

  • O conceito de separar comunicação da lógica de negócio existe no CICS há décadas, muito antes de termos API Gateways e microsserviços.

  • Um TOR costuma consumir bem menos CPU que um AOR, justamente porque sua função é receber, manter sessões e encaminhar requisições.

  • Grandes bancos podem operar com dezenas de TORs e centenas de AORs, distribuindo milhões de transações por dia.

  • O usuário final jamais percebe por quantas regiões sua solicitação passou. Para ele, existe apenas "o sistema do banco".


Dicas para Quem Está Aprendendo CICS

Se você está iniciando sua jornada, estude os componentes na seguinte ordem:

  1. Entenda como funciona uma região CICS isolada.

  2. Aprenda o ciclo de vida de uma transação (EXEC CICS LINK, RETURN, SYNCPOINT etc.).

  3. Conheça o papel do TOR e do AOR.

  4. Estude os demais tipos de regiões, como FOR (File-Owning Region) e CMAS.

  5. Aprofunde-se em CICSPlex SM, políticas de workload e roteamento dinâmico.

  6. Explore como CICS integra Db2, VSAM, MQ e APIs REST modernas.

Essa sequência ajuda a construir uma visão sólida antes de mergulhar em arquiteturas de alta disponibilidade.


Comparando com Tecnologias Modernas

Arquitetura ModernaMundo CICS
API GatewayTOR
Load BalancerTOR + CPSM
Application ServerAOR
Banco de DadosDb2
File StorageVSAM
Cluster ManagerCICSPlex SM
Control PlaneCMAS
MicrosserviçoPrograma CICS especializado

Essa comparação mostra que muitos conceitos considerados "novos" já existiam no mainframe, apenas com nomes diferentes e décadas de maturidade operacional.


A Mensagem Oculta de Stargate

Existe uma frase recorrente na série:

"Não é o portal que salva a missão. É a equipe que o atravessa."

No CICS acontece algo semelhante.

O TOR é indispensável, mas ele não calcula juros, não atualiza contas, não aprova empréstimos e não processa pagamentos. Seu papel é garantir que cada solicitação encontre a região correta, de forma rápida, segura e confiável.

Essa separação de responsabilidades é um dos pilares que permitiu ao CICS sustentar sistemas críticos por décadas.


Conclusão — O Portal Continua Aberto

Ao terminar este café, você provavelmente nunca mais olhará para um TOR da mesma forma.

Ele não é apenas uma "região de terminais". É o guardião silencioso da entrada do CICSplex, o responsável por manter milhares de conexões organizadas, distribuir a carga entre regiões de aplicação e garantir que cada transação siga pelo melhor caminho.

No universo de Stargate, atravessar o portal era apenas o começo da aventura.

No universo do IBM CICS, atravessar o TOR também é apenas o primeiro passo.

Do outro lado aguardam AORs, FORs, CMAS, Db2, VSAM, MQ, políticas de workload, afinidade de transações e uma arquitetura construída para suportar alguns dos sistemas mais críticos do planeta.

Talvez esse seja o maior segredo do mainframe: sua verdadeira força nunca esteve em uma única máquina ou em um único programa COBOL. Ela sempre esteve na capacidade de dividir responsabilidades entre componentes especializados, trabalhando em perfeita harmonia.

Assim como a equipe SG-1 confiava no Stargate para chegar ao destino certo, milhões de usuários, todos os dias, confiam sem perceber que um discreto TOR abrirá o portal correto para que suas transações cheguem ao lugar exato — e retornem em milissegundos, como se toda essa jornada tivesse acontecido por mágica. É justamente essa "mágica" invisível, fruto de décadas de engenharia refinada, que faz do CICS uma das maiores obras-primas da computação corporativa.

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...