Lädt...


🔧 Criando meu próprio Github Actions para a área de AppSec


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

Image description

Olá pessoal, tudo bem? 😊

Hoje resolvi trazer esse tema, pois na área de AppSec/DevSecOps é muito importante conhecer outras ferramentas que possam ajudar na integração e checagens de segurança durante a fase de desenvolvimento de um software.

O que é Github Actions?

Ele serve para você automatizar de forma fácil todo o processo de desenvolvimento de software, utilizando o conceito CI/CD por meio do workflow (build, teste e deploy ) no seu repositório.

O mais interessante é que você pode criar uma action e compartilhar no Github Marketplace e assim, qualquer pessoa poderá usar a sua action!

Achei essa ideia sensacional, principalmente se você quiser criar um código, como no nosso caso, que será para encontrar vulnerabilidade no código. Assim, não precisaremos passar por todos steps como clonar o repositório do projeto, instalar dependências ou Docker para o projeto específico, para depois executá-lo!

Agora que entendemos para o que serve o Github Actions, precisamos criar a nossa Action. Para isso, termos que ter em mente que precisamos criar um arquivo chamado action.yml e que o mesmo precisa estar no diretório principal (root). Dessa forma, será entendido pelo Github que esse é o arquivo que dará origem a nossa action.

name: 'SAST validator'
author: 'michelleamesquita'
description: 'Using python to verify vulnerabilities into code'
inputs:
  path:
    required: true
    default: "."
  language:
    required: false
runs:
  using: 'docker'
  image: 'Dockerfile'
  args:
    - -d=${{ inputs.path }}
    - -l=${{ inputs.language }}

Nesse arquivo, é importante entendermos que possuem alguns parâmetros importantes que serão usados para a criação da minha action utilizando container (Docker).

inputs : é utilizado para passar os parâmetros que serão passados no argumento argumento (docker run sast -d=. -l=python) . Então, "path" recebe o valor de "python", no exemplo.
runs : é a parte principal do actions. Ele serve para definir o tipo de runner, que no nosso caso é 'docker'. Assim precisamos passar parâmetros específicos do Docker. Por exemplo a imagem e os argumentos que serão os inputs setados previamente.
Caso queiram ver os demais exemplos, segue a documentação do Github também 😊

Para utilizarmos essa action em outros projetos, será necessário publicar no Marketplace. Para isso, colocarei os passos abaixo: (só não reparem no número da versão que criei, pois estava apenas testando na época 😅)

Image description

Image description

Image description

Image description

Link para minha Action no Marketplace: https://github.com/marketplace/actions/sast-validator

Link para o meu repositório no Github:
https://github.com/michelleamesquita/sast-validator

Para criar tags no versionamento, segue as linhas de código:

➜ git tag -a -m “My first action release” v40
➜ git push - follow-tags

Para adicionar a action no repositório, será necessário criar esse diretório: .github/workflows/ , onde será necessário passar um arquivo yaml, como no exemplo abaixo:

Image description

on:
  push:
    branches:
    - main

jobs:
  sast_job:
    runs-on: ubuntu-latest
    name: SAST Validator
    steps:
      - name: Checkout repository content
        uses: actions/checkout@v2 

      - name: SAST validator
        uses: michelleamesquita/sast-validator@v40
        with:
          options: -v $PWD/:/app
          path: .
          language: python

Nesse código acima, é importante entender que precisamos utilizar a actions/checkout@v2 para poder ler o arquivo do diretório corrente do projeto que usará o sast-validator.
Utilizamos o parâmetro options para compartilhar o volume entre o container e a máquina virtual linux (Ubuntu) que está sendo utilizada para rodar esse job.

Por fim, quando houver um push na branch Main, o código que analisa vulnerabilidades irá avaliar essa branch.

Image description

Image description

Image description

Assim, o código de validador de vulnerabilidades (SAST Validator), foi utilizado como prova de conceito para encontrar potenciais vulnerabilidades. No entanto, é importante salientar que é necessário o analista de segurança validar. Como também, podemos aumentar a quantidade de regras e também para linguagens específicas, onde utilizei o RegEx para realizar esses testes.

Espero que tenham gostado 💜👩‍💻

...

🔧 Criando meu próprio Github Actions para a área de AppSec


📈 141.73 Punkte
🔧 Programmierung

🔧 Documentação técnica para iniciantes, parte 1: criando um bom README para o seu projeto


📈 47.62 Punkte
🔧 Programmierung

🔧 Criando um executor auto-hospedado com GitHub Actions


