Analise seu repositório GitHub conectado ou o projeto do Azure DevOps

Você pode configurar o Microsoft Security DevOps para verificar seu repositório GitHub conectado ou projeto do Azure DevOps. Use uma ação do GitHub ou uma extensão do Azure DevOps para executar o Microsoft Security DevOps somente no código-fonte da Infraestrutura como Código (IaC) e ajudar a reduzir o tempo de execução do pipeline.

Este artigo mostra como aplicar um arquivo de configuração YAML de modelo para verificar seu repositório conectado ou projeto especificamente para problemas de segurança do IaC usando as regras do Microsoft Security DevOps.

Pré-requisitos

  • Para o Microsoft Security DevOps, configure a ação GitHub ou a extensão Azure DevOps com base no seu sistema de gerenciamento de código-fonte:
    • Se o repositório estiver no GitHub, configure a ação do GitHub do Microsoft Security DevOps.
    • Se você gerenciar seu código-fonte no Azure DevOps, configure a extensão Microsoft Security DevOps Azure DevOps.
  • Certifique-se de ter um modelo de IaC em seu repositório.

Configurar e executar uma ação do GitHub para verificar o código-fonte do IaC conectado

Para configurar uma ação e visualizar os resultados da verificação no GitHub:

  1. Iniciar sessão no GitHub.

  2. Vá para a página principal do seu repositório.

  3. No diretório de arquivos, selecione Fluxos de>trabalho .github>msdevopssec.yml.

    Para obter mais informações sobre como trabalhar com uma ação no GitHub, consulte Pré-requisitos.

  4. Selecione o ícone Editar este arquivo (lápis).

    Captura de ecrã que realça o ícone Editar este ficheiro para o ficheiro msdevopssec.yml.

  5. Na seção Executar analisadores do arquivo YAML, adicione este código:

    with:
        categories: 'IaC'
    

    Nota

    Os valores diferenciam maiúsculas de minúsculas.

    Eis um exemplo:

    Captura de tela que mostra as informações a serem adicionadas ao arquivo YAML.

  6. Selecione Confirmar alterações . . . .

  7. Selecione Confirmar alterações.

    Captura de tela que mostra onde selecionar Confirmar alterações na página do GitHub.

  8. (Opcional) Adicione um modelo IaC ao seu repositório. Se você já tiver um modelo de IaC em seu repositório, ignore esta etapa.

    Por exemplo, confirme um modelo IaC que você pode usar para implantar um aplicativo Web Linux básico.

    1. Selecione o arquivo azuredeploy.json .

      Captura de tela que mostra onde o arquivo azuredeploy.json está localizado.

    2. Selecione Raw.

    3. Copie todas as informações no arquivo, como no exemplo a seguir:

      {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
          "webAppName": {
            "type": "string",
            "defaultValue": "AzureLinuxApp",
            "metadata": {
              "description": "The base name of the resource, such as the web app name or the App Service plan."
            },
            "minLength": 2
          },
          "sku": {
            "type": "string",
            "defaultValue": "S1",
            "metadata": {
              "description": "The SKU of the App Service plan."
            }
          },
          "linuxFxVersion": {
            "type": "string",
            "defaultValue": "php|7.4",
            "metadata": {
              "description": "The runtime stack of the current web app."
            }
          },
          "location": {
            "type": "string",
            "defaultValue": "[resourceGroup().location]",
            "metadata": {
              "description": "The location for all resources."
            }
          }
        },
        "variables": {
          "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]",
          "appServicePlanName": "[concat('AppServicePlan-', parameters('webAppName'))]"
        },
        "resources": [
          {
            "type": "Microsoft.Web/serverfarms",
            "apiVersion": "2020-06-01",
            "name": "[variables('appServicePlanName')]",
            "location": "[parameters('location')]",
            "sku": {
              "name": "[parameters('sku')]"
            },
            "kind": "linux",
            "properties": {
              "reserved": true
            }
          },
          {
            "type": "Microsoft.Web/sites",
            "apiVersion": "2020-06-01",
            "name": "[variables('webAppPortalName')]",
            "location": "[parameters('location')]",
            "kind": "app",
            "dependsOn": [
              "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
            ],
            "properties": {
              "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
              "siteConfig": {
                "linuxFxVersion": "[parameters('linuxFxVersion')]"
              }
            }
          }
        ]
      }
      
    4. No repositório GitHub, vá para a pasta .github/workflows .

    5. Selecione Adicionar arquivo>Criar novo arquivo.

      Captura de tela que mostra como criar um novo arquivo.

    6. Insira um nome para o arquivo.

    7. Cole as informações copiadas no arquivo.

    8. Selecione Confirmar novo arquivo.

    O arquivo de modelo é adicionado ao repositório.

    Captura de tela que mostra que o novo arquivo criado foi adicionado ao repositório.

  9. Verifique se a verificação do Microsoft Security DevOps foi concluída:

    1. Para o repositório, selecione Ações.

    2. Selecione o fluxo de trabalho para ver o status da ação.

  10. Para visualizar os resultados da verificação, vá para Segurança do Defender for Cloud>DevOps (Sem pré-requisito GAS) ou Alertas de verificação de código de segurança>nativamente no GitHub (Requer licença GAS).

