Skip to main content

Aprimore a segurança da conformidade com PCI usando SAST e SCA

Escrito por
Headshot of DeveloperSteve Coochin

DeveloperSteve Coochin

blog feature snyk open source blue

8 de fevereiro de 2022

0 minutos de leitura

O Padrão de Segurança de Dados da Indústria de Cartões de Pagamento, também conhecido como PCI DSS, é um processo abrangente que avalia os sistemas e as políticas de uma empresa para o manuseio e o armazenamento de dados confidenciais de titulares de cartões.

O PCI DSS é muito importante para o setor de pagamentos. Ele ajuda a garantir que os dados dos usuários finais sejam mantidos em segurança. A manutenção e a governança do padrão ficam a cargo do PCI Security Standards Council, que também define aspectos como os requisitos que fornecedores de certificação precisam atender para obter a certificação PCI DSS. Atualmente, com algumas exceções, Mastercard e Visa exigem que comerciantes e prestadores de serviços estejam em conformidade com o PCI DSS. Em caso de violação, se a entidade afetada não estava em conformidade com o PCI DSS quando o incidente ocorreu, ela estará sujeita a penalidades adicionais, como multas.

Essas verificações são fundamentais não só para o setor de pagamentos como um todo, mas também para criar uma relação de confiança com os usuários, que sabem que seus dados estão protegidos. O processo de conformidade com PCI consiste em uma série de verificações, geralmente realizadas por terceiros credenciados, para garantir que os processos de tratamento seguro de dados estejam em vigor.

Neste artigo, vamos nos aprofundar nos requisitos do PCI DSS e ver como as ferramentas de teste de segurança estática de aplicações (SAST) e de análise de composição de software (SCA) podem ajudar você a atendê-los com mais facilidade. Também vamos mostrar como usar a Snyk para atender às suas necessidades de SAST e SCA para o PCI DSS. Vamos lá!

Requisitos de conformidade com PCI

O PCI DSS tem 12 requisitos para criar e manter uma rede e sistemas seguros. Eles abrangem aspectos como o acesso a dados confidenciais de titulares de cartões, sistemas internos e infraestrutura de aplicações, além do desenvolvimento e da manutenção de sistemas e aplicações seguros.

Confira a lista completa de requisitos, em linhas gerais:

  1. Instalar e manter uma configuração de firewall para proteger os dados dos titulares de cartões. O firewall verifica todo o tráfego de rede e impede que redes não confiáveis acessem o sistema.

  2. Alterar as senhas padrão dos sistemas e outros parâmetros de segurança fornecidos pelos fornecedores. Senhas padrão são facilmente descobertas por meio de informações públicas e podem ser usadas por pessoas mal-intencionadas para obter acesso não autorizado aos sistemas.

  3. Proteger os dados armazenados dos titulares de cartões. Criptografia, hashing, mascaramento e truncamento são métodos usados para proteger esses dados.

  4. Criptografar a transmissão de dados de titulares de cartões em redes públicas e abertas. Uma criptografia robusta, que use apenas chaves e certificados confiáveis, reduz o risco de ataques de pessoas mal-intencionadas.

  5. Proteger todos os sistemas contra malware e atualizar regularmente o software antivírus. O malware pode entrar em uma rede de várias formas, incluindo pelo uso da internet, e-mails de funcionários, dispositivos móveis ou dispositivos de armazenamento. Manter o software antivírus atualizado ou usar uma solução antimalware complementar reduz o risco de exploração por malware.

  6. Desenvolver e manter sistemas e aplicações seguros. Vulnerabilidades em sistemas e aplicações permitem que pessoas mal-intencionadas obtenham acesso privilegiado. Os patches de segurança devem ser instalados imediatamente para corrigir vulnerabilidades e evitar a exploração e o comprometimento dos dados dos titulares de cartões.

  7. Restringir o acesso aos dados dos titulares de cartões somente a pessoas autorizadas. Sistemas e processos devem limitar esse acesso com base no princípio da necessidade de conhecimento.

  8. Identificar e autenticar o acesso aos componentes do sistema. Cada pessoa com acesso a esses componentes deve receber um identificador (ID) exclusivo que permita responsabilizá-la pelo acesso a sistemas de dados críticos.

  9. Restringir o acesso físico aos dados dos titulares de cartões. O acesso físico a esses dados ou aos sistemas que os armazenam deve ser protegido para evitar o acesso não autorizado ou a remoção de dados.

  10. Rastrear e monitorar todo o acesso aos dados dos titulares de cartões e aos recursos de rede. É necessário implementar mecanismos de registro para acompanhar as atividades dos usuários, algo fundamental para prevenir, detectar ou minimizar o impacto de violações de dados.

  11. Testar regularmente os sistemas e processos de segurança. Novas vulnerabilidades são descobertas continuamente. Sistemas, processos e softwares precisam ser testados com frequência para identificar vulnerabilidades que possam ser exploradas por pessoas mal-intencionadas.

  12. Manter uma política de segurança da informação para todo o pessoal. Uma política de segurança robusta inclui conscientizar as pessoas sobre a confidencialidade dos dados e sua responsabilidade de protegê-los.

