Share via


Examinar o repositório do GitHub conectado ou o projeto do Azure DevOps

Configure o DevOps de Segurança da Microsoft para verificar o repositório do GitHub conectado ou o projeto do Azure DevOps. Use uma ação do GitHub ou uma extensão do Azure DevOps para executar o DevOps de Segurança da Microsoft, somente no código-fonte IaC (Infraestrutura como Código) e ajudar a reduzir o runtime do pipeline.

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

Pré-requisitos

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

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

  1. Entre no GitHub.

  2. Acesse a página principal do repositório.

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

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

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

    Screenshot that highlights the Edit this file icon for the msdevopssec.yml file.

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

    with:
        categories: 'IaC'
    

    Observação

    Os valores diferenciam maiúsculas de minúsculas.

    Veja um exemplo:

    Screenshot that shows the information to add to the YAML file.

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

  7. Selecione Confirmar alterações.

    Screenshot that shows where to select Commit changes on the GitHub page.

  8. (Opcional) Adicione um modelo de IaC ao repositório. Caso já tenha um modelo IaC em seu repositório, ignore esta etapa.

    Por exemplo, faça commit de um modelo de IaC que poderá usar para implantar um aplicativo Web Linux básico.

    1. Selecione o arquivo azuredeploy. JSON.

      Screenshot that shows where the azuredeploy.json file is located.

    2. Selecione a opção Bruto.

    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 do GitHub, acesse a pasta .github/fluxos de trabalho.

    5. Selecione Adicionar arquivo>Criar um arquivo.

      Screenshot that shows you how to create a new file.

    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.

    Screenshot that shows that the new file you created is added to your repository.

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

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

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

  10. Para visualizar os resultados da verificação, acesse alertas de verificação de >Código de Segurança.

    Filtre por ferramenta para visualizar apenas as descobertas de IaC.

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

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

  1. Entre no Azure DevOps.

  2. Selecione o projeto.

  3. Escolha Pipelines.

  4. Selecione o pipeline em que a extensão do Azure DevOps para DevOps de Segurança da Microsoft, esteja 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'
    

    Veja um exemplo:

    Screenshot that shows where to add the IaC categories line in the pipeline configuration YAML file.

  7. Selecione Salvar.

  8. (Opcional) Adicione um modelo de IaC ao seu projeto do Azure DevOps. Caso já tenha um modelo de IaC em seu projeto, ignore esta etapa.

  9. Escolha se deseja confirmar diretamente no branch principal ou criar um branch para a confirmação e selecione Salvar.

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

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

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

As ferramentas de verificação de IaC incluídas no DevOps de Segurança da Microsoft são o Analisador de Modelos (o PSRule está incluído no Analisador de Modelos) e o Terrascan.

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

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

Para saber mais sobre as ferramentas de verificação de IaC incluídas no DevOps de Segurança da Microsoft, confira:

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

Para obter mais informações: