Cybersecurite Engineer : protéger apps et infra

🏷️ Métier du web 📅 14/04/2026 10:00:00 👤 Mezgani said
CybersecuriteOwaspPentestingDevsecopsSecuriteVulnerabilitesSsl
Cybersecurite Engineer : protéger apps et infra

Proteger les applications et infrastructures contre les cybermenaces, maitriser OWASP, les audits de securite, le pentesting et les bonnes pratiques DevSecOps.

Le métier de la cybersécurité

Le Cybersécurité Engineer (ou Security Engineer) est le professionnel chargé de protéger les applications, les infrastructures et les données contre les cybermenaces croissantes. En 2026, avec la multiplication des attaques (ransomware, supply chain attacks, exploits zero-day), ce profil est devenu stratégique pour toute organisation.

Ses missions varient selon la spécialisation :

  • Application Security Engineer — sécuriser les applications dès la conception (Secure by Design)
  • Penetration Tester — tester activement les systèmes pour trouver les vulnérabilités
  • SOC Analyst — surveiller et répondre aux incidents de sécurité en temps réel
  • DevSecOps Engineer — intégrer la sécurité dans les pipelines CI/CD
  • Cloud Security Engineer — sécuriser les environnements AWS, Azure, GCP
Shift-Left Security : La tendance majeure en 2026 est d'intégrer la sécurité le plus tôt possible dans le cycle de développement (Shift-Left). Corriger une vulnérabilité en phase de design coûte 100 fois moins cher qu'en production.

OWASP Top 10 — les vulnérabilités essentielles

L'OWASP (Open Web Application Security Project) publie le Top 10 des vulnérabilités web les plus critiques. Tout Security Engineer doit les connaître par cœur.

A01 - Broken Access Control

La plus courante en 2026. Un utilisateur peut accéder à des ressources auxquelles il ne devrait pas avoir accès.

// Vulnérabilité : IDOR (Insecure Direct Object Reference)
// L'utilisateur modifie l'ID dans l'URL pour accéder aux données d'un autre
// GET /api/orders/12345 -- l'utilisateur change 12345 en 12346

// Code vulnérable (Node.js/Express)
app.get('/api/orders/:id', async (req, res) => {
  const order = await Order.findById(req.params.id); // Aucune vérification !
  res.json(order);
});

// Code corrigé — toujours vérifier l'ownership
app.get('/api/orders/:id', authenticate, async (req, res) => {
  const order = await Order.findOne({
    _id: req.params.id,
    userId: req.user.id  // L'utilisateur ne peut voir que ses propres commandes
  });
  if (!order) return res.status(404).json({ error: 'Commande non trouvée' });
  res.json(order);
});

A02 - Cryptographic Failures

Données sensibles mal protégées : mots de passe en clair, chiffrement faible, clés exposées.

// Mauvaise pratique : stocker les mots de passe en MD5
const hash = crypto.createHash('md5').update(password).digest('hex'); // INTERDIT

// Bonne pratique : bcrypt avec salt factor adapté
const bcrypt = require('bcrypt');

// Hachage (lors de la création du compte)
const SALT_ROUNDS = 12;
const hashedPassword = await bcrypt.hash(plainPassword, SALT_ROUNDS);

// Vérification (lors de la connexion)
const isValid = await bcrypt.compare(inputPassword, hashedPassword);

// Pour les tokens API : utiliser des secrets forts et les stocker dans des variables d'env
// .env
// API_SECRET=k9mP2rXqN7vL4wS8yH3jB6nC1dF5tG0uA
// Ne JAMAIS committer ce fichier dans Git

A03 - Injection (SQL, Command, LDAP)

L'injection SQL reste une vulnérabilité critique malgré des décennies de sensibilisation.

// Vulnérable : concaténation directe dans la requête SQL
const query = `SELECT * FROM users WHERE email = '${userInput}'`;
// Attaque : email = "' OR '1'='1" -- toute la table est retournée

// Correct : requêtes paramétrées (prepared statements)
const query = 'SELECT * FROM users WHERE email = $1';
const result = await db.query(query, [userInput]);

// Avec un ORM comme Prisma — protection automatique
const user = await prisma.user.findUnique({
  where: { email: userInput } // Prisma échappe automatiquement
});

A07 - Identification and Authentication Failures

// Implémenter une protection contre le brute force
const rateLimit = require('express-rate-limit');

const loginLimiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 minutes
  max: 5, // Max 5 tentatives par IP
  message: { error: 'Trop de tentatives. Réessayez dans 15 minutes.' },
  standardHeaders: true,
  legacyHeaders: false
});

app.post('/auth/login', loginLimiter, async (req, res) => {
  // ... logique de connexion
});

// Implémenter le MFA (Multi-Factor Authentication)
// Toujours utiliser HTTPS (TLS 1.2+)
// Tokens JWT avec expiration courte (15min access, 7j refresh)
// Invalider les sessions lors de la déconnexion
OWASP ASVS : L'Application Security Verification Standard (ASVS) est la référence pour auditer la sécurité d'une application. Il définit 3 niveaux de vérification selon la criticité de l'application.

