securité des applications web

59
Sécurité des Applications Web Rédigé et présenté par TCHOULEGHEU NJEMOU MARCEL THIERRY En vue de l’obtention du diplôme d Licence Professionnelle Spécialité : Génie des télécommunications ption : Administration et Sécurité de Réseaux Institut Supérieur des Technologies & du Design Industriel Premiers Pas Sarl

Upload: marcel-tchoulegheu

Post on 18-Jan-2017

46 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Securité des applications web

Sécurité des Applications Web

Rédigé et présenté par TCHOULEGHEU NJEMOU MARCEL THIERRY

En vue de l’obtention du diplôme de Licence Professionnelle

Spécialité : Génie des télécommunications Option : Administration et Sécurité des Réseaux

Institut Supérieur des Technologies

& du Design IndustrielPremiers Pas

Sarl

Page 2: Securité des applications web

Agenda

IntroductionPrésentation de la Société Premiers Pas Sarl SECURITE DES APPLICATIONS WEBConclusion

Page 3: Securité des applications web

Présentation de la Société Premiers Pas Sarl

Page 4: Securité des applications web

StructurePersonnelRôle du service TechniqueBudgets Quelques Références

Présentation de la Société Premiers Pas Sarl

Page 5: Securité des applications web

B - Structure Direction

Service Technique

Vitrine web

Service Commercial

Page 6: Securité des applications web

PersonnelTrois (03) ingénieurs systèmes et réseau Un (01) ingénieur des Systèmes d'Information et d'aide à la décision Deux (01) experts en comptabilité et fiscalité Camerounaise Deux (05) développeurs web/application Un (01) infographiste Deux (02) traductrices (français/anglais/espagnole et français/allemand) Trois (03) Stagiaires commerciaux et 02 stagiaires Développeur d’applications Web Trois (03) Stagiaires commerciaux et 02 stagiaires Développeur d’applications Web

Page 7: Securité des applications web

Rôles du service Technique Le service Technique (dont je faisait

partie ) a pour principale rôle la conception et le développement , hébergement des sites web de à l’aide des modèles éprouvé comme le model MVC (en anglais Model View Controller) à travers l’utilisation d’un CMS (Content Management System).

Page 8: Securité des applications web
Page 9: Securité des applications web

No

yau

du

ge

stio

nn

air

e d

e c

on

ten

u

(CO

RE

)

Module d’administration d’edition de contenus(Content Management System Made Simple - CMS MS)

Gestion du contenu en

ligne

Catalogue de produits en

ligne

Présentations des Projtes

réaliséa

Autres Modules à développer

Gestion des statistiques

Gestion des indexations,

recherches et téléchargements

Gestion de la Struture

(Personnel et filiale) Base de donnees

Des utilisateurs Et autres modules

Modeles de pages(Templates suivant la charte graphique)

Elements de mise en forme(Fichier CSS)

Présentation (Intranet)

Page 10: Securité des applications web

ref Description Unite Qté PU PT Conception et développement

1 · Planification et gestion du projet Forfait 50 000 2 · Consultation des utilisateurs (SFA) homme/ jour 0 50 000 0 3 · Contenu et rédaction (SFA) homme/jour 0 50 000 0 4 · Photos et droits d'utilisation (SFA) Forfait 0 200 000 0 5 · Conception graphique homme/jour 3 50 000 150 000 6 · Programmation Web homme/jour 2 50 000 100 000 7 · Licence d’utilisation du logiciel Gratuit 8 · Tests d’utilisation homme/jour 1 50 000 50 000 9 · Saisie de données (SFA) homme/jour 0 50 000 0

Total développement 350 000

Hébergement promotion et maintenance

10 · Referencement Année 0 350 000 0

11 · Hébergement, nom de domiane et Adresses email illimité année 0 199 000 0

12 · Mise à jour du contenu Fait par SFA

13 · Maintenance et soutien technique année 0 300 000 0

14 · Formation Gratuit 1 100 000 0

Total hébergement promotion et maintenance 0

· Frais administratifs et divers Forfait 0 0

Total 350 000 Total HT 350 000 TVA (%) 19.25 67 375 Total TTC 417 375

Budgets

Page 11: Securité des applications web

Sécurité des applications

Web

Page 12: Securité des applications web

Pourquoi Sécurisé ?

Le coût de développement et d’hébergement des applications élevésBase de Données très Précieuse Le réseau (Internet ) est un environnement Hostile Obtenir et Conserver une place de choix sur le marché des services web

Page 13: Securité des applications web

Risques Encourus Exploitation indues des ressourcesDestruction des donnéesPublication de données confidentiellesPerte de confience des cliensBaisse de productivitéDétournement de votre siteUsurpation d’identitéRidicule ...

Page 14: Securité des applications web

Quelques Exemples Site web de l’Université de Douala !

Page 15: Securité des applications web

Quelques ExemplesSite web de la nouvelle expression hacké

Page 16: Securité des applications web

Quelques ConstatsSite web du ministère des Domaines

