SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Auditer son code PHP
pour plus de sécurité


     NEXEN - ALTER WAY GROUP   1
Agenda

 Tests boîte noire
   Scanners automatiques
   Fuzzing
   Scénarios
 Test à code ouvert
   Outils et techniques


            NEXEN - ALTER WAY GROUP
Qui parle?
               Damien Seguy
               Eleveur d'éléPHPants
               Architecte Open
                Source
               Audits sécurité et
                performances


         NEXEN - ALTER WAY GROUP
Un audit

 La confiance
  n'exclut pas le contrôle™
   Pour valider un travail externe
   Pour valider un travail interne
   Pour faire le point
   Pour avoir un regard externe
   Aussi souvent que possible

              NEXEN - ALTER WAY GROUP
Deux types d'audit

 Boîte noire
   Comme un pirate
   Eviter les préjugés
 Code ouvert
   Plus efficace
   Plus théorique


              NEXEN - ALTER WAY GROUP
Scanners automatiques

 Simple à mettre en oeuvre
 Nikto (http://www.cirt.net/)
 Doivent être adaptés
   Mis à jour régulièrement
   Personnalisables




              NEXEN - ALTER WAY GROUP
Fuzzing
 De la friture sur la ligne
 Stress des formulaires
   Bases de données

Valeur                                        Erreurs
              Application                      Crash
Aléatoire




 Test décomplexé                        OK

               NEXEN - ALTER WAY GROUP
Fuzzing : valeurs

  Tous les caractères de 0 à x255
    Unicode
  Les nombres 1, 0, -1, 0.99, infini
  Chaînes
    Longues, courtes
  Dictionnaires de valeurs
    de vulnérabilités
               NEXEN - ALTER WAY GROUP
Fuzzing : moyens

 GET, POST, COOKIE
 Des variables tableaux : c[]=1
 Excédents de variables
   debug=1, task=view
 Manque de variables
 Encodages variés
   UTF-8, Latin1, HTML, hexa
             NEXEN - ALTER WAY GROUP
Scénarios

 Des tests plus construits
   Plus adaptés mais fragiles
 Automatiser les tests
 A utiliser avec le fuzzing



             NEXEN - ALTER WAY GROUP
Scénarios
Navigateur    Proxy                      Application




 Valeurs       Log                       Navigateur

    Funkload, WebScarab
               NEXEN - ALTER WAY GROUP
Plan d'audit PHP

 Passer en revue le code
 Dégrossir le travail avec un outil
 Rechercher les trous possibles
 Affiner manuellement



              NEXEN - ALTER WAY GROUP
Trous fréquents

 Injections PHP
    include ($_GET['x']);
 Injections SQL
    'WHERE login='.$_GET['x']
 Injections XSS
    echo $_GET['x'];


             NEXEN - ALTER WAY GROUP
Outils

  grep
    Rapide mais trop
  PHP
    preg_match + toilettages
    code_sniffer
    tokenizer
  Perl, Python, etc...
              NEXEN - ALTER WAY GROUP
Injections PHP

 Liste des include/require
   grep -ri include * > incl.php.txt
 Filtrage avec
   $ : variables
   .' et .quot; : pour les constantes
   Exclure les valeurs filtrées
 phpMyAdmin : de 960 à 82
              NEXEN - ALTER WAY GROUP
Injections SQL

 Mots-clés : select, update,
  delete, insert, where, join
 Fonctions PHP
   addslashes
   mysql_escape_string
   mysql_error (die, echo, print)
   mysqli_multi_query

              NEXEN - ALTER WAY GROUP
XSS

 $_GET, $_POST, $_COOKIE
 précédé par
   .
   (
   ,
   echo ou print
 phpMyAdmin : 90k => 70 à traiter
             NEXEN - ALTER WAY GROUP
Divers

 print_r, var_dump
 die, exit
 html_entity_decode
 htmlentities sans 2eme paramètre
 eval et ` (guillemets obliques)


             NEXEN - ALTER WAY GROUP
Pour aller plus loin
  Adapter le code
   aux outils
   d'analyse
  Automatiser
   l'analyse avec
   cron
  phpUnderControl
  Audits croisés
             NEXEN - ALTER WAY GROUP
Questions?




 http://www.alterway.fr/
 damien.seguy@nexen.net
 http://www.nexen.net/conferences.php
               NEXEN - ALTER WAY GROUP

Contenu connexe

Similaire à Auditer son code pour plus de sécurité.

Epitech securite-2012.key
Epitech securite-2012.keyEpitech securite-2012.key
Epitech securite-2012.keyDamien Seguy
 
Power shell saturday Paris 2017 Omiossec
Power shell saturday  Paris 2017 OmiossecPower shell saturday  Paris 2017 Omiossec
Power shell saturday Paris 2017 OmiossecOlivier Miossec
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continuneuros
 
SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101Benoit Fillon
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-endClément Dubois
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endFrançois Petitit
 
TDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroitTDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroitEspritAgile
 
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)Hackfest Communication
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Normandie Web Xperts
 
Présentation de Tanaguru au séminaire technique AccessiWeb de décembre 2010
Présentation de Tanaguru au séminaire technique AccessiWeb de décembre 2010Présentation de Tanaguru au séminaire technique AccessiWeb de décembre 2010
Présentation de Tanaguru au séminaire technique AccessiWeb de décembre 2010Open-S
 
Votre mission ? Découvrir Haskell et le mettre en prod
Votre mission ? Découvrir Haskell et le mettre en prodVotre mission ? Découvrir Haskell et le mettre en prod
Votre mission ? Découvrir Haskell et le mettre en prodCéline Louvet
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagiosjeyg
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsOCTO Technology
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsBoiteaweb
 
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseSécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseAntonio Fontes
 

Similaire à Auditer son code pour plus de sécurité. (20)

Epitech securite-2012.key
Epitech securite-2012.keyEpitech securite-2012.key
Epitech securite-2012.key
 
Retour d'expérience sur PowerShell
Retour d'expérience sur PowerShellRetour d'expérience sur PowerShell
Retour d'expérience sur PowerShell
 
Power shell saturday Paris 2017 Omiossec
Power shell saturday  Paris 2017 OmiossecPower shell saturday  Paris 2017 Omiossec
Power shell saturday Paris 2017 Omiossec
 
Integrons en mode continu
Integrons en mode continuIntegrons en mode continu
Integrons en mode continu
 
SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
Octo RefCard test front-end
Octo RefCard test front-endOcto RefCard test front-end
Octo RefCard test front-end
 
Octo Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-endOcto Technology - Refcard Tests Web front-end
Octo Technology - Refcard Tests Web front-end
 
TDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroitTDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroit
 
Cerberus Testing
Cerberus TestingCerberus Testing
Cerberus Testing
 
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
802.1X filaire, un monde idéal illusoire? (Olivier Bilodeau)
 
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
Conférence #nwx2014 - Maxime Mauchaussée - Partager du code maintenable et év...
 
Présentation de Tanaguru au séminaire technique AccessiWeb de décembre 2010
Présentation de Tanaguru au séminaire technique AccessiWeb de décembre 2010Présentation de Tanaguru au séminaire technique AccessiWeb de décembre 2010
Présentation de Tanaguru au séminaire technique AccessiWeb de décembre 2010
 
Votre mission ? Découvrir Haskell et le mettre en prod
Votre mission ? Découvrir Haskell et le mettre en prodVotre mission ? Découvrir Haskell et le mettre en prod
Votre mission ? Découvrir Haskell et le mettre en prod
 
[SINS] Présentation de Nagios
[SINS] Présentation de Nagios[SINS] Présentation de Nagios
[SINS] Présentation de Nagios
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
Les nouveautés de PowerShell 3.0
Les nouveautés de PowerShell 3.0Les nouveautés de PowerShell 3.0
Les nouveautés de PowerShell 3.0
 
Wordpress et la sécurité des plugins
Wordpress et la sécurité des pluginsWordpress et la sécurité des plugins
Wordpress et la sécurité des plugins
 
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défenseSécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
 

Plus de Damien Seguy

Strong typing @ php leeds
Strong typing  @ php leedsStrong typing  @ php leeds
Strong typing @ php leedsDamien Seguy
 
Strong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisationStrong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisationDamien Seguy
 
Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeDamien Seguy
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applicationsDamien Seguy
 
Top 10 pieges php afup limoges
Top 10 pieges php   afup limogesTop 10 pieges php   afup limoges
Top 10 pieges php afup limogesDamien Seguy
 
Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020Damien Seguy
 
Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Damien Seguy
 
Top 10 php classic traps confoo
Top 10 php classic traps confooTop 10 php classic traps confoo
Top 10 php classic traps confooDamien Seguy
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Damien Seguy
 
Top 10 php classic traps php serbia
Top 10 php classic traps php serbiaTop 10 php classic traps php serbia
Top 10 php classic traps php serbiaDamien Seguy
 
Top 10 php classic traps
Top 10 php classic trapsTop 10 php classic traps
Top 10 php classic trapsDamien Seguy
 
Top 10 chausse trappes
Top 10 chausse trappesTop 10 chausse trappes
Top 10 chausse trappesDamien Seguy
 
Code review workshop
Code review workshopCode review workshop
Code review workshopDamien Seguy
 
Understanding static analysis php amsterdam 2018
Understanding static analysis   php amsterdam 2018Understanding static analysis   php amsterdam 2018
Understanding static analysis php amsterdam 2018Damien Seguy
 
Review unknown code with static analysis php ce 2018
Review unknown code with static analysis   php ce 2018Review unknown code with static analysis   php ce 2018
Review unknown code with static analysis php ce 2018Damien Seguy
 
Everything new with PHP 7.3
Everything new with PHP 7.3Everything new with PHP 7.3
Everything new with PHP 7.3Damien Seguy
 
Php 7.3 et ses RFC (AFUP Toulouse)
Php 7.3 et ses RFC  (AFUP Toulouse)Php 7.3 et ses RFC  (AFUP Toulouse)
Php 7.3 et ses RFC (AFUP Toulouse)Damien Seguy
 
Tout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCTout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCDamien Seguy
 
Review unknown code with static analysis php ipc 2018
Review unknown code with static analysis   php ipc 2018Review unknown code with static analysis   php ipc 2018
Review unknown code with static analysis php ipc 2018Damien Seguy
 
Code review for busy people
Code review for busy peopleCode review for busy people
Code review for busy peopleDamien Seguy
 

Plus de Damien Seguy (20)

Strong typing @ php leeds
Strong typing  @ php leedsStrong typing  @ php leeds
Strong typing @ php leeds
 
Strong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisationStrong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisation
 
Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le code
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applications
 
Top 10 pieges php afup limoges
Top 10 pieges php   afup limogesTop 10 pieges php   afup limoges
Top 10 pieges php afup limoges
 
Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020
 
Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)
 
Top 10 php classic traps confoo
Top 10 php classic traps confooTop 10 php classic traps confoo
Top 10 php classic traps confoo
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4
 
Top 10 php classic traps php serbia
Top 10 php classic traps php serbiaTop 10 php classic traps php serbia
Top 10 php classic traps php serbia
 
Top 10 php classic traps
Top 10 php classic trapsTop 10 php classic traps
Top 10 php classic traps
 
Top 10 chausse trappes
Top 10 chausse trappesTop 10 chausse trappes
Top 10 chausse trappes
 
Code review workshop
Code review workshopCode review workshop
Code review workshop
 
Understanding static analysis php amsterdam 2018
Understanding static analysis   php amsterdam 2018Understanding static analysis   php amsterdam 2018
Understanding static analysis php amsterdam 2018
 
Review unknown code with static analysis php ce 2018
Review unknown code with static analysis   php ce 2018Review unknown code with static analysis   php ce 2018
Review unknown code with static analysis php ce 2018
 
Everything new with PHP 7.3
Everything new with PHP 7.3Everything new with PHP 7.3
Everything new with PHP 7.3
 
Php 7.3 et ses RFC (AFUP Toulouse)
Php 7.3 et ses RFC  (AFUP Toulouse)Php 7.3 et ses RFC  (AFUP Toulouse)
Php 7.3 et ses RFC (AFUP Toulouse)
 
Tout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCTout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFC
 
Review unknown code with static analysis php ipc 2018
Review unknown code with static analysis   php ipc 2018Review unknown code with static analysis   php ipc 2018
Review unknown code with static analysis php ipc 2018
 
Code review for busy people
Code review for busy peopleCode review for busy people
Code review for busy people
 

Dernier

Installation de Sylius 2.0 et découverte du nouveau backoffice en Bootstrap
Installation de Sylius 2.0 et découverte du nouveau backoffice en BootstrapInstallation de Sylius 2.0 et découverte du nouveau backoffice en Bootstrap
Installation de Sylius 2.0 et découverte du nouveau backoffice en BootstrapMaxime Huran 🌈
 
Les Metiers de l'Intelligence Artificielle
Les Metiers de l'Intelligence ArtificielleLes Metiers de l'Intelligence Artificielle
Les Metiers de l'Intelligence ArtificielleErol GIRAUDY
 
KIT-COPILOT and more Article du 20240311
KIT-COPILOT and more Article du 20240311KIT-COPILOT and more Article du 20240311
KIT-COPILOT and more Article du 20240311Erol GIRAUDY
 
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...Infopole1
 
The Importance of Indoor Air Quality (French)
The Importance of Indoor Air Quality (French)The Importance of Indoor Air Quality (French)
The Importance of Indoor Air Quality (French)IES VE
 
Mes succès sur Microsoft LEARN et examens
Mes succès sur Microsoft LEARN et examensMes succès sur Microsoft LEARN et examens
Mes succès sur Microsoft LEARN et examensErol GIRAUDY
 

Dernier (6)

Installation de Sylius 2.0 et découverte du nouveau backoffice en Bootstrap
Installation de Sylius 2.0 et découverte du nouveau backoffice en BootstrapInstallation de Sylius 2.0 et découverte du nouveau backoffice en Bootstrap
Installation de Sylius 2.0 et découverte du nouveau backoffice en Bootstrap
 
Les Metiers de l'Intelligence Artificielle
Les Metiers de l'Intelligence ArtificielleLes Metiers de l'Intelligence Artificielle
Les Metiers de l'Intelligence Artificielle
 
KIT-COPILOT and more Article du 20240311
KIT-COPILOT and more Article du 20240311KIT-COPILOT and more Article du 20240311
KIT-COPILOT and more Article du 20240311
 
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...
Workshop l'IA au service de l'industrie - Présentation générale - Extra 14...
 
The Importance of Indoor Air Quality (French)
The Importance of Indoor Air Quality (French)The Importance of Indoor Air Quality (French)
The Importance of Indoor Air Quality (French)
 
Mes succès sur Microsoft LEARN et examens
Mes succès sur Microsoft LEARN et examensMes succès sur Microsoft LEARN et examens
Mes succès sur Microsoft LEARN et examens
 

Auditer son code pour plus de sécurité.

  • 1. Auditer son code PHP pour plus de sécurité NEXEN - ALTER WAY GROUP 1
  • 2. Agenda  Tests boîte noire  Scanners automatiques  Fuzzing  Scénarios  Test à code ouvert  Outils et techniques NEXEN - ALTER WAY GROUP
  • 3. Qui parle?  Damien Seguy  Eleveur d'éléPHPants  Architecte Open Source  Audits sécurité et performances NEXEN - ALTER WAY GROUP
  • 4. Un audit  La confiance n'exclut pas le contrôle™  Pour valider un travail externe  Pour valider un travail interne  Pour faire le point  Pour avoir un regard externe  Aussi souvent que possible NEXEN - ALTER WAY GROUP
  • 5. Deux types d'audit  Boîte noire  Comme un pirate  Eviter les préjugés  Code ouvert  Plus efficace  Plus théorique NEXEN - ALTER WAY GROUP
  • 6. Scanners automatiques  Simple à mettre en oeuvre  Nikto (http://www.cirt.net/)  Doivent être adaptés  Mis à jour régulièrement  Personnalisables NEXEN - ALTER WAY GROUP
  • 7. Fuzzing  De la friture sur la ligne  Stress des formulaires  Bases de données Valeur Erreurs Application Crash Aléatoire  Test décomplexé OK NEXEN - ALTER WAY GROUP
  • 8. Fuzzing : valeurs  Tous les caractères de 0 à x255  Unicode  Les nombres 1, 0, -1, 0.99, infini  Chaînes  Longues, courtes  Dictionnaires de valeurs  de vulnérabilités NEXEN - ALTER WAY GROUP
  • 9. Fuzzing : moyens  GET, POST, COOKIE  Des variables tableaux : c[]=1  Excédents de variables  debug=1, task=view  Manque de variables  Encodages variés  UTF-8, Latin1, HTML, hexa NEXEN - ALTER WAY GROUP
  • 10. Scénarios  Des tests plus construits  Plus adaptés mais fragiles  Automatiser les tests  A utiliser avec le fuzzing NEXEN - ALTER WAY GROUP
  • 11. Scénarios Navigateur Proxy Application Valeurs Log Navigateur  Funkload, WebScarab NEXEN - ALTER WAY GROUP
  • 12. Plan d'audit PHP  Passer en revue le code  Dégrossir le travail avec un outil  Rechercher les trous possibles  Affiner manuellement NEXEN - ALTER WAY GROUP
  • 13. Trous fréquents  Injections PHP  include ($_GET['x']);  Injections SQL  'WHERE login='.$_GET['x']  Injections XSS  echo $_GET['x']; NEXEN - ALTER WAY GROUP
  • 14. Outils  grep  Rapide mais trop  PHP  preg_match + toilettages  code_sniffer  tokenizer  Perl, Python, etc... NEXEN - ALTER WAY GROUP
  • 15. Injections PHP  Liste des include/require  grep -ri include * > incl.php.txt  Filtrage avec  $ : variables  .' et .quot; : pour les constantes  Exclure les valeurs filtrées  phpMyAdmin : de 960 à 82 NEXEN - ALTER WAY GROUP
  • 16. Injections SQL  Mots-clés : select, update, delete, insert, where, join  Fonctions PHP  addslashes  mysql_escape_string  mysql_error (die, echo, print)  mysqli_multi_query NEXEN - ALTER WAY GROUP
  • 17. XSS  $_GET, $_POST, $_COOKIE  précédé par  .  (  ,  echo ou print  phpMyAdmin : 90k => 70 à traiter NEXEN - ALTER WAY GROUP
  • 18. Divers  print_r, var_dump  die, exit  html_entity_decode  htmlentities sans 2eme paramètre  eval et ` (guillemets obliques) NEXEN - ALTER WAY GROUP
  • 19. Pour aller plus loin  Adapter le code aux outils d'analyse  Automatiser l'analyse avec cron  phpUnderControl  Audits croisés NEXEN - ALTER WAY GROUP
  • 20. Questions?  http://www.alterway.fr/  damien.seguy@nexen.net  http://www.nexen.net/conferences.php NEXEN - ALTER WAY GROUP