<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: M3Corp</title>
    <description>The latest articles on DEV Community by M3Corp (@m3corp).</description>
    <link>https://dev.to/m3corp</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F6421%2F37b80f72-6b85-48e4-b666-982bcadd4614.png</url>
      <title>DEV Community: M3Corp</title>
      <link>https://dev.to/m3corp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/m3corp"/>
    <language>en</language>
    <item>
      <title>Monitoramento</title>
      <dc:creator>SE Team</dc:creator>
      <pubDate>Tue, 06 Feb 2024 15:00:00 +0000</pubDate>
      <link>https://dev.to/m3corp/monitoramento-hh4</link>
      <guid>https://dev.to/m3corp/monitoramento-hh4</guid>
      <description>&lt;p&gt;Monitoramento em um contexto de DevOps é uma prática essencial para garantir a performance, confiabilidade e eficiência dos sistemas de software ao longo do ciclo de vida do desenvolvimento, implantação e operações. A abordagem de monitoramento em DevOps visa fornecer visibilidade contínua sobre o desempenho do sistema, identificar problemas rapidamente e permitir a tomada de decisões informadas para melhorar a qualidade e a entrega contínua de software. &lt;/p&gt;

&lt;p&gt;Aqui estão alguns aspectos importantes do monitoramento em DevOps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Monitoramento de Aplicações:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Acompanhar o desempenho e a disponibilidade das aplicações em tempo real.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas:&lt;/strong&gt; Uso de ferramentas como Prometheus, New Relic, AppDynamics, entre outras, para monitorar métricas como tempo de resposta, taxa de erros e utilização de recursos.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Monitoramento de Infraestrutura:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Avaliar a saúde e o desempenho dos recursos de infraestrutura, incluindo servidores, redes e bancos de dados.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas:&lt;/strong&gt; Ferramentas como Grafana, Nagios, ou Prometheus para monitorar recursos de infraestrutura, identificar gargalos e prevenir falhas.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Logs e Análise de Logs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Agregar, analisar e visualizar logs para identificar eventos importantes e diagnosticar problemas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas:&lt;/strong&gt; ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, ou Graylog para coleta e análise de logs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Monitoramento de Segurança (DevSecOps):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Identificar atividades suspeitas, vulnerabilidades e garantir a conformidade com políticas de segurança.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas:&lt;/strong&gt; Ferramentas de monitoramento de segurança, como Wazuh ou Falco, para detectar anomalias e ameaças.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Monitoramento de Desempenho de Código (APM - Application Performance Monitoring):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Rastrear o desempenho do código em produção para otimizar e corrigir possíveis problemas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas:&lt;/strong&gt; Ferramentas APM, como New Relic, Dynatrace ou Zipkin, para análise de desempenho do código.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Monitoramento de Containers e Orquestradores:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Acompanhar o desempenho e a saúde de containers e orquestradores como Kubernetes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas:&lt;/strong&gt; Ferramentas específicas para monitoramento de containers, como cAdvisor ou Prometheus para Kubernetes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Alertas e Ações Automáticas:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Configurar alertas para notificar equipes sobre eventos críticos e, se possível, automatizar ações corretivas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas:&lt;/strong&gt; Integração com sistemas de alerta como PagerDuty, OpsGenie, ou sistemas de automação para correção automática.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Coleta de Métricas e KPIs:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Definir e monitorar métricas e indicadores-chave de desempenho (KPIs) relevantes para os objetivos do negócio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas:&lt;/strong&gt; Uso de ferramentas de coleta e visualização de métricas como Grafana, Prometheus, ou InfluxDB.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Integração Contínua com Monitoramento:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Integrar práticas de monitoramento no pipeline de integração contínua para garantir que problemas sejam identificados antes da produção.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ferramentas:&lt;/strong&gt; Integração com ferramentas de CI/CD e automação.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O monitoramento em DevOps é um componente crítico para garantir a qualidade e a disponibilidade contínua dos sistemas, permitindo uma abordagem proativa na identificação e resolução de problemas.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Containers vs VMs</title>
      <dc:creator>SE Team</dc:creator>
      <pubDate>Mon, 05 Feb 2024 15:00:00 +0000</pubDate>
      <link>https://dev.to/m3corp/containers-vs-vms-3g1g</link>
      <guid>https://dev.to/m3corp/containers-vs-vms-3g1g</guid>
      <description>&lt;p&gt;Containers e Máquinas Virtuais (VMs) são duas abordagens diferentes para virtualização e isolamento de ambientes de execução. Aqui estão as principais diferenças entre containers e VMs:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Containers:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Eficiência de Recursos:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Containers:&lt;/em&gt; Compartilham o mesmo kernel do sistema operacional hospedeiro, o que torna sua inicialização mais rápida e consome menos recursos em comparação com VMs.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;VMs:&lt;/em&gt; Cada máquina virtual possui seu próprio sistema operacional e kernel, resultando em maior consumo de recursos.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Isolamento:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Containers:&lt;/em&gt; Oferecem isolamento de processos e recursos, mas compartilham o mesmo kernel. Isso implica em um nível de isolamento menor se comparado às VMs.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;VMs:&lt;/em&gt; Proporcionam um nível mais alto de isolamento, pois cada VM possui seu próprio sistema operacional independente.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Portabilidade:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Containers:&lt;/em&gt; São altamente portáteis, já que encapsulam apenas as dependências específicas da aplicação, tornando fácil mover containers entre ambientes.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;VMs:&lt;/em&gt; Têm uma portabilidade relativamente maior em comparação com ambientes físicos, mas são geralmente mais pesadas e menos flexíveis.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Escalabilidade:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Containers:&lt;/em&gt; São ideais para escalonamento horizontal, permitindo a execução de múltiplas instâncias do mesmo container em diferentes hosts.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;VMs:&lt;/em&gt; O escalonamento horizontal pode ser mais desafiador devido ao maior consumo de recursos e tempo de inicialização mais longo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Máquinas Virtuais (VMs):&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Overhead:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Containers:&lt;/em&gt; Têm menos overhead, pois compartilham recursos do sistema operacional hospedeiro.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;VMs:&lt;/em&gt; Têm mais overhead, pois cada VM inclui seu próprio sistema operacional completo e uma camada de hypervisor para gerenciar as VMs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Flexibilidade de Sistema Operacional:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Containers:&lt;/em&gt; Normalmente são usados para isolar aplicações em um único sistema operacional.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;VMs:&lt;/em&gt; Oferecem maior flexibilidade, permitindo a execução de diferentes sistemas operacionais em diferentes VMs no mesmo host.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Segurança:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Containers:&lt;/em&gt; Têm um nível menor de isolamento em comparação com VMs, o que pode ser uma consideração importante em ambientes de segurança crítica.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;VMs:&lt;/em&gt; Oferecem um isolamento mais robusto entre máquinas virtuais, tornando-se uma opção preferida em ambientes que exigem alta segurança.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ambiente de Desenvolvimento:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Containers:&lt;/em&gt; São populares em ambientes de desenvolvimento devido à rápida inicialização e facilidade de uso.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;VMs:&lt;/em&gt; Podem ser mais apropriadas para ambientes que exigem a execução de sistemas operacionais diferentes ou configurações complexas.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ambos os containers e VMs têm seus lugares e casos de uso específicos, e a escolha entre eles depende das necessidades e requisitos específicos de cada aplicação e ambiente. Em muitos casos, as organizações utilizam uma combinação de ambas as tecnologias para obter os benefícios desejados.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>O que são Containers</title>
      <dc:creator>SE Team</dc:creator>
      <pubDate>Fri, 02 Feb 2024 15:00:00 +0000</pubDate>
      <link>https://dev.to/m3corp/o-que-sao-containers-p14</link>
      <guid>https://dev.to/m3corp/o-que-sao-containers-p14</guid>
      <description>&lt;p&gt;Containers são uma forma leve e portátil de empacotar, distribuir e executar aplicativos. Eles encapsulam o código, suas dependências e configurações em um ambiente isolado, tornando-os consistentes e executáveis em qualquer ambiente que suporte a tecnologia de containers. Diferentemente de máquinas virtuais, os containers compartilham o kernel do sistema operacional hospedeiro, o que os torna mais eficientes em termos de recursos e mais rápidos para iniciar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Componentes Principais de Containers:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Imagens:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Representam um pacote executável que inclui o código, bibliotecas, dependências e configurações necessárias para executar um aplicativo. Imagens são usadas para criar containers.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Containers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instâncias em execução de uma imagem. Cada container é isolado dos outros e do sistema operacional hospedeiro, mas compartilha o mesmo kernel.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Docker (ou outras plataformas de containers):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ferramenta popular para criar, distribuir e executar containers. Docker simplifica o processo de gerenciamento de containers, fornecendo uma interface fácil de usar.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Usos Comuns de Containers:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Desenvolvimento e Ambientes de Teste:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Os desenvolvedores podem empacotar suas aplicações juntamente com todas as dependências em containers, garantindo consistência entre os ambientes de desenvolvimento, teste e produção.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Implantação de Aplicações:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Containers tornam a implantação de aplicações consistente e fácil de gerenciar. Eles podem ser movidos entre ambientes sem alterações significativas.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Microservices:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Facilitam a implementação de arquiteturas de microservices, onde diferentes componentes da aplicação são executados em containers independentes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Escalonamento Horizontal:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Containers permitem o escalonamento horizontal, adicionando ou removendo instâncias do aplicativo conforme necessário para lidar com variações de carga.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Orquestração de Containers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ferramentas como Kubernetes são usadas para orquestrar a implantação, gerenciamento e escalonamento automático de containers em ambientes de produção.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ambientes Isolados:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Containers fornecem isolamento eficiente, garantindo que as aplicações não interfiram umas nas outras ou no sistema operacional hospedeiro.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Atualizações e Rollbacks:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Facilitam a implementação de atualizações e rollbacks de forma rápida e reversível, garantindo a continuidade do serviço.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Computação em Nuvem:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;São amplamente usados em ambientes de computação em nuvem para facilitar a migração e execução de aplicações em diferentes provedores de nuvem.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Em resumo, containers oferecem flexibilidade, eficiência e consistência no desenvolvimento, implantação e operação de aplicações, tornando-se uma tecnologia essencial na infraestrutura moderna de TI.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>CI, CD e as esteiras</title>
      <dc:creator>SE Team</dc:creator>
      <pubDate>Thu, 01 Feb 2024 18:36:43 +0000</pubDate>
      <link>https://dev.to/m3corp/ci-cd-e-as-esteiras-ome</link>
      <guid>https://dev.to/m3corp/ci-cd-e-as-esteiras-ome</guid>
      <description>&lt;p&gt;Vamos entender o que são CI, CD e como as esteiras de deploy (ou pipelines CI/CD) se encaixam:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Integração Contínua (CI):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Definição:&lt;/strong&gt; CI refere-se à prática de integrar e testar automaticamente o código produzido pelos desenvolvedores em um repositório compartilhado. Esse processo é acionado sempre que há uma alteração no código-fonte.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Identificar rapidamente e corrigir conflitos de integração, erros de código ou problemas de compatibilidade, garantindo que a base de código seja sempre funcional.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Entrega Contínua (CD):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Definição:&lt;/strong&gt; CD é uma extensão da CI e envolve a automação do processo de entrega do software até ambientes de produção. Isso inclui testes adicionais, como testes de aceitação do usuário, e a capacidade de implantar automaticamente no ambiente de produção.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Objetivo:&lt;/strong&gt; Possibilitar a entrega contínua de software pronto para produção, garantindo que as alterações de código sejam entregues rapidamente e de forma confiável.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Esteiras de Deploy (Pipelines CI/CD):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Definição:&lt;/strong&gt; Esteiras de deploy são conjuntos automatizados de processos (pipelines) que incorporam CI e CD. Elas automatizam desde a integração e teste de código até a entrega e implantação em ambientes de produção.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Funcionamento:&lt;/strong&gt; As esteiras de deploy são geralmente compostas por estágios, onde cada estágio representa uma fase do processo. Esses estágios podem incluir compilação, testes automatizados, implantação em ambientes de pré-produção e, finalmente, implantação em produção.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benefícios:&lt;/strong&gt; Reduzem erros manuais, aceleram a entrega, proporcionam feedback rápido, garantem consistência nas implantações e permitem a rápida detecção de problemas.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Fluxo típico em uma Esteira de Deploy (Pipeline CI/CD):&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Integração (CI):&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Desenvolvedores fazem push de código.&lt;/li&gt;
