Meetup OWASP Paris (15/05/2023)

Le meetup OWASP Paris du lundi 15 mai s’est déroulé chez Mobiskill

Lightning talks

Injection en CI

Les Github Action peuvent être exposées aux injections de code lors d’exécution de commandes shell.

Voici un exemple d’action vulnérable si l’attaquant peut choisir le titre de la PR:

     - name: Check PR title
        run: |
          title="$"
          if [[ $title =~ ^octocat ]]; then
          echo "PR title starts with 'octocat'"
          exit 0
          else
          echo "PR title did not start with 'octocat'"
          exit 1
          fi

La règle Semgrep run-shell-injection permet de détecter partiellement l’erreur dans le code source de vos Github Actions.

Liens:

Enable TLS with postgresql

La plupart des bibliothèques d’accès aux données (exemple: sequelize, TypeORM, …) n’utilisent pas le TLS, même si le TLS est activé sur votre base de données.

Il faut donc:

  • Forcer le TLS sur votre base de données (now by default with RDS PG15)
  • Configurer votre bibliothèques avec le mode verify-full

Exnmple pour Sequelize:

const fs = require('fs');
const path = require('path');

rootCertificate = path.join(__dirname, "root.crt");

module.exports = {
  dev: {
    username: "node",
    password: process.env.PGPASSWORD,
    database: "app",
    host: "127.0.0.1",
    dialec": "postgres",
    dialectOptions: {
      ssl: {
        minVersion: 'TLSv1.2',
        rejectUnauthorized: true,
        ca: fs.readFileSync(rootCertificate).toString()
      }
    }
  }
};

Unsecure webapp

Présentation d’une application volontairement vulnérable en PHP pour comprendre le fonctionnement des failles: IDOR, local file injection, XSS, …

Hacking tools

  • Beef: outil pour exploiter les attaques XSS
  • Exécuter du code dans la base de données:

    • sys_exec() pour MySQL et PostgreSQL
    • xp_cmdshell() pour Microsoft SQL Server

DSOMM

Presentation du projet DSOMM (DevSecOps Maturity Model de l’OWASP

Workshop

  • Atelier d’initiation a Keycloak

  • Atelier PenTest