La sécurité Pour les développeurs.

Slides:



Advertisements
Présentations similaires
Techniques Internet de Base Licence 2 (Info, Maths, PC/PA) Université Jean Monnet Ruggero G. PENSA
Advertisements

Travail réalisé par : Abdessamad BOUTGAYOUT Encadré par : Mr. Ahmed REBBANI LP SRI - ENSET Mohammedia
Comprendre Internet Bases théoriques et exercices pratiques, pour débutants complets... Et curieux !
1 Après 3 séances ● Utilisation du système Linux – Il faut maîtriser l'utilisation de la souris (« copy/paste » des textes donnés) – Utilisation de la.
Qu'est ce que le logiciel libre ?. Qu'est-ce qu'un logiciel ? ● C'est une application informatique qui répond à un besoin : traitement de texte, navigateur.
Toulibre : présentation de... par Rémy Sanchez +.
Développement à l'Aide de Langages Dynamiques : Smalltalk module IT308: Méthodologies et outils logiciels Nada Ayad, Damien Cassou et Annabelle Souc.
FREYCON FlorianS2d MILATRE Jean Wildor CRYPTOGRAPHIE ET PROGRAMMATION : LE CHIFFREMENT DE CESAR Tuteur : M. Cayrel Année : 2012/2013.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
Portage d'une application sur GPU CreditCruncher.
La sécurité Un sujet TRES vaste ! Qu'est ce qu'un « hacker » ? Risques pour un utilisateur lambda ? Comment s'y prennent-ils !? Comment se protéger ? Tout.
CHARTE INFORMATIQUE à l’usage des élèves du collège Saint-Joseph
LES TECHNIQUE DE CRYPTOGRAPHIE
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault
Après 3 séances Tous les binômes ont commencé l'exercice « Formes »
Les Bases de données Définition Architecture d’un SGBD
CRYPTOGRAPHIE GENERALE CRYPTOGRAPHIE
Outils (MailIntegration et autres)
Mise en place d’un système de partage de fichiers
Introduction au Langage Pascal
Comprendre l’environnement Web
Introduction aux Systèmes de Gestion de Bases de données
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Introduction à la cryptographie
Dominique PETRELLA – Frédéric GUINEPAIN - IA-IPR STI Versailles
Utilisation de PostgreSQL
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
INSIA SRT 3 PAM !.
Sécurisation de l’accès Internet
Semaine #1 INF130 par Frédérick Henri.
Vincent HURTEVENT – UCBL
AO (Architecture des ordinateurs)
Les Tests de performances
Installer linux sur VMware
Séminaire EOLE Dijon Octobre 2010
Objectifs de la veille :
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
Chapitre 12 Surveillance des ressources et des performances
Après 3 séances Tous les binômes ont commencé l'exercice « Formes »
Sécurité des réseaux (gestion et politique de sécurité) Présenté par : - Megherbi Aicha Ahlem 1.
Programmation système
Commande d’une voiture par LABVIEW/ ARDUINO / Bluetooth
Manipulation D’Une Base De Données
Structure D’une Base De Données Relationnelle
Bureau distant sur Windows Vista /2008 Server
Sécurité Informatique
Calcul Scientifique Initiation à SCILB
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.
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Préface. Préface-3 Profil Avant de commencer Avant de commencer ce cours, vous devez savoir utiliser une interface graphique. Vous devez en outre être.
D Copyright © 2004, Oracle. Tous droits réservés. Utiliser SQL*Plus.
Système d’exploitation UNIX
Mots de passe Apprenez à composer.
Les classes et les objets
Programmation PHP / PDO
Le programme informatique L’algorithme Le codage
ENSEIGNER L’ALGORITHMIQUE ET LA PROGRAMMATION AU COLLÈGE
PLATE FORME DE GESTION ÉLECTRONIQUE DE DOCUMENTS Présenté par: Amine LARIBI.
Cryptologie Crypto monnaies Blockchain
Tableau de bord d’un système de recommandation
Bases de données Singleton pour la connexion
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
Sensibilisation : Exploitation de vulnérabilités avancée 16 mai 2019
Qu’est ce qu’une page web? Comment fonctionne un site web?
Site web, Ce qu’il faut savoir ?
Transcription de la présentation:

La sécurité Pour les développeurs

Plan Règles de base Filtrage des variables Cryptographie Exemples d’attaques Ressources