&lt;li&gt;Esteira de CI é acionada automaticamente.&lt;/li&gt;
&lt;li&gt;Compilação e testes automatizados são executados.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Entrega (CD):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Se os testes de CI passam, a esteira de CD é acionada.&lt;/li&gt;
&lt;li&gt;Testes adicionais (como testes de integração e aceitação) são executados.&lt;/li&gt;
&lt;li&gt;Se bem-sucedido, o software é implantado automaticamente em ambientes de pré-produção.&lt;/li&gt;
&lt;li&gt;Testes finais são conduzidos.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Implantação em Produção:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Se todos os testes passam, o software é implantado automaticamente em produção.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Benefícios:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rapidez:&lt;/strong&gt; Reduz o tempo entre o desenvolvimento e a entrega em produção.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistência:&lt;/strong&gt; Garante a consistência nas implantações.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qualidade:&lt;/strong&gt; Facilita a detecção precoce de erros.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatização:&lt;/strong&gt; Minimiza a intervenção manual, reduzindo erros humanos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Em resumo, CI, CD e esteiras de deploy são fundamentais para a prática DevOps, permitindo uma entrega de software rápida, confiável e de alta qualidade.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>career</category>
    </item>
    <item>
      <title>Veracode &amp; AzDevOps: Trabalhando com Task Groups</title>
      <dc:creator>Ivo Dias</dc:creator>
      <pubDate>Thu, 01 Feb 2024 18:32:09 +0000</pubDate>
      <link>https://dev.to/m3corp/veracode-azdevops-trabalhando-com-task-groups-17ga</link>
      <guid>https://dev.to/m3corp/veracode-azdevops-trabalhando-com-task-groups-17ga</guid>
      <description>&lt;p&gt;O recurso de Task Groups pode ser muito útil para agilizar implementações. Nossa ideia com esse artigo é trabalhar com dois já prontos, para os cenários onde temos Frontends em JavaScript e Backends em .NET. &lt;br&gt;