📈 40.31 Punkte
🔧 Programmierung

🔧 Para te ajudar nesse caminho, preparei um guia completo com dicas valiosas para iniciantes na área:


📈 39.65 Punkte
🔧 Programmierung

🔧 Neopets - Meu inicio não tão convencional na área da tecnologia


📈 39.23 Punkte
🔧 Programmierung

🔧 O que eu diria para meu Eu a 2 anos atrás


📈 38.13 Punkte
🔧 Programmierung

🔧 Como tem sido o meu processo criativo para escrever um livro infantil sobre programação


📈 38.13 Punkte
🔧 Programmierung

🔧 Implementando seu próprio link tree


📈 35.79 Punkte
🔧 Programmierung

🔧 React: Criando um componente que transforma Json para Csv


📈 34.77 Punkte
🔧 Programmierung

🔧 Criando rotas dinâmicas para internacionalização (i18n) com Astro Build


📈 34.77 Punkte
🔧 Programmierung

🔧 Criando componentes para Web #01: Acessibilidade (a11y) na prática com WAI-ARIA


📈 34.77 Punkte
🔧 Programmierung

🔧 Docker para iniciantes: Criando Containers de Bancos de Dados


📈 34.77 Punkte
🔧 Programmierung

🔧 Full-Text-Search: Criando um Back-End de Filtro para o Django Rest-Framework


📈 34.77 Punkte
🔧 Programmierung

🎥 Conversational Actions overview - Actions Builder & Actions SDK


📈 34.13 Punkte
🎥 Videos

🎥 Actions Project - Actions Builder & Actions SDK


📈 34.13 Punkte
🎥 Videos

🔧 Deploying a Vite app on GitHub Pages using GitHub Actions with GitHub Secrets


📈 32.42 Punkte
🔧 Programmierung

🎥 Global AppSec Dublin: GitHub Actions: Vulnerabilities, Attacks, And Counter-Measures - Magno Logan


📈 31.94 Punkte
🎥 IT Security Video

🔧 Configurando pipeline com github actions para um projeto React


📈 31.24 Punkte
🔧 Programmierung

🔧 Despliegue de aplicación de Django con Github Actions para un servidor propio


📈 31.24 Punkte
🔧 Programmierung

🔧 Maximizando la Eficacia con GitHub Actions: Estrategias Avanzadas para Ingenieros de Software


📈 31.24 Punkte
🔧 Programmierung

🐧 Gitea is working on a built-in CI/CD tool called Gitea Actions (compatible with GitHub Actions syntax)


📈 29.77 Punkte
🐧 Linux Tipps

🔧 Cargo Actions: An efficient tool for managing and creating GitHub Actions workflow templates


📈 29.77 Punkte
🔧 Programmierung

🔧 actions-hottest🚀: GitHub Actions for Commenting on Golang Unit Test Results in Pull Requests


📈 29.77 Punkte
🔧 Programmierung

📰 Area 51 IPTV: What is Area 51 IPTV and is it safe to use?


📈 27.89 Punkte
🖥️ Betriebssysteme

🕵️ [APPSEC-1914] Stored XSS in CMS page area


📈 27.5 Punkte
🕵️ Sicherheitslücken

📰 AppSec Bites Part 1: Balancing Speed and Thorough AppSec Coverage


📈 27.11 Punkte
📰 IT Security Nachrichten

📰 AppSec Bites Part 2: Top 3 Things to Consider When Maturing Your AppSec Programs


📈 27.11 Punkte
📰 IT Security Nachrichten

📰 AppSec Bites Part 3: Has the New Virtual Reality Created Opportunities for AppSec?


📈 27.11 Punkte
📰 IT Security Nachrichten

📰 75% of AppSec practitioners see a growing cultural divide between AppSec and developers


📈 27.11 Punkte
📰 IT Security Nachrichten

🕵️ [APPSEC-1947/APPSEC-1945] Cross-site scripting in RMA functionality


📈 27.11 Punkte
🕵️ Sicherheitslücken

🕵️ [APPSEC-1972/APPSEC-2103] Admin password change did not force the logout of the admin user


📈 27.11 Punkte
🕵️ Sicherheitslücken

🎥 OWASP Appsec Tutorial Series - Episode 1: Appsec Basics


📈 27.11 Punkte
🎥 IT Security Video

🔧 Redefinindo horizontes: Minha transição para a tecnologia e dicas para novos navegantes


📈 25.7 Punkte
🔧 Programmierung

matomo