et affaires Foncières

Piraté par un enfant de 12 ans !

Page 17: Securité des applications web

Et ce n’est pas tous …Des victimes sur toute la planète

Page 18: Securité des applications web

Quels sont les menaces ?Injections SQL XSSCSRFLiens direct et Erreur Communications Non sécuriséUrl à Access restreint …

Page 19: Securité des applications web

Types d’attaques courantes

Coupure de connection

Entreprise visé

Données sécurisés

Brèches de sécurité

Attaques automatisées

Assaillant

Virus, Chevaux de troie ,vers

Denis de Services (DoS)

DoS

Page 20: Securité des applications web

SQL INJECTION

Objectifs : contournement de clause WHERE

• SELECT login FROM USERS WHERE email = '$_GET['email']';

• SELECT login FROM USERS WHERE email = 'admin' OR '1'='1';

déni de service corruption de tables

Page 21: Securité des applications web

Contrer les injections SQL

Utilisation de conteneursCommandes préparées

• SELECT login FROM USERS WHERE email = ?;

Procédures stockées / Variables SQLProtection des données

mysql_real_escape_string()

Page 22: Securité des applications web

Objectifs : contournement de clause WHERE

• SELECT login FROM USERS WHERE email = '$_GET['email']';

• SELECT login FROM USERS WHERE email = 'admin' OR '1'='1';

déni de service corruption de tables

Attaque XSS

Page 23: Securité des applications web

Vol de cookieUsurpation d'identitéExécution de code JavaScript arbitraireDétournement du navigateur

Risques des XSS

Page 24: Securité des applications web

Les Voies Des XSS

• echo $_GET['variable']; Balises HTML complètes• PHP<script src="http://www.site.com/hack.js" />• <A HREF=http://66.102.7.147/>PHP</A>• <A HREF="http://0x42.0x0000066.0x7.0x93/">PHP</A>• <A HREF="http://%77%77%77%2E%67%6F%6F%67%6C%65%2E

%63%6F%6D">PHP</A>• >PHP<script src="//1113982867/hack.js" />

Page 25: Securité des applications web

Les Voies Des XSS

Attributs HTML• <IMG SRC=javascript:alert('XSS')>• <IMG SRC=JaVaScRiPt:alert('XSS')>• <IMG SRC="jav

ascript:alert('XSS');">• <IMG SRC=javascript:alert(

String.fromCharCode(88,83,83)) >• <form action=”index.php”><xss!><a" method

Page 26: Securité des applications web

Defences contre les XSS

Concepts à retenirValider les données entrantesSuivre les données validéesProtéger les données sortantesÉvitez les “, ‘, < et >UTF-8, entité HTML, hexadécimal...

Page 27: Securité des applications web

CSRF : Cross Site Request ForgeryExploite un site vulnérable pour

qu’un utilisateur de ce site attaque un autre siteOu le même site!La seule protection de la victime est l’identification de l’utilisateurAucun contact entre le pirate et le site

Page 28: Securité des applications web

CSRF : Cross Site Request ForgeryExploite un site vulnérable pour

qu’un utilisateur de ce site attaque un autre siteOu le même site!La seule protection de la victime est l’identification de l’utilisateurAucun contact entre le pirate et le site

Page 29: Securité des applications web

URL?XSS

HTML + XSS

Victime

Exécution

Scénario d’ attaque

Page 30: Securité des applications web

Scénario d’ attaque

Site victimehttp://admin.site.com/efface.php?id=33

Site vulnérable<img src=” http://admin.site.com/efface.php?id=33”>

Page 31: Securité des applications web

Défenses

Il faut se méfier d’un utilisateur qu’on a déjà identifié

Faire des identifications fréquentesRéduire les temps de sessionsExploiter GET / POST

Page 32: Securité des applications web

10 dix des attaques courantes

Page 33: Securité des applications web

Autres Attaques Spam et emailsInjections HTTPInjections LDAP, ABAP, etcExécution de commandesTéléchargement de fichiersAJAX!

Page 34: Securité des applications web

Autres DefensesChiffrement et signaturesCAPTCHAGestion des mots de passeFixation de sessionAttention aux hébergements partagésChanger l’identifiant régulièrementRelier la session au navigateur...

Page 35: Securité des applications web

Comment créer une application web ?Il Faut adopter une politique globale

conformément à celle de l’entreprise : Sécuriser le réseau Sécuriser l’hôte Sécuriser l’application

Page 36: Securité des applications web

Technologies utilisésLa cryptographieLe HachageLes signatures numériques Les certificats numériquesCommunications SécurisésAuthentificationAutorisationFirewallsAuditsMise à jour et services packs

Page 37: Securité des applications web

CryptographieC’ est un procédé qui consiste à encoder les données traités

Pour protéger l’identité ou les données de l’utilisateur contre la lecture, la modification ou l’altérationDe vérifier l’origine d’une information

2 méthodes de cryptographie:AsymétriqueSymétrique