A lista completa de requisitos de conformidade, disponível no site do PCI Security Standards Council, é bem mais detalhada. Por exemplo, o requisito 6, sobre o desenvolvimento e a manutenção de sistemas seguros, abrange tipos específicos de vulnerabilidade, como:

  • Cross Site Scripting (XSS)

  • Falhas de injeção (SQL Injection)

  • Estouro de buffer

  • Armazenamento criptográfico inseguro

  • Comunicações inseguras

  • Tratamento inadequado de erros

  • Controle de acesso inadequado

  • Falsificação de solicitação entre sites (CSRF)

  • Falhas de autenticação e gerenciamento de sessão.

Se você usa a Snyk, todos esses problemas de segurança podem ser encontrados e corrigidos automaticamente com facilidade nos fluxos de trabalho e pipelines que sua equipe utiliza.

Como Snyk Code e Snyk Open Source podem ajudar

Para demonstrar a conformidade com PCI na prática, vamos usar a Snyk para proteger o PrestaShop, uma plataforma de comércio eletrônico de código aberto do ecossistema PHP. A Snyk oferece várias maneiras de encontrar e corrigir vulnerabilidades. Neste exemplo, vamos usar a Snyk CLI para verificar vulnerabilidades nas dependências e, em seguida, o PHPStorm com o plugin da Snyk para analisar o código.

Para acompanhar o exemplo abaixo, você precisa ter o Git, o PHP e o gerenciador de dependências Composer instalados.

Página inicial de e-commerce com banner promocional, menu de navegação, barra de pesquisa e produtos populares, incluindo roupas e quadros com gravuras

Comece a usar

Para acompanhar, você precisa criar uma conta gratuita na Snyk. Você pode começar em poucos minutos — sem precisar de cartão de crédito!

Em seguida, você precisa instalar a Snyk CLI localmente. O melhor da Snyk CLI é que há uma única instalação para toda a plataforma. Assim, você pode usá-la para analisar seu código, dependências, contêineres e IaC. Para começar rapidamente, consulte nossa cola da Snyk CLI.

Depois, clone o repositório do PrestaShop (na versão 1.7.8.3 na data de publicação deste artigo) para seu ambiente local:

git clone https://github.com/PrestaShop/PrestaShop.git

Com o PHP Composer instalado, execute:

composer update

Analise vulnerabilidades de código aberto

Primeiro, vamos verificar se há vulnerabilidades de código aberto no manifesto do Composer. Para isso, no diretório raiz do repositório clonado, execute:

snyk test

Neste caso, são encontrados 8 problemas e 11 caminhos vulneráveis, além de algumas sugestões de correção.

Análise do terminal mostrando vulnerabilidades de alta e crítica gravidade em dependências PHP, incluindo problemas de travessia de diretórios e execução remota de código

Diante dessas vulnerabilidades, parece que basta atualizar as bibliotecas para versões que já incluam as correções. Felizmente, a Snyk não só identifica caminhos vulneráveis, como também corrige problemas por meio de uma solicitação de pull automática no repositório conectado.

Para saber mais sobre como conectar um repositório, consulte a documentação de integrações com repositórios Git.

Analise vulnerabilidades no seu código

Agora que você viu a Snyk CLI em ação, vamos testar se há vulnerabilidades na base de código usando o PHPStorm com o plugin da Snyk.

A ferramenta verifica cada arquivo de linguagem de programação do projeto em busca de possíveis vulnerabilidades. No nosso exemplo, ela encontra 252 possíveis vulnerabilidades (99 [high], 131 [medium], 22 [low]) no código, que precisam ser investigadas.

Verificação de segurança do Snyk Code em um IDE, exibindo vulnerabilidades de cross-site scripting (XSS) em arquivos PHP

Para corrigir essas vulnerabilidades, posso analisar os trechos de código destacados na verificação, investigar mais a fundo e documentar minhas descobertas e correções. Usar o PHPStorm com o plugin da Snyk facilita esse processo, pois posso navegar por cada arquivo e investigar o código em detalhes.

O plugin da Snyk para PHPStorm também permite rastrear cada função em um arquivo e mostra exemplos de correções usadas em outros projetos que apresentaram o mesmo tipo de problema.

Interface de análise de segurança mostrando vulnerabilidades no código e uma correção destacada para cross-site scripting em código PHP

Mantenha a conformidade com PCI

Para desenvolvedores, CTOs e CISOs, passar pelo processo de conformidade com o PCI DSS não precisa ser uma tarefa árdua, desde que haja processos e ferramentas para simplificá-lo. Conhecer os requisitos e contar com as ferramentas e os processos necessários para manter a conformidade é fundamental. E, para quem desenvolve, documentar o código é uma parte essencial dos requisitos do PCI e uma boa forma de registrar alterações e observações para quem trabalhar no código no futuro.

Como você viu, a Snyk pode ajudar a simplificar o processo de conformidade com o PCI DSS. Melhor ainda: é fácil integrar as verificações da Snyk aos pipelines de CI/CD e de código, o que ajuda a automatizar e documentar problemas contínuos. Crie uma conta gratuita e facilite a manutenção da conformidade.

Proteja seu código com inteligência de ponta

Conheça toda a gama de recursos de análise estática (SAST) do Snyk Code em apenas 30 minutos.