Configurar e executar uma extensão do Azure DevOps para verificar o código-fonte do IaC conectado

Para configurar uma extensão e exibir os resultados da verificação no Azure DevOps:

  1. Iniciar sessão no Azure DevOps.

  2. Selecione o seu projeto.

  3. Selecione Pipelines.

  4. Selecione o pipeline onde sua extensão do Azure DevOps para Microsoft Security DevOps está configurada.

  5. Selecione Editar pipeline.

  6. No arquivo de configuração YAML do pipeline, abaixo da displayName linha para a tarefa MicrosoftSecurityDevOps@1 , adicione este código:

    inputs:
        categories: 'IaC'
    

    Eis um exemplo:

    Captura de tela que mostra onde adicionar a linha de categorias IaC no arquivo YAML de configuração do pipeline.

  7. Selecione Guardar.

  8. (Opcional) Adicione um modelo IaC ao seu projeto de DevOps do Azure. Se você já tiver um modelo de IaC em seu projeto, ignore esta etapa.

  9. Escolha se deseja confirmar diretamente na ramificação principal ou criar uma nova ramificação para a confirmação e selecione Salvar.

  10. Para exibir os resultados da verificação do IaC, selecione Pipelines e, em seguida, selecione o pipeline modificado.

  11. Veja mais detalhes, selecione uma execução de pipeline específica.

Ver detalhes e informações de correção para regras IaC aplicadas

As ferramentas de verificação IaC incluídas no Microsoft Security DevOps são Template Analyzer (PSRule está incluído no Template Analyzer), Checkov e Terrascan.

O Analisador de Modelos executa regras em modelos do Azure Resource Manager (modelos ARM) e modelos Bicep. Para obter mais informações, consulte as regras do Analisador de modelos e os detalhes da correção.

O Terrascan executa regras em modelos ARM e modelos para CloudFormation, Docker, Helm, Kubernetes, Kustomoze e Terraform. Para obter mais informações, consulte as regras do Terrascan.

Chekov executa regras em modelos ARM e modelos para CloudFormation, Docker, Helm, Kubernetes, Kustomaze e Terraform. Para obter mais informações, consulte as regras Checkov.

Para saber mais sobre as ferramentas de verificação IaC incluídas no Microsoft Security DevOps, consulte:

Neste artigo, você aprendeu como configurar uma ação do GitHub e uma extensão do Azure DevOps para o Microsoft Security DevOps para verificar se há configurações incorretas de segurança do IaC e como exibir os resultados.

Para obter mais informações: