[pt-BR🇧🇷] Open Source Friday Brasil comJuliana Fajardini Reichow
By GitHub
Key Concepts
- Suricata: Motor de monitoramento e segurança de redes de código aberto.
- OISF (Open Information Security Foundation): Fundação mantenedora do Suricata, garantindo que permaneça de código aberto.
- IDS (Intrusion Detection System): Monitoramento passivo de redes.
- IPS (Intrusion Prevention System): Monitoramento ativo de redes com capacidade de bloquear tráfego.
- Outreit: Iniciativa para incentivar pessoas sub-representadas na área de software livre.
- Big Open Source Sibling (BOSS): Iniciativa brasileira similar à Outreit, focada em mentoria.
- Modelo OSI (Sete Camadas): Modelo conceitual que descreve as funções de um sistema de rede em sete camadas.
- EV JSON: Principal formato de log do Suricata, baseado em JSON.
- Suricata Verify: Suíte de testes de integração do Suricata.
- Redmine: Sistema de gerenciamento de projetos usado pelo Suricata para rastrear issues e contribuições.
- Community Tickets: Issues no Redmine especificamente designadas para a comunidade contribuir.
- Good First Issue: Rótulo para tarefas mais fáceis e condensadas para iniciantes.
Quem é Juliana?
Juliana é uma pessoa que gosta de se mexer, pedalar, caminhar, comer, compartilhar coisas, artesanato e tem uma coleção de bichos de pelúcia. Ela gosta de coisas não convencionais, como óculos e cabelos de cores diferentes, e de viajar. Morou em Portugal durante a pandemia. Profissionalmente, passou por várias áreas antes de se encontrar na área de tecnologia, incluindo letras, psicologia, futebol de robôs, inovação em startups, revisão e tradução. Atualmente, trabalha no time core da OISF, desenvolvendo o Suricata.
Outreit e a Trajetória de Juliana
Juliana descreve a Outreit como uma iniciativa da Freedom Software Foundation para incentivar pessoas sub-representadas no software livre. O programa oferece um estágio de 3 meses com mentoria e bolsa. A seleção envolve uma etapa de elegibilidade e uma fase de contribuição, onde os candidatos escolhem projetos para contribuir. Juliana escolheu a Suricata após uma experiência frustrante com a Mozilla. Atualmente, ela coordena a participação da Suricata na Outreit e atua como mentora.
Suricata: Visão Geral e Aplicações
O Suricata é um motor para monitoramento e segurança de redes, com as primeiras linhas de código datando de 2008. Ele é usado para detectar atividades suspeitas, prevenir ataques, gerar dados para análise de tráfego malicioso e análise forense, e gerar estatísticas sobre o perfil da rede.
- Modos de Funcionamento:
- Monitoramento Passivo (IDS): Observa o tráfego sem interferir.
- Monitoramento Ativo (IPS): Pode bloquear ou rejeitar tráfego.
- Aplicações:
- Utilizado por organizações grandes e pequenas, como a RNP no Brasil.
- Usado na nuvem (AWS), embarcado em roteadores (PF sense, Open Sense) e em redes domésticas (Raspberry Pi).
- Utilizado por agências de segurança nacional, como a da França.
- Linguagens de Programação: C, Rust e Python (para ferramentas auxiliares, com planos de migrar para Rust).
- Características: Sem interface gráfica, focado em testes rigorosos.
Modelo OSI e Protocolos de Rede
Juliana explica o modelo OSI de sete camadas para contextualizar o trabalho do Suricata. O Suricata monitora do IP para cima (camadas 3 a 7), o que exige que os desenvolvedores tenham algum entendimento de protocolos como TCP, UDP, HTTP, HTTPS, SMTP, POP3, entre outros.
Logs e Dados Gerados pelo Suricata
O Suricata gera logs em vários formatos, sendo o principal o EV JSON. Este formato é usado para logs de arquivo, transação, conexão, alertas e estatísticas. O JSON é usado porque pode ser pós-processado por diversas ferramentas como JQ, IVX e Elastic Search.
Demonstração Prática com Suricata Verify
Juliana demonstra o uso do Suricata Verify, a suíte de testes de integração do Suricata. Ela explica como os testes incluem capturas de tráfego (pcaps), configurações mínimas, regras Suricata e o comportamento esperado. Ela mostra como executar os testes e analisar os logs gerados, incluindo eventos de flow, protocolos de aplicação (como Web Socket) e alertas.
Fluxo de Contribuição para o Suricata
Juliana detalha o processo de contribuição para o Suricata, enfatizando a importância da comunicação e do uso do Redmine para evitar esforço duplicado.
- Passos:
- Apresentar-se no fórum ou Discord.
- Olhar as issues marcadas como "community tickets" ou "good first issue".
- Cadastrar-se no Redmine e dar "claim" na issue.
- Clonar o repositório e seguir o estilo de codificação e de commits.
- Submeter um pull request (PR).
- Diferenciais do Suricata:
- Iteração por pull request: cada mudança requer um novo PR.
- Histórico linear: requer "squash" e "rebase" para manter o histórico limpo.
- Formas de Contribuição: Código, documentação, testes, tutoriais, vídeos, regras, exercícios de análise de malware.
Time e Comunidade Suricata
O time do Suricata é composto por 13 pessoas em 10 países, incluindo desenvolvedores, especialistas em qualidade e segurança, e a diretora executiva. Juliana e sua colega Shivane são frutos da Outreit. O fundador do Suricata, Victor, é da área de história. A comunidade é vital para o Suricata, fornecendo conhecimento sobre novas ameaças, escrevendo regras e sugerindo melhorias. A comunidade inclui analistas, escritores de regras, membros do consórcio e ex-estagiários.
Conclusão
O Suricata é um projeto de código aberto robusto e complexo, mantido por uma equipe diversificada e uma comunidade ativa. A Outreit desempenhou um papel crucial na trajetória de Juliana e na formação do time atual. Contribuir para o Suricata pode ser desafiador, mas a comunidade é receptiva e oferece suporte para iniciantes. A ferramenta é essencial para monitoramento e segurança de redes em diversos contextos, desde redes domésticas até grandes organizações e agências de segurança nacional.
Chat with this Video
AI-PoweredHi! I can answer questions about this video "[pt-BR🇧🇷] Open Source Friday Brasil comJuliana Fajardini Reichow". What would you like to know?