dezembro 21, 2025
13 min de leitura

Perguntas para Entrevista de Engenheiro de Segurança Júnior: Guia Completo

interview
career-advice
job-search
entry-level
Perguntas para Entrevista de Engenheiro de Segurança Júnior: Guia Completo
MB

Milad Bonakdar

Autor

Domine os fundamentos essenciais de segurança cibernética com perguntas abrangentes para entrevistas, cobrindo a tríade CIA, o Top 10 da OWASP, criptografia, firewalls e as melhores práticas de segurança para cargos de engenheiro de segurança júnior.


Introdução

Engenheiros de segurança protegem organizações contra ameaças cibernéticas implementando controles de segurança, monitorando sistemas e respondendo a incidentes. Como um engenheiro de segurança júnior, você precisará de conhecimento fundamental dos princípios de segurança, vulnerabilidades comuns e tecnologias de defesa.

Este guia cobre perguntas essenciais de entrevista para engenheiros de segurança júnior, focando em conceitos básicos de segurança e habilidades práticas.


Fundamentos de Segurança

1. Explique a Tríade CIA.

Resposta: A Tríade CIA é a base da segurança da informação:

Confidencialidade:

  • Apenas usuários autorizados podem acessar os dados
  • Alcançada através de: criptografia, controles de acesso, autenticação

Integridade:

  • Os dados permanecem precisos e não modificados
  • Alcançada através de: hashing, assinaturas digitais, checksums

Disponibilidade:

  • Sistemas e dados estão acessíveis quando necessário
  • Alcançada através de: redundância, backups, proteção contra DDoS
Loading diagram...

Exemplos de Violações:

  • Confidencialidade: Vazamento de dados expondo informações de clientes
  • Integridade: Atacante modificando registros financeiros
  • Disponibilidade: Ataque DDoS derrubando um website

Frequência: Muito Comum Dificuldade: Fácil


OWASP Top 10

2. Cite três itens do OWASP Top 10 e explique-os.

Resposta: OWASP Top 10 lista os riscos de segurança mais críticos para aplicações web:

1. Injeção (SQL Injection): Atacante insere código malicioso em consultas.

# Código vulnerável
username = request.GET['username']
query = f"SELECT * FROM users WHERE username = '{username}'"
# Ataque: username = "admin' OR '1'='1"

# Código seguro (consulta parametrizada)
cursor.execute("SELECT * FROM users WHERE username = %s", (username,))

2. Quebra de Controle de Acesso: Usuários podem acessar recursos que não deveriam.

# Vulnerável: Nenhuma verificação de autorização
@app.route('/admin/users/<user_id>')
def get_user(user_id):
    return User.query.get(user_id)

# Seguro: Verificação de autorização
@app.route('/admin/users/<user_id>')
@require_admin
def get_user(user_id):
    if not current_user.is_admin:
        abort(403)
    return User.query.get(user_id)

3. Cross-Site Scripting (XSS): Atacante injeta scripts maliciosos em páginas web.

<!-- Vulnerável -->
<div>Bem-vindo, {{ username }}</div>

<!-- Ataque -->
username = "<script>alert('XSS')</script>"

<!-- Seguro (escape da saída) -->
<div>Bem-vindo, {{ username | escape }}</div>

Frequência: Muito Comum Dificuldade: Média


3. Como você realiza o gerenciamento de vulnerabilidades?

Resposta: O gerenciamento de vulnerabilidades é um processo contínuo de identificar, avaliar e remediar fraquezas de segurança.

Processo:

Loading diagram...

Escaneamento de Vulnerabilidades:

# Escaneamento de vulnerabilidades com Nmap
nmap --script vuln 192.168.1.100

# Escaneamento com OpenVAS
openvas-start
# Acessar interface web em https://localhost:9392

# Escaneamento com Nessus (comercial)
# Configurar via interface web

Exemplo Nessus:

# Automatizar escaneamento com Nessus
import requests
import time