Page 38: Securité des applications web

Symétrique / Asymétrique

Algorithme Description

SymétriqueUtilise une même clé pour :

ChiffrerDéchiffrer les informations

Est Rapide et efficiente

Asymétrique

Utilise 2 clé mathématiquement liées:Une clé publique pour le chiffrementUne clé privée pour le déchiffrement

Plus sécurisé que le symétriqueIl est plus lent

Page 39: Securité des applications web

Vérification de l’intégrité des données des données grâce au hachageUser A User B

Data

Data

Valeur Hasher

Algorithme de Hashage

Données

Valeur Hasher

Valeur Hasher

Algorithme de HashageAuthentiques si les 2 sont identiques

L’utilisateur A envoit la valeur hasher à l’utilisateur B

Page 40: Securité des applications web

User A User B

Data

Hash Value

Hash Algorithm

User A Private

key

Data

Valeur hashé

User A clé

public

Hash Algorithm

Valeur hasher

Si les données correspondent alors elles

proviennent du propriétaire de la clé et

sont valides

Signatures Numériques

Page 41: Securité des applications web

Certificats NumériquesClé

Privée Paire de cléUser

Application

Ordinateur

Service

Administrateur Certifié

Authorité de certification

Clé publique

Page 42: Securité des applications web

Technologie de CommunicationSécuriséeIPSec

SSL TLSCodage RPC

SSL/TLS IPSec RPC Encryption

Page 43: Securité des applications web

Fonctionnement d’ SSL

L’utilisateur navigue via HTTPSLe navigateur crée une clé privé en relation avec celle du serveur administrateurLe serveur reçoit la clé et lui seul peut la décrypter grâce à sa clé secrèteAprès établissement de la communication toutes les échanges entre le navigateur et le serveur sont sécurisés

1

2

3

4

Certificat de l’administrateur du serveur web

MessageServeur web

sécurisé

HTTPS

Navigater en mode Sécurisé

1

2

34

Page 44: Securité des applications web

Authentification Basique

Simple et objectifSupporter par la majorité

des navigateursFacile à mettre en oeuvre Requiert SSL/TLS

Page 45: Securité des applications web

Authentification Digest

Client

1 Request

Serveur

Challenge2

3Digest Algorithm

PasswordX$!87ghy5

4

Active Directory

Password 5

X$!87ghy5

6

Page 46: Securité des applications web

Comment Evaluer la sécurité ? :

Méthodologie et Outils

Page 47: Securité des applications web

Methodologie

InterviewRecherche préliminairePréparation Finale Avant la phase d’évaluationPendant la phase d’évaluation Après l’évaluations

Page 48: Securité des applications web

Quelsques outils

Le navigateur Un scanner de sécurité automatiqueUn éditeur de requête HTTPUn Scanneur proxy

Page 49: Securité des applications web

Quelsques outils Le navigateur

1er premier outil pour apprécier le bon fonctionnement de l’application. Taper des url erronés ou inattendu Envoyaer les données par requêtes « POST » de formulaire ; Test des script de validation (ex ; java script). Des extensions de navigateurs peuvent être très utiles pour l’analyse de l’application comme le DOM inspector

Page 50: Securité des applications web

Quelsques outils Outil Dom Inspector

Page 51: Securité des applications web

Quelsques outils Un scanner de sécurité automatique

Page 52: Securité des applications web

Scanner de sécurité : avantages Accélère et automatise la procédure de test Génère des rapports exploitables Décèle toutes les Vulnérabilités connueeDoit être très bien configurer

Page 53: Securité des applications web

Quelsques outils Un scanner de sécurité automatique

Page 54: Securité des applications web

Quelsques outils HTTP Request Editor

Il est parfois requis lors de l’audit d’un site web de configurer les requêtes http lorsque le navigateur n’offre pas ce genre de manipulations. Par exemple

Envoyer des requêtes http sans restriction au model de sécurité du navigateur web

Tester les requêtes non faisable par un navigateur web (manipuler http header et http referer header)

Tester les requêtes qui requiert des encryptions SSLLes résultats de ces manipulations sont visibles sur le

rapport d’analyse en texte brut ou en Html

Page 55: Securité des applications web

Quelsques outils HTTP Request Editor

Page 56: Securité des applications web

Quelsques outils HTTP proxy

On doit pendant la phase de test de vulnérabilité d’un site web

intercepter les requêtes et les réponse http avant qu’il n’atteigne leur cible. Ce logiciel nous permettra alors lorsqu’il est bien configuré de le faire automatiquement. Ainsi il faut spécifier les limitations navigateurs, circonscrire les scripts côté client et les validations d’entrée (exemple : java script) enregistrer les log http, créer les règles

automatique qui manipuleront certaines requêtes http.

Page 57: Securité des applications web

Quelsques outils HTTP proxy

Page 58: Securité des applications web

Conclusion

Page 59: Securité des applications web

Questions et Réponses

Copyright MARCELTCHOULEGHEU ISTDI 2008