👾 Inicio | Cronograma | DevSecOps |
Se você não sabe o que é pipeline, DAST, Workflow e Github Actions, eu escrevi sobre aqui.
name: OWASP ZAP
on:
schedule:
- cron: '0 6 * * *'
Nesse exemplo eu quero que todos os dias em um horario X, seja feita uma análise do projeto.
Para isso vou usar o CronJob, o que é um CronJob?
Utilizando cronJobs conseguimos agendar tarefas individuais para um horário específico, como por exemplo análise do site seja feita em um horário que não tenha tantos usuários online. Também podemos agendar para que seja feita mais de uma vez por dia. Veja mais aqui
No exemplo ‘0 6 * * *’ indica que a tarefa será executada todos os dias às 6:00 da manhã baseada no horário UTC (Tempo Universal Coordenado).
Sintaxe do cronograma cron
# ┌───────────── minuto (0 - 59)
# │ ┌───────────── hora (0 - 23)
# │ │ ┌───────────── dia do mês (1 - 31)
# │ │ │ ┌───────────── mês (1 - 12)
# │ │ │ │ ┌───────────── dia da semana (0 - 6) (domingo a sábado;
# │ │ │ │ │ 7 também representa domingo em alguns sistemas operacionais)
# │ │ │ │ │
# │ │ │ │ │
# * * * * *
O editor rápido e simples para expressões de agendamento cron https://crontab.guru/
jobs:
dast:
runs-on: ubuntu-latest
steps:
- name: Checkout código
uses: actions/checkout@v2
- name: Executar OWASP ZAP
uses: zaproxy/action-baseline@v0.7.0
with:
token: $
docker_name: 'ghcr.io/zaproxy/zaproxy:stable'
target: 'http://juice-shop.herokuapp.com/'
cmd_options: '-a'
Aqui está a configuração final do meu arquivo YAML:
name: OWASP ZAP Cron Job
on:
schedule:
- cron: '0 6 * * *'
jobs:
dast:
runs-on: ubuntu-latest
steps:
- name: Checkout código
uses: actions/checkout@v2
- name: Executar OWASP ZAP
uses: zaproxy/action-baseline@v0.7.0
with:
token: $
docker_name: 'ghcr.io/zaproxy/zaproxy:stable'
target: 'http://juice-shop.herokuapp.com/' # URL do seu site ou ip
cmd_options: '-a'
Essa programação garanti que a análise seja executada no horário especificado.
Depois da análise feita com sucesso, você pode conferir em Actions
Você receberá uma Issue chamada “ZAP Scan Baseline Report” contendo uma descrição das vulnerabilidades encontradas.
No exemplo eu usei com o cronjob. Mas por que escolher essa abordagem? Quais são os benefícios do uso do cronjob com o OWASP ZAP?
A utilização de um cronjob permite automatizar a execução regular dos testes de segurança com o OWASP ZAP, umas das vantagens:
Ou seja, se você deseja realizar verificações regulares e automatizadas, pode configurar um cronjob para executar o OWASP ZAP em intervalos específicos.
Dessa forma, o OWASP ZAP será executado automaticamente e verificará a segurança do site antes de cada push.
Seria benéfico adotar ambas as abordagens, cronjob e push? Embora eu ainda esteja explorando essa área, é possível considerar isso uma boa prática. No entanto, a decisão de usar ambas as abordagens depende das necessidades e preferências específicas do seu projeto.
A combinação dessas duas abordagens pode ser altamente vantajosa, oferecendo um monitoramento contínuo através do cronjob, enquanto a verificação de segurança antes de cada push garante uma proteção mais abrangente.
Ao adotar essa abordagem, o nosso arquivo de configuração poderia ser ajustado da seguinte forma:
name: OWASP ZAP Cron Job e Push
on:
push:
branches:
- main
schedule:
- cron: '* 6 * * *'
jobs:
dast:
runs-on: ubuntu-latest
steps:
- name: Checkout código
uses: actions/checkout@v2
- name: Executar OWASP ZAP
uses: zaproxy/action-baseline@v0.7.0
with:
token: $
docker_name: 'ghcr.io/zaproxy/zaproxy:stable'
target: 'http://juice-shop.herokuapp.com/'
cmd_options: '-a'
< Anterior |