Wednesday, December 29, 2010

Preparação de equipes na área de Cybersecurity

Como sabemos, a área de Segurança da Informação é extremamente complexa e dinâmica e as novidades tanto no tocante a vetores de ataque quanto de diferentes técnicas de ataque e defesa surgem diariamente.

Por isto mesmo uma equipe responsável pela Resposta a Incidentes de Segurança, Forense Computacional ou "Cybersecurity" precisa estar composta de profissionais que possuem uma grande quantidade de habilidades e obviamente precisam estar em constante treinamento para se adaptarem a esta realidade.

Hoje tive uma ótima surpresa quando vi que o CERT e o Software Engineering Institute da Universidade Carnegie Mellon publicaram um documento fundamental para a preparação e o desenvolvimento contínuo de equipes de Cybersecurity, chamado "The CERT® Approach to Cybersecurity Workforce Development"

Logo na sua introdução, é feita uma colocação muito interessante a respeito de dois fatores fundamentais para que uma habilidade seja verdadeiramente efetiva nesta área: a proeficiência (experiência/conhecimento do assunto) e a relevância (utilidade para execução da função).

Algumas limitações dos treinamentos tradicionais em salas de aula são apresentadas, como a diferença entre a experiência vivida e o mundo real (quadro negro versus redes, softwares e usuários); o tempo (geralmente dias) gasto para aulas tradicionais (o que gera uma frequência inadequada de treinamento); a necessidade de deslocamento, e a óbvia demora do método tradicional em adaptar-se as novidades tecnológicas.

A nova abordagem sugerida pelo CERT para treinamento de profissionais ligados à Cybersecurity é dividida em quatro fases (que são brevemente apresentadas abaixo, mas são bem detalhadas no documento original)

  1. Desenvolvimento de Conhecimentos - onde os fundamentos e conceitos de tópicos específicos são abordados;
  2. Desenvolvimento de Habilidades (*) - como aplicar praticamente os conhecimentos / exercícios hands-on;
  3. Desenvolvimento de Experiência - adaptabilidade da aplicação das habilidades desenvolvidas em ambientes não familiares (mundo real);
  4. Avaliação - são propostas métricas para avaliar a evolução dos profissionais treinados e identificação de áreas que necessitam de melhoria continuada.

* Na seção de desenvolvimento de habilidades, existem colocações acerca da diferença entre usar ferramentas (e ter a vantagem da velocidade e a possibilidade de usar analistas menos treinados na tecnologia de mais baixo nível envolvida).

A conclusão apresentada é a seguinte (pg. 12): o melhor é ganhar eficiência executando tarefas que já são automatizadas adequadamente por ferramentas como o Autopsy, o Encase e o FTK (para ações como recuperação de arquivos deletados, carving, etc) e deixar a "escovação de bit" para atividades que as ferramentas não executam (reconstrução de um filesystem corrompido, por exemplo).

Uma pergunta que emerge naturalmente destas afirmações é: como diferenciar? Apenas com habilidade, conhecimento e experiência.. Por isto a Gestão Técnica ou ao menos o envolvimento - mesmo que apenas consultivo - de profissionais técnicos sêniores é fundamental na maioria das atividades ligadas à Cybersecurity.

O documento traz também um caso de estudo de treinamento contendo a experiência do CERT desde 2009 com um esquadrão de operações cibernéticas da USAF (força aérea norte-americana).

E para não ficar só na teoria, o CERT libera um acesso de demonstração ao sistema XNET, desenvolvido pela Carnegie Mellon (dica: via RDP é melhor..) - veja a captura (JPG): http://j.mp/h2gaJw e a rede do laboratório (JPG)

Neste sistema, times precisam executar várias tarefas relacionadas à Cybersecurity e são monitorados pelos instrutores, online. Existe um PDF contedo um WORKBOOK das atividades como Incident Detection & Reporting Challenge , Prioritizing Defense Measures
e Mitigation Tasks.

Seguem exemplos de exercícios práticos acessíveis via XNET:

Logging:
  • OSSEC HIDS Server
  • Remote Centralized Monitoring Server
  • OSSEC Agent on Linux hosts
  • OSSEC Agent on Windows hosts
  • SQL Server Event Log Auditing
Detection:
  • Configuring Arpwatch
  • Creating a DHCP Offer Packet Filter for tcpdump
  • Nagios Network Monitoring
  • Appendix – Configuring Nagios
  • NTOP Traffic Monitoring
  • Snort Rules