class NessusScanner:
    def __init__(self, url, access_key, secret_key):
        self.url = url
        self.headers = {
            'X-ApiKeys': f'accessKey={access_key}; secretKey={secret_key}'
        }
    
    def create_scan(self, name, targets):
        data = {
            'uuid': 'template-uuid',  # Escaneamento Básico de Rede
            'settings': {
                'name': name,
                'text_targets': targets
            }
        }
        response = requests.post(
            f'{self.url}/scans',
            headers=self.headers,
            json=data,
            verify=False
        )
        return response.json()['scan']['id']
    
    def launch_scan(self, scan_id):
        requests.post(
            f'{self.url}/scans/{scan_id}/launch',
            headers=self.headers,
            verify=False
        )
    
    def get_results(self, scan_id):
        response = requests.get(
            f'{self.url}/scans/{scan_id}',
            headers=self.headers,
            verify=False
        )
        return response.json()

# Uso
scanner = NessusScanner('https://nessus:8834', 'access_key', 'secret_key')
scan_id = scanner.create_scan('Escaneamento Semanal', '192.168.1.0/24')
scanner.launch_scan(scan_id)

Gerenciamento de Patch:

# Gerenciamento de patch no Linux
# Ubuntu/Debian
sudo apt update
sudo apt list --upgradable
sudo apt upgrade -y

# CentOS/RHEL
sudo yum check-update
sudo yum update -y

# Patch automatizado
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Matriz de Priorização:

Pontuação CVSSExplorabilidadeCriticidade do AtivoPrioridade
Crítico (9-10)Exploit públicoProduçãoP1 (Imediato)
Alto (7-8.9)PoC disponívelProduçãoP2 (1 semana)
Médio (4-6.9)Sem exploitInternoP3 (1 mês)
Baixo (0-3.9)Sem exploitDev/TesteP4 (Próximo ciclo)

Rastreamento de Remediação:

# Rastreamento de vulnerabilidades
class VulnerabilityTracker:
    def __init__(self):
        self.vulnerabilities = []
    
    def add_vulnerability(self, vuln):
        self.vulnerabilities.append({
            'id': vuln['id'],
            'severity': vuln['severity'],
            'asset': vuln['asset'],
            'status': 'open',
            'discovered': datetime.now(),
            'sla_deadline': self.calculate_sla(vuln['severity'])
        })
    
    def calculate_sla(self, severity):
        sla_days = {
            'critical': 7,
            'high': 30,
            'medium': 90,
            'low': 180
        }
        return datetime.now() + timedelta(days=sla_days[severity])
    
    def get_overdue(self):
        return [v for v in self.vulnerabilities 
                if v['status'] == 'open' and 
                datetime.now() > v['sla_deadline']]

Frequência: Comum Dificuldade: Fácil-Média


Noções Básicas de Criptografia

4. Qual é a diferença entre criptografia simétrica e assimétrica?

Resposta:

Criptografia Simétrica:

  • Mesma chave para criptografia e descriptografia
  • Rápida
  • Exemplos: AES, DES, 3DES

Criptografia Assimétrica:

  • Chave pública criptografa, chave privada descriptografa
  • Mais lenta
  • Exemplos: RSA, ECC
# Criptografia simétrica (AES)
from cryptography.fernet import Fernet

# Gerar chave
key = Fernet.generate_key()
cipher = Fernet(key)

# Criptografar
encrypted = cipher.encrypt(b"Mensagem secreta")

# Descriptografar
decrypted = cipher.decrypt(encrypted)

# Criptografia assimétrica (RSA)
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization

# Gerar par de chaves
private_key = rsa.generate_private_key(
    public_exponent=65537,
    key_size=2048
)
public_key = private_key.public_key()

# Criptografar com chave pública, descriptografar com chave privada

Casos de Uso:

  • Simétrica: Criptografar grandes volumes de dados (arquivos, bancos de dados)
  • Assimétrica: Troca de chaves, assinaturas digitais, SSL/TLS

Frequência: Muito Comum Dificuldade: Fácil-Média


5. Como funciona o SSL/TLS e como você gerencia certificados?

Resposta: SSL/TLS criptografa dados em trânsito entre cliente e servidor.

Handshake TLS:

Loading diagram...

Como Funciona:

  1. Client Hello: Cliente envia suites de cifras suportadas
  2. Server Hello: Servidor escolhe a cifra, envia o certificado
  3. Verificação do Certificado: Cliente valida a cadeia de certificados
  4. Troca de Chave: Estabelece segredo compartilhado
  5. Comunicação Criptografada: Usa criptografia simétrica

Componentes do Certificado:

# Visualizar detalhes do certificado
openssl x509 -in certificate.crt -text -noout

# O certificado contém:
# - Subject (nome do domínio)
# - Issuer (CA)
# - Período de validade
# - Chave pública
# - Assinatura

Gerenciamento de Certificados:

Gerar CSR (Certificate Signing Request):

# Gerar chave privada
openssl genrsa -out private.key 2048

# Gerar CSR
openssl req -new -key private.key -out request.csr

# Visualizar CSR
openssl req -text -noout -verify -in request.csr

Certificado Autoassinado (Teste):

# Gerar certificado autoassinado
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

# Combinar para uso no servidor
cat cert.pem key.pem > server.pem

Instalar Certificado:

# Nginx
server {
    listen 443 ssl;
    server_name example.com;
    
    ssl_certificate /etc/nginx/ssl/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/key.pem;
    
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;
}

# Apache
<VirtualHost *:443>
    ServerName example.com
    
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/cert.pem
    SSLCertificateKeyFile /etc/apache2/ssl/key.pem
    SSLCertificateChainFile /etc/apache2/ssl/chain.pem
    
    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    SSLCipherSuite HIGH:!aNULL:!MD5
</VirtualHost>

Configurações Incorretas Comuns:

1. Protocolos Fracos:

# Ruim: Permite SSLv3, TLSv1.0
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;

# Bom: Apenas TLS moderno
ssl_protocols TLSv1.2 TLSv1.3;

2. Cifras Fracas:

# Testar configuração SSL
sslscan example.com
nmap --script ssl-enum-ciphers -p 443 example.com

# Ou usar ferramentas online
# https://www.ssllabs.com/ssltest/

3. Certificados Expirados:

# Verificar expiração do certificado
openssl s_client -connect example.com:443 -servername example.com < /dev/null 2>/dev/null | \
    openssl x509 -noout -dates

# Monitorar expiração
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | \
    openssl x509 -noout -enddate

