Teste Prático do GitHub Advanced Security
### O que é CodeQL?
> https://codeql.github.com/
1. [x] Uma ferramenta de análise de código
1. [ ] Uma linguagem de programação
1. [ ] Um editor de texto
1. [ ] Um sistema de controle de versão
### O que significa `shifting left` no contexto de Segurança?
> https://github.com/readme/guides/github-advanced-security-telus
1. [x] Adotar práticas de segurança no início do ciclo de desenvolvimento
1. [ ] Escrever código em uma linguagem comumente usada
1. [ ] Incorporar práticas de segurança logo antes de entrar em produção
1. [ ] Escrever código sem se preocupar com segurança
### O que são os Repository Security Advisories?
> https://docs.github.com/en/code-security/security-advisories/working-with-repository-security-advisories/about-repository-security-advisories
1. [x] Um espaço privado onde os mantenedores do repositório podem discutir vulnerabilidades e problemas de segurança dentro da base de código.
1. [ ] Especialistas em segurança do GitHub que ajudam os usuários do GitHub Enterprise com seus problemas de segurança.
1. [ ] Uma lista de problemas de segurança que estão publicamente disponíveis para qualquer pessoa ver e evitar.
1. [ ] É um lugar para reunir e discutir publicamente problemas de segurança na comunidade de código aberto.
### Qual ferramenta ajuda você a manter as dependências do repositório atualizadas?
> https://docs.github.com/en/code-security/dependabot
1. [x] Dependabot
1. [ ] Security Advisories
1. [ ] CodeQL
1. [ ] GitHub Actions
### Qual das opções a seguir é uma lista selecionada de vulnerabilidades de segurança encontradas em projetos de código aberto?
> https://docs.github.com/en/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-the-github-advisory-database
1. [x] GitHub Advisory Database
1. [ ] CodeQL
1. [ ] Dependabot
1. [ ] GitHub Security Journal
### Quais dessas funcionalidades de segurança do GitHub estão disponíveis GRATUITAMENTE para repositórios pessoais, tanto públicos quanto privados? (Escolha quatro.)
> https://docs.github.com/en/code-security/getting-started/github-security-features
- [x] Security Policy
- [x] Security advisories
- [x] Dependabot alerts and security updates
- [x] Dependabot version updates
- [ ] Dependabot code scanning
> Dependabot não é uma ferramenta para varredura de código, é uma ferramenta para gerenciamento de dependências.
- [ ] Dependabot secret scanning
> Dependabot não é uma ferramenta para varredura de segredos, é uma ferramenta para gerenciamento de dependências.
- [ ] Secret scanning
> A varredura de segredos está disponível para repositórios públicos e para organizações com uma licença do GitHub Advanced Security. Não está disponível para repositórios privados pessoais.
- [ ] Code scanning
> A varredura de código está disponível para repositórios públicos e para organizações com uma licença do GitHub Advanced Security. Não está disponível para repositórios privados pessoais.
### Qual das opções abaixo descreve melhor o secret scanning?
> https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning
1. [x] O secret scanning verifica seu repositório em busca de segredos, como chaves privadas ou tokens.
1. [ ] O secret scanning verifica seu repositório em busca de potenciais vulnerabilidades no código que possam expor segredos, como chaves privadas ou tokens.
1. [ ] O secret scanning é uma ferramenta para armazenamento e gerenciamento seguro de segredos.
1. [ ] O secret scanning é um git hook que examina seus commits em busca de segredos, como chaves privadas ou tokens, antes de serem enviados para o GitHub.
### Quais partes do repositório são escaneadas pela varredura de segredos? (Escolha duas.)
> https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning#about-secret-scanning
- [x] Todo o histórico do git em todos os branches no repositório
- [x] Títulos, descrições e comentários em issues históricas abertas e fechadas
- [ ] GitHub Repository secrets
> https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository
- [ ] GitHub Environment secrets
> https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-an-environment
- [ ] Todo o histórico do git em todos os branches protegidos no repositório
### Qual é o objetivo do programa de parceiros do Secret scanning?
> https://docs.github.com/en/code-security/secret-scanning/secret-scanning-partner-program
1. [x] Provedores de serviço podem se tornar parceiros do GitHub para que o formato de seus segredos possa ser reconhecido pelo GitHub secret scanning.
1. [ ] O programa GitHub Partner permite que empresas e organizações com licença do GitHub Advanced Security usem o GitHub secret scanning para escanear seus repositórios.
1. [ ] O GitHub faz parceria com empresas externas de segurança para fornecer secret scanning para repositórios GitHub.
1. [ ] É um programa onde profissionais de segurança registrados podem, de boa fé, reportar ao GitHub quaisquer segredos encontrados em repositórios GitHub e serem recompensados por isso.
### Repositórios públicos de usuários pessoais, assim como repositórios públicos de organizações, podem usar a varredura de segredos gratuitamente.
> https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning#about-secret-scanning
1. [x] Verdadeiro
1. [ ] Falso
### Como você pode evitar que commits contendo credenciais de provedores de nuvem sejam enviados para o GitHub?
> https://docs.github.com/en/code-security/secret-scanning/push-protection-for-repositories-and-organizations
1. [x] Ative uma regra de proteção de envio de verificação de segredos para o seu repositório ou organização.
1. [ ] Inclua um arquivo `.gitignore` no seu repositório que ignore arquivos contendo segredos.
1. [ ] Crie uma GitHub Action que escaneie seus commits em busca de segredos antes que sejam enviados para o GitHub.
1. [ ] Ative uma regra de proteção de branch para o seu repositório.
### Qual destas afirmativas é verdadeira sobre o programa de parceria do GitHub secret scanning? (Escolha três.)
> https://docs.github.com/en/code-security/secret-scanning/secret-scanning-partner-program
- [x] É um programa onde os provedores de serviço podem fornecer ao GitHub os padrões regex dos segredos que eles emitem para que o GitHub secret scanning possa reconhecê-los.
- [x] Quando o GitHub identifica um segredo de um provedor de serviço parceiro, ele notifica o provedor de serviço sobre o segredo vazado.
- [x] O parceiro pode tomar medidas ao receber a notificação do GitHub sobre um segredo vazado, como revogar o segredo e informar o proprietário do segredo comprometido.
- [ ] Concede ao parceiro acesso à API do GitHub secret scanning para que o provedor de serviço possa examinar os repositórios do GitHub em busca de segredos que correspondam ao seu formato.
> O GitHub é sempre responsável por executar o secret scanning, não o parceiro.
- [ ] O GitHub tem a capacidade de revogar automaticamente segredos vazados e notificar o provedor de serviço que eles foram invalidados pelo GitHub.
> O GitHub não participa da revogação de segredos vazados; o provedor de serviço tem a opção de fazê-lo.
### Como você pode excluir certos diretórios ou arquivos da varredura de segredos?
> https://docs.github.com/en/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories#excluding-directories-from-secret-scanning-alerts-for-users
1. [x] Criando um arquivo `secret_scanning.yml` e incluindo os caminhos que não devem ser analisados
1. [ ] Não é possível excluir arquivos e/ou diretórios específicos da análise. Uma vez que você habilita a varredura de segredos para um repositório, todos os arquivos e diretórios serão analisados.
1. [ ] Incluir esses arquivos no arquivo `.gitignore`
1. [ ] Criando um arquivo `dependabot.yml` e incluindo os caminhos que não devem ser analisados
### Você incluiu alguns segredos falsos em seu código de teste e eles foram detectados pela varredura de segredos do GitHub. O que você pode fazer para informar ao GitHub que esses são segredos falsos usados em testes e podem ser ignorados pela varredura de segredos? (Escolha duas.)
> https://docs.github.com/en/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/excluding-folders-and-files-from-secret-scanning
- [x] Criar um arquivo `secret_scanning.yml` no qual você declara os caminhos onde os segredos falsos estão localizados, para que as varreduras os omitam
- [x] Fechar o Alerta de Varredura de Segredos com o motivo de fechamento `Used in tests`
- [ ] Nos seus arquivos de teste, adicionar um comentário `#gh_ignore: fake secret` na linha onde o segredo falso está localizado.
- [ ] Criar um arquivo `.github/codeql.yml` no qual você declara os caminhos onde os segredos falsos estão localizados, para que as varreduras os omitam
### Você acidentalmente cometeu seu token de acesso pessoal do GitHub em um repositório público. Quais ações você deve tomar para impedir que sua conta seja comprometida?
> https://docs.github.com/en/code-security/secret-scanning/managing-alerts-from-secret-scanning#securing-compromised-secrets
1. [x] Considere o token comprometido e exclua-o imediatamente
1. [ ] Altere as permissões do token para somente leitura
1. [ ] Substitua o histórico do git para mascarar o token
1. [ ] Verifique se esse token é usado em alguma de suas aplicações, se sim - exclua-o.
### Qual é o comportamento quando um novo padrão de segredo é adicionado ou atualizado no programa de parceiros de varredura de segredos do GitHub?
> https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning#accessing-secret-scanning-alerts
1. [x] O GitHub executará uma varredura de todo o conteúdo histórico de código em repositórios públicos com a varredura de segredos ativada.
1. [ ] O GitHub apenas verificará o novo padrão em commits recém-enviados em repositórios com a varredura de segredos ativada. Se um segredo desse padrão já estiver presente no repositório, ele não será detectado.
1. [ ] O parceiro do GitHub terá que lidar com os segredos vazados historicamente e o GitHub apenas verificará novos commits para o novo padrão.
1. [ ] O GitHub criará um issue em todos os repositórios com a varredura de segredos ativada para que os mantenedores possam verificar o repositório em busca de segredos que correspondam ao novo padrão.
### Quem será notificado quando um NOVO segredo for enviado e detectado em um repositório? (Escolha cinco.)
> https://docs.github.com/en/code-security/secret-scanning/managing-alerts-from-secret-scanning/monitoring-alerts#incremental-scans
- [x] Administradores do Repositório
- [x] Gerentes de Segurança
- [x] Usuários com funções personalizadas com acesso de leitura/gravação
- [x] Proprietários da Organização e proprietários da Enterprise, mas somente se forem administradores de repositórios onde os segredos foram vazados
- [x] Autores dos Commits
- [ ] Todos com acesso de gravação ao repositório
- [ ] Todos os Proprietários da Organização e proprietários da Enterprise
### Quando o GitHub realiza uma varredura de todo o código histórico nos repositórios da empresa, qual é o comportamento de notificação? (Selecione duas opções.)
> https://docs.github.com/en/code-security/secret-scanning/managing-alerts-from-secret-scanning/monitoring-alerts#historical-scans
- [x] O GitHub notifica os proprietários da empresa e os gerentes de segurança, mesmo que nenhum segredo seja encontrado.
- [x] O GitHub notifica os administradores do repositório, gerentes de segurança e usuários com funções personalizadas com acesso de leitura/escrita sempre que um segredo é detectado em um repositório.
- [ ] O GitHub notifica os proprietários da empresa e os gerentes de segurança somente se detectar segredos expostos.
- [ ] O GitHub notifica os autores de commits que contêm segredos expostos.
### O GitHub usa o mesmo conjunto de padrões de varredura de segredos para alertas de usuário e alertas de proteção de push?
> https://docs.github.com/en/code-security/secret-scanning/secret-scanning-patterns#about-secret-scanning-patterns
1. [x] Não, são conjuntos diferentes de padrões de segredos
1. [ ] Sim, é o mesmo conjunto de padrões de segredos
> Existem três conjuntos diferentes de padrões de varredura de segredos. Eles se sobrepõem, mas não são idênticos.
### Quais são os três diferentes conjuntos de padrões de varredura de segredos que o GitHub mantém? (Selecione três.)
> https://docs.github.com/en/code-security/secret-scanning/secret-scanning-patterns#about-secret-scanning-patterns
- [x] Padrões de parceiro
- [x] Padrões de alerta do usuário
- [x] Padrões de proteção de push
- [ ] Padrões de alerta de Enterprise
- [ ] Padrões de alerta de código aberto
- [ ] Padrões de provedores de nuvem
### Vários repositórios públicos para os quais você está contribuindo não têm a opção de proteção contra push de segredos habilitada. O que você pode fazer para se proteger contra o envio acidental de segredos para esses repositórios?
> https://docs.github.com/en/code-security/secret-scanning/push-protection-for-users#about-push-protection-for-users
1. [x] Habilitar `Push protection for yourself`, nas configurações pessoais da sua conta GitHub
1. [ ] Baixar o plugin web de proteção contra push do GitHub
1. [ ] Não é possível, a proteção contra push precisa ser habilitada no nível de repositório, organização ou enterprise
1. [ ] Adicionar os arquivos que contêm segredos ao arquivo `.gitignore` em todos os repositórios
### Sua empresa possui segredos internos que não devem ser enviados para os repositórios do GitHub. O padrão desses segredos não é reconhecido pelo GitHub e, portanto, não é detectado pela verificação de segredos. O que as empresas podem fazer para proteger seus desenvolvedores de enviar esses segredos acidentalmente para os repositórios em sua Organização do GitHub?
> https://docs.github.com/en/enterprise-cloud@latest/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning#defining-a-custom-pattern-for-an-organization
1. [x] Definir padrões regex para esses segredos e ativar padrões personalizados para verificação de segredos na organização.
1. [ ] A empresa deve ingressar no programa de parceiros do GitHub para que o padrão dos segredos da empresa seja reconhecido.
> O programa de parceiros do GitHub é destinado a provedores de serviços que distribuem segredos fora de sua organização (por exemplo, provedores de nuvem). Ele não é destinado a segredos internos de uma única organização.
1. [ ] Definir workflows personalizados do GitHub Actions para os repositórios na organização que irão verificar esses segredos.
1. [ ] Em todos os repositórios, incluir o arquivo `secret_scanning.yml`, que definirá esses segredos personalizados que devem ser verificados.
> O arquivo `secret_scanning.yml` pode ser usado para desativar a verificação de segredos para arquivos ou diretórios específicos.
### Que informações os alertas do Dependabot fornecem?
> https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts
1. [x] Os alertas do Dependabot informam que seu repositório usa um pacote que é inseguro.
1. [ ] Os alertas do Dependabot informam que seu repositório está sendo usado por outros repositórios públicos.
1. [ ] Os alertas do Dependabot informam que seu repositório usa uma versão não testada de um pacote.
1. [ ] Os alertas do Dependabot informam que seu repositório usa uma versão desatualizada de um pacote.
> O Dependabot faz isso com atualizações de versão, mas não com alertas.
### O que é o gráfico de dependências do GitHub?
> https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph
1. [x] É uma representação das dependências e dependentes de um repositório.
1. [ ] Não existe algo como o gráfico de dependências do GitHub.
1. [ ] É uma ferramenta que propõe automaticamente atualizações de versão para dependências em um repositório.
1. [ ] É uma lista mantida pelo GitHub de vulnerabilidades conhecidas em pacotes de software de código aberto.
### O gráfico de dependências do GitHub está disponível gratuitamente para todos os repositórios?
> https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#dependency-graph-availability
1. [x] Sim, está disponível gratuitamente para todos os repositórios.
1. [ ] Não, está disponível gratuitamente apenas para repositórios públicos. Repositórios privados podem usá-lo se tiverem a licença do GitHub Advanced Security.
### Como o Dependency graph do GitHub sabe quais dependências seu projeto está utilizando? (Escolha duas.)
> https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#supported-package-ecosystems
- [x] O GitHub deriva automaticamente as dependências a partir de manifests e arquivos de bloqueio ('lock files') comprometidos no repositório
- [x] As dependências podem ser adicionadas manualmente usando a Dependency submission API
- [ ] O GitHub verifica o código do repositório em busca de declarações de importação de pacotes externos
- [ ] É necessário adicionar um workflow GitHub Actions que utilize a GitHub Action oficial `actions/dependency-graph` para adicionar dependências ao gráfico sempre que um novo commit for enviado ao repositório
### Quando o gráfico de dependências do GitHub para o seu repositório será atualizado? (Escolha duas.)
> https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security#what-is-the-dependency-graph
- [x] Quando alguém enviar uma alteração para o repositório de uma das suas dependências.
- [x] Quando você enviar um commit para a branch padrão do repositório, somente se isso alterar ou adicionar um manifest/lockfile suportado.
- [ ] Quando você enviar qualquer commit para a branch padrão do repositório.
- [ ] Quando seu repositório publicar uma nova release.
- [ ] Quando seu repositório publicar uma nova tag git.
- [ ] Quando o workflow do GitHub Actions que usa a GitHub Action `actions/dependency-graph` for acionado.
### Em que formato você pode exportar o gráfico de dependências do GitHub do seu repositório?
> https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/exporting-a-software-bill-of-materials-for-your-repository
1. [x] SPDX
1. [ ] YAML
1. [ ] JSON
1. [ ] XML
1. [ ] CSV
### Seu repositório pode usar o Dependency Graph sem usar os Dependabot Alerts?
> https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#using-the-dependency-graph
1. [x] Sim
1. [ ] Não
> Você pode usar o Dependency Graph sem usar os Dependabot Alerts. No entanto, você não pode usar os Dependabot Alerts com o Dependency Graph desativado.
### Qual recurso é um pré-requisito para usar os Dependabot Alerts em um repositório?
> https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#using-the-dependency-graph
1. [x] Dependency graph
1. [ ] Dependency review
1. [ ] Dependency security updates
1. [ ] Dependency version updates
### Quais dessas afirmações sobre Dependabot Alerts são verdadeiras? (Escolha três.)
> https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts
- [x] Elas dependem parcialmente do GitHub Advisory Database
- [x] Para habilitar Dependabot Alerts, você primeiro precisa ativar o Dependency Graph no seu repositório
- [x] Quando o GitHub identifica uma dependência vulnerável, ele gera um Dependabot alert e o exibe na aba Security do repositório
- [ ] Dependabot Alerts são habilitados por padrão para todos os repositórios
- [ ] Dependabot Alerts são habilitados por padrão para todos os repositórios públicos
- [ ] Dependabot alerts informam que seu repositório usa uma versão desatualizada de um pacote
### Quais são os principais benefícios do recurso Security Overview no GitHub?
> https://docs.github.com/en/code-security/security-overview/about-security-overview
1. [x] Visualização centralizada de alertas de segurança e gerenciamento de políticas em uma organização
1. [ ] Revisão automática de código para cada push
1. [ ] Detecção de ameaças em tempo real
1. [ ] Atualizações automáticas de dependências
### O que é o CodeQL?
> https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning-with-codeql#about-code-scanning-with-codeql
1. [x] Um mecanismo de análise de código desenvolvido pelo GitHub
1. [ ] Uma nova linguagem de programação para análise de segurança
1. [ ] Um banco de dados usado para armazenar resultados de varredura de código
1. [ ] Uma ferramenta de terceiros para análise estática de código
### O que os alertas do Dependabot indicam no GitHub?
> https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts#about-dependabot-alerts
1. [x] A presença de uma dependência vulnerável ou malware em seu repositório
1. [ ] Dependências desatualizadas que precisam ser atualizadas
1. [ ] Erros em arquivos de configuração de dependências
1. [ ] Conflitos entre diferentes dependências
### Qual é o propósito da análise de código no GitHub?
> https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning#about-code-scanning
1. [x] Identificar vulnerabilidades e erros no código
1. [ ] Verificar formatação e estilo do código
1. [ ] Revisar pull requests automaticamente
1. [ ] Sincronizar o código com servidores de produção
### A verificação de segredos está disponível para repositórios públicos e privados no GitHub?
> https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning#about-secret-scanning
1. [x] Sim, mas para repositórios privados, é necessário uma licença para o GitHub Advanced Security
1. [ ] Sim, sem requisitos adicionais
1. [ ] Não, está disponível apenas para repositórios públicos
1. [ ] Não, está disponível apenas para repositórios privados
### O que a configuração padrão da análise CodeQL no GitHub faz?
> https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning-with-codeql#about-code-scanning-with-codeql
1. [x] Escolhe automaticamente as linguagens para analisar, a suíte de consultas a ser executada e os eventos que disparam as análises
1. [ ] Exige manualmente que os usuários especifiquem as linguagens e consultas para cada análise
1. [ ] Analisa o código apenas mensalmente
1. [ ] Requer instalação separada de ferramentas de análise de terceiros
### Qual é o principal objetivo de usar o CodeQL CLI?
> https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/about-the-codeql-cli#about-the-codeql-cli
1. [x] Gerar uma representação de banco de dados de uma base de código, um banco de dados CodeQL
1. [ ] Gerenciar as configurações e permissões do repositório
1. [ ] Agendar tarefas regulares de manutenção em um repositório
1. [ ] Mesclar automaticamente pull requests
### Qual das seguintes linguagens NÃO é suportada pelo CodeQL para análise de código?
> https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/#languages-and-compilers
1. [x] PHP
1. [ ] JavaScript/TypeScript
1. [ ] C/C++
1. [ ] Python
### Como o CodeQL analisa o código no GitHub?
> https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning-with-codeql#about-codeql
1. [x] Ele gera um banco de dados CodeQL e executa consultas para identificar problemas, exibindo os resultados como alertas de verificação de código
1. [ ] Ele usa aprendizado de máquina para prever vulnerabilidades potenciais com base em commits anteriores
1. [ ] Ele realiza revisões de código manuais enviadas por membros da comunidade do GitHub
1. [ ] Ele depende exclusivamente de ferramentas de terceiros para análise de código
### Como o CodeQL pode ser usado em um sistema CI externo junto com repositórios GitHub?
> https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system#about-using-code-scanning-with-your-existing-ci-system
1. [x] Execute o CodeQL CLI no sistema CI externo para analisar o código e carregar os resultados no repositório GitHub
1. [ ] O CodeQL não pode ser usado em sistemas CI externos; é exclusivo do GitHub Actions
1. [ ] Carregue o código-fonte no GitHub para análise e, em seguida, faça o download dos resultados para uso no sistema CI
1. [ ] Execute o CodeQL manualmente localmente e envie os resultados por e-mail para os administradores do repositório GitHub
### Qual dessas afirmações não é verdadeira sobre a verificação de segredos no GitHub?
> https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning
1. [x] A verificação de segredos é uma ferramenta para armazenamento e gerenciamento seguro de segredos.
1. [ ] A verificação de segredos irá escanear todo o histórico do Git em todos os branches presentes no seu repositório GitHub em busca de segredos.
1. [ ] A verificação de segredos irá escanear títulos, descrições e comentários, em issues abertas e fechadas historicamente, em busca de segredos.
1. [ ] A verificação de segredos pode evitar que segredos compatíveis sejam enviados para sua empresa, organização ou repositório.
### Quais chaves de nível superior são obrigatórias no arquivo `dependabot.yml`?
> https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#about-the-dependabotyml-file
1. [x] `version` e `updates`
1. [ ] `version` e `package-ecosystem`
1. [ ] `assignees` e `directory`
1. [ ] `updates` e `directory`
### Qual GitHub Action pode ser usada para fazer upload de um arquivo SARIF de terceiros?
> https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github#uploading-a-code-scanning-analysis-with-github-actions
1. [x] `github/codeql-action/upload-sarif`
1. [ ] `codeql-upload-sarif`
1. [ ] `github/codeql-action`
1. [ ] `actions/upload-sarif`
### Qual ferramenta pode ser usada em um sistema de CI de terceiros para fazer upload dos resultados de análise de código para o GitHub?
> https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system#about-using-code-scanning-with-your-existing-ci-system
1. [x] CodeQL CLI
1. [ ] CodeQL API
1. [ ] GitHub Actions `github/codeql-action`
1. [ ] GitHub CLI
### O que é necessário para um servidor de CI fazer upload de resultados SARIF para o GitHub?
> https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system#generating-a-token-for-authentication-with-github
1. [x] Um GitHub App ou token de acesso pessoal com permissão de escrita `security_events`.
1. [ ] Uma conexão direta com o GitHub Advisory Database.
1. [ ] Acesso de administrador ao repositório do GitHub.
1. [ ] Um plugin especial instalado no sistema de CI.
### O que acontece quando um segundo arquivo de resultados SARIF é enviado para o GitHub para um único commit?
> https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system#uploading-your-results-to-github
1. [x] Ele substitui o conjunto de dados original.
1. [ ] Ele anexa os resultados ao arquivo existente.
1. [ ] Ele cria um novo branch no repositório.
1. [ ] Ele é ignorado pelo GitHub.
### Como os usuários podem excluir diretórios específicos dos alertas de varredura de segredos no GitHub?
> https://docs.github.com/en/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories#excluding-directories-from-secret-scanning-alerts-for-users
1. [x] Configurando um arquivo `secret_scanning.yml` no caminho `.github` no repositório.
1. [ ] Através da aba `Security` do repositório, no menu `Secret scanning`.
1. [ ] Através da aba `Settings` do repositório, no menu `Code security and analysis`.
1. [ ] Editando o arquivo `README.md` do repositório.
### Qual chave deve ser usada em um arquivo `secret_scanning.yml` para excluir diretórios dos alertas de verificação de segredos no GitHub?
> https://docs.github.com/en/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories#excluding-directories-from-secret-scanning-alerts-for-users
1. [x] `paths-ignore:`
1. [ ] `paths-exclude:`
1. [ ] `ignore-directories`
1. [ ] `exclude-paths:`
### Qual é o número máximo de padrões personalizados que podem ser definidos para a varredura de segredos no GitHub?
> https://docs.github.com/en/enterprise-cloud@latest/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning#about-custom-patterns-for-secret-scanning
1. [x] 500 para organizações/enterprises e 100 para repositórios.
1. [ ] 100 para organizações/enterprises e 500 para repositórios.
1. [ ] 100 para organizações, enterprises e repositórios.
1. [ ] Não há limite para o número de padrões personalizados que você pode definir para a varredura de segredos no GitHub.
### Preencha o espaço em branco: `GitHub __________ é um recurso que você pode usar para analisar o código em um repositório do GitHub para encontrar vulnerabilidades de segurança e erros de codificação.`
> https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning
1. [x] Code Scanning
1. [ ] Dependency Graph
1. [ ] Security Advisories
1. [ ] Vulnerability Detection
### Qual recurso do GitHub Advanced Security permite encontrar, classificar e priorizar correções para problemas novos e existentes em seu código?
> https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning
1. [x] Code scanning
1. [ ] Dependabot alerts
1. [ ] Security policies
1. [ ] Security advisories
### Como você pode habilitar a verificação de código para um repositório?
> https://docs.github.com/en/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning
1. [x] Vá para a guia de segurança nas configurações do repositório e habilite a verificação de código com a configuração padrão ou avançada.
1. [ ] Acesse as configurações do seu usuário e habilite a verificação de código; você pode optar por habilitá-la para todos ou apenas para repositórios selecionados.
1. [ ] Adicione um arquivo de configuração `.github/codeql.yml` ao repositório.
1. [ ] Vá para a guia de segurança nas configurações do repositório e responda a um questionário sobre o conteúdo do repositório. Com base nas respostas, o GitHub habilitará a verificação de código com a configuração apropriada.
### Como você pode configurar seu repositório GitHub para executar uma análise CodeQL em uma programação? (Escolha duas.)
> https://docs.github.com/en/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning#about-default-setup
- [x] Criando um workflow do GitHub Actions com um gatilho `schedule`. O workflow deve utilizar ações do repositório `github/codeql-action`.
- [x] Utilizando a configuração padrão de análise CodeQL.
- [ ] Configurando a propriedade `codeql.trigger` nas configurações do repositório para `schedule`.
- [ ] Adicionando uma propriedade `schedule` ao arquivo `.github/codeql.yml`.
- [ ] Solicitando ao suporte do GitHub para habilitar a análise CodeQL programada para o repositório.
### Uma organização começou recentemente a usar a análise do CodeQL para todos os pull requests em seus repositórios, bem como a executar a análise em um agendamento horário. Desde então, eles estão enfrentando contas do GitHub Actions mais altas do que o normal. Qual é a causa mais provável disso?
> https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning#about-billing-for-code-scanning
1. [x] A verificação de código usa o GitHub Actions, e a organização está sendo cobrada pelo uso adicional.
1. [ ] A análise de verificação de código está encontrando mais problemas do que o esperado e está demorando mais para ser concluída.
1. [ ] A verificação de código só pode ser executada em um agendamento diário, e a organização está sendo cobrada pelo uso adicional.
1. [ ] Não há correlação entre a verificação de código e a cobrança do GitHub Actions. A organização está sendo cobrada por outros workflows do GitHub Actions.
### Se você não quiser usar o GitHub Actions, pode executar a análise de código em um sistema CI externo e, em seguida, enviar os resultados para o GitHub.
> https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system#about-using-code-scanning-with-your-existing-ci-system
1. [x] Verdadeiro
1. [ ] Falso
### Ao usar um sistema de CI de terceiros para executar a verificação de código, qual ferramenta do GitHub você precisa para analisar o código-fonte?
> https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system#about-using-code-scanning-with-your-existing-ci-system
1. [x] Você não precisa especificamente de uma ferramenta do GitHub, qualquer ferramenta de análise estática que possa produzir resultados no formato SARIF funcionará.
1. [ ] Você precisa instalar a ferramenta GitHub Code Scanning.
1. [ ] Você precisa instalar o CodeQL CLI.
1. [ ] Você precisa instalar o GitHub CLI.
### Ao usar o GitHub Actions como seu sistema de CI e uma ferramenta de terceiros para executar a análise de código, como você pode fazer o upload dos resultados SARIF para o GitHub?
> https://docs.github.com/pt/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github#uploading-a-code-scanning-analysis-with-github-actions
1. [x] Usando a GitHub Action `github/codeql-action/upload-sarif`
1. [ ] Ao usar o GitHub Actions, os resultados SARIF são automaticamente carregados no GitHub.
1. [ ] Você só pode usar o CodeQL ao executar a análise de código no GitHub Actions. Ferramentas de análise de código de terceiros não são suportadas.
1. [ ] Usando a GitHub Action `actions/upload-artifact`
### Você pode usar a análise CodeQL com sistemas de CI de terceiros?
> https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system
1. [x] Sim, você só precisa usar o CodeQL CLI
1. [ ] Não, porque exige o uso da `github/codeql-action` GitHub Action
### Qual destas afirmações é verdadeira sobre a verificação de código? (Escolha duas.)
> https://docs.github.com/en/code-security/supply-chain-security/end-to-end-supply-chain/securing-code#scan-your-code-for-vulnerable-patterns
- [x] A verificação de código ajuda a encontrar padrões de código inseguros que podem passar despercebidos em revisões manuais de código.
- [x] A verificação de código pode ser integrada ao pipeline de CI para encontrar problemas de segurança cedo no processo de desenvolvimento.
- [ ] A verificação de código substitui a revisão manual de código.
- [ ] A verificação de código ajuda a encontrar quaisquer credenciais vazadas no código, como chaves de API ou credenciais de nuvem.
> Isso é verificação de segredos
- [ ] A verificação de código analisa seu código para buscar todas as dependências e suas versões a fim de encontrar dependências vulneráveis.
### Ao usar a análise do CodeQL no seu workflow do GitHub Actions, com que frequência a verificação é acionada?
> https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning#about-code-scanning
1. [x] A verificação de código pode ser acionada por vários eventos diferentes que acontecem no repositório.
1. [ ] A verificação de código é acionada a cada push no repositório.
1. [ ] A verificação de código é acionada em um cronograma configurável.
1. [ ] A verificação de código pode ser acionada em um cronograma configurável ou em pull requests.
### Qual é o efeito de adicionar a palavra-chave `paths-ignore` ao seu fluxo de trabalho do GitHub Actions de varredura de código?
```yaml
.github/workflows/codeql-analysis.yml
on:
pull_request:
branches: [main]
paths-ignore:
- '**/*.md'
- '**/*.txt'
```
> https://docs.github.com/pt/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#avoiding-unnecessary-scans-of-pull-requests
1. [x] Evitar varreduras desnecessárias quando arquivos que não são relevantes para a análise são alterados.
1. [ ] Informa ao CodeQL para omitir todos os arquivos `*.txt` e `*.md` da análise.
1. [ ] Impedir que a análise do CodeQL seja executada em pull requests que alterem arquivos com as extensões especificadas.
1. [ ] As verificações de pull request ignorarão quaisquer vulnerabilidades do CodeQL encontradas em arquivos `*.txt` e `*.md`.
### O CodeQL scanning suporta:
> https://docs.github.com/en/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning-with-codeql#about-codeql
1. [x] Tanto linguagens compiladas quanto interpretadas
1. [ ] Apenas linguagens compiladas
1. [ ] Apenas linguagens interpretadas
1. [ ] Todas as linguagens de programação
### Para que são utilizadas as consultas CodeQL?
> https://codeql.github.com/docs/writing-codeql-queries/about-codeql-queries/
1. [x] As consultas CodeQL podem ser executadas contra um banco de dados CodeQL para identificar padrões que podem indicar erros de codificação ou vulnerabilidades de segurança.
1. [ ] As consultas CodeQL analisam sua base de código e são usadas para criar um banco de dados CodeQL.
1. [ ] As consultas CodeQL são usadas para fins de revisão de código no GitHub.
1. [ ] As consultas CodeQL são perguntas baseadas em texto que você pode fazer ao mecanismo CodeQL sobre sua base de código.
### O que é QL?
> https://codeql.github.com/docs/ql-language-reference/about-the-ql-language/
1. [x] QL é uma linguagem de consulta que fundamenta o CodeQL
1. [ ] QL significa Nível de Qualidade e é uma métrica usada pelo CodeQL
1. [ ] QL é um produto similar ao CodeQL, mas é usado para escanear arquivos de texto em vez de código
1. [ ] QL é um pacote npm usado pelo CodeQL para escanear código
### O que é um conjunto de consultas do CodeQL?
> https://docs.github.com/en/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites#about-codeql-query-suites
1. [x] Um conjunto de consultas do CodeQL é uma coleção de consultas do CodeQL
1. [ ] Um conjunto de consultas do CodeQL é uma coleção de bancos de dados do CodeQL
1. [ ] Um conjunto de consultas do CodeQL é uma coleção de resultados do CodeQL
1. [ ] Um conjunto de consultas do CodeQL é uma coleção de linguagens suportadas pelo CodeQL
### Quais são os diferentes tipos de CodeQL packs? (Escolha três.)
> https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs#about-codeql-packs
- [x] Query packs
- [x] Library packs
- [x] Model packs
- [ ] Code packs
- [ ] Language packs
- [ ] Vulnerability packs
### O que é um CodeQL query pack?
> https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs#about-codeql-packs
1. [x] É um conjunto de consultas pré-compiladas com todas as dependências transitivas, como bibliotecas e modelos
1. [ ] É uma biblioteca usada por consultas do CodeQL
1. [ ] É uma coleção de consultas CodeQL
> Isso é uma CodeQL query suite
1. [ ] É um conjunto de resultados gerados no processo de análise de um banco de dados CodeQL
### Quais são as etapas do fluxo de trabalho de análise do CodeQL?
> https://codeql.github.com/docs/codeql-overview/about-codeql/#codeql-analysis
1. [x] Criar um banco de dados CodeQL -> Executar consultas CodeQL -> Interpretar os resultados
1. [ ] Executar consultas CodeQL -> Criar um banco de dados CodeQL -> Interpretar os resultados
1. [ ] Executar consultas CodeQL -> Interpretar os resultados
1. [ ] Criar um banco de dados CodeQL -> Interpretar os resultados -> Executar consultas CodeQL
### O que é extração no contexto da análise de código com CodeQL?
> https://codeql.github.com/docs/codeql-overview/about-codeql/#database-creation
1. [x] Extração é o processo de criar uma representação relacional de cada arquivo-fonte na base de código.
1. [ ] Extração é a ação de executar consultas CodeQL em um banco de dados CodeQL e extrair os resultados.
1. [ ] Extração é o processo de criar consultas CodeQL específicas para a base de código.
1. [ ] Extração é o processo de exportar dados de um banco de dados CodeQL.
### Quais dessas afirmações são verdadeiras em relação à execução da análise CodeQL em bases de código com múltiplas linguagens de programação? (Escolha duas.)
> https://codeql.github.com/docs/codeql-overview/about-codeql/#database-creation
- [x] CodeQL usa um extrator diferente para cada linguagem de programação
- [x] CodeQL cria bancos de dados separados para cada linguagem de programação
- [ ] CodeQL cria um único banco de dados para todas as linguagens de programação na base de código, desde que sejam compatíveis com o CodeQL
- [ ] O esquema do banco de dados CodeQL é o mesmo para cada linguagem de programação
### Quais são as diferenças ao executar a criação do banco de dados CodeQL para linguagens compiladas e interpretadas? (Escolha duas.)
> https://codeql.github.com/docs/codeql-overview/about-codeql/#database-creation
- [x] Para linguagens compiladas, a extração funciona monitorando o processo de compilação. Todas as informações são coletadas sempre que o compilador é invocado para processar um arquivo de código-fonte.
- [x] Para linguagens interpretadas, o extractor é executado diretamente no código-fonte.
- [ ] Para linguagens interpretadas, a extração funciona monitorando o processo de compilação. Todas as informações são coletadas sempre que o interpretador é invocado para processar um arquivo de código-fonte.
- [ ] Para linguagens compiladas, o extractor é executado diretamente no código-fonte.
- [ ] Para linguagens compiladas, o extractor é executado no arquivo executável.
- [ ] Para linguagens interpretadas, o extractor é executado no arquivo executável.
### Onde você pode ver quando foi executada a última análise do CodeQL ao usar a configuração padrão de varredura de código?
> https://docs.github.com/en/code-security/code-scanning/enabling-code-scanning/evaluating-default-setup-for-code-scanning#evaluating-code-scanning-with-the-tool-status-page
1. [x] Na página de status da ferramenta de varredura de código
1. [ ] Em insights do repositório
1. [ ] Na aba Dependabot
1. [ ] Você não pode ver essa informação com a configuração padrão
### Quais das seguintes afirmações sobre a ativação da configuração padrão de varredura CodeQL são verdadeiras? (Escolha três.)
> https://docs.github.com/en/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning
- [x] Você pode ativar a configuração padrão para todos os repositórios elegíveis de uma organização de uma vez, nas configurações da organização
- [x] GitHub Actions precisa estar habilitado como pré-requisito
- [x] Você pode ativar a configuração padrão em qualquer repositório, independentemente do conteúdo do repositório
- [ ] Você só pode ativar a configuração padrão em repositórios que contenham pelo menos uma linguagem suportada pelo CodeQL
> Se você ativar a configuração padrão em um repositório que não inclua nenhuma linguagem suportada pelo CodeQL, a configuração padrão não executará nenhuma varredura
- [ ] A configuração padrão fará a varredura do repositório em uma programação que você pode configurar. Para varredura baseada em eventos, você precisa configurar um fluxo de trabalho do GitHub Action
> A configuração padrão inclui varredura agendada e varredura de pull request / push nos branches padrão e protegidos
- [ ] Você só pode usar o conjunto de consultas padrão com a configuração padrão de varredura CodeQL
### Como você pode personalizar sua configuração avançada de varredura do CodeQL com suítes de consultas CodeQL adicionais? (Escolha duas.)
> https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning
- [x] Usando um arquivo de configuração personalizado e definindo consultas adicionais nele
- [x] Definindo as personalizações no fluxo de trabalho do GitHub Actions de análise do CodeQL como parâmetros de entrada para a ação `github/codeql-action/init`
- [ ] Usando o CodeQL CLI com um arquivo de configuração personalizado para executar a análise
- [ ] Definindo as personalizações nas configurações do repositório Security / Code scanning
- [ ] Usando a GitHub Action `github/codeql-customizations`
### Ao executar a análise CodeQL no GitHub Actions, quais Actions você deve usar? (Escolha três.)
> https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#about-the-codeql-analysis-workflow-and-compiled-languages
- [x] `github/codeql-action/init`
- [x] `github/codeql-action/analyze`
- [x] `github/codeql-action/autobuild` apenas para linguagens de programação compiladas
- [ ] `github/codeql-action/autobuild`
- [ ] `github/codeql-action/init` apenas para linguagens de programação compiladas
- [ ] `github/codeql-action/analyze` apenas para linguagens de programação interpretadas
### Qual é o método mais simples para executar a análise do CodeQL simultaneamente para cada linguagem em um repositório multilíngue usando GitHub Actions?
> https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#changing-the-languages-that-are-analyzed
1. [x] Criando uma matriz de `languages` para o job e referenciando-a no parâmetro de entrada `languages` da ação `github/codeql-action/init`
1. [ ] Chamando a ação `github/codeql-action/analyze` em etapas separadas para cada linguagem
1. [ ] Criando um workflow separado para cada linguagem
1. [ ] Definindo o paralelismo na ação `github/codeql-action/analyze`
### Como você pode usar um arquivo de configuração personalizado do CodeQL em um fluxo de trabalho do GitHub Actions?
> https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#using-a-custom-configuration-file
1. [x] Fornecendo explicitamente o caminho do arquivo de configuração no parâmetro de entrada `config-file` da ação `github/codeql-action/init`
1. [ ] Armazenando a configuração no arquivo `.github/codeql/config-config.yml`. A ação `github/codeql-action/init` detectará automaticamente o arquivo e o usará
1. [ ] Enviando esse arquivo na seção Code Scanning da aba Security no repositório
1. [ ] Armazenando a configuração no arquivo `.github/workflows/codeql-analysis.yml`. A ação `github/codeql-action/init` detectará automaticamente o arquivo e o usará
### Onde você pode especificar as consultas do CodeQL a serem executadas em um workflow do GitHub Actions? (Escolha duas.)
> https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#running-additional-queries
- [x] No parâmetro de entrada `queries` da ação `github/codeql-action/init`
- [x] Em um arquivo YAML de configuração do CodeQL
- [ ] No parâmetro de entrada `paths` da ação `github/codeql-action/queries`
- [ ] Na seção Code Scanning da aba Security no repositório
- [ ] No campo `codeql` do arquivo `.github/settings.yml`
### Qual é o propósito do parâmetro `external-repository-token` na GitHub Action `github/codeql-action/init`?
> https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#using-queries-in-ql-packs
1. [x] Ele permite que a ação acesse um repositório privado do GitHub que contenha arquivos de configuração, consultas ou pacotes necessários para a análise.
1. [ ] Ele permite que a ação envie os resultados da análise para um repositório privado do GitHub.
1. [ ] Ele permite que a ação acesse um repositório privado do GitHub que contenha o código-fonte a ser analisado.
1. [ ] Ele permite que a ação envie o banco de dados CodeQL gerado para um repositório privado do GitHub.
### Qual comando da CLI do CodeQL é usado para criar um banco de dados do CodeQL?
> https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#running-codeql-database-create
1. [x] `codeql database create`
1. [ ] `gh codeql-database create`
1. [ ] `ql database generate`
1. [ ] `qlcli database create`
### Qual é o propósito do comando `codeql database analyze` no CodeQL CLI?
> https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/analyzing-your-code-with-codeql-queries#running-codeql-database-analyze
1. [x] Analisar um banco de dados CodeQL, produzindo resultados geralmente no formato de um arquivo SARIF.
1. [ ] Analisar um banco de dados CodeQL, produzindo resultados geralmente no formato de avisos de segurança.
1. [ ] Analisar o código-fonte, produzindo um banco de dados CodeQL.
1. [ ] Analisar um banco de dados CodeQL e enviar os resultados para o GitHub.
> Os resultados não são enviados para o GitHub; um comando separado é usado para isso.
### Como parte do seu pipeline CI do Jenkins, você criou com sucesso e analisou um banco de dados CodeQL, produzindo assim um arquivo SARIF. Como você pode enviar o arquivo SARIF para o GitHub? (Escolha duas.)
> https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github#about-sarif-file-uploads-for-code-scanning
- [x] Usando o comando `codeql github upload-results` do CodeQL CLI
- [x] Usando o endpoint da GitHub REST API `POST /repos/{owner}/{repo}/code-scanning/sarifs`
- [ ] Usando o comando `gh codeql upload-results` do GitHub CLI
- [ ] Ao fazer commit do arquivo SARIF no repositório GitHub
- [ ] Usando o GitHub Action `github/codeql-action/upload-sarif`
> Você não pode usar GitHub Actions em pipelines do Jenkins.
### Quais detalhes você pode encontrar em uma página de alerta de verificação de código? (Escolha três.)
> https://docs.github.com/en/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-details
- [x] Branches afetados pela vulnerabilidade
- [x] Código vulnerável destacado
- [x] Gravidade da vulnerabilidade
- [ ] Informação sobre quantas vezes a vulnerabilidade foi explorada
- [ ] Desenvolvedor designado para corrigir a vulnerabilidade
- [ ] ID do banco de dados CodeQL usado para encontrar a vulnerabilidade
### Quais destas afirmações sobre a visualização dos resultados de uma análise CodeQL são verdadeiras? (Escolha duas.)
> https://docs.github.com/en/code-security/code-scanning/managing-code-scanning-alerts/assessing-code-scanning-alerts-for-your-repository
- [x] Você precisa de permissão de escrita para visualizar um resumo de todos os alertas de um repositório na aba de Segurança.
- [x] Qualquer pessoa com permissão de leitura para um repositório pode ver as anotações de varredura de código nas pull requests.
- [ ] Você precisa de permissão de escrita para visualizar anotações de varredura de código nas pull requests.
- [ ] Qualquer pessoa com permissão de leitura para um repositório pode visualizar alertas de varredura de código na aba de Segurança.
- [ ] Somente o proprietário do repositório pode ver os alertas de varredura de código na aba de Segurança.
### Quando um workflow do GitHub Actions com análise CodeQL detecta uma nova vulnerabilidade em um pull request, onde você pode encontrar as informações sobre essa vulnerabilidade?
> https://docs.github.com/en/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests#about-code-scanning-results-on-pull-requests
1. [x] Diretamente no pull request na forma de um comentário no PR e uma falha de verificação
1. [ ] Na aba de segurança do repositório
1. [ ] Nos logs de execução do workflow
1. [ ] O workflow de análise CodeQL falhará e produzirá um artefato com os resultados
### Ao visualizar um alerta de varredura de código, para que serve a opção `Mostrar caminhos`?
> https://docs.github.com/en/code-security/code-scanning/managing-code-scanning-alerts/managing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository
1. [x] Isso exibirá o caminho pelo código que leva ao problema que causou o alerta.
1. [ ] É usado para mostrar os caminhos para as queries CodeQL que foram usadas para encontrar a vulnerabilidade.
1. [ ] Mostrará recomendações sobre como corrigir a vulnerabilidade.
1. [ ] É usado para mostrar o caminho do arquivo para o banco de dados CodeQL que foi usado para encontrar a vulnerabilidade.
### O que significa descartar um alerta de verificação de código?
> https://docs.github.com/en/code-security/code-scanning/managing-code-scanning-alerts/managing-code-scanning-alerts-for-your-repository#dismissing--alerts1. [x] Resposta Correta de Escolha Única
1. [x] Fechar um alerta que você acha que não precisa ser corrigido
1. [ ] Fechar o alerta após corrigir a vulnerabilidade no código
### Qual destas NÃO é uma abordagem válida que pode ser adotada para reduzir o tempo de execução do fluxo de trabalho de análise do CodeQL?
> https://docs.github.com/en/code-security/code-scanning/troubleshooting-code-scanning/analysis-takes-too-long
1. [x] Executar a análise em cada evento de push
1. [ ] Usar runners com mais recursos de CPU/RAM
1. [ ] Paralelizar a análise para bases de código multilíngues
1. [ ] Ignorar arquivos e diretórios irrelevantes da análise
1. [ ] Reduzir o número de consultas que são executadas
### Qual é o propósito de definir uma categoria SARIF?
> https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning#uploading-more-than-one-sarif-file-for-a-commit
1. [x] Usar a categoria para distinguir entre várias análises para a mesma ferramenta ou commit, mas realizadas em linguagens diferentes ou em partes diferentes do código.
1. [ ] Usar a categoria para distinguir arquivos que foram analisados de arquivos que não foram analisados.
1. [ ] Usar a categoria para distinguir arquivos que contêm vulnerabilidades de arquivos que não contêm vulnerabilidades.
1. [ ] Usar uma categoria diferente para cada arquivo analisado para rastrear facilmente as vulnerabilidades de volta aos arquivos que as contêm.
### Como você pode habilitar os recursos do GitHub Advanced Security no GitHub Enterprise Server? (Escolha duas.)
> https://docs.github.com/en/[email protected]/admin/code-security/managing-github-advanced-security-for-your-enterprise/enabling-github-advanced-security-for-your-enterprise
- [x] Na guia Segurança do console de gerenciamento do administrador do site
- [x] Conectando-se diretamente à instância do GitHub Enterprise Server através de SSH e usando os comandos administrativos do shell `ghe-config`.
- [ ] Solicitando uma atualização ao Suporte do GitHub
- [ ] Configurando a opção de configuração `github.advanced_security.enabled` para `true` no arquivo `config.yml` no diretório `/etc/github` na instância do GitHub Enterprise Server.
- [ ] Configurando a opção de configuração `github.advanced_security.enabled` para `true` no arquivo `config.yml` no repositório `.github`.
### Como você pode habilitar os recursos do GitHub Advanced Security para todos os repositórios em uma organização no GitHub Enterprise Cloud?
> https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization#enabling-or-disabling-a-feature-for-all-existing-repositories
1. [x] Na seção `Code security and analysis` das configurações da organização
1. [ ] Conectando-se diretamente à instância do GitHub Enterprise Cloud através de SSH e usando os comandos do shell administrativo `ghe-config`.
> Essa é uma opção ao usar GitHub Enterprise Server
1. [ ] Solicitando uma atualização ao Suporte do GitHub
1. [ ] Na página Admin do site da sua conta Enterprise
### Como mantenedor de um repositório, onde você deve colocar as instruções sobre como relatar uma vulnerabilidade de segurança no seu código?
> https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository#about-security-policies
1. [x] No arquivo `SECURITY.md`
1. [ ] No arquivo `CONTRIBUTING.md`
1. [ ] No arquivo `README.md`
1. [ ] No arquivo `CODE_OF_CONDUCT.md`
### O que é uma política de segurança do GitHub?
> https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository#about-security-policies
1. [x] É um documento que instrui os usuários sobre como relatar de forma responsável vulnerabilidades de segurança em um projeto. Normalmente, é definido em um arquivo `SECURITY.md` em um repositório.
1. [ ] É uma ferramenta para corrigir automaticamente vulnerabilidades de segurança no seu código.
1. [ ] É um recurso que permite criptografar seu repositório.
1. [ ] Uma política de segurança do GitHub é um serviço de assinatura que fornece proteção contra vírus para os seus projetos.
### Como você pode definir uma política de segurança padrão para todos os repositórios na Organização GitHub `my-org`?
> https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file#supported-file-types
1. [x] Criando um arquivo `SECURITY.md` no repositório `my-org/.github`
1. [ ] Editando a política de segurança nas configurações de `Code Security and analysis` da organização
1. [ ] Políticas de segurança padrão só podem ser definidas pelo suporte do GitHub
1. [ ] Você pode definir uma política de segurança padrão para todos os repositórios na Organização GitHub `my-org` adicionando um arquivo `SECURITY.md` a cada repositório individual.
### Qual endpoint da API pode ser usado para recuperar uma lista de todos os alertas do Dependabot para uma enterprise?
> https://docs.github.com/en/rest/dependabot/alerts?apiVersion=2022-11-28#list-dependabot-alerts-for-an-enterprise
1. [x] `GET /enterprises/{enterprise}/dependabot/alerts`
1. [ ] `GET /orgs/{org}/dependabot/alerts`
> Esse é um endpoint correto para uma organização, mas não para uma enterprise
1. [ ] `GET /repos/{owner}/{repo}/dependabot/alerts`
> Esse é um endpoint correto para um repositório, mas não para uma enterprise
1. [ ] `GET /github/{enterprise}/dependabot/alerts`
### Qual endpoint da API pode ser usado para recuperar uma lista de todos os alertas de verificação de segredos para uma organização?
> https://docs.github.com/en/rest/secret-scanning/secret-scanning?apiVersion=2022-11-28#list-secret-scanning-alerts-for-an-organization
1. [x] `GET /orgs/{org}/secret-scanning/alerts`
1. [ ] `GET /enterprises/{enterprise}/secret-scanning/alerts`
> Este é um endpoint correto para enterprise, mas não para uma organização
1. [ ] `GET /repos/{owner}/{repo}/secret-scanning/alerts`
> Este é um endpoint correto para um repositório, mas não para uma organização
1. [ ] `GET /github/{org}/secret-scanning/alerts`
### Qual endpoint da API pode ser usado para recuperar uma lista de todos os alertas de análise de código para um repositório?
> https://docs.github.com/en/rest/code-scanning/code-scanning?apiVersion=2022-11-28#list-code-scanning-alerts-for-a-repository
1. [x] `GET /repos/{owner}/{repo}/code-scanning/alerts`
1. [ ] `GET /orgs/{org}/{repo}/code-scanning/alerts`
1. [ ] `GET /{enterprise}/{org}/{repo}/code-scanning/alerts`
1. [ ] `GET /github/{repo}/code-scanning/alerts`
### Qual dessas afirmações define melhor uma dependência vulnerável?
> https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts
1. [x] Uma dependência vulnerável é uma dependência da qual um projeto depende, que contém falhas de segurança que podem ser potencialmente exploradas, comprometendo a segurança do projeto.
1. [ ] Uma dependência vulnerável é uma dependência da qual um projeto depende, que não foi atualizada há muito tempo.
1. [ ] Uma dependência vulnerável é uma dependência da qual um projeto depende, que não é amplamente utilizada ou popular.
1. [ ] Uma dependência vulnerável é uma dependência da qual um projeto depende, que não é verificada pelo GitHub.
### O que são as atualizações de segurança do Dependabot?
> https://docs.github.com/en/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates
1. [x] É um recurso do Dependabot que cria automaticamente pull requests para atualizar dependências vulneráveis no seu repositório.
1. [ ] É um recurso do Dependabot que cria uma lista de dependências vulneráveis no seu repositório.
1. [ ] É um recurso do Dependabot que cria alertas quando uma vulnerabilidade de segurança é detectada em uma de suas dependências.
> Isso é o Dependabot alerts, as atualizações de segurança do Dependabot são baseadas nos alertas do Dependabot.
1. [ ] É um recurso do Dependabot que cria automaticamente pull requests para atualizar dependências no seu repositório quando uma nova versão é lançada.
> Isso é o Dependabot version updates.
### Os Alertas do Dependabot estão ativados por padrão em:
> https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts#configuration-of-dependabot-alerts
1. [x] Os Alertas do Dependabot não estão ativados por padrão em nenhum repositório.
1. [ ] Apenas repositórios públicos.
> O GitHub detecta dependências vulneráveis em repositórios públicos e exibe o gráfico de dependências, mas não gera alertas do Dependabot por padrão.
1. [ ] Todos os repositórios.
1. [ ] Apenas repositórios privados.
### Quem pode ativar os alertas do Dependabot em um repositório?
> https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts#configuration-of-dependabot-alerts
1. [x] Proprietários do repositório e pessoas com acesso de administrador
1. [ ] Apenas o proprietário do repositório
1. [ ] Os alertas do Dependabot são ativados em todos os repositórios pelo GitHub e não podem ser desativados ou ativados por nenhum indivíduo.
1. [ ] Os alertas do Dependabot são ativados adicionando uma GitHub Action ao repositório, então qualquer pessoa com acesso de escrita ao repositório pode ativá-los.
### Qual é o nível de acesso mais baixo necessário para visualizar alertas do Dependabot em um repositório dentro de uma organização?
> https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization#access-requirements-for-security-features
1. [x] Write
1. [ ] Read
1. [ ] Maintain
1. [ ] Triage
1. [ ] Admin
### Para habilitar Dependabot Alerts em todos os repositórios de uma organização, você deve:
> https://docs.github.com/en/code-security/dependabot/dependabot-alerts/configuring-dependabot-alerts#enabling-or-disabling-dependabot-alerts-for-all-existing-repositories
1. [x] Acesse as configurações de `Code security and analysis` da organização e habilite Dependabot Alerts para todos os repositórios de uma vez.
1. [ ] Tornar todos os repositórios da organização privados.
1. [ ] Em todos os repositórios da organização - executar a GitHub Action `actions/enable-ghas` com o parâmetro `alerts` definido como `true`.
1. [ ] Criar um script que habilitará Dependabot Alerts em todos os repositórios da organização.
### Qual das opções a seguir é um arquivo de configuração `dependabot.yml` válido?
> https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
1. [x]
```yaml
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
```
1. [ ]
```yaml
version: 2
config:
- directory: "/"
schedule:
interval: "daily"
```
1. [ ]
```yaml
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "everyday"
```
1. [ ]
```yaml
version: 2
config:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
```
### Qual desses não é um canal suportado pelo GitHub para receber alertas do Dependabot?
> https://docs.github.com/en/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts#configuring-notifications-for-dependabot-alerts
1. [x] SMS/Call
1. [ ] github.com notification inbox
1. [ ] GitHub Mobile
1. [ ] GitHub CLI
> Avisos são exibidos como callbacks quando você faz push para repositórios com quaisquer dependências inseguras
1. [ ] Email
### O que são as regras de triagem automática do Dependabot?
> https://docs.github.com/en/code-security/dependabot/dependabot-auto-triage-rules/about-dependabot-auto-triage-rules
1. [x] É um recurso que permite ao Dependabot descartar automaticamente alertas do Dependabot que correspondem a determinados critérios.
1. [ ] As regras de triagem automática são definidas no arquivo de configuração `dependabot.yml` para especificar quais gerenciadores de pacotes devem ser usados para escanear seu projeto em busca de vulnerabilidades.
1. [ ] As regras de triagem automática do Dependabot são usadas para excluir automaticamente dependências antigas em seu projeto.
1. [ ] As regras de triagem automática definem com que frequência o Dependabot deve escanear seu projeto em busca de vulnerabilidades.
### Como você pode automatizar a suspensão de alertas de baixa gravidade do Dependabot?
> https://docs.github.com/en/code-security/dependabot/dependabot-auto-triage-rules/about-dependabot-auto-triage-rules
1. [x] Usando as regras de triagem automática do Dependabot.
1. [ ] Definindo o campo `severity` no arquivo `dependabot.yml` como alto
1. [ ] Removendo todas as dependências que causam alertas de baixa gravidade
1. [ ] Definindo o campo `dismiss-severity` no arquivo `dependabot.yml` como baixo
### Para ativar as atualizações de segurança do Dependabot em todos os repositórios de uma organização, você deve:
> https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization#enabling-or-disabling-a-feature-for-all-existing-repositories
1. [x] Acesse as configurações de `Code security and analysis` da organização e ative as atualizações de segurança do Dependabot para todos os repositórios de uma vez.
1. [ ] Tornar todos os repositórios da organização privados.
1. [ ] Executar o GitHub Action `actions/enable-ghas` com o parâmetro `security-updates` definido como `true` em todos os repositórios da organização.
1. [ ] Criar um script que ativará as atualizações de segurança do Dependabot em todos os repositórios da organização.
### A ferramenta que verifica se um pull request introduz dependências com vulnerabilidades de segurança é chamada:
> https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review
1. [x] Dependency Review
1. [ ] Dependabot Alerts
1. [ ] Dependabot Security Updates
1. [ ] Dependabot Version Updates
### Você precisa habilitar o GitHub Actions para
> https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates#about-dependabot-version-updates
1. [x] Revisão de Dependências
1. [ ] Atualizações de Segurança do Dependabot
1. [ ] Atualizações de Versão do Dependabot
1. [ ] Todas as anteriores
> O GitHub Actions não é necessário para que as atualizações de versão do Dependabot e as atualizações de segurança do Dependabot sejam executadas no GitHub. No entanto, pull requests abertos pelo Dependabot podem acionar workflows que executam actions.
1. [ ] Nenhuma das anteriores
> A revisão de dependências usa a GitHub Action `actions/dependency-review-action`
### O que significa `CVSS`?
> https://docs.github.com/en/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels
1. [x] `Common Vulnerability Scoring System`
1. [ ] `Code Verification Security System`
1. [ ] `Critical Vulnerability Scanning Service`
1. [ ] `Cybersecurity Validation Scoring Scheme`
### O que significa `CVE`?
> https://docs.github.com/en/code-security/security-advisories/working-with-repository-security-advisories/about-repository-security-advisories#cve-identification-numbers
1. [x] `Common Vulnerabilities and Exposures`
1. [ ] `Common Virus Elimination`
1. [ ] `Cybersecurity Verification Entity`
1. [ ] `Code Validation and Enumeration`
### O que significa `CWE`?
> https://cwe.mitre.org/
1. [x] `Common Weakness Enumeration`
1. [ ] `Cybersecurity Weakness Enumeration`
1. [ ] `Code Wrapping Engine`
1. [ ] `Critical Web Elements`
### Qual comando de comentário do Dependabot concluirá com sucesso um pull request?
> https://docs.github.com/en/code-security/dependabot/working-with-dependabot/managing-pull-requests-for-dependency-updates#managing-dependabot-pull-requests-with-comment-commands
1. [ ] `@dependabot close`
1. [x] `@dependabot merge`
1. [ ] `@dependabot cancel merge`
1. [ ] `@dependabot rebase`
### Jobs que são executados em runners macOS hospedados pelo GitHub consomem minutos a uma taxa __ em comparação com runners Linux
> https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#minute-multipliers
1. [ ] a mesma
1. [ ] 2x
1. [ ] 5x
1. [x] 10x
Detalhes
Achou este teste prático útil?
Deixe uma ⭐ no repositório e considere contribuir de volta para a comunidade por meio de:
- contribuir com uma ou mais questões de exames simulados (leva poucos minutos)