420-B63 Programmation Web Avancée Auteur : Frédéric Thériault

Slides:



Advertisements
Présentations similaires
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Advertisements

Au dela du top 10. Contexte Dans le cours de sécurité précédent (GTI619), vous avez vu le top 10 de l’OWASP. Ce cours vise à vous présenter au delà du.
GCstar Gestionnaire de collections personnelles Christian Jodar (Tian)
Comprendre Internet Bases théoriques et exercices pratiques, pour débutants complets... Et curieux !
Toulibre : présentation de... par Rémy Sanchez +.
Twisted Le framework de votre internet Où pourquoi vous avez mieux à faire que de recoder un bot irc et un serveur web, par Michael Scherer.
Méthodes d’utilisabilité pour les nuls Alain Désilets National Research Council of Canada.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
Installation De Peakup.  Télécharger le fichier peakup2.4.0.free.zip  Décompresser le fichier extrait sur une Directory de votre choix  Créer un lient.
Bénin DNS Forum. DNS et Déni de Service Présentateur O Hervé HOUNZANDJI O Ingénieur Système O Administrateur de base de données ORACLE O Centre Hospitalier.
Pour plus de modèles : Modèles Powerpoint PPT gratuitsModèles Powerpoint PPT gratuits Page 1 Free Powerpoint Templates Client service architecteur réseaux.
1. 2 Accueil Jeu Avec la Carte FID  Consultation web service 3 Scan Carte FID Saisie N° CIN L’affichage de la carte en 13 X.
Protection contre la fraude
Ajouter le code dans une page html
Framework EHop/Ecenvir
Comment corriger son code sans forcément appeler l’enseignant M2202
Chapitre10 Prise en charge des utilisateurs distants
Eric b, emmanuel l, damien t
Comprendre l’environnement Web
Nicole Arsenault|Gestionnaire à la réussite – comptes majeurs
Utiliser le dossier Mon EBSCOhost
PLAN DU MODULE (35 heures)
Les Réseaux Informatiques
JavaScript.
Implémentation de PayPal
INSIA SRT 3 PAM !.
Validation de formulaire
Programmation du jeu Fruit Ninaj en JavaScript
Installation et Configuration Internet Information Server (IIS 5)
Sécurité Web Protocole HTTPS.
Clients riches RIA (Rich Internet Application) / RDA
La sécurité Pour les développeurs.
Centralisation de logs
LE MASHUP.
Les technologies AJAX.
Asynchronous Javascript And Xml
MS
fonctionnalités iiS iis
Comment fonctionne RADIUS?
Asynchronous Javascript And Xml
Cyril Bras Journée « Sécu »
Rudiments de la SACD Institut d’été Le 29 août 2017.
Documentation technique (Linux)
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
HTTP DNS NTP FTP R231 RJ45 definition HTTP DNS NTP FTP R231 RJ45.
Préparé et présenté par: SAOUDI Lalia
PHP AVANCE : APPLICATION A LA SECURITE Objectif général: Objectif spécifiques : 1- 1.
Expose : Web Application Firewall.
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Les protocoles de la couche application Chapitre 7.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
Mise en place d'un Serveur Radius pour la sécurité d'un réseau Wireless sous Windows Serveur Présenter par le Stagiaire : Etienne Mamadou Guilavogui.
Guide de soumission de la PPR-SLD
ATTENTION À VOS COURRIELS
Cours 5: Scripts Clients
Messagerie (Orange - Gmail)
Programmation PHP / PDO
PABP Le Programme d’Apprentissage Basé sur la Pratique.
Info Bases de données avancées
Question formation In English, you can change a statement into a question by adding a helping verb (auxiliary): does he sing? do we sing? did they sing.
Notions d'architecture client-serveur. Présentation de l'architecture d'un système client/serveur Des machines clientes contactent un serveur qui leur.
ENDNOTE : UTILITÉ, INSTALLATION, STRUCTURE DES FICHIERS…
Le Passé Composé (Perfect Tense)
Base MySQL SQLPHP(X)HTMLJavaScript sessions Navigateur PHPMyAdmin ServeurClient FTP Editeur Administration Visiteur JS scripts Saisie textes JS messages.
Bases de données Singleton pour la connexion
Implémentation de FTP Rappel sur FTP Relation entre un site Web et FTP
Qu’est ce qu’une page web? Comment fonctionne un site web?
TP N°4 Développement d’ une application
UN BON POWER POINT RETROUVEZ CE COURS P. GANGUTIA, Professeur documentaliste, LPFA 2019.
Site web, Ce qu’il faut savoir ?
Transcription de la présentation:

420-B63 Programmation Web Avancée Auteur : Frédéric Thériault Sécurité

(Distributed) Denial of service Le fait de rendre inaccessible le site Web aux usagers, en surchargeant le serveur de requêtes HTTP. Distributed : attaque par plusieurs machines Le processus Saturer le serveur Web avec tellement de requêtes que le serveur Web fini par lâcher (« planter »). Personne n’est à l’abri de ces attaques…. Y compris Facebook.

