Documentação e guias de referência
Referências rápidas para manter abertas enquanto você trabalha. Pesquise em todas as folhas de consulta de uma só vez.
Cibersegurança
OWASP Top 10 (2021)
Os dez riscos de segurança mais críticos em aplicações web e o que cada um significa.
| Risco | O que significa |
|---|---|
| A01 | Falhas no controle de acesso: usuários acessam dados ou ações sem autorização. |
| A02 | Falhas criptográficas: dados sensíveis enviados ou armazenados sem criptografia forte. |
| A03 | Injeção: a entrada é executada como SQL, shell ou outro código. Inclui cross-site scripting. |
| A04 | Design inseguro: a segurança não foi planejada desde o início. |
| A05 | Configuração incorreta de segurança: senhas padrão, armazenamento aberto, erros com detalhes excessivos. |
| A06 | Componentes vulneráveis e desatualizados: bibliotecas antigas com falhas conhecidas. |
| A07 | Falhas de identificação e autenticação: logins fracos, ausência de MFA e sessões mal gerenciadas. |
| A08 | Falhas de integridade de software e dados: atualizações e pipelines não verificados. |
| A09 | Falhas de registro e monitoramento de segurança: ataques passam despercebidos. |
| A10 | Falsificação de requisições do lado do servidor: o servidor é induzido a acessar endereços internos. |
Cibersegurança
Etapas da resposta a incidentes
O ciclo de vida de resposta a incidentes do NIST, na ordem em que você o executa.
| Etapa | O que você faz |
|---|---|
| Preparação | Tenha planos, contatos, ferramentas e backups prontos antes que algo aconteça. |
| Detecção e análise | Identifique o incidente, confirme-o e avalie sua gravidade. |
| Contenção | Impeça a propagação: isole máquinas, bloqueie contas ou endereços. |
| Erradicação | Remova a causa: malware, backdoors e contas comprometidas. |
| Recuperação | Restaure os sistemas a partir de backups limpos e monitore-os de perto. |
| Lições aprendidas | Registre o que aconteceu e corrija as falhas para evitar que se repita. |
Redes
Portas comuns
Portas que você encontrará em servidores, varreduras e regras de firewall.
| Porta | Serviço |
|---|---|
| 20/tcp · FTP data | Canal de dados para transferência de arquivos. Sem criptografia: prefira SFTP. |
| 21/tcp · FTP | Controle de transferência de arquivos. Envia senhas em texto aberto. |
| 22/tcp · SSH | Login remoto e cópia de arquivos seguros (SFTP, SCP). |
| 23/tcp · Telnet | Login remoto antigo sem criptografia. Desative-o e use SSH. |
| 25/tcp · SMTP | Entrega de e-mails entre servidores de e-mail. |
| 53/tcp/udp · DNS | Consultas de nomes de domínio. |
| 67/udp · DHCP | Distribui endereços IP em uma rede local. |
| 80/tcp · HTTP | Tráfego web não criptografado. Redirecione para HTTPS. |
| 110/tcp · POP3 | Download de e-mails (antigo, sem criptografia). |
| 123/udp · NTP | Sincronização de horário. |
| 143/tcp · IMAP | Leitura de e-mails no servidor (sem criptografia). |
| 161/udp · SNMP | Monitoramento de dispositivos de rede. Altere as strings de comunidade padrão. |
| 389/tcp · LDAP | Serviços de diretório, como o Active Directory. |
| 443/tcp · HTTPS | Tráfego web criptografado (HTTP sobre TLS). |
| 445/tcp · SMB | Compartilhamento de arquivos do Windows. Nunca o exponha à internet. |
| 587/tcp · SMTP submission | Envio de e-mails de um aplicativo ou cliente de e-mail, com TLS. |
| 993/tcp · IMAPS | Leitura de e-mails via TLS. |
| 1433/tcp · MS SQL | Banco de dados Microsoft SQL Server. |
| 3306/tcp · MySQL | Bancos de dados MySQL e MariaDB. Mantenha-os privados. |
| 3389/tcp · RDP | Área de Trabalho Remota do Windows. Um alvo frequente: coloque-a atrás de uma VPN. |
| 5432/tcp · PostgreSQL | Banco de dados PostgreSQL. Mantenha-o privado. |
| 6379/tcp · Redis | Cache Redis. Frequentemente deixado aberto sem senha. |
| 8080/tcp · HTTP alt | Porta comum para servidores de desenvolvimento e proxies. |
| 27017/tcp · MongoDB | Banco de dados MongoDB. Mantenha-o privado. |
Desenvolvimento de software
Códigos de status HTTP
O que significam os números nas respostas de API e nos erros do navegador.
| Código | Significado |
|---|---|
| 200 OK | A solicitação foi bem-sucedida. |
| 201 Created | Um novo recurso foi criado. |
| 204 No Content | Funcionou e não há nada para retornar. |
| 301 Moved Permanently | O endereço mudou permanentemente; siga o novo. |
| 304 Not Modified | Sua cópia em cache ainda está atualizada. |
| 400 Bad Request | A solicitação está malformada ou é inválida. |
| 401 Unauthorized | Usuário não autenticado, ou o token está ausente ou expirado. |
| 403 Forbidden | Autenticado, mas sem permissão para fazer isso. |
| 404 Not Found | Não há nada neste endereço. |
| 409 Conflict | A solicitação entra em conflito com o estado atual, como no caso de uma duplicação. |
| 429 Too Many Requests | Um limite de requisições foi atingido; aguarde e tente novamente. |
| 500 Internal Server Error | Algo deu errado no servidor. |
| 502 Bad Gateway | Um servidor intermediário recebeu uma resposta inválida do próximo servidor. |
| 503 Service Unavailable | O servidor está sobrecarregado ou indisponível para manutenção. |
Desenvolvimento de software
Guia de referência de comandos Git
Os comandos Git que você usa em quase todos os dias de trabalho.
| Comando | O que faz |
|---|---|
| git clone <url> | Copie um repositório para o seu computador. |
| git status | Veja o que mudou e o que está na área de preparação. |
| git add -p | Adicione alterações à área de preparação aos poucos, após revisá-las. |
| git commit -m "message" | Salve um snapshot com uma mensagem. |
| git switch -c feature | Crie uma branch e mude para ela. |
| git pull --rebase | Obtenha as alterações mais recentes e reaplique as suas sobre elas. |
| git push -u origin feature | Envie sua branch e configure o rastreamento. |
| git log --oneline --graph | Mostre um histórico compacto com branches. |
| git diff | Mostre alterações que ainda não estão na área de preparação. |
| git stash | Guarde alterações inacabadas para depois. |
| git revert <commit> | Desfazer um commit com um novo commit, preservando o histórico. |
Nuvem e Linux
Guia rápido de comandos Linux
Os comandos que você usará todos os dias em um servidor Linux.
| Comando | O que faz |
|---|---|
| pwd | Mostre a pasta em que você está. |
| ls -la | Liste todos os arquivos com detalhes, incluindo os ocultos. |
| cd /var/log | Mova para outra pasta. |
| cat file.txt | Exiba um arquivo. |
| less file.txt | Leia um arquivo longo página por página. |
| grep -i error app.log | Encontre linhas que contenham uma palavra, sem diferenciar maiúsculas de minúsculas. |
| chmod 755 script.sh | Altere as permissões de um arquivo. |
| chown user:group file | Altere o proprietário de um arquivo. |
| ps aux | Liste os processos em execução. |
| top | Monitore o uso de CPU e memória em tempo real. |
| df -h | Mostre o espaço livre em disco. |
| sudo apt update && sudo apt upgrade | Instale atualizações no Debian ou Ubuntu. |
| ssh user@host | Conecte-se a um servidor remoto. |
| tail -f /var/log/syslog | Acompanhe um arquivo de log conforme ele cresce. |
Nuvem e Linux
Comandos do Docker e Kubernetes
Crie, execute e depure contêineres e depois gerencie-os em um cluster.
| Comando | O que faz |
|---|---|
| docker build -t app . | Crie uma imagem a partir do Dockerfile nesta pasta. |
| docker run -p 8080:80 app | Execute a imagem e exponha a porta 80 como 8080. |
| docker ps | Liste os contêineres em execução. |
| docker logs -f <id> | Acompanhe a saída de um contêiner. |
| docker exec -it <id> sh | Abra um shell dentro de um contêiner em execução. |
| kubectl get pods | Liste os pods no namespace atual. |
| kubectl describe pod <name> | Mostre detalhes e eventos recentes de um pod. |
| kubectl logs <pod> | Exiba os logs de um pod. |
| kubectl apply -f deploy.yaml | Crie ou atualize recursos a partir de um arquivo. |
| kubectl rollout undo deployment/app | Reverta para a versão anterior. |
Redes
Tipos de registros DNS
Os registros que você encontrará em uma zona DNS e a função de cada um.
| Registro | Finalidade |
|---|---|
| A | Mapeia um nome para um endereço IPv4. |
| AAAA | Mapeia um nome para um endereço IPv6. |
| CNAME | Torna um nome um alias de outro. |
| MX | Indica quais servidores de e-mail recebem mensagens para o domínio. |
| TXT | Texto livre, usado para SPF, DKIM e verificações de propriedade do domínio. |
| NS | Lista os servidores de nomes responsáveis pelo domínio. |
| SOA | Início de autoridade: as configurações principais e o número de série da zona. |
| PTR | Consulta reversa: mapeia um endereço IP de volta para um nome. |
| SRV | Aponta para o host e a porta de um serviço específico. |
| CAA | Restringe quais autoridades certificadoras podem emitir certificados. |
Redes
Tabela de CIDR e máscaras de sub-rede
Comprimento do prefixo, máscara de sub-rede, total de endereços e hosts utilizáveis.
| Prefixo | Máscara · total · utilizáveis |
|---|---|
| /8 | 255.0.0.0 · 16,777,216 · 16,777,214 |
| /16 | 255.255.0.0 · 65,536 · 65,534 |
| /20 | 255.255.240.0 · 4,096 · 4,094 |
| /22 | 255.255.252.0 · 1,024 · 1,022 |
| /24 | 255.255.255.0 · 256 · 254 |
| /25 | 255.255.255.128 · 128 · 126 |
| /26 | 255.255.255.192 · 64 · 62 |
| /27 | 255.255.255.224 · 32 · 30 |
| /28 | 255.255.255.240 · 16 · 14 |
| /29 | 255.255.255.248 · 8 · 6 |
| /30 | 255.255.255.252 · 4 · 2 |
| /32 | 255.255.255.255 · 1 · 1 |
Redes
Comandos para diagnóstico de rede
Comandos para descobrir onde uma conexão falha. Teste apenas sistemas que sejam seus ou que você tenha permissão para testar.
| Comando | O que faz |
|---|---|
| ping -c 4 example.com | Verifique se um host responde e quanto tempo leva. |
| traceroute example.com | Mostre todos os roteadores pelos quais um pacote passa no caminho. |
| dig example.com A | Consulte os registros DNS de um nome. |
| nslookup example.com | Uma consulta DNS mais simples que funciona na maioria dos sistemas. |
| curl -I https://example.com | Obtenha apenas os cabeçalhos de resposta de uma página web. |
| ip addr | Mostre suas interfaces de rede e endereços IP. |
| ip route | Mostre para onde o tráfego é enviado, incluindo o gateway padrão. |
| ss -tulpn | Liste as portas em escuta e os programas que as abriram. |
| nmap -sV 192.168.1.10 | Faça uma varredura em um host seu para ver portas abertas e versões dos serviços. |
| tcpdump -i eth0 port 53 | Capture pacotes DNS em uma interface. |
Desenvolvimento de software
Guia rápido de SQL
As instruções usadas na maioria das operações com bancos de dados. Sempre passe a entrada do usuário como parâmetros, nunca concatenando strings.
| Instrução | O que faz |
|---|---|
| SELECT name, email FROM users; | Leia colunas de uma tabela. |
| SELECT * FROM orders WHERE total > 100; | Filtre linhas com uma condição. |
| ORDER BY created_at DESC LIMIT 10 | Ordene o resultado e mantenha apenas as primeiras linhas. |
| INSERT INTO users (name) VALUES ($1); | Adiciona uma linha. $1 é um parâmetro preenchido de forma segura. |
| UPDATE users SET name = $1 WHERE id = $2; | Altere linhas existentes. Nunca se esqueça do WHERE. |
| DELETE FROM sessions WHERE expires_at < now(); | Remova as linhas que correspondam aos critérios. |
| JOIN orders ON orders.user_id = users.id | Combine linhas de duas tabelas que compartilham um valor. |
| SELECT status, count(*) FROM orders GROUP BY status; | Agrupe linhas e faça contagens ou somas. |
| CREATE INDEX ON users (email); | Acelere as buscas em uma coluna. |
| BEGIN; ... COMMIT; | Execute várias instruções como uma única transação: tudo ou nada. |
Desenvolvimento de software
Guia rápido de expressões regulares
Padrões para buscar e validar texto. Experimente-os na ferramenta de teste de Regex.
| Padrão | Correspondências |
|---|---|
| . | Qualquer caractere único, exceto uma quebra de linha. |
| \d \w \s | Um dígito, um caractere de palavra, um caractere de espaço em branco. |
| ^ $ | O início e o fim do texto. |
| \b | Um limite de palavra. |
| * + ? | Zero ou mais, um ou mais, zero ou uma ocorrência do item anterior. |
| {2,4} | Entre 2 e 4 do item anterior. |
| [abc] [^abc] | Um dos caracteres listados ou qualquer caractere não listado. |
| (cat|dog) | Um grupo que corresponde a cat ou dog e memoriza a correspondência. |
| (?:cat|dog) | O mesmo grupo sem memorizá-lo. |
| (?=x) | Um lookahead: somente se x vier a seguir, sem consumi-lo. |
Nuvem e Linux
Noções básicas de scripts Bash
Os elementos básicos dos scripts de shell para automação.
| Sintaxe | Significado |
|---|---|
| #!/usr/bin/env bash | Primeira linha: qual programa executa o script. |
| set -euo pipefail | Interrompa a execução em caso de erros, variáveis não definidas e falhas em pipelines. Um padrão mais seguro. |
| name="web01"; echo "$name" | Defina e use uma variável. Coloque-a entre aspas para preservar os espaços. |
| if [ -f "$file" ]; then ... fi | Execute comandos apenas se uma condição for verdadeira; neste caso, se um arquivo existir. |
| for f in *.log; do ... done | Repita comandos para cada item de uma lista. |
| cmd1 | cmd2 | Envie a saída de um comando para outro. |
| cmd > out.txt cmd >> out.txt | Grave a saída em um arquivo, substituindo ou acrescentando ao conteúdo existente. |
| $? | O código de saída do último comando. 0 significa sucesso. |
| cmd1 && cmd2 cmd1 || cmd2 | Execute o segundo apenas se o primeiro tiver sucesso ou apenas se falhar. |
| chmod +x script.sh && ./script.sh | Torne um script executável e execute-o. |
Nuvem e Linux
Sintaxe de agendamento cron
Cinco campos: minuto, hora, dia do mês, mês e dia da semana. Experimente no guia explicativo de Cron.
| Expressão | Execuções |
|---|---|
| * * * * * | A cada minuto. |
| */15 * * * * | A cada 15 minutos. |
| 0 * * * * | No início de cada hora. |
| 0 2 * * * | Todos os dias às 02:00. |
| 30 9 * * 1-5 | Às 09:30 nos dias de semana, de segunda a sexta. |
| 0 0 1 * * | À meia-noite do primeiro dia de cada mês. |
| 0 0 * * 0 | À meia-noite de todo domingo. |
| 0 8,20 * * * | Duas vezes por dia, às 08:00 e às 20:00. |
Nuvem e Linux
Modos de permissão do Linux
Valores comuns de chmod e quando usá-los. Leitura é 4, escrita é 2 e execução é 1.
| Modo | Significado |
|---|---|
| 777 rwxrwxrwx | Todos podem fazer tudo. Quase nunca é correto. |
| 755 rwxr-xr-x | Acesso total para o proprietário; leitura e execução para os demais. Comum para programas e pastas. |
| 750 rwxr-x--- | Acesso total para o proprietário; leitura e execução para o grupo; nenhum acesso para os demais. |
| 700 rwx------ | Somente o proprietário tem acesso. Ideal para pastas privadas. |
| 664 rw-rw-r-- | Proprietário e grupo podem editar; os demais podem ler. |
| 644 rw-r--r-- | O proprietário pode editar; todos podem ler. Comum para arquivos da web. |
| 640 rw-r----- | O proprietário edita; o grupo lê. Ideal para arquivos de configuração com senhas. |
| 600 rw------- | Somente o proprietário pode ler e escrever. Necessário para chaves privadas SSH. |
| 400 r-------- | Somente leitura para o proprietário. Ideal para chaves que nunca mudam. |
Cibersegurança
Cabeçalhos de segurança web e flags de cookies
Cabeçalhos de resposta que fazem os navegadores impor um comportamento mais seguro.
| Cabeçalho ou flag | O que protege |
|---|---|
| Content-Security-Policy | Restringe as origens de carregamento de scripts, imagens e frames. Forte proteção contra XSS. |
| Strict-Transport-Security | Instrui os navegadores a sempre usar HTTPS para este site. |
| X-Content-Type-Options: nosniff | Impede que navegadores tentem adivinhar tipos de arquivo e executem scripts disfarçados. |
| X-Frame-Options: DENY | Impede que outros sites exibam o seu em um frame (clickjacking). |
| Referrer-Policy | Controla quanto do seu endereço é enviado a outros sites. |
| Permissions-Policy | Desativa recursos do navegador, como câmera ou localização, para a página. |
| Set-Cookie: HttpOnly | Oculta o cookie do JavaScript, impedindo que XSS o roube. |
| Set-Cookie: Secure | Envia o cookie apenas por HTTPS. |
| Set-Cookie: SameSite=Lax | Restringe cookies em requisições entre sites, reduzindo o risco de CSRF. |
| Access-Control-Allow-Origin | CORS: quais outros sites podem ler as respostas da sua API. |
Cibersegurança
Criptografia em resumo
Qual algoritmo usar para cada tarefa e quais evitar.
| Algoritmo | O que é e quando usar |
|---|---|
| AES-256-GCM | Criptografia simétrica rápida para dados em repouso e em trânsito. A mesma chave criptografa e descriptografa. |
| ChaCha20-Poly1305 | Uma cifra simétrica moderna, ótima para celulares sem AES em hardware. |
| RSA 2048+ | Criptografia de chave pública e assinaturas. Mais lenta, usada principalmente para trocar chaves. |
| ECDSA / Ed25519 | Assinaturas compactas de chave pública com chaves menores que as do RSA. |
| Diffie-Hellman | Permite que duas partes estabeleçam um segredo compartilhado por um canal aberto. |
| SHA-256 | Um hash criptográfico para impressões digitais e verificações de integridade. Não serve para senhas. |
| HMAC | Um hash combinado com uma chave secreta para comprovar que uma mensagem não foi alterada. |
| bcrypt / Argon2 | Hashes lentos, com salt, feitos para armazenar senhas. |
| TLS 1.3 | O protocolo por trás do HTTPS. Use-o e desative as versões antigas. |
| MD5 / SHA-1 | Inseguros para uso em segurança. Nunca os use para assinaturas ou senhas. |
Cibersegurança
Glossário de ataques comuns
Definições em linguagem simples dos ataques de que você mais ouvirá falar.
| Ataque | O que é |
|---|---|
| Phishing | Mensagens falsas que enganam as pessoas para que revelem senhas ou cliquem em links maliciosos. |
| Ransomware | Malware que bloqueia arquivos e exige pagamento para desbloqueá-los. |
| DDoS | Sobrecarregar um serviço com tráfego de várias máquinas para impedir o acesso de usuários reais. |
| Man-in-the-middle | Posicionar-se secretamente entre duas partes para ler ou alterar suas mensagens. |
| Força bruta | Testar várias senhas até que uma funcione. |
| Credential stuffing | Testar pares de usuário e senha vazados em outros sites. |
| Zero-day | Um ataque a uma falha que o fornecedor ainda desconhece e para a qual, portanto, não existe correção. |
| Ataque à cadeia de suprimentos | Comprometer um fornecedor ou pacote de software para atingir seus clientes. |
| Escalada de privilégios | Transformar acesso limitado em acesso de administrador. |
| Engenharia social | Manipulação de pessoas, em vez de computadores, para obter acesso. |
| Ameaça interna | Danos causados por alguém com acesso legítimo, de propósito ou por acidente. |
Cibersegurança
Táticas do MITRE ATT&CK
As 14 etapas percorridas por atacantes, uma linguagem comum para defensores.
| Tática | O objetivo do atacante |
|---|---|
| Reconhecimento | Coletar informações sobre o alvo. |
| Desenvolvimento de recursos | Prepare a infraestrutura, as contas e as ferramentas para o ataque. |
| Acesso inicial | Obter acesso inicial, por exemplo, por meio de phishing. |
| Execução | Executar código malicioso no sistema. |
| Persistência | Mantenha o acesso após reinicializações e alterações de senha. |
| Escalada de privilégios | Obter permissões mais elevadas. |
| Evasão de defesas | Evitar ser detectado ou bloqueado. |
| Acesso a credenciais | Roubar nomes de contas e senhas. |
| Descoberta | Conheça o ambiente e o que há nele. |
| Movimentação lateral | Mover-se de um sistema para outros na rede. |
| Coleta | Coletar os dados de interesse. |
| Comando e controle | Comunicar-se com sistemas comprometidos para controlá-los. |
| Exfiltração | Exfiltrar os dados da rede. |
| Impacto | Interromper, destruir ou bloquear sistemas e dados. |