Sempre recomendamos a leitura do &lt;a href="https://docs.veracode.com/r/c_comp_quickref"&gt;guia de empacotamento&lt;/a&gt; e do nosso &lt;a href="https://github.com/M3Corp-Community/Veracode"&gt;GitHub com exemplos&lt;/a&gt;, para otimizar o processo e modifica-lo caso tenha uma necessidade diferente da que temos nesse exemplo. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Importando os TGs&lt;/strong&gt;&lt;br&gt;
Em nosso REPO, já temos os dois modelos que vamos utilizar prontos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;.NET (&lt;a href="https://github.com/M3Corp-Community/Veracode/blob/main/Pipelines/Az%20DevOps/Task%20Group/Veracode%20-%20DotNet%20-%20Filter%20-%20Wrapper.json"&gt;PRD&lt;/a&gt;/&lt;a href="https://github.com/M3Corp-Community/Veracode/blob/main/Pipelines/Az%20DevOps/Task%20Group/Veracode%20-%20DotNet%20-%20Filter%20-%20Wrapper%20-%20SB.json"&gt;SB&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;JS   (&lt;a href="https://github.com/M3Corp-Community/Veracode/blob/main/Pipelines/Az%20DevOps/Task%20Group/Veracode%20-%20Not%20Compiled%20-%20Filter%20-%20Wrapper.json"&gt;PRD&lt;/a&gt;/&lt;a href="https://github.com/M3Corp-Community/Veracode/blob/main/Pipelines/Az%20DevOps/Task%20Group/Veracode%20-%20Not%20Compiled%20-%20Filter%20-%20Wrapper%20-%20SB.json"&gt;SB&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O fluxo deles vai ser bem parecido:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Criar o pacote dos arquivos para analise &lt;/li&gt;
&lt;li&gt;Iniciar o scan com o Wrapper&lt;/li&gt;
&lt;li&gt;Fazer a analise SCA e retornar os resultados para o Pipeline&lt;/li&gt;
&lt;li&gt;Fazer a analise SAST e retornar os resultados para o Pipeline&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A principal diferença é que no caso do .NET vamos empacotar apenas as DLLs e PDBs, conforme o &lt;a href="https://docs.veracode.com/r/c_comp_quickref"&gt;guia de empacotamento&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Um outro ponto principal é que vamos ter as versões PRD e SB:&lt;br&gt;
&lt;strong&gt;PRD&lt;/strong&gt; -&amp;gt; Usamos sempre que é o scan do que vai subir para produção&lt;br&gt;
&lt;strong&gt;SB&lt;/strong&gt;  -&amp;gt; Para todos os outros casos&lt;/p&gt;

&lt;p&gt;Por exemplo, caso eu tenha três ambientes (DEV, HML e PRD) organizados em pipelines distintos, eu vou utilizar o TG de PRD para o respectivo e o SB para DEV e HML. Com isso, nossos resultados na plataforma vão ficar organizados. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parâmetros dos TGs&lt;/strong&gt;&lt;br&gt;
Nos dois modelos de TGs, vamos ter em comum as seguintes variáveis:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;caminhoPacote&lt;/strong&gt; -&amp;gt; Caminho do pacote criado para a analise&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;veracodeAppProfile&lt;/strong&gt; -&amp;gt; Nome do projeto&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VeracodeID&lt;/strong&gt; -&amp;gt; &lt;a href="https://dev.to/m3corp/credenciais-da-veracode-340m"&gt;Credencial da Veracode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VeracodeKey&lt;/strong&gt; -&amp;gt; &lt;a href="https://dev.to/m3corp/credenciais-da-veracode-340m"&gt;Credencial da Veracode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VeracodeSCA&lt;/strong&gt; -&amp;gt; &lt;a href="https://dev.to/m3corp/credenciais-do-veracode-sca-ijh"&gt;Credencial do SCA&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para os TGs de Sandbox (SB), vamos ter uma extra:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;nomeAmbiente&lt;/strong&gt; -&amp;gt; Onde colocamos o nome do ambiente (DEV, QA, HML..)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Você pode deixar as variáveis já definidas no próprio TG (por padrão a de &lt;strong&gt;caminhoPacote&lt;/strong&gt; já vem) ou gerar um grupo de variáveis para alimenta-las.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como utilizar?&lt;/strong&gt;&lt;br&gt;
Importe os TGs para o seu ambiente do Azure conforme a &lt;a href="https://learn.microsoft.com/pt-br/azure/devops/pipelines/library/task-groups?view=azure-devops"&gt;documentação da Microsoft&lt;/a&gt;, depois em seu pipeline, busque por ele como se fosse uma Task.&lt;/p&gt;

&lt;p&gt;Esses TGs de modelo foram criados para Linux/Mac, mas é possível utiliza-los em Windows com pequenas modificações.&lt;/p&gt;

</description>
      <category>veracode</category>
      <category>azure</category>
      <category>security</category>
      <category>devops</category>
    </item>
    <item>
      <title>Cultura DevOps</title>
      <dc:creator>SE Team</dc:creator>
      <pubDate>Thu, 01 Feb 2024 18:30:22 +0000</pubDate>
      <link>https://dev.to/m3corp/cultura-devops-365o</link>
      <guid>https://dev.to/m3corp/cultura-devops-365o</guid>
      <description>&lt;p&gt;A cultura DevOps é uma abordagem colaborativa que visa integrar as equipes de desenvolvimento (Dev) e operações (Ops), promovendo a automação, comunicação eficaz e responsabilidade compartilhada. O objetivo é melhorar a eficiência, acelerar o ciclo de vida do desenvolvimento e garantir a entrega de software de alta qualidade. Aqui estão os principais pontos para aprender sobre a cultura DevOps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Colaboração:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Princípio:&lt;/em&gt; Promover a colaboração entre equipes de desenvolvimento, operações e outras partes interessadas.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automação:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Princípio:&lt;/em&gt; Automatizar processos para acelerar a entrega, reduzir erros e melhorar a consistência.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Entrega Contínua:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Princípio:&lt;/em&gt; Implementar práticas que permitam a entrega de software de forma rápida, segura e sustentável.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Infraestrutura como Código (IaC):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Princípio:&lt;/em&gt; Codificar a infraestrutura para garantir consistência, rastreabilidade e facilidade de gerenciamento.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Monitoramento e Feedback:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Princípio:&lt;/em&gt; Implementar monitoramento contínuo para obter feedback rápido sobre o desempenho do sistema e identificar problemas rapidamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Responsabilidade Compartilhada:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Princípio:&lt;/em&gt; Todos os membros da equipe têm responsabilidade pela qualidade e segurança do software em todas as fases do desenvolvimento.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ciclo de Melhoria Contínua:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Princípio:&lt;/em&gt; Buscar constantemente melhorias nos processos, ferramentas e colaboração para otimizar o desempenho.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Principais Pontos para Aprender em DevOps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automação de CI/CD:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Aprender:&lt;/em&gt; Ferramentas como Azure DevOps, GitLab CI, ou GitHub Actions para automatizar a integração contínua e entrega contínua.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ferramentas de Controle de Versão:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Aprender:&lt;/em&gt; Git para gerenciamento eficaz de versões e colaboração.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Monitoramento e Logging:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Aprender:&lt;/em&gt; Ferramentas como Prometheus, ELK Stack (Elasticsearch, Logstash, Kibana) para monitoramento e análise de logs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Infraestrutura como Código (IaC):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Aprender:&lt;/em&gt; Ferramentas como Terraform, Ansible ou Chef para automatizar a configuração da infraestrutura.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cultura de Segurança:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Aprender:&lt;/em&gt; Integrar práticas de segurança desde o início do ciclo de vida do desenvolvimento (DevSecOps).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Colaboração e Comunicação:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Aprender:&lt;/em&gt; Ferramentas de comunicação como Slack e práticas de colaboração eficazes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ciclo de Vida do Desenvolvimento:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Aprender:&lt;/em&gt; Compreender e participar de todo o ciclo de vida do desenvolvimento, desde a concepção até a entrega.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cultura de Feedback:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Aprender:&lt;/em&gt; Estabelecer uma cultura que valorize o feedback construtivo e utilize métricas para melhorar continuamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Habilidades Técnicas e Multidisciplinares:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Aprender:&lt;/em&gt; Desenvolver habilidades técnicas, mas também cultivar uma compreensão abrangente de todo o ecossistema de desenvolvimento e operações.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A cultura DevOps é uma abordagem holística que transcende ferramentas e se concentra na colaboração e na melhoria contínua. A aplicação prática desses princípios e a familiaridade com ferramentas relevantes são essenciais para o sucesso na implementação de práticas DevOps.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>career</category>
    </item>
    <item>
      <title>Como corrigir vulnerabilidades de software automaticamente com o Veracode Fix</title>
      <dc:creator>Lucas Santos Ferreira</dc:creator>
      <pubDate>Thu, 30 Nov 2023 19:51:15 +0000</pubDate>
      <link>https://dev.to/m3corp/como-corrigir-vulnerabilidades-de-software-automaticamente-com-o-veracode-fix-1b7p</link>
      <guid>https://dev.to/m3corp/como-corrigir-vulnerabilidades-de-software-automaticamente-com-o-veracode-fix-1b7p</guid>
      <description>&lt;p&gt;O tutorial a seguir tem por objetivo mostrar como realizar o scan e a correção automática de vulnerabilidades utilizando o Veracode FIX&lt;/p&gt;




&lt;h3&gt;
  
  
  LINGUAGENS E VULNERABILIDADES SUPORTADAS
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;JAVA: &lt;a href="https://docs.veracode.com/r/veracode_fix"&gt;https://docs.veracode.com/r/veracode_fix&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;C# &lt;a href="https://docs.veracode.com/r/veracode_fix"&gt;https://docs.veracode.com/r/veracode_fix&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;JS/TS &lt;a href="https://docs.veracode.com/r/veracode_fix#javascript-and-typescript"&gt;https://docs.veracode.com/r/veracode_fix#javascript-and-typescript&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h4&gt;
  
  
  CONFIGURAR AS CREDENCIAIS API NA ESTAÇÃO DE TRABALHO
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Windows&lt;br&gt;
&lt;a href="https://docs.veracode.com/r/t_configure_credentials_windows"&gt;https://docs.veracode.com/r/t_configure_credentials_windows&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Linux/Mac&lt;br&gt;
&lt;a href="https://docs.veracode.com/r/t_configure_credentials_mac"&gt;https://docs.veracode.com/r/t_configure_credentials_mac&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h4&gt;
  
  
  IMPORTANTE!
&lt;/h4&gt;

&lt;p&gt;seguir as orientações de empacotamento da Veracode para realização do scan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Geral:
&lt;a href="https://docs.veracode.com/r/compilation_packaging"&gt;https://docs.veracode.com/r/compilation_packaging&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Java:
&lt;a href="https://docs.veracode.com/r/compilation_java"&gt;https://docs.veracode.com/r/compilation_java&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;JavaScript / TypeScript:
&lt;a href="https://docs.veracode.com/r/compilation_jscript"&gt;https://docs.veracode.com/r/compilation_jscript&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;C# / .NET:
&lt;a href="https://docs.veracode.com/r/compilation_net"&gt;https://docs.veracode.com/r/compilation_net&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;1.  Para aplicações Java, realizar a compilação para gerar o (.war ou .jar ou .ear)&lt;/code&gt;&lt;br&gt;
&lt;code&gt;2. Para .NET, executar o build, e criar um zip a pasta com as DLLs e pdb files&lt;/code&gt;&lt;br&gt;
&lt;code&gt;3. Para JavaScript e TypeScript, criar um zip a pasta com os arquivos de código da aplicação&lt;/code&gt;&lt;/p&gt;


&lt;h4&gt;
  
  
  BAIXAR O VERACODE CLI PARA UTILIZAR O FIX
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Mac/Linux/Windows com WSL
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -fsS https://tools.veracode.com/veracode-cli/install | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Deixar o binário executavel
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod +x veracode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Rodar o comando abaixo para configurar a CLI e indicar as credenciais API (as mesmas utilizadas no arquivo de credenciais configurado no passo 1)
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./veracode configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Quando for perguntado pelo apiID e apiKEY, inserir suas credenciais de API, conforme abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Configuring credentials for the Veracode CLI ...
API ID [Your Veracode API ID]
API Secret Key [Your Veracode Secret Key]  
Validated API credentials successfully.
Wrote configuration to /$HOME/.veracode/veracode.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h4&gt;
  
  
  EXECUTAR A CLI PARA FAZER O STATIC SCAN
&lt;/h4&gt;

&lt;p&gt;Iremos primeiramente realizar um scan SAST em nosso app para armazenar os resultados de vulnerabilidades que serão utilizados posteriormente nas correções&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./veracode static scan &amp;lt;&amp;lt;caminho da sua aplicação empacotada/compilada&amp;gt;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplo usando Java:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./veracode static scan app.war
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplo usando C#/.NET ou JavaScript/Typescript:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./veracode static scan app.zip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após isso, o scanner irá salvar os resultados dentro do &lt;strong&gt;results.json&lt;/strong&gt;&lt;/p&gt;




&lt;h4&gt;
  
  
  EXECUTAR A CLI PARA FAZER O FIX
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Após executar o scan, iremos avaliar em qual(ais) arquivos vulneráveis da app iremos iniciar as correções&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Para iniciar a correção, basta executar o comando com a sintaxe:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;veracode fix --results &amp;lt;&amp;lt;local onde está o results.json gerado no static scan&amp;gt;&amp;gt; &amp;lt;&amp;lt;caminho exato do arquivo da app que iremos fazer as correções&amp;gt;&amp;gt;&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./veracode fix --results verademo/docs/scan_results/results.json verademo/app/src/main/java/com/veracode/verademo/commands/IgnoreCommand.java
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Após terminar, basta analisar qual vulnerabilidade você irá começar a corrigir,  passar a ele o "ISSUEID" indicado na tela, como 1010 ou 1020, etc... e, aguardar a consulta na base de inteligência interna da Veracode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Após isso, irá surgir as sugestões de correção no código fonte, onde você poderá analisar e escolher qual será aplicada em seu código&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Mais informações:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.veracode.com/fix"&gt;https://www.veracode.com/fix&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.veracode.com/r/veracode_fix"&gt;https://docs.veracode.com/r/veracode_fix&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.veracode.com/r/Fix_Quickstart"&gt;https://docs.veracode.com/r/Fix_Quickstart&lt;/a&gt;&lt;/p&gt;

</description>
      <category>veracode</category>
      <category>fix</category>
      <category>vulnerabilities</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>Credenciais do Veracode SCA</title>
      <dc:creator>Ivo Dias</dc:creator>
      <pubDate>Mon, 27 Nov 2023 20:59:26 +0000</pubDate>
      <link>https://dev.to/m3corp/credenciais-do-veracode-sca-ijh</link>
      <guid>https://dev.to/m3corp/credenciais-do-veracode-sca-ijh</guid>
      <description>&lt;p&gt;Na tela inicial do &lt;a href="https://web.analysiscenter.veracode.com/login"&gt;portal da Veracode&lt;/a&gt;, vamos na seção "&lt;strong&gt;Scans &amp;amp; Analysis&lt;/strong&gt;" e selecionamos "&lt;strong&gt;Software Composition Analysis&lt;/strong&gt;":&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WEh7hNma--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ay8ivbsvrrxh72rdkjqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WEh7hNma--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ay8ivbsvrrxh72rdkjqu.png" alt="" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nessa nova tela, selecionamos a aba "&lt;strong&gt;Agent-Based Scan&lt;/strong&gt;", clicamos no botão "&lt;strong&gt;Actions&lt;/strong&gt;" e selecionamos "&lt;strong&gt;Create Workspace&lt;/strong&gt;":&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G7QbVeUJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bj54npnbalg35zksm5kd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G7QbVeUJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bj54npnbalg35zksm5kd.png" alt="Image description" width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Informamos um nome para esse ambiente e caso seja necessário vincular ele a um time, após digitar o nome clicamos em "&lt;strong&gt;More Options&lt;/strong&gt;" e informamos o time, caso não seja necessário apenas clicamos em "&lt;strong&gt;Create&lt;/strong&gt;".&lt;/p&gt;

&lt;p&gt;A tela de configuração do agente vai ser aberta, nela podemos seguir guias específicos sobre como gerar e configurar o agente em varias ferramentas e sistemas. Como nosso objetivo é apenas pegar a credencial para utilizar a solução, podemos clicar em qualquer um, mas recomendo para agilizar que clique em "&lt;strong&gt;Jenkins / Hudson&lt;/strong&gt;" e depois em "Create Agent &amp;amp; Generate Token":&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RwqTHHzV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j564ij9ldbjazxyxx3ls.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RwqTHHzV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j564ij9ldbjazxyxx3ls.png" alt="" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conforme as orientações que vemos na tela, para autenticar com esse valor vamos precisar adiciona-lo a uma variável chamada &lt;strong&gt;SRCCLR_API_TOKEN&lt;/strong&gt; independente de qual seja a ferramenta que vai implementar. &lt;/p&gt;

</description>
      <category>veracode</category>
      <category>devsec</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Como configurar as CLIs da Veracode em seu workstation usando docker</title>
      <dc:creator>Lucas Santos Ferreira</dc:creator>
      <pubDate>Tue, 08 Aug 2023 17:38:15 +0000</pubDate>
      <link>https://dev.to/m3corp/como-configurar-as-clis-da-veracode-em-seu-workstation-usando-docker-2f0m</link>
      <guid>https://dev.to/m3corp/como-configurar-as-clis-da-veracode-em-seu-workstation-usando-docker-2f0m</guid>
      <description>&lt;p&gt;É inegável que saber utilizar CLIs é importante no dia a dia de um profissional de tecnologia, pois elas podem trazer diversas possibilidades de interações e automações, além de nos ajudar a ganhar produtividade.&lt;/p&gt;

&lt;p&gt;Nesse artigo, iremos mostrar como configurar e utilizar as CLI e API wrappers da Veracode em seu workstation para te ajudar a ganhar produtividade, dar a possibilidade de criar scripts e automações de forma mais simples.&lt;/p&gt;




&lt;h4&gt;
  
  
  Pré requisitos
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1 - Sistema operacional Linux
2 - Caso utilize o Windows, poderá adaptar para o WSL
3 - Docker
4 - Conta de acesso à Veracode
5 - Credenciais API configuradas em no arquivo credentials 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Criar credenciais API
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;Faça login na Plataforma Veracode [&lt;a href="https://analysiscenter.veracode.com/"&gt;https://analysiscenter.veracode.com/&lt;/a&gt;].&lt;/li&gt;
&lt;li&gt;No menu esquerdo clique em API Credentiais.&lt;/li&gt;
&lt;li&gt;Clique em Gerar credenciais de API.&lt;/li&gt;
&lt;li&gt;Copie o ID e a chave secreta para um local seguro.&lt;/li&gt;
&lt;/ol&gt;


&lt;h4&gt;
  
  
  Configurar credenciais API
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Na linha de comando, navegue até a pasta do seu nome de usuário $HOME.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd $HOME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Execute este comando para criar a pasta .veracode
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ mkdir .veracode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Navegue até a pasta .veracode
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ cd .veracode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Execute este comando de toque para criar o arquivo de credenciais
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ touch credentials
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Abra o arquivo credentials com algum editor de texto&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copie este texto e cole-o no arquivo de credenciais&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[default]
veracode_api_key_id = Your API ID
veracode_api_key_secret = Your API key                
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Substitua os valores pelas credenciais da API Veracode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Salve o arquivo de credenciais.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Opcionalmente, você pode executar o seguinte comando para restringir o acesso ao arquivo de credenciais&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod 600 ~/.veracode/credentials
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Download e configuração das CLIs
&lt;/h4&gt;

&lt;p&gt;Nesse ponto, iremos utilizar as imagens Docker da Veracode disponíveis em &lt;/p&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;a href="https://hub.docker.com/u/veracode" rel="noopener noreferrer"&gt;
      hub.docker.com
    &lt;/a&gt;
&lt;/div&gt;



&lt;p&gt;Com algum editor de texto, abra o arquivo .bashrc que carrega configurações do usuário a cada vez que o sistema inicializa, exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vim  ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No fim do arquivo, dê alguns espaços e adicione os seguintes comandos para configurar as chamadas dos CLIs pelo terminal&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pipeline scan
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias 'veracode-pipeline-scan'='docker run -it --rm -v $PWD:/home/luser -v ~/.veracode/credentials:/home/luser/.veracode/credentials veracode/pipeline-scan:cmd'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;api-wrapper-java usado para SAST upload and scan, bem como todas as interações com as APIs XML da Veracode
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias 'veracode-api-wrapper'='docker run -it --rm -v $PWD:/home/luser -v ~/.veracode/credentials:/home/luser/.veracode/credentials veracode/api-wrapper-java:cmd'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;api-signing para interação com as REST API da Veracode
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias 'veracode-http'='docker run -it --rm -v $PWD:/home/luser -v ~/.veracode/credentials:/home/luser/.veracode/credentials veracode/api-signing:cmd'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Após isso, executar o comando abaixo
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;source ~/.brashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E depois sair da sessão do terminal, ou reiniciar o sistema. &lt;/p&gt;

&lt;p&gt;Agora quando abrir um terminal CMD, poderá então utilizar sempre as versões mais atualizadas da CLI e API wrappers de forma mais fácil.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z1BhzXlq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/49tqaqqwjuo17xdmwr87.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z1BhzXlq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/49tqaqqwjuo17xdmwr87.png" alt="Image description" width="800" height="189"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4Hw9GtwC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4eps1vwljbnwk801wsqs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4Hw9GtwC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4eps1vwljbnwk801wsqs.png" alt="Image description" width="800" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EiNAxxWN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gb4ck5sujr89yartvah0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EiNAxxWN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gb4ck5sujr89yartvah0.png" alt="Image description" width="800" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Observação: Na primeira vez que executar os comandos, as imagens docker serão baixadas para sua máquina antes de serem executadas de fato&lt;/em&gt;&lt;/p&gt;

</description>
      <category>veracode</category>
      <category>tutorial</category>
      <category>productivity</category>
      <category>docker</category>
    </item>
    <item>
      <title>Como utilizar as imagens docker da Veracode para automatizar as integrações SAST</title>
      <dc:creator>Lucas Santos Ferreira</dc:creator>
      <pubDate>Thu, 27 Jul 2023 18:25:52 +0000</pubDate>
      <link>https://dev.to/m3corp/como-utilizar-as-imagens-docker-da-veracode-para-automatizar-as-integracoes-sast-4j0n</link>
      <guid>https://dev.to/m3corp/como-utilizar-as-imagens-docker-da-veracode-para-automatizar-as-integracoes-sast-4j0n</guid>
      <description>&lt;p&gt;No mundo de DevOps temos o Docker engine como um grande auxiliador dentro das etapas de desenvolvimento para testes, build, homologação e etc.&lt;/p&gt;

&lt;p&gt;Dentro de um pipeline CI/CD, alguns players oferecem os recursos dos containers docker para facilitar os testes e automações, assim cada etapa como: job, task ou step, podem ser facilmente executadas sem a necessidade de se preocupar em instalar dependências e realizar configurações que consomem tempo.&lt;/p&gt;

&lt;p&gt;Nesse artigo, iremos entender um pouco sobre como podemos aplicar a estratégia de esteira DevSecOps utilizando imagens de container Docker para automatizar Scans SAST com a Veracode.&lt;/p&gt;




&lt;p&gt;Abaixo iremos utilizar como exemplo o Github Actions, mas isso poderia ser aplicado a qualquer outra ferramenta CI/CD adaptando o uso de acordo com a respectiva solução.&lt;/p&gt;




&lt;p&gt;As imagens oficiais Veracode podem ser encontradas diretamente no &lt;a href="https://hub.docker.com/u/veracode"&gt;Dockerhub Veracode&lt;/a&gt;. Elas são constantemente atualizadas e hardenizadas para garantir que tudo funcione da forma mais segura. Logo que um novo API Wrapper é lançado, automaticamente já será anexado a uma nova versão da imagem, garantindo que tenhamos os recursos mais atualizados já disponíveis.&lt;/p&gt;




&lt;p&gt;Exemplo abaixo será usado um exemplo de projeto em Django (PyGoat):&lt;/p&gt;

&lt;p&gt;&lt;code&gt;1. Etapa - SAST Policy Upload and Scan&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Veracode-SAST-Policy-Scan:
    runs-on: ubuntu-latest
    container:
      image: veracode/api-wrapper-java:latest
      options: --user root
    steps:
    - uses: actions/checkout@master

    - name: scan 
      run: |
          zip -r pygoat.zip . -i '*.py' '*.html' '*.js'
          java -jar /opt/veracode/api-wrapper.jar -vid "${{ secrets.VID }}" -vkey "${{ secrets.VKEY }}" -action UploadAndScan -createprofile false -appname "Pygoat-Showroom" -version "${{ github.run_id }}" -filepath pygoat.zip -scantimeout 20

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;No primeiro exemplo temos o SAST Policy Scan sendo executado a partir da imagem &lt;code&gt;veracode/api-wrapper-java:latest&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Por padrão a imagem roda com um usuário não privilegiado e, para executar todas ações necessárias, utilizamos o recurso de &lt;code&gt;--user root&lt;/code&gt; temporariamente&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Essa imagem já contém o CLI do ZIP instalado, assim evita que tenhamos que criar uma etapa anterior de ZIP ou Archive, salvar esse artefato com a aplicação dentro e executar em outro container para Upload and Scan ou até mesmo instalar o ZIP dentro a imagem utilizada&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No ZIP, estamos solicitando que seja incluso somente os arquivos referente à aplicação, assim o artefato terá seu tamanho otimizado e, também ignoramos outros arquivos que não fazem sentido para o scan SAST como: PDF, JPG, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Em seguida, executamos o API Wrapper com a action de &lt;code&gt;UploadAndScan&lt;/code&gt; para o SAST&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;2. Etapa - SAST Pipeline Scan&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   Veracode-SAST-Pipeline-Scan:
    runs-on: ubuntu-latest
    container:
      image: veracode/pipeline-scan:latest
      options: --user root
    steps:
      - name: checkout
        uses: actions/checkout@master

      - name: scan 
        run: |
          zip -r -v pygoat.zip . -i '*.py' '*.js' '*.html'  
          java -jar /opt/veracode/pipeline-scan.jar -vid "${{ secrets.VID }}" -vkey "${{ secrets.VKEY }}" -f pygoat.zip -p "PyGoat-Showroom" -pn "Veracode Recommended Medium"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;O Pipeline Scan também possui uma imagem Docker dedicada &lt;code&gt;veracode/pipeline-scan:latest&lt;/code&gt; onde o seu uso é praticamente igual a da Etapa - SAST Policy Upload and Scan&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Tanto a imagem &lt;code&gt;veracode/api-wrapper-java&lt;/code&gt; quanto &lt;code&gt;veracode/api-signing&lt;/code&gt; podem ser utilizadas para automatizar outras tarefas além do SAST, pois elas interagem diretamente sobre as APIs da Veracode, assim podemos por exemplo: criar usuários, times, download de relatórios, busca de informações e trigger para execução de uma análise Dinâmica (DAST).&lt;/p&gt;

</description>
      <category>security</category>
      <category>devsecops</category>
      <category>cybersecurity</category>
      <category>veracode</category>
    </item>
    <item>
      <title>Aplicando uma estratégia DevSecOps com Veracode e GitFlow</title>
      <dc:creator>Lucas Santos Ferreira</dc:creator>
      <pubDate>Mon, 24 Jul 2023 18:04:36 +0000</pubDate>
      <link>https://dev.to/m3corp/aplicando-uma-estrategia-devsecops-com-veracode-e-gitflow-3dd7</link>
      <guid>https://dev.to/m3corp/aplicando-uma-estrategia-devsecops-com-veracode-e-gitflow-3dd7</guid>
      <description>&lt;p&gt;Nesse artigo, iremos discutir de forma conceitual como podemos construir uma estratégia DevSecOps com as ferramentas da Veracode em um processo de Gitflow. &lt;/p&gt;

&lt;p&gt;Os exemplos a seguir não refletem em sua totalidade um ambiente real, pois cada organização adota um processo único que melhor se adequa a sua necessidade mas, os conceitos poderão ajudar no entendimento e aplicação de algo semelhante em seu ambiente.&lt;/p&gt;




&lt;p&gt;Recomendamos a leitura desses outros posts para entendimento das funcionalidades das ferramentas de segurança da Veracode caso ainda não conheça.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/m3corp/o-que-e-sast-5213"&gt;O que é SAST?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/m3corp/o-que-e-sca-2j29"&gt;O que é SCA?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/m3corp/os-diferentes-modos-de-se-realizar-sast-com-a-veracode-1e8a"&gt;Diferentes modos de se realizar SAST com a Veracode&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;Overview Gitflow&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;De forma básica, o Gitflow é uma estratégia de desenvolvimento que ajuda na organização do versionamento de código através de branches (ramificações). Ele é recomendado para casos onde possui a necessidade de oferecer suporte a várias versões do softwares e que também tenham várias pessoas trabalhando ("commitando") dentro do repositório. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;em&gt;Conceito do funcionamento&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;O Gitflow se apoia em duas branches principais: Master e Develop que são permanentes e que mantêm o histórico de versionamento, além de outras branches temporárias de apoio que serão baseadas em uma dessas principais como exemplo: Release, Feature e entre outras.&lt;/p&gt;

&lt;p&gt;Cada uma dessas branches possui uma função específica, exemplo: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Master branch&lt;/em&gt; -&amp;gt; como próprio nome diz, é a principal e armazena o código de produção. Em algum momento as novas funcionalidades estarão atreladas a ela e disponíveis para o público alvo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Develop branch&lt;/em&gt; -&amp;gt; possui os novos códigos com funcionalidades desenvolvidos pela equipe e que ainda não estão publicados em produção mas, logo poderão ser associadas à &lt;em&gt;Master branch&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Feature branch&lt;/em&gt; -&amp;gt; é uma ramificação que tem como base a &lt;em&gt;Develop branch&lt;/em&gt; e, é destinada para o desenvolvimento de funcionalidades específicas. Após a finalização, as modificações serão acopladas à &lt;em&gt;Develop&lt;/em&gt; e então sumirão.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Release&lt;/em&gt; -&amp;gt; serve como uma ponte da &lt;em&gt;Develop&lt;/em&gt; para &lt;em&gt;Master&lt;/em&gt;. Após a realização de testes dentro dessa branch, ocorre a "fusão" com a &lt;em&gt;Master&lt;/em&gt; e, caso ocorra alguma modificação, será sincronizada com a &lt;em&gt;Develop&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  &lt;em&gt;Como inserir segurança nesse fluxo de trabalho?&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;A imagem abaixo representa o exemplo simples de como podemos inserir análises de segurança durante o desenvolvimento utilizando um fluxo de trabalho já estebelecido.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tDFWb7yZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/olfyc6pjn16ki25nfn08.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tDFWb7yZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/olfyc6pjn16ki25nfn08.png" alt="Image description" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Feature branch&lt;/em&gt;&lt;br&gt;
Nessa branch, podemos aplicar o SAST + SCA para validar os &lt;br&gt;
novos códigos e bibliotecas que estão entrando na aplicação. &lt;br&gt;
Dessa forma a aplicação pode já ser construída de forma mais &lt;br&gt;
segura desde o início da codificação. Podemos fazer o uso dos &lt;br&gt;
plugins na IDE e da base dados de vulnerabilidades gerenciadas &lt;br&gt;
da Veracode para pesquisar o histórico de versões das &lt;br&gt;
bibliotecas mais seguras antes mesmo de importá-las para o &lt;br&gt;
projeto.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Develop branch&lt;/em&gt;&lt;br&gt;
Na branch develop, podemos aplicar uma estratégia muito &lt;br&gt;
interessante: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;SAST Sandbox Scan:&lt;/em&gt;&lt;/strong&gt; &lt;br&gt;
  para registrar as informações de forma gráfica na &lt;br&gt;
  Plataforma da branch develop e, verificar se alguma &lt;br&gt;
  vulnerabilidade presente nessa versão impactaria as &lt;br&gt;
  políticas de compliance e segurança do Policy Scan de forma &lt;br&gt;
  antecipada apoiando em uma tomada de decisão.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;SAST Pipeline Scan&lt;/em&gt;:&lt;/strong&gt;&lt;br&gt;
   rodando em paralelo com o Sandbox Scan, para ter um &lt;br&gt;
   feedback rápido (aproximadamente de 90 segundos) de quais &lt;br&gt;
   vulnerabilidades estão presentes na aplicação, quais &lt;br&gt;
   riscos associados e também com possibilidade de uma quebra &lt;br&gt;
   de build caso seja identificado um risco alto/grave ou que &lt;br&gt;
   não esteja de acordo com as políticas de compliance e &lt;br&gt;
   segurança. Também há a possibilidade de usarmos o Baseline &lt;br&gt;
   do Pipeline Scan para comparar os resultados SAST &lt;br&gt;
   anteriores com a versão mais recente da aplicação e &lt;br&gt;
   verificar se há nova(s) vulnerabilidades introduzidas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;SCA&lt;/em&gt;:&lt;/strong&gt; &lt;br&gt;
  para validar os possíveis riscos das bibliotecas externas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;DAST&lt;/em&gt;:&lt;/strong&gt; &lt;br&gt;
  caso tenha uma versão publicada dessa aplicação em ambiente &lt;br&gt;
  de desenvolvimento, podemos acionar uma trigger na esteira &lt;br&gt;
  para iniciar uma análise dinâmica com escopo bem fechado e &lt;br&gt;
  definido para analisar algumas partes da aplicação (Web ou &lt;br&gt;
  API).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Release branch&lt;/em&gt;&lt;br&gt;
Poderíamos repetir os mesmos passos da branch develop, mas agora o time de segurança juntamente a todos os envolvidos, poderiam realizar a gestão de riscos, analisar os relatórios anteriores e verificar se de fato a aplicação está apta para publicação, necessita criar alguma medida de mitigação ou até mesmo aplicar alguma correção para algo mais crítico. &lt;br&gt;
Nesse momento a ideia é que a aplicação já tenha sido validada pelas ferramentas diversas vezes (SAST + SCA + DAST) e as correções necessárias aplicadas previamente para que esteja pronta para ser lançada.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Master branch&lt;/em&gt;&lt;br&gt;
Agora temos a nova versão publicada onde diversas análises e verificações ocorreram durante o ciclo de desenvolvimento com maior garantia de que está mais segura contra ataques.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>gitflow</category>
      <category>devsecops</category>
      <category>development</category>
      <category>veracode</category>
    </item>
    <item>
      <title>Criando uma pergunta personalizada</title>
      <dc:creator>Ivo Dias</dc:creator>
      <pubDate>Wed, 05 Jul 2023 13:57:00 +0000</pubDate>
      <link>https://dev.to/m3corp/criando-uma-pergunta-personalizada-58kc</link>
      <guid>https://dev.to/m3corp/criando-uma-pergunta-personalizada-58kc</guid>
      <description>&lt;p&gt;Mesmo com a imensa biblioteca que já vem por padrão na ferramenta, e que está sendo constantemente atualizada, pode ser necessário criar uma pergunta personalizada para alguma necessidade especifica do seu projeto. &lt;/p&gt;

&lt;p&gt;As perguntas fazem parte da pesquisa, ou Survey, que gera os pontos de atenção do nosso projeto. Com a criação das personalizadas, consegue otimizar o poder da ferramenta da Security Compass.&lt;/p&gt;

&lt;p&gt;Para fazer isso, na barra superior clique em &lt;strong&gt;Library&lt;/strong&gt; e depois em &lt;strong&gt;Project Survey&lt;/strong&gt; e clique no botão &lt;strong&gt;+Add Section&lt;/strong&gt; no canto superior direito. Caso queria adicionar a uma seção já existente, selecione-a em vez de criar uma nova.&lt;/p&gt;

&lt;p&gt;Depois clique em &lt;strong&gt;+Add SubSection&lt;/strong&gt;, definindo um nome para essa sub seção e depois em &lt;strong&gt;+Add Question&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Responda o formulário para criar sua pergunta personalizada. &lt;br&gt;
Para mais detalhes, pode saber tudo sobre as pesquisas clicando &lt;a href="https://docs.sdelements.com/release/2023.1/guide/docs/customization/library/project_settings.html#_question_details"&gt;aqui&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>sdelements</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>security</category>
    </item>
  </channel>
</rss>