Brute force attack Essayer toutes les valeurs possibles jusqu’à temps de trouver la bonne valeur. Dans le cas d’un mot de passe, il s’agit de faire une application (un processus) essayant chaque mot de passe possible jusqu’à temps que le processus trouve le bon. Exemple : Le processus appelle la page Web d’authentification et essai de rentrer sur le site avec le mot de passe « aaaa ». Si ça ne marche pas, le processus essaie avec « aaab », … Pour se protéger, on peut limiter le nombre d’essais. Exemple : Après 5 mauvais essais, le compte est automatiquement verrouillé.

Brute force attack (à l’extrême) We can look to Jeremi Gosney’s 25 GPU cluster. Granted, this is an exceptional system, but it’s within the reach of anyone with a few dollars, and we’re not talking three letter agency or globalomnimegacorp dollars. From Jeremi’s data, here’s how many digests of various types his rig can calculate per second: Tries/sec NTLM 350,000,000,000 MD5 180,000,000,000 SHA1 63,000,000,000 SHA512Crypt 364,000 Bcrypt 71,000 http://chargen.matasano.com/chargen/2015/3/26/enough-with-the-salts-updates-on-secure-password-schemes.html

Dictionary attack Similaire au « brute force attack », mais utilise seulement les valeurs les plus susceptible de réussir. Exemple : Utiliser un dictionnaire de valeurs contenant des mots de passe fréquemment utilisés.

SQL injection Insérer des requêtes SQL sur un site Web mal programmé. Exemple : $statement = "SELECT * FROM users WHERE name = ‘” . $name . "';" Si $name = « ' OR ‘1'=‘1 » Résultat : SELECT * FROM users WHERE name = '' OR ‘1'=‘1'; // On peut se connecter avec n’importe quel usager, on peut voir l’informations de chaque membre… Exemple 2: Si $name = « ';DELETE FROM users » Résultat : SELECT * FROM users WHERE name = '';DELETE FROM USERS; // adieu les données !!! Pour se protéger, utiliser les prepared statement et le mécanisme de « binding ».

Clickjacking Inciter les usagers à faire des opérations ou à divulguer des informations à leur insu et en prétendant être un site Web de tout autre nature. Exemple, un jeu en JavaScript (comme le « How fast can you click »), mais en vérité, l’oiseau apparait à des endroits prédéfinis et lorsque l’usager clique dessus, il clique en vérité sur un bouton d’un autre site Web Pour se protéger : Framebusting. Comme le clickjacking utilise les <iframe>, on peut utiliser le code : <script type="text/javascript"> if (top != self) top.location.replace(self.location.href); </script>

Cross Site Scripting (XSS) Permet à un usager avec de mauvaises intentions d’insérer du JavaScript (ou tout script client) sur une page Web qui, lorsque visionnée par un autre utilisateur, sera exécuté. Exemple: l’usager 1 est sur un forum de discussion et écrit comme message : <script type=‘text/javascript’>window.location="http://www.mauvaissite.com"</script> L’usager 2 arrive sur le forum, le JavaScript de l’usager 1 est exécuté et l’usager est redirigé vers un autre site Pour se protéger, il faut filtrer les balises HTML, CSS et JS, ou les « escapés ». À voir : http://www.virtualforge.de/vmovie/xss_lesson_1/xss_selling_platform_v1.0.html

Phishing Concept : 1- Faire un site Web ou un courriel avec l’apparence d’un site Web légitime 2- Demander des informations personnelles au lecteur

La protection des serveurs Qu’arrive-t-il si on réussit à mettre la main sur votre base de données et que celle-ci contient des informations sensibles qui ne sont pas encodés/encryptés ? Réponse : Vous êtes dans la bouette Les tentatives de connexions aux serveurs Web sont nombreuses. Il y a des jours où j’ai 2000 tentatives de connexions SSH sur mon serveur. Il faut donc bien protéger les accès aux serveurs Web, et protéger la base de données contre les lecteurs indésirables en encodant les informations sensibles dans la base de données.

CSRF (Cross site request forgery) Imaginons qu’Alice reçoit ce courriel : En lisant le courriel, une requête est faite sur le site bank.example.com, et si Alice y est authentifiée, cette requête pourrait être considérée comme légitime. Dans ce cas-ci, un transfert d’argent serait envoyé à Mallory, à l’insu d’Alice. Pour se protéger, il faut utiliser des tokens uniques par session (donc qui changent régulièrement). Puisque le hacker ne possède pas la bonne valeur du token de la session d’Alice, la requête serait considérée comme invalide. Ex : <input type="hidden" name="csrfmiddlewaretoken" value="KbyUmhTLMpYj7CD2di7JKP1PmLlkPt"> http://en.wikipedia.org/wiki/Cross-site_request_forgery Hé, bonne fête Alice! <img src="http://bank.example.com/withdraw?account=Alice&amount =1000000&for=Mallory">   J’espère que tu as passé du bon temps!

File upload vulnerability Attention de bien contrôler les fichiers téléversés sur votre serveur. Par exemple, quelqu’un pourrait téléverser un fichier php au lieu d’une image! Ouch! Il faut donc s’assurer que les fichiers téléversés ne possèdent pas l’extension .php dans leur nom (test.jpg.php = invalide!). Si possible, modifier la configuration d’Apache ou Nginx pour s’assurer que les fichiers du dossier de téléversement ne puissent être envoyés au module de PHP.