Pentesting et outils offensifs

Le pentesting (test d'intrusion) consiste à attaquer de manière contrôlée un système pour identifier ses vulnérabilités avant les véritables attaquants.

Méthodologie PTES (Penetration Testing Execution Standard) :

  • Reconnaissance — collecte d'informations sur la cible (OSINT, DNS, sous-domaines)
  • Scanning — identification des ports ouverts et services exposés
  • Enumération — identification précise des versions et configurations
  • Exploitation — exploitation des vulnérabilités identifiées
  • Post-exploitation — élévation de privilèges, persistance, pivoting
  • Rapport — documentation des findings avec niveaux de criticité CVSS

Outils essentiels du pentesteur :

  • Burp Suite — proxy d'interception HTTP/HTTPS, spider, scanner de vulnérabilités web
  • Nmap — scanner réseau de référence (ports, services, OS detection)
  • Metasploit Framework — framework d'exploitation de vulnérabilités
  • OWASP ZAP — scanner de sécurité web open source
  • Wireshark — analyse de trafic réseau (captures pcap)
  • Nikto — scanner de vulnérabilités web (en-têtes, fichiers sensibles)
  • SQLmap — détection et exploitation automatique des injections SQL
  • Hashcat / John the Ripper — cracking de hachages de mots de passe
# Exemple de reconnaissance avec Nmap
# Scan des ports TCP les plus courants avec détection de version
nmap -sV -sC -p 80,443,8080,8443,22,21,3306,5432 target.com

# Scan complet discret (SYN scan, timing T2)
nmap -sS -T2 -p- target.com -oN scan_results.txt

# Détection de vulnérabilités avec les scripts NSE
nmap --script vuln target.com

# Avec OWASP ZAP en ligne de commande (CI/CD)
docker run -t owasp/zap2docker-stable zap-baseline.py \
  -t https://staging.myapp.com \
  -r zap_report.html
Important — cadre légal : Tout test d'intrusion doit être réalisé avec une autorisation écrite explicite de la cible. Tester un système sans autorisation est un crime dans tous les pays. Assurez-vous toujours d'avoir un scope et une autorisation clairs.

DevSecOps — sécuriser le pipeline CI/CD

Le DevSecOps intègre la sécurité dans chaque étape du pipeline CI/CD, rendant les vérifications automatiques et continues plutôt que ponctuelles.

Outils de sécurité à intégrer dans le pipeline :

  • SAST (Static Analysis) — analyse du code source sans exécution : SonarQube, Semgrep, Bandit (Python)
  • DAST (Dynamic Analysis) — test de l'app en cours d'exécution : OWASP ZAP, Nuclei
  • SCA (Software Composition Analysis) — audit des dépendances : Snyk, OWASP Dependency-Check
  • Secrets scanning — détection de clés et tokens committés : GitGuardian, truffleHog
  • Container scanning — audit des images Docker : Trivy, Grype
  • IaC scanning — audit des fichiers Terraform/K8s : Checkov, tfsec
# .github/workflows/security.yml — Pipeline CI/CD sécurisé
name: Security Pipeline

on: [push, pull_request]

jobs:
  sast:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Semgrep SAST
        uses: returntocorp/semgrep-action@v1
        with:
          config: p/owasp-top-ten

  dependency-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Snyk Dependency Audit
        uses: snyk/actions/node@master
        env:
          SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
        with:
          args: --severity-threshold=high

  container-scan:
    runs-on: ubuntu-latest
    steps:
      - name: Build Docker image
        run: docker build -t myapp:${{ github.sha }} .
      - name: Run Trivy container scan
        uses: aquasecurity/trivy-action@master
        with:
          image-ref: myapp:${{ github.sha }}
          severity: HIGH,CRITICAL
          exit-code: 1

Certifications et salaire

Certifications reconnues en cybersécurité :

  • CEH (Certified Ethical Hacker) — certification entry-level pentesting
  • OSCP (Offensive Security Certified Professional) — la référence pentesting, très pratique
  • CISSP (Certified Information Systems Security Professional) — management de la sécurité SI
  • CompTIA Security+ — fondamentaux de la sécurité, bon point d'entrée
  • AWS Security Specialty — sécurité cloud AWS
  • eWPT (eLearnSecurity Web Application Penetration Tester) — pentesting web
ExpérienceSalaire brut annuel (France)Salaire brut annuel (Paris)
Analyste SOC Junior (0–2 ans)32 000 – 45 000 €38 000 – 52 000 €
Security Engineer (3–5 ans)50 000 – 70 000 €58 000 – 82 000 €
Senior Security Engineer (6+ ans)72 000 – 100 000 €80 000 – 115 000 €
CISO / Principal / Freelance100 000 – 150 000 €700 – 1 100 €/jour TJM
  • La pénurie de profils est encore plus marquée qu'en développement classique
  • L'OSCP reste la certification la plus respectée par les employeurs et clients
  • Le secteur défense, banque et assurance offre les meilleurs packages
  • Le freelance en pentest est très rémunérateur dès 4–5 ans d'expérience