Formation Sécurité des Développements Web PHP

  • Référence : SECSPWD
  • Durée : 21 heures
  • Certification : Non
  • Eligible CPF : Non

CONNAISSANCES PREALABLES

  • 1-Avoir des connaissances généralistes en programmation Web et en langage PHP
  • 2-Avoir connaissance de la gestion de base d'un serveur Web est un plus

PROFIL DES STAGIAIRES

  • Pentesters et développeurs.

OBJECTIFS

  • Pouvoir sécuriser un code PHP ou une interface avec du PHP
  • Être capable de réer des tests visant à éprouver la sécurité des applications Web, notamment sous PHP
  • Savoir analyser et organiser la sécurité d'une application Web développée en PHP
  • Être en mesure de formuler des exigences de sécurité aux autres corps de métiers.

METHODES PEDAGOGIQUES

  • La formation est constituée d’apports théoriques, d’exercices pratiques et de réflexions
  • Remise d’une documentation pédagogique papier ou numérique pendant le stage
  • Mise à disposition d’un poste de travail par participant

METHODES D'EVALUATION DES ACQUIS

  • Auto-évaluation des acquis par le stagiaire via un questionnaire
  • Attestation de fin de stage adressée avec la facture

FORMATEUR

Consultant-Formateur expert Sécurité défensive

CONTENU DU COURS Sécurité défensive

1 - JOUR 1

    2 - Introduction

    • Panorama de la sécurité Web
    • Les normes et lois
    • Les référentiels
    • Les principaux groupes de réflexion et de travail sur la sécurité des applications Web
    • L’évolution du langage PHP, des technologies et des usages du Web
    • L’apport du Full Stack

    3 - Protocole HTTP avec PHP

    • Rappels des fondamentaux sur les protocoles HTTP et HTTP/2 : La pile applicative, Les méthodes, Les codes erreurs, Les principaux champs liés à la sécurité
    • Le fonctionnement d’AJAX
    • Architecture des applications Web (monolithe, N-tiers, SOA / ROA…)
    • Le cas des API
    • Le header HTTP et la fonction header()
    • Le retour de requête via http_response_code()
    • Les méthodes HTTP via le module cURL pour PHP
    • Exemple de travaux pratiques (à titre indicatif) : Création d’une requête GET et d’une requête POST en PHP avec cURL

    4 - Les outils connexes

    • Faire des tests et des validations : Les tools des navigateurs, La capture via proxy, La capture via tcpdump ou Wireshark, Les tests avec Postman
    • Les vulnerability scanners : Burp Suite, Acunetix, Les outils spécialisés CMS, Les sites Web d’analyse

    5 - L'OWASP

    • Présentation de l’OWASP et de ses projets
    • Le PHP Security Cheat Sheet
    • Le Top 10
    • Le Top 25 du SANS
    • Les Google Dorks
    • Les guides de l’OWASP (Test Guide, Dev Guide…)
    • L’ASVS (Application Security Verification Standard)
    • Rappel des recommandations : Sur le logging et le monitoring, En termes de suivi des vulnérabilités
    • Les grandes familles d’attaques : Broken Access Control, Cryptographic Failures, Injection, Insecure Design, Security Misconfiguration, Vulnerable and Outdated Components, Identification and Authentication Failures, Software and Data Integrity Failures, Security Logging and Monitoring Failures, Server-Side Request Forgery

    6 - JOUR 2

      7 - Exemples de travaux pratiques (à titre indicatif)

      • Exploitation : D’une injection d’entête HTTP, D’une injection SQL, D’une Cross-Site Scripting, D’une Cross-Site Request Forgery, D’une Server-Side Request Forgery, D’un vol de session, D’une désérialisation, D’une vulnérabilité dans un produit Open Source (WordPress, Joomla, Drupal, Magento…)
      • Démonstration de la rétro-ingénierie sur une plateforme souffrant de misconfiguration
      • Exploitation d’une faille LFI et RFI
      • Analyse automatisée via des "vulnerability scanners" (WPScan, Nikto, OpenVas, Nmap) et framework offensif (Metasploit)
      • Réalisation et exécution d’un "stress test" d’une application Web

      8 - La sécurité du code externe

      • Le cas des librairies
      • Le pruning

      9 - JOUR 3

        10 - Les bonnes pratiques pour le renforcement de la sécurité du code

        • Les forces et les faiblesses du langage PHP
        • La validation des entrées
        • La sécurisation de l’authentification
        • L’authentification multifactorielle et par challenge
        • La gestion des mots de passe (création, stockage et vérification)
        • La gestion des sessions
        • La gestion des droits et du contrôle d’accès
        • La norme RBAC (Role-Based Access Control) appliquée aux applications Web
        • L’encodage des sorties
        • Le cas des downloaders et uploaders
        • La gestion des CSRF (Cross-Site Request Forgery)
        • La gestion du logging et du monitoring serveur et applicatif
        • Exemples de travaux pratiques (à titre indicatif) : Création d’un portail d’authentification sécurisé en PHP, Création d’un downloader sécurisé, Analyse de code statique et dynamique avec RIPS ou Jira

        11 - Le renforcement de la sécurité côté client et serveur

        • La sécurité du système d’exploitation : L’installation, Les règles obligatoires pour le firewall, Les antivirus, Les IPS (Intrusion Prevention System) et IDS (Intrusion Detection System), Le logging et le monitoring, La surveillance de l’intégrité, Les tâches de maintenance
        • La sécurité du serveur Web : Les réglages de base, Les modules complémentaires, La limitation des droits, La gestion des logs
        • Le langage PHP et HTML : Le fichier php.ini, Les fonctions phpinfo() et PHPSecInfo, La Content Security Policy, L’utilisation de SOP / CORS
        • La confidentialité et l’intégrité
        • Le chiffrement SSL/TLS
        • Les certificats
        Cookies