Automação de Certificados (Let's Encrypt):

# Instalar certbot
sudo apt install certbot python3-certbot-nginx

# Obter certificado
sudo certbot --nginx -d example.com -d www.example.com

# Auto-renovação (cron)
0 0 * * * certbot renew --quiet

Solução de Problemas:

# Testar conexão TLS
openssl s_client -connect example.com:443 -servername example.com

# Verificar cadeia de certificados
openssl verify -CAfile ca-bundle.crt certificate.crt

# Verificar se o certificado corresponde à chave privada
openssl x509 -noout -modulus -in cert.pem | openssl md5
openssl rsa -noout -modulus -in key.pem | openssl md5
# Os hashes devem corresponder

Frequência: Comum Dificuldade: Média


Firewalls

6. Explique firewalls stateful vs stateless.

Resposta:

Firewall Stateless:

  • Examina cada pacote independentemente
  • Sem rastreamento de conexão
  • Mais rápido, mas menos seguro
  • Exemplo: Filtro de pacotes básico

Firewall Stateful:

  • Rastreia o estado da conexão
  • Lembra dos pacotes anteriores
  • Mais seguro
  • Exemplo: Firewalls modernos
# iptables (stateful)
# Permitir conexões estabelecidas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Permitir novas conexões SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

# Descartar todo o resto
iptables -A INPUT -j DROP

Estados de Conexão:

  • NEW: Primeiro pacote da conexão
  • ESTABLISHED: Parte de uma conexão existente
  • RELATED: Relacionado a uma conexão existente
  • INVALID: Não corresponde a nenhum estado

Frequência: Comum Dificuldade: Média


SIEM

7. O que é um SIEM e por que é importante?

Resposta: SIEM (Security Information and Event Management) centraliza a coleta e análise de logs.

Funções Principais:

  1. Coleta de Logs: Reunir logs de múltiplas fontes
  2. Normalização: Padronizar formatos de log
  3. Correlação: Identificar padrões e relacionamentos
  4. Alertas: Notificar sobre atividade suspeita
  5. Relatórios: Conformidade e forense
Loading diagram...

Casos de Uso:

  • Detectar ataques de força bruta
  • Identificar exfiltração de dados
  • Monitorar acesso privilegiado
  • Relatórios de conformidade (PCI-DSS, HIPAA)

Ferramentas SIEM Populares:

  • Splunk
  • ELK Stack (Elasticsearch, Logstash, Kibana)
  • IBM QRadar
  • ArcSight

Frequência: Comum Dificuldade: Média


8. Qual é a diferença entre IDS e IPS?

Resposta: IDS (Intrusion Detection System) e IPS (Intrusion Prevention System) monitoram o tráfego de rede em busca de ameaças.

Diferenças Chave:

CaracterísticaIDSIPS
AçãoDetecta e alertaDetecta e bloqueia
PosicionamentoFora de banda (passivo)Inline (ativo)
ImpactoSem interrupção do tráfegoPode bloquear tráfego legítimo
RespostaManualAutomática
Falsos PositivosMenos críticoMais crítico

Implantação de IDS:

Loading diagram...

Implantação de IPS:

Loading diagram...

Configuração do Snort (IDS/IPS):

# Instalar Snort
sudo apt install snort

# Configurar rede
sudo vi /etc/snort/snort.conf
# Definir HOME_NET
ipvar HOME_NET 192.168.1.0/24
ipvar EXTERNAL_NET !$HOME_NET

# Executar em modo IDS
sudo snort -A console -q -c /etc/snort/snort.conf -i eth0

# Executar em modo IPS (inline)
sudo snort -Q -c /etc/snort/snort.conf -i eth0

Regras do Snort:

# Sintaxe da regra
# action protocol src_ip src_port -> dst_ip dst_port (options)

# Detectar injeção SQL
alert tcp any any -> $HOME_NET 80 (msg:"Tentativa de Injeção SQL"; \
    content:"UNION SELECT"; nocase; sid:1000001; rev:1;)

# Detectar port scan
alert tcp any any -> $HOME_NET any (msg:"Port Scan Detectado"; \
    flags:S; threshold:type both, track by_src, count 20, seconds 60; \
    sid:1000002; rev:1;)

# Detectar força bruta SSH
alert tcp any any -> $HOME_NET 22 (msg:"Força Bruta SSH"; \
    flags:S; threshold:type both, track by_src, count 5, seconds 60; \
    sid:1000003; rev:1;)

# Bloquear IP malicioso (modo IPS)
drop tcp 203.0.113.50 any -> $HOME_NET any (msg:"IP Malicioso Bloqueado"; \
    sid:1000004; rev:1;)

Suricata (Alternativa Moderna):

# Instalar Suricata
sudo apt install suricata

# Atualizar regras
sudo suricata-update

# Executar Suricata
sudo suricata -c /etc/suricata/suricata.yaml -i eth0

# Visualizar alertas
sudo tail -f /var/log/suricata/fast.log

Análise de Alertas:

# Analisar alertas do Snort
import re
from collections import Counter

def analyze_snort_alerts(log_file):
    alerts = []
    
    with open(log_file, 'r') as f:
        for line in f:
            # Analisar alerta
            match = re.search(r'\[\*\*\] \[(\d+):(\d+):(\d+)\] (.+?) \[\*\*\]', line)
            if match:
                alerts.append({
                    'sid': match.group(1),
                    'message': match.group(4),
                    'line': line
                })
    
    # Principais alertas
    alert_counts = Counter([a['message'] for a in alerts])
    print("Top 10 Alertas:")
    for alert, count in alert_counts.most_common(10):
        print(f"{count:5d} - {alert}")
    
    return alerts

# Uso
alerts = analyze_snort_alerts('/var/log/snort/alert')

Assinaturas de Ataque Comuns:

# Injeção SQL
content:"' OR 1=1--";
content:"UNION SELECT";

# XSS
content:"<script>";
content:"javascript:";

# Injeção de Comando
content:";cat /etc/passwd";
content:"|whoami";

# Directory Traversal
content:"../../../";

# Shellshock
content:"() { :; };";

Melhores Práticas:

  • Atualizar assinaturas regularmente
  • Ajustar regras para reduzir falsos positivos
  • Monitorar IPS para tráfego legítimo bloqueado
  • Integrar com SIEM para correlação
  • Testar em modo IDS antes de habilitar o IPS

Frequência: Comum Dificuldade: Média


Melhores Práticas de Segurança

9. Como você protege senhas?

Resposta: Segurança de senha em várias camadas:

1. Hashing (não criptografia):

import hashlib
import os

def hash_password(password):
    # Gerar salt
    salt = os.urandom(32)
    
    # Hashear senha com salt
    key = hashlib.pbkdf2_hmac(
        'sha256',
        password.encode('utf-8'),
        salt,
        100000  # iterações
    )
    
    # Armazenar salt + hash
    return salt + key

def verify_password(stored_password, provided_password):
    salt = stored_password[:32]
    stored_key = stored_password[32:]
    
    key = hashlib.pbkdf2_hmac(
        'sha256',
        provided_password.encode('utf-8'),
        salt,
        100000
    )
    
    return key == stored_key

2. Política de Senhas:

  • Comprimento mínimo (12+ caracteres)
  • Requisitos de complexidade
  • Histórico de senhas
  • Expiração (controverso)

3. Segurança Adicional:

  • Autenticação multifator (MFA)
  • Bloqueio de conta após tentativas falhas
  • Medidor de força da senha
  • Detecção de violação (API Have I Been Pwned)

Nunca:

  • Armazenar senhas em texto plano
  • Usar hashing fraco (MD5, SHA1)
  • Hashear sem salt

Frequência: Muito Comum Dificuldade: Média


Resposta a Incidentes

10. Quais são as fases da resposta a incidentes?

Resposta: Ciclo de Vida da Resposta a Incidentes do NIST:

1. Preparação:

  • Desenvolver plano IR
  • Treinar equipe
  • Configurar ferramentas e monitoramento

2. Detecção e Análise:

  • Identificar incidentes
  • Analisar escopo e impacto
  • Priorizar resposta

3. Contenção:

  • Curto prazo: Isolar sistemas afetados
  • Longo prazo: Aplicar patches, reconstruir sistemas

4. Erradicação:

  • Remover malware
  • Fechar vulnerabilidades
  • Fortalecer defesas

5. Recuperação:

  • Restaurar sistemas
  • Monitorar por reinfecção
  • Retornar às operações normais

6. Pós-Incidente:

  • Documentar lições aprendidas
  • Atualizar procedimentos
  • Melhorar defesas
Loading diagram...

Frequência: Comum Dificuldade: Média


Conclusão

Preparar-se para uma entrevista de engenheiro de segurança júnior requer a compreensão dos fundamentos de segurança e habilidades práticas. Foque em:

  1. Fundamentos: Tríade CIA, princípios de segurança
  2. OWASP: Vulnerabilidades web comuns
  3. Gerenciamento de Vulnerabilidades: Escaneamento, patching, priorização
  4. Criptografia: Criptografia, hashing, certificados
  5. SSL/TLS: Gerenciamento de certificados, configurações incorretas comuns
  6. Ferramentas de Defesa: Firewalls, SIEM, IDS/IPS
  7. Melhores Práticas: Codificação segura, segurança de senhas
  8. Resposta a Incidentes: Detecção, contenção, recuperação

Mantenha-se atualizado com notícias de segurança, pratique em laboratórios e busque certificações (Security+, CEH). Boa sorte!

Newsletter subscription

Dicas de carreira semanais que realmente funcionam

Receba as últimas ideias diretamente na sua caixa de entrada

Decorative doodle

Sua Próxima Entrevista Está a Apenas um Currículo de Distância

Crie um currículo profissional e otimizado em minutos. Não são necessárias habilidades de design—apenas resultados comprovados.

Criar meu currículo

Compartilhar esta publicação

Faça Seus 6 Segundos Contarem

Os recrutadores escaneiam currículos por uma média de apenas 6 a 7 segundos. Nossos modelos comprovados são projetados para capturar atenção instantaneamente e mantê-los lendo.