Blog

  • Aprenda a criar VPC, Peering e Transit Gateway na AWS

    Aprenda a criar VPC, Peering e Transit Gateway na AWS

    Aprenda a criar VPC, Peering e Transit Gateway na AWS

    Olá, caro leitor,

    Neste post, você vai aprender a implementar VPC, Peering e Transit Gateway na AWS. Este é um artigo repleto de conteúdo técnico, apresentado em um passo a passo detalhado, para que você possa aplicar na prática o que acontece na vida real.

    O que você vai ver no vídeo sobre AWS VPC:

    • Criação da VPC;
    • Criação de subnets privadas e públicas em três AZs diferentes para garantir alta disponibilidade;
    • Utilização do recurso Internet Gateway;
    • Implementação do VPC NAT Gateway;
    • Configuração das tabelas de roteamento;
    • Criação de instâncias EC2 para testes de comunicação.

    Caso de uso: Aplicações distribuídas com alta disponibilidade

    Imagine que sua empresa precisa hospedar uma aplicação web crítica, acessível globalmente e com alta disponibilidade. Para garantir que o serviço continue funcionando mesmo se uma zona de disponibilidade (AZ) falhar, é essencial distribuir os recursos entre várias AZs.

    Neste cenário, você pode:

    1. Criar uma VPC com múltiplas subnets privadas e públicas em três AZs diferentes;
    2. Utilizar um Internet Gateway para permitir a comunicação externa das instâncias;
    3. Implementar um NAT Gateway para que servidores internos possam acessar a internet sem ficarem expostos;
    4. Configurar corretamente as tabelas de roteamento para garantir a conectividade entre as subnets;
    5. Criar instâncias EC2 para rodar a aplicação e realizar testes de conectividade.

    Esse modelo garante maior resiliência para sua aplicação, evitando downtime causado por falhas em uma única zona de disponibilidade.

    Caso de uso: Peering entre VPCs

    No próximo vídeo, o objetivo é demonstrar como criar uma conexão entre duas VPCs na AWS para permitir a comunicação entre instâncias EC2 de redes diferentes.

    Neste vídeo, mostramos:

    • Requisição de Peering para a VPC de destino;
    • Aceitação da requisição na VPC de destino;
    • Observação do peering criado e ativo (UP);
    • Configuração das rotas na tabela de roteamento;
    • Testes iniciais sem sucesso;
    • Liberação do ICMP no Security Group das EC2;
    • Novos testes e comunicação estabelecida com sucesso.

    Exemplo real: Conectando sistemas internos entre diferentes unidades de negócio

    Suponha que sua empresa tenha dois departamentos distintos, cada um com sua própria infraestrutura na AWS, utilizando VPCs separadas. No entanto, os sistemas precisam se comunicar para acessar APIs internas, bancos de dados ou serviços compartilhados.

    Esse modelo é útil quando empresas querem manter separação lógica entre ambientes, mas ainda precisam que alguns serviços internos possam se comunicar.

    Caso de uso: Transit Gateway

    No vídeo abaixo, trabalhamos com Transit Gateway. O conteúdo é extremamente inédito e foi desenvolvido para trazer um cenário real para minha audiência.

    O que você vai aprender:

    • Criar o Transit Gateway;
    • Anexar o Transit Gateway às suas VPCs;
    • Configurar a tabela de roteamento;
    • Migrar uma VPN site-to-site funcional com pouco esforço;
    • Configurar o roteamento para essa VPN;
    • Realizar testes de comunicação e solucionar problemas com seu ambiente local.

    Exemplo real: Integração de múltiplas redes e VPN corporativa

    Imagine que sua empresa possui múltiplos ambientes na AWS, incluindo desenvolvimento, produção e infraestrutura para parceiros ou fornecedores, cada um isolado em uma VPC separada. Além disso, a empresa tem um data center on-premises e precisa conectar todas essas redes de forma centralizada e segura.

    Para resolver isso, podemos utilizar o AWS Transit Gateway, que permite conectar várias VPCs e uma VPN site-to-site com um esforço mínimo.

    Esse cenário é comum em grandes empresas que precisam integrar diferentes ambientes de nuvem e redes locais sem criar diversas conexões ponto a ponto, tornando a administração da rede mais eficiente e escalável.

    Demorei para escrever este post, mas ele finalmente saiu! Ele consolida o conteúdo já publicado no YouTube, estruturando as informações para quem está estudando sobre o tema. Sou suspeito para falar, mas acredito que o material aqui apresentado é muito rico em informações e garanto que você sairá daqui com muito mais conhecimento do que quando chegou.

    Por hoje é isso. Um forte abraço e até a próxima!

    [];

  • Por que Databricks e onde implementar?

    Por que Databricks e onde implementar?

    Por que Databricks e onde implementar?

    Databricks é uma plataforma de análise de big data que fornece um ambiente unificado de análise e colaboração para cientistas de dados, engenheiros e analistas de negócios. Ela oferece soluções únicas nas três principais nuvens: AWS, Azure e GCP, com vantagens específicas dependendo das necessidades, vamos falar mais sobre essas possibilidades neste post.

    Principais características do Databricks:

     

    Data Lakehouse:

    O Databricks combina as melhores funcionalidades de data lakes e data warehouses, formando o conceito de Data Lakehouse. Isso permite armazenar dados estruturados e não estruturados em uma única plataforma, com suporte para análises em tempo real e machine learning. Isso é especialmente útil para grandes volumes de dados, simplificando o acesso e o gerenciamento sem a necessidade de sistemas separados.

    Processamento em tempo real e Batch:

    A plataforma permite processar dados tanto em tempo real quanto em lote (batch processing). Com ferramentas como Spark Structured Streaming, o Databricks facilita a construção de pipelines de dados para processamento contínuo e análise de dados em tempo real.

    Integração:

    Databricks inclui o MLflow, uma ferramenta para gerenciamento do ciclo de vida de machine learning que facilita o rastreamento de experimentos, versionamento de modelos e implantação de ML. Isso permite que equipes de dados desenvolvam, treinem, e implantem modelos de forma eficiente e colaborativa.

    Interoperabilidade:

    A plataforma se integra facilmente com as principais nuvens públicas, como AWS, Azure e Google Cloud, e oferece conectores nativos para serviços como Amazon S3, Azure Data Lake e Google BigQuery. Também possui conectores para diversas ferramentas de ETL, BI e outras ferramentas de dados, facilitando a ingestão e o uso dos dados de diferentes fontes.

    Colaboração:

    Databricks facilita a colaboração entre equipes com notebooks interativos e compartilháveis, onde cientistas e engenheiros de dados podem escrever e executar código em várias linguagens, como Python, SQL, R e Scala, diretamente na plataforma. Isso ajuda na documentação e reprodução de experimentos e análises, além de tornar a colaboração mais fluida.

    Segurança e governança:

    Databricks oferece segurança de nível empresarial, incluindo controle de acesso baseado em funções (RBAC), auditorias, criptografia de dados e suporte para conformidade com regulamentações como GDPR, HIPAA, e outras normas de segurança. Além disso, o Databricks Unity Catalog ajuda na catalogação e governança de dados, permitindo o gerenciamento centralizado de metadados e políticas de acesso.

    Alto desempenho e escalabilidade:

    Baseado no Apache Spark, o Databricks é otimizado para processamento paralelo em larga escala, o que o torna ideal para grandes volumes de dados e cargas de trabalho de alta demanda. Com recursos de escalabilidade elástica, é possível aumentar ou reduzir o número de recursos com base na demanda de processamento.

    Simplificação operacional:

    A plataforma Databricks gerencia automaticamente a configuração e manutenção de clusters, permitindo que os usuários foquem mais nas análises e menos na gestão da infraestrutura. Isso reduz a complexidade operacional, especialmente em ambientes de produção.

     

    Voltamos a perguntar, Por que Databricks?

    Bom, agora eu sei das capacidades do Databricks, por que eu deveria escolher o Databricks aos invés das soluções tradicionais ou melhor, escolher dentre as centenas se não milhares de opções disponíveis?

    A imagem mostra uma comparação visual entre duas arquiteturas para manipulação de dados e análise em grandes volumes, sendo a primeira mais fragmentada em várias ferramentas e a segunda centralizada no Databricks como uma solução unificada.

     

    Análise dos Componentes:

     

    Arquitetura Fragmentada (à esquerda):

      • Envolve uma variedade de ferramentas diferentes para cada função de dados, desde IA (com Jupyter e Azure Machine Learning) até ingestão de dados (Fivetran e Hadoop HDFS), e gerenciamento de dados (Collibra).
      • Cada especialista (cientista de dados, engenheiro de machine learning, analista, engenheiro de dados e gerente de dados) usa ferramentas específicas para realizar suas tarefas.
      • O uso de diferentes ferramentas pode resultar em desafios de integração, além de possíveis problemas de compatibilidade e complexidade operacional.

    Arquitetura Unificada com Databricks (à direita):

      • Usa o Databricks como uma solução única que cobre as funcionalidades principais, incluindo o Data Lakehouse para armazenamento e análise em tempo real, streaming e gerenciamento de dados.
      • Facilita as operações para cada função (cientista de dados, engenheiro de ML, analista e engenheiro de dados) sem a necessidade de integração de várias ferramentas.
      • A solução unificada simplifica a configuração, a operação e a segurança, pois centraliza a infraestrutura em um único ambiente Databricks.

     

    E onde podemos utilizar o Databricks e tirar proveito das suas maiores capacidades?

     

    Aqui está um comparativo dos prós e contras do Databricks rodando em AWS, Azure e GCP. As informações destacam os principais diferenciais e desafios de cada plataforma para facilitar a escolha de acordo com as necessidades específicas da sua empresa.

    Databricks na AWS:

    • Plataforma em Nuvem: Combina o melhor dos data lakes e data warehouses, fortalecendo a engenharia de dados, machine learning e ciência de dados colaborativa.
    • Integração Profunda: Conexão estreita com serviços AWS, como S3, Redshift e Kinesis, simplificando a movimentação de dados e os fluxos de trabalho de análise.
    • Ecossistema Sólido: Ecossistema maduro de parceiros com soluções específicas para diversos setores e casos de uso.
    • Alcance Global: Maior disponibilidade em regiões AWS, oferecendo mais opções de implantação.
    • Potencial de Custos Elevados: Pode ser um pouco mais caro que outras nuvens, especialmente para uso a longo prazo.

    Azure Databricks:

    • Serviço Gerenciado: Totalmente gerenciado pela Azure, reduzindo a sobrecarga operacional.
    • Serviço Nativo: Desenvolvido em conjunto com a Microsoft, com integração perfeita com serviços Azure como Azure Data Lake Storage e Azure Synapse Analytics.
    • Foco Empresarial: Recursos robustos de segurança e conformidade, ideal para setores altamente regulamentados.
    • Custo-efetivo: Opções de preços competitivas para compromissos de longo prazo e uso escalável.
    • Disponibilidade Regional Limitada: Menos regiões disponíveis em comparação com a AWS, podendo impactar a latência ou a acessibilidade.
    • Segurança: Segurança de nível empresarial com a infraestrutura robusta da Azure.

    Databricks no GCP:

    • Foco em IA e ML: Integração profunda com o Google Cloud AI Platform, ideal para cargas de trabalho de aprendizado de máquina e ciência de dados em larga escala.
    • Potência em Análise de Dados: Integração forte com o BigQuery para análises SQL de alto desempenho.
    • Flexibilidade de Nuvem Aberta: Baseado na plataforma aberta e segura do Google Cloud, garantindo portabilidade e independência de fornecedor.
    • Menores Custos Iniciais: Custos iniciais mais baixos em comparação com a AWS e Azure, atraente para implantações menores.

     

    Além da Escolha da Plataforma:

    Considere os seguintes fatores além da plataforma para escolher a melhor solução Databricks:

    • Investimento em Nuvem Existente: Se já há investimentos em uma nuvem específica, manter-se nela pode facilitar integração e otimização de custos.
    • Casos de Uso Específicos: Certos casos de uso podem se beneficiar de recursos ou integrações específicas oferecidas por uma plataforma.
    • Expertise Técnica: Escolha a plataforma que sua equipe domina para facilitar implementação e manutenção.

    Opções de Implantação:

    • Serviço Gerenciado: Fácil, rápido e com pouca sobrecarga. Databricks gerencia a configuração, manutenção e atualizações da infraestrutura. Ideal para organizações que buscam uma experiência simplificada.
    • Traga Sua Própria Nuvem (BYOC): Maior controle e personalização para necessidades específicas de segurança, permitindo a provisão do Databricks na infraestrutura existente dentro de uma nuvem privada virtual (VPC).

    Armazenamento de Dados:

    • Armazenamento de Objetos na Nuvem: Aproveite S3, Azure Data Lake Storage ou Google Cloud Storage para armazenamento escalável e econômico. Os dados permanecem na conta de nuvem para governança e propriedade.
    • Databricks File System (DBFS): Sistema de arquivos otimizado em memória para acesso rápido aos dados em clusters do Databricks. Ideal para armazenamento temporário de dados ou cache durante o processamento.

    Rede:

    • Endpoints Públicos: Acesse workspaces do Databricks por conexões públicas.
    • Endpoints Privados: Use links privados (AWS PrivateLink, Azure Private Link, GCP Private Service Connect) para acesso seguro dentro da sua VPC, aumentando a segurança e o controle sobre dados sensíveis.

     

    Era isso que eu tinha para hoje, espero que possa ajudar em sua jornada de dados para nuvem com Databricks, veja mais posts aqui.

     

    [];

  • Como começar com DevSecOps

    Como começar com DevSecOps

    Como começar com DevSecOps.

     

    Seja bem-vindo ao nosso blog! Como começar com DevSecOps? Nos últimos posts, abordamos tópicos fundamentais como “Introdução ao DevSecOps” e “Arquitetura DevSecOps e Ferramentas“. Discutimos em detalhes o que é DevSecOps e como essa abordagem pode auxiliar no desenvolvimento de software com alta qualidade e segurança durante todo o ciclo de vida. Além disso, oferecemos uma visão geral sobre as possíveis arquiteturas e ferramentas para implementação eficaz do DevSecOps.

    Vamos lá, o Pablo Marçal pediu para eu começar com o “COMO“, aqui estou eu tentando trazer insigths de onde e COMO começar sua jornada em DevSecOps, nada do que estou escrevendo aqui é “LEI”, é apenas um caminho para que possa se obter um bom conhecimento.

     

    O que é SDL? SDL (Security Development Lifecycle).

     

    O SDL, ou Ciclo de Vida de Desenvolvimento de Segurança, é uma metodologia que integra práticas de segurança em cada fase do desenvolvimento de software. Seu principal objetivo é garantir que a segurança seja considerada desde o início do projeto até a sua conclusão. As principais características do SDL incluem:

    1. Treinamento em Segurança: Nós capacitamos os desenvolvedores e equipes com conhecimento sobre práticas seguras de codificação.
    2. Definição de Requisitos de Segurança: Estabelecemos critérios de segurança que o software deve atender.
    3. Design Seguro: Incorporamos padrões de design que mitigam riscos de segurança.
    4. Implementação Segura: Utilizamos práticas seguras de codificação para reduzir vulnerabilidades.
    5. Testes de Segurança: Realizamos testes específicos para identificar e corrigir falhas de segurança.
    6. Resposta a Incidentes: Preparamos planos de ação para lidar com potenciais incidentes de segurança após a implementação do software.

    Com o SDL, garantimos que a segurança seja uma prioridade durante todo o ciclo de vida do desenvolvimento de software. Dessa forma, entregamos produtos mais robustos e protegidos contra ameaças.

    A Microsoft criou o Security Development Lifecycle (SDL). Em 2002, após enfrentar várias falhas de segurança em seus produtos, a empresa decidiu reavaliar e aprimorar suas práticas de desenvolvimento de software. Assim, começou o desenvolvimento do SDL. Em 2004, a Microsoft formalmente introduziu o SDL como um processo de engenharia de segurança integrado ao desenvolvimento de software. Com o SDL, a empresa buscava reduzir vulnerabilidades de segurança, melhorar a segurança do software e garantir que a segurança fosse considerada em todas as fases do desenvolvimento.

     

     

    Por que é importante conhecer OWASP Top 10?

     

    O OWASP Top 10 é uma lista das dez principais vulnerabilidades de segurança em aplicativos web, criada pela Open Web Application Security Project (OWASP). Essa lista é amplamente reconhecida e utilizada como um padrão de referência para desenvolvedores e equipes de segurança na identificação e mitigação de riscos em aplicações web. Vamos explorar as vulnerabilidades mais recentes incluídas no OWASP Top 10:

    1. Injeção: Ataques de injeção, como SQL, NoSQL, OS e LDAP, ocorrem quando dados não confiáveis são enviados para um interpretador como parte de um comando ou consulta.

    2. Falhas de Autenticação: Essas vulnerabilidades permitem que atacantes assumam a identidade de outros usuários, temporariamente ou permanentemente.

    3. Exposição de Dados Sensíveis: Essas falhas resultam na exposição de dados sensíveis a usuários não autorizados.

    4. Entidades Externas XML (XXE): Ataques contra processadores XML que avaliam referências a entidades externas dentro de documentos XML.

    5. Quebra de Controle de Acesso: Essas falhas permitem que usuários não autorizados acessem dados ou funcionalidades além de seus privilégios permitidos.

    6. Configurações Incorretas de Segurança: Problemas que resultam de configurações incorretas ou não seguras em servidores, bancos de dados ou aplicações.

    7. Cross-Site Scripting (XSS): Essas vulnerabilidades permitem que atacantes injetem scripts maliciosos em páginas vistas por outros usuários.

    8. Desserialização Insegura: Problemas que ocorrem quando dados não confiáveis são usados para desserializar objetos.

    9. Uso de Componentes com Vulnerabilidades Conhecidas: Utilização de bibliotecas, frameworks e outros componentes com falhas conhecidas.

    10. Registro e Monitoramento Insuficientes: Falta de registro adequado e monitoramento de atividades, dificultando a detecção de ataques e respostas rápidas a incidentes.


    Essas vulnerabilidades representam os riscos mais críticos e comuns encontrados em aplicativos web. Compreender e mitigar esses riscos é essencial para o desenvolvimento de aplicativos seguros e robustos. Ao seguir as diretrizes do OWASP Top 10, você pode melhorar significativamente a segurança de suas aplicações e proteger melhor os dados dos usuários.

     

    Se APIs são tendência para 2024, preciso conhecer OWASP API Security Top 10.

     

     

    A lista OWASP API Security Top 10 identifica as principais vulnerabilidades de segurança encontradas em APIs (Interfaces de Programação de Aplicações). Criada pela Open Web Application Security Project (OWASP), essa lista é um guia essencial para desenvolvedores e equipes de segurança. Vamos explorar as vulnerabilidades mais recentes incluídas no OWASP API Security Top 10:

    1. Autorização Quebrada em Nível de Objeto: Essa vulnerabilidade ocorre quando as APIs não verificam corretamente se um usuário está autorizado a acessar um objeto específico. Como resultado, usuários mal-intencionados podem acessar dados de outros usuários.

    2. Autenticação Quebrada: Falhas na implementação de autenticação permitem que atacantes comprometam tokens de autenticação ou explorem outros erros de implementação para assumir a identidade de outros usuários, temporariamente ou permanentemente.

    3. Exposição Excessiva de Dados: APIs que retornam mais dados do que o necessário expõem informações sensíveis. Portanto, os desenvolvedores devem filtrar os dados e expor apenas o que é necessário.

    4. Falta de Recursos e Limitação de Taxa: A ausência de limites no número de chamadas que um cliente pode fazer à API pode levar ao esgotamento dos recursos do servidor, facilitando ataques de negação de serviço (DoS).

    5. Autorização Quebrada em Nível de Função: Falhas que permitem que usuários sem privilégios adequados acessem funcionalidades administrativas ou de outros níveis de acesso.

    6. Atribuição em Massa: Quando desenvolvedores expõem todos os parâmetros de objeto sem filtrar campos que não devem ser modificados pelo cliente, podem ocorrer ataques de atribuição em massa.

    7. Configuração de Segurança Incorreta: Configurações incorretas ou inseguras em servidores, serviços ou configurações padrão podem ser exploradas para obter acesso não autorizado ou expor dados.

    8. Injeção: Ataques de injeção, como SQL, NoSQL e LDAP, ocorrem quando dados não confiáveis são enviados para um interpretador como parte de um comando ou consulta. Isso permite que atacantes executem comandos arbitrários.

    9. Gerenciamento Impróprio de Ativos: A falta de gerenciamento adequado de inventário de APIs, incluindo versões antigas e não documentadas, pode expor a aplicação a riscos.

    10. Registro e Monitoramento Insuficientes: A falta de registro adequado e monitoramento das atividades das APIs dificulta a detecção e resposta a ataques, permitindo que invasões permaneçam sem ser detectadas por longos períodos.


    Compreender e mitigar essas vulnerabilidades é crucial para garantir a segurança das APIs. Ao seguir as diretrizes do OWASP API Security Top 10, você fortalece significativamente a segurança de suas interfaces de programação de aplicações e protege os dados dos usuários de maneira mais eficaz.

     

    Trabalho com Dados, Inteligência Artificial ou Segurança da informação?

     

    É importante que você conheça OWASP Top 10 para Modelos de Linguagem de Grande Escala (LLM).

     

    Os Modelos de Linguagem de Grande Escala (LLMs) apresentam novas e únicas vulnerabilidades de segurança. A OWASP, reconhecida por suas diretrizes de segurança para aplicações web, também propôs uma lista focada na segurança dos LLMs. Vamos explorar as vulnerabilidades mais recentes incluídas no OWASP Top 10 para LLMs:

    1. Injeção de Prompt: A injeção de prompt ocorre quando um atacante manipula a entrada para alterar o comportamento do LLM, resultando em saídas indesejadas ou potencialmente prejudiciais.

    2. Exposição de Dados Sensíveis: LLMs treinados com dados confidenciais podem inadvertidamente expor essas informações quando solicitados. É crucial filtrar e gerenciar adequadamente os dados usados no treinamento.

    3. Alucinações: LLMs podem gerar informações falsas ou enganosas que parecem plausíveis. Garantir a precisão das respostas é um desafio contínuo.

    4. Resposta Tendenciosa: Modelos podem refletir preconceitos presentes nos dados de treinamento, resultando em respostas discriminatórias ou injustas. A mitigação desses vieses é essencial.

    5. Falha na Autenticação e Autorização: Quando LLMs são integrados a sistemas críticos, falhas na autenticação e autorização podem permitir acesso não autorizado a dados sensíveis ou funcionalidades importantes.

    6. Falta de Limitação de Taxa e Abuso de Recursos: Sem limitação adequada, LLMs podem ser explorados por atacantes para esgotar recursos do sistema, causando degradação de serviços ou interrupções.

    7. Configuração de Segurança Incorreta: Configurações inadequadas ou inseguras no ambiente onde o LLM opera podem ser exploradas por atacantes para comprometer o sistema.

    8. Manipulação de Entrada e Saída: Ataques que exploram a falta de validação e sanitização de entradas e saídas podem causar comportamentos indesejados ou comprometer a integridade do sistema.

    9. Desempenho e Confiabilidade: Vulnerabilidades que afetam o desempenho e a confiabilidade do LLM podem levar a respostas lentas, falhas ou comportamentos inconsistentes.

    10. Registro e Monitoramento Insuficientes: A falta de registro e monitoramento adequados dificulta a detecção de atividades maliciosas e a resposta a incidentes, permitindo que ataques passem despercebidos por longos períodos.


    Compreender e mitigar essas vulnerabilidades é crucial para garantir a segurança e a integridade dos LLMs. Ao seguir as diretrizes do OWASP Top 10 para LLMs, você pode fortalecer a segurança de seus modelos de linguagem e proteger melhor os dados e usuários.

     

     

    OWASP SAMM (Software Assurance Maturity Model)

     

    Nosso objetivo é fornecer uma maneira eficaz e mensurável para que você possa analisar e melhorar seu ciclo de vida de desenvolvimento seguro. O SAMM (Software Assurance Maturity Model) apoia todo o ciclo de vida do software e é independente de tecnologia e processos. Desenvolvemos o SAMM para ser evolutivo e orientado por riscos, pois não existe uma única receita que funcione para todas as organizações.

    Como o SAMM Funciona?

     

    1. Avaliação da Maturidade:

    • Você pode usar o SAMM para avaliar o nível atual de maturidade das suas práticas de segurança de software.
    • O modelo oferece uma estrutura clara para identificar áreas de melhoria.

    2. Planejamento de Melhoria:

    • Com base na avaliação, você pode planejar melhorias específicas para aumentar a maturidade da segurança em diferentes áreas.
    • O SAMM fornece orientações práticas sobre como evoluir de um nível de maturidade para outro.

    3. Implementação de Práticas Seguras:

    • O SAMM cobre todas as fases do ciclo de vida do software, desde o planejamento e design até a implementação e verificação.
    • Você pode integrar práticas de segurança em cada fase para garantir um desenvolvimento seguro.

    Evolução Contínua:

    • O SAMM é projetado para ser adaptável, permitindo que você ajuste suas práticas de segurança conforme novas ameaças surgem e sua organização evolui.
    • A abordagem orientada por riscos ajuda a focar nos aspectos mais críticos para a segurança do seu software.

    Benefícios do SAMM.

    • Independência de Tecnologia: Você pode aplicar o SAMM independentemente das tecnologias ou processos específicos que sua organização utiliza.
    • Flexibilidade e Adaptabilidade: O SAMM é evolutivo, permitindo ajustes contínuos e melhorias baseadas em riscos específicos.
    • Orientação Prática: O modelo fornece orientações práticas que você pode implementar diretamente em suas operações de desenvolvimento.
    • Medição e Melhoria: Você pode medir a eficácia das suas práticas de segurança e planejar melhorias contínuas para aumentar a maturidade.

    Por que Escolher o SAMM?

    O SAMM é uma ferramenta poderosa para qualquer organização que busca melhorar suas práticas de desenvolvimento seguro. Seja você uma pequena startup ou uma grande corporação, o SAMM oferece uma abordagem estruturada e orientada por riscos para garantir a segurança do software. Ao adotar o SAMM, você assegura que a segurança seja uma prioridade contínua e evolutiva no seu ciclo de vida de desenvolvimento de software.

     

     

    OWASP DSOMM (DevSecOps Maturity Model)

     

    De startups a corporações multinacionais, a indústria de desenvolvimento de software atualmente é dominada por frameworks ágeis, equipes de produto e estratégias DevOps. No entanto, durante a implementação, os aspectos de segurança muitas vezes são negligenciados ou não recebem a devida atenção. Frequentemente, os requisitos de segurança padrão do ambiente de produção não são aplicados ao pipeline de build no ambiente de integração contínua, especialmente com o uso de containers como o Docker. Como resultado, o registro do Docker frequentemente não é seguro, o que pode levar ao roubo de todo o código-fonte da empresa.

    O Papel do DevSecOps Maturity Model

    O DevSecOps Maturity Model, apresentado na nossa palestra, demonstra as medidas de segurança aplicadas ao usar estratégias DevOps e como essas medidas podem ser priorizadas. Com a ajuda das estratégias DevOps, também é possível melhorar a segurança. Por exemplo, cada componente, como bibliotecas de aplicativos e bibliotecas do sistema operacional em imagens Docker, pode ser testado para vulnerabilidades conhecidas.

    Melhorando a Segurança com DevSecOps

    Os atacantes são inteligentes e criativos, equipados com novas tecnologias e objetivos específicos. Sob a orientação do DevSecOps Maturity Model, você pode implementar princípios e medidas apropriadas que contrariam esses ataques. Algumas práticas recomendadas incluem:

    1. Testes de Vulnerabilidade:

    • Aplicação e Bibliotecas: Teste todas as bibliotecas de aplicação e sistema operacional para vulnerabilidades conhecidas. Ferramentas como Snyk e Clair podem ser integradas ao pipeline de CI/CD para realizar essas verificações automaticamente.

    2. Segurança do Registro Docker:

    • Acesso Restrito: Configure políticas de acesso restritas para o registro Docker, garantindo que apenas usuários autorizados possam acessar e modificar imagens.
    • Varredura de Imagens: Implemente a varredura automática de imagens para detectar e remediar vulnerabilidades antes da implantação.

    3. Automatização da Segurança:

    • Integração Contínua: Adicione verificações de segurança ao seu pipeline de integração contínua (CI). Ferramentas de análise estática (SAST) e análise dinâmica (DAST) ajudam a identificar vulnerabilidades no código durante o desenvolvimento.
    • Entrega Contínua: Garantir que todas as etapas da entrega contínua (CD) incluam verificações de conformidade e segurança para manter a integridade do código e da infraestrutura.

    4. Cultura de Segurança:

    • Educação e Treinamento: Proporcione treinamento contínuo em segurança para desenvolvedores, engenheiros de DevOps e equipes de operações. Uma cultura de segurança começa com a conscientização e o conhecimento.
    • Colaboração entre Equipes: Fomente a colaboração entre as equipes de desenvolvimento, segurança e operações para garantir que todos estejam alinhados nos objetivos de segurança.

     

     

    OWASP DevSecOps Guideline

     

    A OWASP DevSecOps Guideline explica como implementar um pipeline seguro, usar as melhores práticas e introduzir ferramentas que podem ajudar nesse processo. O projeto também promove a cultura de segurança shift-left em nosso processo de desenvolvimento. Esta iniciativa ajuda empresas de todos os tamanhos que possuem um pipeline de desenvolvimento, ou seja, um pipeline DevOps. Nosso objetivo é criar uma perspectiva de um pipeline DevOps seguro e, em seguida, melhorá-lo com base em nossos requisitos personalizados.

    Objetivo Ideal: Detecção Rápida de Problemas de Segurança

    Nosso objetivo principal é “detectar problemas de segurança (seja por design ou vulnerabilidade da aplicação) o mais rápido possível.”

    Implementando um Pipeline Seguro com a OWASP DevSecOps Guideline

    1. Integração de Ferramentas de Segurança

    Para começar, integramos ferramentas de segurança em cada estágio do pipeline de CI/CD. Estas ferramentas ajudam a identificar vulnerabilidades antes que elas cheguem à produção. Algumas ferramentas recomendadas incluem:

    • SAST (Static Application Security Testing): Ferramentas como SonarQube ou Checkmarx analisam o código-fonte para detectar vulnerabilidades durante a fase de desenvolvimento.
    • DAST (Dynamic Application Security Testing): Ferramentas como OWASP ZAP ou Burp Suite testam a aplicação em execução para encontrar vulnerabilidades.
    • SCA (Software Composition Analysis): Ferramentas como Dependabot ou Snyk verificam bibliotecas e dependências para vulnerabilidades conhecidas.

    2. Automatização de Verificações de Segurança

    Automatizar as verificações de segurança no pipeline de CI/CD é crucial. Isso garante que cada alteração de código seja analisada para problemas de segurança antes da integração. Aqui estão algumas práticas recomendadas:

    • Integração Contínua (CI): Configure pipelines que executam verificações de segurança automaticamente a cada commit.
    • Entrega Contínua (CD): Assegure-se de que as verificações de segurança sejam uma etapa obrigatória antes da implantação em produção.

    3. Promovendo a Cultura Shift-Left

    A cultura shift-left significa incorporar práticas de segurança desde o início do ciclo de desenvolvimento. Para promover essa cultura:

    • Educação e Treinamento: Proporcione treinamentos regulares para desenvolvedores e equipes de operações sobre práticas de segurança.
    • Revisões de Código: Realize revisões de código focadas em segurança regularmente, incentivando os desenvolvedores a identificar e corrigir vulnerabilidades.

    4. Monitoramento Contínuo e Feedback

    Implemente monitoramento contínuo para detectar e responder rapidamente a incidentes de segurança. Utilize ferramentas de logging e monitoramento para manter a visibilidade sobre a segurança da aplicação em produção.

    • Monitoramento de Logs: Ferramentas como ELK Stack (Elasticsearch, Logstash, Kibana) ajudam a monitorar logs e identificar padrões suspeitos.
    • Alertas e Notificações: Configure alertas automáticos para notificar a equipe de segurança sobre atividades suspeitas ou anomalias.

     

    Se eu tivesse começando hoje com DevSecOps: Um Guia Prático.

     

    Para começar a implementar DevSecOps de forma eficaz e evitar problemas com a equipe de desenvolvimento, é essencial seguir uma abordagem estruturada.

    1. Implementar SCA (Software Composition Analysis)

    Por que começar aqui? SCA é fácil de implementar e oferece benefícios imediatos ao identificar vulnerabilidades em bibliotecas e dependências de terceiros, comuns em muitos projetos.

    Ações práticas:

    • Integre Ferramentas SCA: Utilize ferramentas como Dependabot, Snyk ou OWASP Dependency-Check no pipeline de CI/CD.
    • Proporcione Treinamento Básico: Ensine os desenvolvedores a resolver vulnerabilidades nas dependências.

    2. Adotar SAST (Static Application Security Testing)

    Por que isso é essencial? SAST identifica vulnerabilidades no código-fonte sem precisar de execução. Assim, você pode detectar problemas de segurança antes da implantação.

    Ações práticas:

    • Configure Ferramentas SAST: Use ferramentas como SonarQube, Checkmarx ou Fortify.
    • Integre no CI/CD: Adicione a verificação SAST no pipeline de integração contínua para analisar cada commit.
    • Treine os Desenvolvedores: Ensine-os a interpretar os resultados e corrigir problemas.

    3. Implementar IaC Scanning (Scanning Terraform, HelmChart)

    Por que isso é importante? Com a infraestrutura como código (IaC), garantir que os arquivos de configuração estejam seguros é crucial para a segurança da infraestrutura.

    Ações práticas:

    • Utilize Ferramentas IaC: Ferramentas como Checkov, TFLint ou Kics ajudam a escanear arquivos IaC.
    • Automatize as Verificações: Adicione verificações de IaC no pipeline de CI/CD.
    • Crie Guias de Melhores Práticas: Distribua guias para escrever código IaC seguro.

    4. Introduzir DAST (Dynamic Application Security Testing)

    Por que agora? DAST testa a aplicação em execução e identifica vulnerabilidades que SAST ou SCA não detectam.

    Ações práticas:

    • Implemente Ferramentas DAST: Use ferramentas como OWASP ZAP, Burp Suite ou AppScan.
    • Configure Ambientes de Teste: Realize testes DAST em ambientes de teste para não afetar a produção.
    • Automatize os Testes: Adicione verificações DAST no pipeline de CI/CD.

    5. Realizar Infrastructure Scanning

    Por que isso é crucial? Garantir que a infraestrutura subjacente esteja segura é tão importante quanto a segurança do código.

    Ações práticas:

    • Utilize Ferramentas de Varredura: Ferramentas como Nessus, OpenVAS ou Qualys escaneiam servidores e redes.
    • Automatize Relatórios: Gere relatórios automaticamente e execute ações corretivas baseadas nas vulnerabilidades encontradas.

    6. Fazer Compliance Check

    Por que nesta fase? Após garantir a segurança da aplicação e da infraestrutura, verificar a conformidade com normas é o próximo passo lógico.

    Ações práticas:

    • Use Ferramentas de Compliance: Ferramentas como Chef InSpec, OpenSCAP ou AWS Config ajudam na verificação de conformidade.
    • Integre Verificações de Compliance: Adicione estas verificações no pipeline de CI/CD.

    7. Implementar IAST (Interactive Application Security Testing)

    Por que por último? IAST oferece uma análise contínua e detalhada durante a execução da aplicação. No entanto, pode ser mais complexo e requer ajustes finos.

    Ações práticas:

    • Utilize Ferramentas IAST: Ferramentas como Contrast Security, Hdiv Security ou Veracode são úteis.
    • Teste em Ambiente Controlado: Ajuste as configurações para minimizar interrupções.
    • Proporcione Treinamento Avançado: Ensine desenvolvedores e engenheiros de segurança a usar e interpretar os resultados do IAST.

    Seguindo esses passos, você garante uma implementação suave de práticas de DevSecOps, minimizando interrupções e maximizando a segurança desde o início.


    Fonte:

    https://www.microsoft.com/en-us/securityengineering/sdl

    https://owasp.org/Top10/pt_BR/

    https://owasp.org/API-Security/editions/2023/en/0x11-t10/

    https://owasp.org/www-project-top-10-for-large-language-model-applications/

    https://owasp.org/www-project-samm/

    https://owasp.org/www-project-devsecops-maturity-model/

    https://dsomm.owasp.org/

    https://owasp.org/www-project-devsecops-guideline/

     

    Sugestão de livros:

     

    Sugestão de treinamento:

    4Linux – DevSecOps segurança Ágil em pipelines CI/CD e DevOps

    Pratical DevSecOps – Certified DevSecOps Professional

    [];

     

  • Arquitetura DevSecOps e Ferramentas

    Arquitetura DevSecOps e Ferramentas

    Arquitetura DevSecOps e Ferramentas.

    Seja bem-vindo ao nosso blog! Hoje vamos falar sobre Arquitetura DevSecOps e Ferramentas, No último post, “Introdução ao DevSecOps“, oferecemos uma visão geral sobre essa prática essencial para a integração da segurança ao longo do ciclo de vida do desenvolvimento de software. Fique conosco para aprender mais sobre como implementar DevSecOps e fortalecer a segurança de suas aplicações desde o início do desenvolvimento até a produção.

    A criação de uma arquitetura para um pipeline DevSecOps envolve a integração de práticas de segurança dentro do fluxo de trabalho DevOps para garantir a entrega segura de software. Abaixo está uma visão geral de alto nível para um pipeline DevSecOps, focando em integração contínua, entrega contínua e segurança contínua.

    Pipeline DevSecOps Agnóstica.

    A seguir, apresento uma imagem que ilustra de forma agnóstica a pipeline DevSecOps para facilitar o seu entendimento. Ainda nesse post, abordaremos detalhadamente a arquitetura e as ferramentas específicas utilizadas.

     

    Agora, descreverei detalhadamente as etapas apresentadas na imagem e todo o fluxo do pipeline DevSecOps. Lembre-se de que essa é apenas uma das possibilidades; a implementação pode variar conforme a maturidade de cada cliente, profissional e ambiente.

    Começamos pelo Identidade e Autenticação (Identity e 2FA). O desenvolvedor inicia o processo autenticando-se através de um sistema de identidade e autenticação multifator (2FA).

    Em seguida, passamos para Desenvolvimento e Feedback em Tempo Real (Developer e Real-time Feedback). Após a autenticação, o desenvolvedor trabalha no repositório de código. Qualquer alteração no código gera feedback em tempo real, permitindo ajustes imediatos.

    O próximo passo é o Pipeline CI/CD (Continuous Integration/Continuous Deployment). O código passa por um pipeline de CI/CD, dividido em duas fases: pré-build (Pre-Build) e pós-build (Post-Build). Na fase de pré-build, são executadas análises de componentes e segurança de código estático (SCA/SAST). Na fase de pós-build, são realizados testes de segurança dinâmica (DAST).

    Depois, entramos na etapa de Gerenciamento de Vulnerabilidades (Vulnerability Management). As informações de vulnerabilidades são gerenciadas e monitoradas ao longo do pipeline, assegurando que todas as vulnerabilidades identificadas sejam tratadas adequadamente.

    Seguimos para o Registro e Armazenamento de Artefatos (Registry/Artifacts). Os artefatos gerados durante o build são armazenados em um repositório específico.

    O código é então promovido para os Ambientes de Desenvolvimento/QA e Produção (Dev QA Production), onde é monitorado e gerenciado.

    A próxima etapa é Segurança de Segredos e Observabilidade (Vault/Secret e Observability). Segredos e credenciais são gerenciados em um cofre de segredos, enquanto a observabilidade é mantida para monitorar a saúde e a performance do sistema.

    Finalmente, chegamos ao Usuário Final e Segurança Perimetral (End User, LB/CDN/WAF). O usuário final interage com a aplicação, que é protegida por balanceadores de carga (LB), redes de entrega de conteúdo (CDN) e firewalls de aplicações web (WAF).

    Para garantir a segurança, o Usuário Final também passa por um sistema de identidade e autenticação multifator (MFA).

    Essa imagem ilustra de maneira abrangente as etapas e componentes de um pipeline DevSecOps, destacando a integração da segurança em todas as fases do ciclo de vida do desenvolvimento de software.

    Arquitetura e diretriz OWASP DevSecOps.

    A diretriz OWASP DevSecOps nos guia na transição de uma abordagem tradicional, que começa com requisitos e termina com testes de segurança, para uma abordagem que integra Desenvolvimento, Segurança e Operações ao longo do ciclo de vida do software – a abordagem “DevSecOps”.

    Este projeto ajuda empresas de qualquer tamanho a incorporar segurança em seu pipeline e cultura DevOps. Não existe uma única maneira correta de fazer DevSecOps, então é fundamental manter o foco.

    DevSecOps busca “produzir código demonstravelmente seguro” ao:

    • Utilizar a automação para criar ciclos curtos de feedback para os desenvolvedores
    • Quebrar os silos entre desenvolvimento, segurança e operações
    • Dividir o trabalho de segurança em pequenas partes para criar fluxo
    • Tomar decisões baseadas em inteligência de ameaças das operações
    • Estabelecer uma cultura de experimentação e aprendizado em segurança

    Ferramentas específicas apoiam os processos de segurança ao longo do ciclo de vida do desenvolvimento de software. Toda empresa deve implementar processos para garantir:

    Segurança do Código Personalizado: Seu código personalizado precisa de defesas adequadas e deve estar livre de vulnerabilidades, abrangendo aplicativos, APIs, serverless, mobile, infraestrutura como código, etc.

    Segurança da Cadeia de Suprimentos: Sua plataforma, framework, bibliotecas, contêineres e outros componentes precisam ser seguros.

    Proteção em Tempo de Execução: Detectar ataques em seu software e evitar a exploração.

    Implementando bem esses três processos, sua organização se posiciona melhor em termos de segurança de aplicativos. Neste documento, exploramos várias soluções automatizadas que ajudam na implementação desses processos.

    O objetivo não é usar todas as ferramentas no seu pipeline, mas garantir que o código seguro surja dele. Escolha ferramentas eficazes para as pessoas, processos, tecnologia e cultura da sua organização. Use cada ferramenta para o que ela faz de melhor, evitando repetir todos os testes com todas as ferramentas. Cada organização de desenvolvimento de software é única, e você decide quais ferramentas usar e onde implementá-las.

     

    Arquitetura DevSecOps “Cloud Native”.

    A seguir, apresentarei Arquiteturas DevSecOps de Referência dos principais provedores de Cloud. Meu objetivo é oferecer uma visão Cloud Native, incluindo algumas ferramentas open source e de terceiros.

     

     

     

    Ferramentas de Feedback em Tempo Real para Desenvolvedores.

    Quando pensamos em desenvolvimento seguro, devemos começar muito antes do que foi abordado aqui. Por exemplo, a escolha da linguagem ou framework, a modelagem de ameaças, e também o desenvolvedor e seu equipamento. Por isso, vamos explorar as possibilidades de ferramentas de feedback em tempo real para desenvolvedores.

    SonarLint

    • Descrição: SonarLint é uma extensão de IDE que analisa o código enquanto você escreve. Ele fornece feedback imediato sobre problemas de segurança, bugs e boas práticas.
    • Compatibilidade: Funciona com IntelliJ IDEA, Eclipse, Visual Studio e VS Code.

    ESLint

    • Descrição: ESLint é uma ferramenta de linting para JavaScript e outros arquivos de código. Ela ajuda a encontrar e corrigir problemas de sintaxe, estilo e possíveis bugs.
    • Compatibilidade: Compatível com VS Code, Sublime Text, Atom, WebStorm, entre outros.

    Pylint

    • Descrição: Pylint é uma ferramenta de linting para Python. Ela analisa o código em busca de erros, verifica conformidade com padrões de codificação e oferece sugestões para melhorar a qualidade do código.
    • Compatibilidade: Funciona com VS Code, PyCharm e Sublime Text.

    Stylelint

    • Descrição: Stylelint é um linter para CSS. Ele ajuda a garantir que o código CSS siga padrões de estilo e melhores práticas.
    • Compatibilidade: Compatível com VS Code, Atom, Sublime Text e WebStorm.

    TSLint

    • Descrição: TSLint é uma ferramenta de linting para TypeScript. Ela é usada para identificar e corrigir problemas de estilo e possíveis erros no código TypeScript.
    • Compatibilidade: Funciona com VS Code, Sublime Text, Atom e WebStorm.

    Prettier

    • Descrição: Prettier é um formatador de código. Ele garante que o código seja formatado de forma consistente de acordo com padrões predefinidos.
    • Compatibilidade: Compatível com VS Code, Sublime Text, Atom e WebStorm.

    Checkstyle

    • Descrição: Checkstyle é uma ferramenta de análise de código estático para Java. Ela verifica a conformidade do código com padrões de codificação.
    • Compatibilidade: Funciona com IntelliJ IDEA, Eclipse e NetBeans.

     

    Ferramentas para pipeline DevSecOps.

    Para encerrar o post de hoje, vou falar sobre as ferramentas dentro de uma arquitetura de pipeline DevSecOps, conforme prometido. Quero apresentar opções para que você possa estudar e escolher a que melhor se encaixa na sua realidade.

    Gerenciamento de Código Fonte (SCM)

    • Ferramentas: Git (GitHub, GitLab, Bitbucket)
    • Descrição: Sistema de controle de versão para gerenciar código e rastrear alterações.

    Integração Contínua (CI)

    • Ferramentas: Jenkins, GitLab CI, Travis CI, CircleCI
    • Descrição: Automatizar o processo de build, teste e integração para garantir que as mudanças no código sejam confiáveis.

    Teste Estático de Segurança de Aplicações (SAST)

    • Ferramentas: SonarQube, Checkmarx, Veracode
    • Descrição: Analisar o código em busca de vulnerabilidades de segurança durante o processo de build.

    Gerenciamento de Dependências e Varredura de Vulnerabilidades

    • Ferramentas: OWASP Dependency-Check, Snyk, WhiteSource
    • Descrição: Verificar dependências em busca de vulnerabilidades conhecidas e gerenciá-las.

    Análise de Composição de Software (SCA)

    • Ferramentas: Black Duck, WhiteSource, Snyk
    • Descrição: Analisar componentes de código aberto e suas dependências para identificar vulnerabilidades e licenças.

    Containerização

    • Ferramentas: Docker
    • Descrição: Empacotar aplicações em contêineres para consistência entre ambientes.

    Segurança de Contêineres

    • Ferramentas: Clair, Aqua Security, Twistlock
    • Descrição: Escanear imagens de contêineres em busca de vulnerabilidades.

    Infraestrutura como Código (IaC)

    • Ferramentas: Terraform, Ansible, Chef, Puppet
    • Descrição: Gerenciar infraestrutura através de código para consistência e controle de versão.

    Teste Dinâmico de Segurança de Aplicações (DAST)

    • Ferramentas: OWASP ZAP, Burp Suite, Acunetix
    • Descrição: Testar a aplicação em execução em busca de vulnerabilidades de segurança.

    Entrega Contínua (CD)

    • Ferramentas: Jenkins, GitLab CI, Spinnaker, Argo CD
    • Descrição: Automatizar o processo de implantação para vários ambientes.

    Gerenciamento de Configuração e Segredos

    • Ferramentas: HashiCorp Vault, AWS Secrets Manager, Kubernetes Secrets
    • Descrição: Gerenciar configurações e segredos de forma segura.

    Monitoramento e Log

    • Ferramentas: ELK Stack (Elasticsearch, Logstash, Kibana), Prometheus, Grafana
    • Descrição: Monitorar o desempenho da aplicação e registrar atividades para análise e alertas.

    Isso é tudo por hoje. Espero ter atendido às suas expectativas. Se você se interessa por este assunto, convido você a acompanhar os próximos posts. Neles, continuarei abordando ferramentas de apoio e, futuramente, apresentarei uma demo de uma pipeline DevSecOps. O que você acha? Vale a pena trazer esse conteúdo?

     

    Fonte:

    https://owasp.org/www-project-devsecops-guideline/

    https://github.com/OWASP/DevSecOpsGuideline/blob/master/current-version/0-Intro/0-1-Intro.md

    https://aws.amazon.com/pt/blogs/aws-brasil/construindo-um-pipeline-de-ci-cd-aws-devsecops-de-ponta-a-ponta-com-ferramentas-de-codigo-aberto-sca-sast-e-dast/

    https://learn.microsoft.com/en-us/azure/architecture/guide/devsecops/devsecops-on-aks

    https://cloud.google.com/blog/products/devops-sre/devsecops-and-cicd-using-google-cloud-built-in-services

    https://cloud.google.com/blog/products/networking/introducing-the-devsecops-toolkit

    https://github.com/sysdesign-code/dev-sec-ops-demo/tree/main/diagrams

     

    Sugestão de Livros:

    [];

  • Introdução ao DevSecOps

    Introdução ao DevSecOps

    Introdução ao DevSecOps:

     

    Hoje vamos fazer introdução ao DevSecOps, DevSecOps é uma abordagem que integra práticas de segurança dentro do processo de DevOps. O objetivo é garantir que a segurança seja uma responsabilidade compartilhada ao longo de todo o ciclo de vida de TI, em vez de ser isolada para uma equipe ou fase específica. Aqui está uma visão geral dos seus principais conceitos e práticas:

     

     

    Consequentemente seus Principais conceitos são:

     

    1. Integração: Ferramentas e processos de segurança são integrados no pipeline de DevOps, permitindo verificações de segurança automatizadas em cada estágio do desenvolvimento.

    2. Colaboração: Promove a colaboração entre as equipes de desenvolvimento, operações e segurança para garantir que a segurança esteja incorporada durante todo o ciclo de vida do desenvolvimento.

    3. Automação: Automatiza tarefas de segurança, como análise de código, gerenciamento de configuração e detecção de vulnerabilidades para melhorar a eficiência e reduzir erros humanos.

    4. Monitoramento Contínuo: Implementa monitoramento contínuo e visibilidade em tempo real da postura de segurança de aplicativos e infraestruturas.

    5. Shift Left: Desloca a segurança para o início do processo de desenvolvimento (ou seja, durante as fases de codificação e construção) para identificar e corrigir problemas de segurança mais cedo.

     

    Por isso:

     

    As etapas do DevSecOps integram práticas de desenvolvimento, operações e segurança para criar um fluxo de trabalho contínuo e automatizado que incorpora a segurança em cada fase do ciclo de vida do software. Aqui estão as principais etapas do DevSecOps:

     

     

     

     

    1. Planejamento

    • Definição de Requisitos: Colaborar com as partes interessadas para definir os requisitos de segurança, operacionais e funcionais.
    • Modelagem de Ameaças: Identificar possíveis ameaças e vulnerabilidades antes do início do desenvolvimento.
    • Desenho de Arquitetura: Projetar a arquitetura do software e da infraestrutura com segurança em mente.

    2. Desenvolvimento

    • Codificação Segura: Implementar práticas de codificação segura para prevenir vulnerabilidades como SQL injection, XSS, etc.
    • Análise de Composição de Software (SCA): Verificar bibliotecas e componentes de terceiros para identificar vulnerabilidades conhecidas e conformidade de licenças.
    • Revisão de Código: Realizar revisões de código manuais e automatizadas para identificar possíveis problemas de segurança.

    3. Construção

    • Integração Contínua (CI): Automatizar a construção do software e executar testes de segurança, como análise estática de código (SAST), durante o processo de build.
    • Automação de Testes: Implementar testes automatizados para garantir que o código é seguro e funciona conforme o esperado.

    4. Teste

    • Testes Dinâmicos de Segurança de Aplicações (DAST): Realizar testes dinâmicos para identificar vulnerabilidades em ambientes de execução.
    • Testes Interativos de Segurança de Aplicações (IAST): Integrar testes interativos que combinam aspectos de SAST e DAST para fornecer uma visão mais completa das vulnerabilidades.
    • Testes de Penetração: Executar testes de penetração para simular ataques reais e identificar possíveis falhas de segurança.

    5. Lançamento

    • Gerenciamento de Configuração: Garantir que as configurações de segurança estão corretamente aplicadas em todos os ambientes.
    • Gestão de Vulnerabilidades: Implementar políticas para gerenciar e corrigir vulnerabilidades identificadas antes do lançamento.

    6. Implantação

    • Entrega Contínua (CD): Automatizar o processo de implantação para garantir que as mudanças sejam entregues de forma segura e eficiente.
    • Infraestrutura como Código (IaC): Usar IaC para gerenciar e provisionar infraestrutura, garantindo consistência e segurança.
    • Verificação de Segurança: Realizar verificações de segurança finais antes de implantar em produção.

    7. Operações

    • Monitoramento Contínuo: Implementar monitoramento contínuo para detectar e responder a incidentes de segurança em tempo real.
    • Gestão de Logs: Coletar e analisar logs de segurança para identificar atividades suspeitas e incidentes.
    • Resposta a Incidentes: Estabelecer um plano de resposta a incidentes para lidar com ameaças e ataques de forma eficiente.

    8. Feedback e Melhoria Contínua

    • Análise Pós-Incidente: Realizar análises pós-incidente para entender a causa raiz dos problemas e implementar melhorias.
    • Retrospectivas: Conduzir retrospectivas regulares para avaliar o que funcionou bem e o que precisa ser melhorado no processo de DevSecOps.
    • Atualização de Ferramentas e Processos: Revisar e atualizar regularmente ferramentas e processos de segurança para manter-se à frente das novas ameaças.

    9. Treinamento e Cultura

    • Capacitação de Equipes: Treinar as equipes de desenvolvimento, operações e segurança nas melhores práticas de segurança.
    • Cultura de Segurança: Promover uma cultura de segurança em toda a organização, incentivando a colaboração e a responsabilidade compartilhada pela segurança.

    Sendo assim implementar essas etapas ajuda a criar um ambiente onde a segurança é integrada em cada fase do desenvolvimento e operações, resultando em software mais seguro e resiliente.

     

    No entanto os Desafios são:

    • Mudança Cultural: Requer uma mudança cultural para priorizar a segurança em todas as equipes.
    • Lacunas de Habilidades: As equipes de desenvolvimento e operações podem precisar de treinamento adicional em práticas de segurança.
    • Integração de Ferramentas: Integrar ferramentas de segurança nos pipelines de DevOps existentes pode ser complexo.
    • Equilibrar Velocidade e Segurança: Garantir que as medidas de segurança não retardem o processo de desenvolvimento.

    Implementar DevSecOps pode melhorar significativamente a postura de segurança de uma organização ao incorporar práticas de segurança em cada estágio do ciclo de vida do desenvolvimento de software.

     

    Em conclusão…

    Tanto a cultura DevOps quanto DevSecOps são amplamente reconhecidas e discutidas no mercado de tecnologia. No entanto, profissionais mais experientes, que tiveram contato com diversos ambientes, sabem que a maturidade na maioria desses ambientes ainda é baixa. Com a rápida evolução e adoção da inteligência artificial, a necessidade de adotar essas culturas se torna cada vez mais urgente. A implementação eficaz de DevSecOps é crucial não apenas para melhorar a qualidade das entregas de código, mas também para fortalecer os aspectos de segurança. A combinação dessas práticas garante que as inovações em IA sejam desenvolvidas, implantadas e gerenciadas com um enfoque robusto em segurança e eficiência, proporcionando maior confiança e resiliência nos sistemas emergentes.

     

    Referências de estudo:

    Livro Manual DevOps

    Livro Security as Code

    OWASP DevSecOps Guideline

    2024 Global DevSecOps Report

    Veja outros conteúdos do Blog, nos próximos dias devo postar mais conteúdo relacionado ao tema DevSecOps, caso seja do seu interesse fique atento.

    Veja também: Arquitetura DevSecOps e Ferramentas

    [];

  • Backup kubernetes com Kasten K10

    Backup kubernetes com Kasten K10

    Backup kubernetes com Kasten K10

    Fala galera,

    Primeiramente quero agradecer sua visita aqui no blog, preciso te pedir uma AJUDA, compartilhe esse post com o maior número de amigos possível, certamente você vai ajudar alguém.

    backup com kasten k10 by veeam

    No conteúdo de hoje Backup kubernetes com Kasten K10 preparamos um hands-on e apresentamos uma solução bem interessante quando se fala em Data Protection.

    Kasten:

    A Kasten é uma empresa independente focada em soluções para plataforma Kubernetes, adquirida pela Veeam Backup recentemente, é líder premiado em Backup e recuperação de desastres do Kuberentes.

    Kasten K10 é uma plataforma de gerenciamento de dados desenvolvida especialmente para kubernetes, plataforma amigável, escalonável  e seguro para backup e restauração de aplicações e mobilidade.

    Nossa Agenda:
    • Pré-requisitos
    • instalação Kasten K10
    • Configuração básica Kasten k10
    • Backup/Restore de Aplicação
    • Configuração Disaster Recovery
    • Delete Cluster K8s e Recovery da Aplicação em novo Cluster

    Considerações:

    A solução se demonstra estável e de fácil gerenciamento, para backup e restore no cluster de origem é provável que seja menos aplicável caso você tenha pipelines e versionamento, sua utilização será de grande valor em casos de incidente relacionado a perda de dados acidental ou maliciosa e também na falha do cluster (infraestrutura) do Kuberentes.

    Casos de Uso:
    • Perda de dados
    • Falha do Cluster/Infraestrutura/Hardware
    • Proteção das Aplicações em Cluster Externo / Disaster Recovery
    • Migração entre provedores de Cloud
    • MultiCloud Deployment
    Documentação:

    Bom galera, era isso que eu tinha para vocês hoje, espero que gostem do conteúdo, deixe seu comentário e compartilhe com os amigos.

    Quer ter um contato mais próximo comigo e nossa audiência? Acesse nosso grupo no telegram e fique a vontade clicando AQUI.

    Forte abraço e até a próxima…

    [];

  • Start e Stop de VMs com automation account

    Start e Stop de VMs com automation account

    Start e Stop de VMs com automation account

    Fala galera, 

    Primeiramente quero agradecer sua visita aqui no blog, preciso te pedir uma AJUDA, compartilhe o post Start e Stop de VMs com automation account com o maior número de amigos possível, certamente você vai ajudar alguém.

    Automation Account do Azure

    Agenda:

    • Configuração de Tags em VMs;
    • Criação da Automation Account;
    • Import/Create Runbook;
    • Criação de agendamentos;
    • Criação de Webhook.

    Abaixo deixo para vocês as Runbooks utilizadas no vídeo, assim fica fácil para poder utilizar ou reproduzir o laboratório.

    Link para Github das Runbooks:

    https://github.com/luizpessol/automation-account

    • Criar automation account;
    • Scrip para Stop de VMs;
    • Script para Start de VMs.

    É importante falar que as Automation Account pode ser utilizadas para as mais variadas atividades de automação:

    • Criação de ambientes;
    • Delete de Ambientes;
    • Inventário de recursos;
    • Automação de atividades/jobs. 

    Quero deixar para vocês algumas documentações que possa ajudar:

    Aproveite para ver outros posts que já entregamos aqui no blog, tenho certeza que um deles possa te ajudar no seu dia a dia.

    Quer manter contato comigo e minha comunidade acesse nosso grupo no telegram clicando aqui, se puder me apoiar se inscreva aqui no blog e no meu canal do YouTube você vai impulsionar o meu trabalho com a comunidade.

    Bom galera era isso que eu tinha para vocês hoje, espero que tenha gostado, deixe sua sugestão ou dúvida nos comentários abaixo.

    [];

  • Como alterar node pools no AKS

    Como alterar node pools no AKS

    Como alterar node pools no AKS

    Fala galera, 

    Primeiramente quero agradecer sua visita aqui no blog, preciso te pedir uma AJUDA, compartilhe o post como alterar node pools no AKS com o maior número de amigos possível, certamente você vai ajudar alguém.

    A ideia de hoje é mostrar como podemos gerenciar os node pools do (AKS) Azure Kubernetes Services.

    Agenda:
    • Identificar um node pool System, User ou node pools com VMs Spot;
    • Adicionar node pools via Portal do Azure e Azure CLI;
    • Alterar o Mode do node pools via Azure CLI;
    • Deletar um node pools via Portal e Azure CLI;
    • Adicionar um node pools com VMs Spot no Cluster AKS.

    Abaixo vou descrever algumas características da criação dos node pools, é importante que você saiba desses detalhes.

    Tipos de node pools: System e User
    • Os node pools de System tem como principal finalidade hospedar PODs críticos do sistema como exemplo o CoreDNS.
    • A finalidade dos node pools de User principal é hospedar os PODs de aplicativos.
    Sistemas Operacionais: Linux e Windows
    • O sistema operacional Linux pode ser usado para node pools do tipo System e User, em um Cluster AKS você sempre vai precisar ter ao menos 01 node pool System.
    • Já o sistema operacional Windows só pode ser alocado em um node pools do tipo User.
    Curiosidades:
    • O nome de um node pools Linux pode ter até 12 caracteres sendo eles letras e números, um node pools Windows pode conter 06 caracteres, ambos devem ser escritos com letras minúsculas.
    • Em um cluster AKS você pode ter node pools Linux e Windows, a melhor forma de gerenciar e customizar os node pools é através de código, nesse vídeo utilizamos o Azure CLI.
    • É importante saber da possibilidade do uso de node pools com VMs do tipo Spot, mostramos também como adicionar um node pool com esse tipo de instancia já que via Portal do Microsoft Azure ainda não é possível até a presente data.
    O que preciso saber antes de utilizar VMs Spot em node pools do AKS:

    Utilizar conjuntos de disponibilidade com VMs Azure Spot possibilita o consumo de recursos computacionais do Microsoft Azure que estão ociosos com economia de custo interessante.

    A qualquer momento a Microsoft pode precisar desses recursos computacionais, sendo assim a infraestrutura do Microsoft Azure vai remover esses recursos sem prévio aviso.

    Para utilizar as VMs Spot é importante um bom planejamento para soluções que possa lidar com interrupções. Workloads específicos como processamento de batchs, ambientes de desenvolvimento, ambientes de testes e até grandes cargas de computação podem utilizar VMs Spot.

    Importante saber ao utilizar node pools com VMs Spot:

    • VMs Spot não pode ser utilizadas em pool primário (System);
    • As VMs Spot são baseadas em VMSS;
    • Os node pools com VMs Spot não podem ser alterados;
    • Node pools com VMs Spot não tem SLA;
    • Todos node pools com VMs Spot terá o label: kubernetes.azure.com/scalesetpriority:spot e o System Pod terá antiafinidade para ele;
    • Também terá taints: kubernetes.azure.com/scalesetpriority=spot:NoSchedule. 

    Código utilizado no vídeo:

    https://github.com/luizpessol/aks-azure-kubernetes-services/blob/master/az_aks_nodepool_update_cli.md

    Documentações de Referência:

    Bom galera, era isso que eu tinha para vocês hoje, espero que gostem do conteúdo, deixe seu comentário e compartilhe com os amigos.

    Post sobre Kubernetes: https://www.luizpessol.com.br/2020/09/03/o-que-e-kubernetes-por-que-usar-como-servico/

    Post criação do AKS:  https://www.luizpessol.com.br/2020/09/21/como-criar-um-aks-azure-kubernetes-services/

    Forte abraço e até a próxima…

    [];

     

     

     

  • Como recuperar acesso SSH a VM Linux no Azure

    Como recuperar acesso SSH a VM Linux no Azure

    Como recuperar acesso SSH a VM Linux no Azure ?

    Fala galera,

    Primeiramente quero agradecer sua visita aqui no blog, preciso te pedir uma AJUDA, compartilhe esse post com o maior número de amigos possível, certamente você vai ajudar alguém.

    No vídeo de hoje Como recuperar acesso SSH a VM Linux no Azure, vamos de maneira prática recuperar o acesso a uma VM Linux no Microsoft Azure através do Azure Portal e também com Azure CLI.

    Agenda:
    • Identificar usuário existente;
    • Alterar senha de usuário;
    • Criação de key par ssh;
    • Adicionando uma nova chave;
    • Validação dos acessos.

    Importante:

    Seguindo a documentação da Microsoft (aqui) está faltando um detalhe que pode passar despercebido e por isso você não vai ter sucesso ao tentar alterar a senha.

    Errado

    az vm user update \
    -u username \
    -p password \
    -n MyVm \
    -g MyResourceGroup

    Certo

    az vm user update \
    -u username \
    -p 'password' \
    -n MyVm \
    -g MyResourceGroup

    Para seguir exatamente o que fizemos no vídeo você pode acessar o meu github clicando aqui.

    Os últimos post aqui do blog foram referente a VMs Linux, vale pena dar uma olhadinha:

    Quer manter contato comigo e minha comunidade? Acesse o nosso grupo no telegram clicando aqui.

    Era isso que eu tinha para vocês hoje, forte abraço e até a próxima!

    [];

  • Como adicionar um disco em uma VM Linux no Azure

    Como adicionar um disco em uma VM Linux no Azure

    Como adicionar um disco em uma VM Linux no Azure.

    Fala galera, fico feliz em receber sua visita aqui no meu blog, seja muito bem vindo, hoje vamos falar sobre como adicionar um disco de dados em uma VM Linux, alguns dias atrás acabei lendo algumas instruções erradas em um grupo do telegram e por isso resolvi fazer esse vídeo.

    Agenda:
    • Criar novo disco e anexar via Azure CLI;
    • Particionar o disco;
    • Formatar o disco;
    • Montar o disco no Linux;
    • Persistir o disco no S.O Linux.

    Borá para o vídeo, abaixo vou deixar alguns pontos importantes.

    Discos:

    O Microsoft Azure possui dois modelos de discos, os discos gerenciados (Managed Disks) e os discos não gerenciados (Unmanaged disks).

    Discos gerenciados: São discos gerenciados pelo Microsoft Azure e com isso você não precisa de uma conta de armazenamento ao criar um novo disco. Como a conta de armazenamento é gerenciada pelo Azure, você não tem controle total dos discos.

    managed disks on azure

    Discos não gerenciados: Você precisa de uma conta de armazenamento para alocar os discos antes de cria-los. Como a conta é criada e pertence a você, você tem controle total aos discos. Além disso, você precisa cuidar da criptografia, plano de recuperação e outros.

    É possível migrar um disco não gerenciado para discos gerenciados, eu demonstrei em um outro vídeo aqui do blog/canal, clique aqui.

    Eu particularmente sugiro que você leia a documentação para entender a fundo as diferenças, fui bem raso nesse exemplo, acredite existem ótimos motivos para que você utilize discos gerenciados (Managed Disks).

    Tipos de discos:
    • Disco Ultra
    • SSD Premium
    • SSD Standard
    • HDD Standard

    Cada um desses discos possui um objetivo principal, cuidado ao escolher discos Premium para ambientes não produtivos, o custo pode te assustar um pouco, dimensione os discos de maneira consciente sem exageros.

    Quero deixar como referencia algumas documentações para que possam conhecer mais afundo os discos do Microsoft Azure.  

    Espero que você tenha gostado do conteúdo de hoje sobre Como adicionar um disco em uma VM Linux no Azure, aqui tudo é sempre feito com todo carinho para galera.

    Se inscreva em meu canal do YouTube e caso queira estar mais próximo de minha comunidade acesse meu grupo no telegram aqui.

    Não esqueça de ver nosso último vídeo aqui do canal ensinando a criar uma VM Linux, forte abraço e até a próxima!

    [];

  • Como criar uma VM Linux no Azure Portal e Azure CLI

    Como criar uma VM Linux no Azure Portal e Azure CLI

    Como criar uma VM Linux no Azure Portal e Azure CLI

    Fala galera, sua presença aqui no blog é muito importante, espero poder te ajudar com o vídeo Como criar uma VM Linux no Azure Portal e Azure CLI, a ideia é falar de alguns pontos importantes e demonstrar como é fácil criar uma VM Linux no Microsoft Azure.

    Agenda:

    • Criar VM Linux via Azure Portal
    • Deploy de VM Linux via Azure CLI
    • Utilização do Cloud-init

     

    Opções de pagamento Virtual Machine – VM.

     

    Pago pelo uso:

    Nesse modelo você vai pagar exatamente pelo uso da capacidade computacional e pode interromper a utilização quando achar necessário, recomendado para quem está começando no Microsoft Azure, soluções de curto prazo ou soluções que precisam ser estendidas para Nuvem em momento de pico, alta demanda.

    Instâncias Reservadas:

    As instâncias reservadas é um modelo de compra adiantada e você pode efetuar uma reserva para 1 ou 3 anos, Nesse modelo você pode conseguir até 72% de desconto. O modelo é flexível e você pode trocar o tipo de instância e até devolver ser necessário, sua utilização é recomendada para workloads planejados e precisa de previsibilidade do seu orçamento.

    Spot:

    O modelo de instâncias Spot você pode chegar a um desconto de até 90% para essa capacidade computacional não utilizada, esse é o motivo do desconto, capacidade computacional do Microsoft Azure ocioso, é importante falar que os 90% é comparando com instâncias pagas de uso. Esse modelo é recomendado para quem precisa de reduções significativas e seu workload não tenha problemas com interrupções pois para esse modelo não existe SLA, quando a Microsoft precisar da capacidade computacional você será notificado 30 segundos antes da interrupção.

    Availability Set x Availability Zone.

     

    Availability Set:

    Duas ou mais instâncias que faça parte de um conjunto de disponibilidade (Availability Set) de forma grotesca é você informar ao Microsoft Azure que essas instâncias não podem ficar no mesmo rack, rede elétrica ou rede de dados e que se necessário uma parada planejada ou não isso não aconteça em todas as instâncias no mesmo conjunto causando uma interrupção em sua solução, esse modelo oferece 99,95 de SLA.

    Imagem ilustrativa do Availability Set

    Availability Zone:

    Uma zona de disponibilidade é um local físico, possui toda estrutura de um datacenter, energia, rede de dados e refrigeração. Pode ser composta por um ou mais datacenters que estão em uma região respeitando uma latência aceitável para suportar aplicativos críticos e altamente disponível, esse modelo oferece 99,99 de SLA.

    Imagem ilustrativa do Availability Zone

    Visão geral Cloud-init.

    Cloud-init é uma solução utilizada para personalização de Máquinas Virtuais Linux quando inicializada pela primeira vez, a solução possui documentação própria que você pode encontrar aqui. 

    Uso comum:

    • Instalação de pacotes;
    • Upload / criação de arquivos;
    • Configuração de usuários;
    • Segurança.

    Boas práticas para uso de IaaS, Máquinas Virtuais.

    • Proteja suas VMs com controle de acesso;
    • Utilize mais de uma VM para garantir disponibilidade, Availability options;
    • Garanta que sua VM possui uma solução contra malware;
    • Faça gerenciamento de suas atualizações;
    • Monitore o desempenho de suas VMs;
    • Utilize da criptografia de disco para proteção dos dados;
    • Não deixe suas VMs conectadas diretamente a internet.

     Abaixo quero deixar algumas documentações que você possa querer consultar, espero que tenha gostado do conteúdo apresentado nesse post e aproveito para te convidar a conhecer outros conteúdos publicados aqui no Blog.

    Documentações:

    Az vm create documentação Microsoft Azure.

    Preparar uma imagem customizada com Cloud-init.

    Utilização do Cloud-init no Microsoft Azure.

    Documentação de preços VMs Linux e VMs Windows.

    Códigos utilizados para o laboratório do vídeo github.

    Quer manter contato comigo e minha comunidade acesse nosso grupo no telegram clicando aqui, se puder me apoiar se inscreva aqui no blog e no meu canal do YouTube você vai impulsionar o meu trabalho com a comunidade.

    Já ia me esquecendo, não deixe de prestigiar o último post que fiz sobre AKS – Azure Kubernetes Services, ficou animal!!!

    Bom galera era isso que eu tinha para vocês hoje, espero que tenha gostado, deixe sua sugestão ou dúvida nos comentários abaixo.

    [];

     

Visão geral de privacidade

Este site usa cookies para que possamos oferecer a melhor experiência de usuário possível. As informações dos cookies são armazenadas em seu navegador e executam funções como reconhecê-lo quando você retorna ao nosso site e ajudar nossa equipe a entender quais seções do site você considera mais interessantes e úteis.