Hardening:
  • Securing the Domain with Security Templates and Group Policy
  • Bandwidth Throttling
  • Configuring IPTables as a Host Based Firewall on Linux Systems
  • ACL on Router for Data Exfiltration / IRC
  • Disable Directory Traversal
  • Disabling Telnet on Router
  • Drop Traffic from a Host
  • Endian Firewall SSH Access
  • Exchange Server Hardenin
  • Firewall Access Control
  • Hardening FTP Server
  • Install and Configure Reverse Proxy Using Pound
  • Linux Host System Hardening
Os ataques que precisam ser evitados/detectados incluem:
  • EasyFTP Remote Exploit
  • SQL Injection
  • WebSite Directory Transversal
  • Data Extrafiltration (TCP, UDP, ICMP)
  • WebSite Defacement
  • Infected User beaconing to an external IP
  • Insecure router using telnet
  • Infected user scanning internal IP space
  • Attack using xp_cmdshell stored procedure
Se interessou? Leia o documento na íntegra. Certamente este tipo de experiência pode auxiliar internamente na melhor preparação do seu time de Segurança/Resposta a Incidentes ou Forense Computacional.

3 comments:

  1. Uma equipe com membros de niveis diferentes, seniores com experiencia real em cybersecurity, APT e repassando os conhecimentos adquiridos ao longo do tempo para membros mais juniories que executem as tarefas mais repetitivas para se ambientarem com as mesmas seria o melhor. Nao adianta simplesmente saber como rodar ferramenta A ou B, eh preciso ter experiencia por exemplo do APT para saber que tipo de evidencia a ferramenta pode capturar, revelar que ajude no processo de investigacao.

    ReplyDelete
  2. Sandro,

    Falando em CyberSecurity, que na minha humilde opinião, é só outro nome para um desafio pré-existente, mas visto com os olhos dos GOVs e outras agências; em termos práticos, como elencar, por ordem de prioridade, o conhecimento a ser adquirido por um jovem recém-formado e sem experiência?

    Network Security: monitoramento, resposta a incidentes, forensics, network design, etc;
    Application Security: firewall de aplicação, revisão de código, hardening, etc;

    Sem falar em processos e conscientização... enfim, tirando eventos do SANS, acredita termos cursos de capacitação ou formação adequado no Brasil?

    Em relação aos métodos tradicionais, acredito estarmos bem atrasados. Com exceção de poucas instituições onde o investimento em EAD é alto (FGV, Insper e outros para poucos), essa metodologia não é bem vista por aqui.

    Pergunte, por exemplo, a um estudante - de SP, onde há cursos de pós em SI -, que realmente quer aprender (não somente pelo título), se ele prefere estar em sala de aula/lab ou se prefere aprender por meio do computador, em casa. Posso estar errado, mas acredito que a maioria optaria por aulas presenciais.

    Muita empresa por aí faz "oba-oba" com EAD, instala um Moodle e cobra a mensalidade. Não é bem assim...

    Desculpe pelo longo comentário, mas esta discussão merece páginas!

    Abraço e parabéns pelo post!

    Alexandre Teixeira

    ReplyDelete
  3. Grande Alexandre, antes de mais nada, obrigado pela ilustre visita ao blog! =)

    Com relação às suas perguntas, vou emitir minha opinião por aqui..

    I) Como elencar, por ordem de prioridade, o conhecimento a ser adquirido por um jovem recém-formado e sem experiência?

    Acredito que em primeiro lugar, é preciso saber que não se pode saber tudo. O ideal é se especializar em algo e ter um conhecimento "lateral" que se amplifica com a experiência..

    Depois de uma formação básica (formal ou não) Ir para o front. Trabalhar de estagiário, trainee ou júnior

    O problema maior é que os passos 1, 2, 3 citados no post acima normalmente não são seguidos, e na melhor das hipóteses o profissional salta do 1. (teoria/conhecimento) para o 3. (vida real) sem uma preparação prática adequada / (2. hands-on) que só existem em cursos lá fora..

    Uma abordagem possível é o mentoring técnico (não estou falando de gestão, mas de alguém experiente e disponível que dê dicas e caminhos para os novatos).. Costuma funcionar (parte do meu trabalho como CTO é fazer isto com nossa equipe técnica / 20 pessoas).

    II) Acredita termos cursos de capacitação ou formação adequado no Brasil?

    /dev/null. Mesmo lá fora os cursos bons são caros (ex. SANS) e a maioria dos EAD são "moodle like" como você falou.. O jeito é tomar coragem, aproveitar que é jovem e ir errando - até aprender =) ou torcer pra cair em uma equipe que faça "mentoring" ou seja lá como isto se chama.. =)

    um grande [ ] e obrigado pela contribuição!

    S.S.

    ReplyDelete