Déjà la fin de l’été et une université d’été TYPO3 déjà loin, mais bon il faut profiter de la rentrée pour faire des petits rappels. Nous allons donc aborder un des sujets traités durant cette université, sur les bonnes pratiques en terme de développements et d’intégration de TYPO3 dans le respect des règles de sécurité de base.
Tout d’abord, il est bon de faire un rapide rappel sur les différentes failles de sécurité auquel nous sommes confrontés, la première règle d’or c’est : « Maitriser les techniques d’attaques permet de mieux appréhender les contraintes de développement.
Cross-site Scripting ou XSS :
Insérer des données arbitraires via POST et GET:
- Faille du DOM (coté clients – le javascript)
- Faille basé sur le non traitement des URL, données directement exploitées sans être encodées
- Injection de code
Ces trois types de faille peuvent être évités en utilisant de bonne pratique de développement :
- retraitement des URL
- contrôle des paramètres POST et GET avec une réécriture des caractères spéciaux
- suppression des balises à risque en PRE traitement
SQL Injection :
Technique de hacking qui consiste à injecter dans les paramètres POST et GET via une faille XSS des éléments SQL en vue d’obtenir des informations contenues dans la base de données.
Le fishing (ou hameçonnage ou filoutage) :
Technique qui permet de récupérer des informations personelles pour usurper l’identité.
La technique consiste à faire croire à un internaute qu’il s’adresse à un site, une adresse de confiance afin que celui-ci fournisse des renseignements tels que :
- identifiant/mot de passe
- numéro de compte
- numéro de carte de crédit
- etc.
Généralement ces attaques se font soit à partir de mail soit par des sites web (avec de pages cachées).
Le déni de service :
Cette attaque à pour but de rendre indisponible le service et d’empêcher les utilisateurs légitimes d’un service de l’utiliser.
Celle-ci peut se baser sur :
- L’ « exploitation de limite machine », c’est à dire l’envoi massif de paquet de type ICMP dépassant la taille classique. Lorsque la taille d’un paquet est plus élevée, les piles IP traitent ces paquets de manière plus lente et font donc augmenter l’utilisation CPU
- Le « flooding ou UDP Flooding » c’est à dire l’injection de requête massive sur un réseau afin de saturer voir d’empêcher son fonctionnement.
- Le « SYN Flood » c’est à dire l’injection importante de demande de synchronisation TCP incomplète avec un serveur. Cela a pour objectif d’augmenter le délai d’attente de réponse avec pour issue le crash.
- Le « Packet Fragment » c’est à dire l’utilisation des faiblesses dans l’implémentation de certaines piles TCP/IP au niveau de la fragmentation IP. Cela a pour objectif le crash des systèmes et/ou des appareils réseau intelligents
- Le « Smurfing » c’est à dire l’envoi un paquet ICMP à une adresse de brodcast. Cela a pour objectif de créer une énorme quantité de trafic entre les équipements
En synthèse on peut dire que le déni de service à trois objectifs majeurs :
- Le blocage d’accès à un service pour une à plusieurs personnes.
- La saturation d’un réseau afin d’empêcher son fonctionnement
- La perturbation des connexions entre deux machines et/ou équipement, empêchant l’accès à un service en particulier ou une branche de réseau.
- Le blocage d’accès à un service pour une à plusieurs personnes.