Règles de base « Never trust user input » Maîtriser le contexte : OS, configuration, langage Connaître les attaques pour bien préparer les défenses Connaître, appliquer, améliorer les bonnes pratiques Never trust user input Vérifier toutes les entrées : utilisateur (implicite ou explicite), système, autre application   Maitriser l’environnement Comment fonctionne l’ordinateur  matériel, OS (win/mac/linux) services (web, BDD) configuration (config par défaut) protocoles (TCP/UDP, HTTP, …) Connaitre le langage : compilation, exécution Connaître la sécurité offensive S’intéresser à l’aspect offensif pour mieux appréhender les façon de se protéger, mieux tester ses applications, et imaginer les possibles vecteurs d’attaques Les bonnes pratiques Connaître, appliquer et améliorer les bonnes pratiques

Filtrage des variables Fonctions dédiées Intval() Filter_var() htmlentities() PDO Regex Vérification manuelle Fonctions dédiées En PHP il existe beaucoup de fonctions de filtrage : intval, filter_var, htmlentities, PDO   Regex Les expressions régulières permettent d’écarter les valeurs contenant des caractères inattendus Fonctions originales Attention à la justesse et à l’exhaustivité des fonctions qui font le travail à la main. Préférer utiliser des whitelist plutôt que des blacklist. $sql = 'SELECT * FROM news WHERE title LIKE :t'; $req = $db->prepare($sql); $req->execute(array('t' => $title)); intval("1234"); = 1234 intval("XCV34"); = 0 intval("34XCV"); = 34 filter_var('azert@ty.com', FILTER_VALIDATE_EMAIL) = azert@ty.com filter_var('az#ert@t/y.com', FILTER_VALIDATE_EMAIL) = false htmlentities("te<b>st") = te<b>st /^[a-zA-Z0-9]+$/

Cryptographie md5("a"); = 0cc175b9c0f1b6a831c399e269772661 md5("b"); = 92eb5ffee6ae2fec3ad71c777531578f Hachage Chiffrement symétrique Chiffrement asymétrique Utiliser des bibliothèques dédiées Utiliser des algorithmes éprouvés et une protection maximale Nul besoin d’être un expert en cryptologie ; il suffit de connaître les différents type d’algorithmes et de bien comprendre l’utilité de chacun.   Les fonctions les plus utilisées sont les suivantes : Hachage (MD5, SHA) Le hachage permet de calculer une l’empreinte unique d’une information ; il peut s’agir de texte, d’un fichier, … Il est généralement utilisé pour stocker les mots de passe et vérifier l’intégrité d’un fichier Conseil : Utiliser des bibliothèques dédiées au hachage de mots de passe (protection contre le bruteforce et les dictionnaires) Chiffrement symétrique (AES) Le chiffrement symétrique utilise la même clé pour chiffrer et déchiffrer une information. Il est rapide, mais nécessite un échange de clé préalable Chiffrement asymétrique (RSA) Le chiffrement asymétrique utile un couple clé publique/clé privée. Il permet d’authentifier son interlocuteur. Autant que possible, utiliser les algorithmes les plus puissants/éprouvés.

Exemples d’attaques Web Exécutable Injection XSS Injection SQL Upload Remote Code Execution (RCE) Exécutable Buffer overflow Reverse engineering Bruteforce, DoS,… Attaque d’une application Web   Injection XSS Injection de code HTML/JS : phishing, vol de session, redirection, téléchargement de malware Injection SQL Dump de la base, lecture/écriture de fichier Upload Permissivité des scripts d’upload RCE Failles permettant l’exécution de code PHP ou de ligne de commande Attaque d’un exécutable Buffer overflow Consiste à injecter dans un programme une valeur spécifique permettant d’en modifier le comportement. Reverse engineering Analyse du code assembleur ou du code source Attaque de service Accès anonyme, bruteforce, exploits, DoS,…

Ressources Conclusion Filtrage des entrées Maitrise de l’environnement Utiliser la bonne crypto Rester informer Ressources Cours online, forums Magazines / webzines Challenges Conclusion   Il suffit de respecter quelques consignes simples : Filtrage des entrées Maitrise de la configuration/environnement Utiliser la bonne crypto Rester informer Ressources Cours Online, Forums dédiés OpenClassrooms, développez.net Magazines / Ezines Beaucoup de magazines, papiers et online, pour tous les niveaux : MISC, Pirate Informatique, Open Silicium, les mags Linux, Rafale Security checklist, Cheat sheets Challenges NewbieContest, HackThisSite