D´eveloppement d’applications s´ecuris´ees
MP2 Audit et S´ecurit´e Informatique
Salah Triki
Ann´ee 2015-2016
Plan
Introduction `a la s´ecurit´e informatique
S´ecurit´e de bas niveau : langage C et Buffer Overflow
D´efenses contre les...
Introduction
Qu’est ce que la s´ecurit´e informatique ?
La s´ecurit´e informatique, qu’on appelle aujourd’hui
cybers´ecuri...
Introduction
Les types de comportements ind´esirables
Un comportement ind´esirable est la violation d’un ou de
plusieurs p...
Introduction
Total des vuln´erabilit´es, 2006-2014
Introduction
Qu’est ce que le d´eveloppement d’applications s´ecuris´ees ?
Le d´eveloppement d’applications s´ecuris´ees (...
Introduction
Pourquoi est-il important de s´ecuriser le code ?
Les d´efauts logiciels sont la cause principale des probl`e...
Introduction `a la s´ecurit´e informatique
S´ecurit´e de bas niveau : langage C et Buffer Overflow
D´efenses contre les atta...
S´ecurit´e de bas niveau
Qu’est ce qu’un Buffer Overflow ?
D´efaut logiciel qui :
Affecte, essentiellement, les programmes ´e...
S´ecurit´e de bas niveau
Pourquoi ´etudier les Buffers Overflows ?
Ils sont toujours d’actualit´e.
C et C++ sont des langage...
S´ecurit´e de bas niveau
Les connaissances essentielles
Pour comprendre les buffers overflows, il n´ecessaire de savoir :
Co...
S´ecurit´e de bas niveau
Arrangements des programmes dans la m´emoire
S´ecurit´e de bas niveau
Arrangements des programmes dans la m´emoire (Cont.)
S´ecurit´e de bas niveau
Arrangements des programmes dans la m´emoire (Cont.)
S´ecurit´e de bas niveau
Arrangements des programmes dans la m´emoire (Cont.)
S´ecurit´e de bas niveau
Appel de fonction et pile : r´esum´e
Fonction appelante :
1. Empiler les param`etres dans la pile...
Prochain SlideShare
Chargement dans…5
×

Développement d'applications sécurisées [Partie 1]

371 vues

Publié le

Support de cours
Filière: Mastère professionnel Audit et Sécurité Informatique
Niveau: 2
Etablissement: Faculté des Sciences Economiques et de Gestion de Sfax (FSEGS)
Université de Sfax

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
371
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
4
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Développement d'applications sécurisées [Partie 1]

  1. 1. D´eveloppement d’applications s´ecuris´ees MP2 Audit et S´ecurit´e Informatique Salah Triki Ann´ee 2015-2016
  2. 2. Plan Introduction `a la s´ecurit´e informatique S´ecurit´e de bas niveau : langage C et Buffer Overflow D´efenses contre les attaques de bas niveau Conception et impl´ementation d’application s´ecuris´ee Analyse statique de code
  3. 3. Introduction Qu’est ce que la s´ecurit´e informatique ? La s´ecurit´e informatique, qu’on appelle aujourd’hui cybers´ecurit´e, est un attribut d’un syst`eme informatique. Attribut justesse : Dans des situations pr´evisibles, une application se comporte conform´ement `a la sp´ecification. Exemple de site web bancaire : si un client demande un transfert 100$ dans compte `a un autre, alors si le montant existe, le transfert est effectivement effectu´e. Attribut s´ecurit´e : Dans des situations vari´ees, une application ne doit pas pr´esenter des comportements ind´esirables . Alors que la justesse concerne ce que l’application doit faire, la s´ecurit´e concerne ce qu’elle ne doit pas faire ; mˆeme lorsqu’un utilisateur malveillant essaie de contourner les mesures proactives ´etablit par les d´eveloppeurs.
  4. 4. Introduction Les types de comportements ind´esirables Un comportement ind´esirable est la violation d’un ou de plusieurs propri´et´es de s´ecurit´e. Violation de confidentialit´e Vols d’information confidentielles : plans de conception des produits, code source, num´ero carte de cr´edit ... Violation d’int´egrit´e Modification des fonctionnalit´es : installation de logiciels (spyware, client botnet) Modification/Suppression/Cr´eation de fichiers : comptes, logs, plans, ... Violation de disponibilit´e Indisponibilit´e du service achat, d’acc`es au compte bancaire
  5. 5. Introduction Total des vuln´erabilit´es, 2006-2014
  6. 6. Introduction Qu’est ce que le d´eveloppement d’applications s´ecuris´ees ? Le d´eveloppement d’applications s´ecuris´ees (s´ecurit´e des logicielles) est une branche la s´ecurit´e informatique consacr´ee `a la conception et l’impl´ementation s´ecuris´ees des applications. La s´ecurit´e des logicielles se distingue par l’accent mis sur la s´ecurisation du code, ce qui la rend une approche de type boˆıte blanche Les approches de type boˆıte noire ignorent les d´etails internes du logiciel. S´ecurit´e du syst`eme d’exploitation, Antivirus, Pare-feu.
  7. 7. Introduction Pourquoi est-il important de s´ecuriser le code ? Les d´efauts logiciels sont la cause principale des probl`emes de s´ecurit´e, et la s´ecurit´e des logicielles vise `a adresser ces probl`emes directement. Les autres approches de s´ecurit´e (SE, Antivirus, Pare-feu) entourent le logiciel de d´efenses tout en ignorant le code. Lorsque le code contient des d´efauts, ces d´efenses sont inefficaces et un utilisateur malveillant trouve toujours un moyen pour les contourner.
  8. 8. Introduction `a la s´ecurit´e informatique S´ecurit´e de bas niveau : langage C et Buffer Overflow D´efenses contre les attaques de bas niveau Conception et impl´ementation d’application s´ecuris´ee Analyse statique de code
  9. 9. S´ecurit´e de bas niveau Qu’est ce qu’un Buffer Overflow ? D´efaut logiciel qui : Affecte, essentiellement, les programmes ´ecrits en langage C ou C++. Provoque le plantage du programme A des implications significatives sur la s´ecurit´e. Exploit´e par un utilisateur malveillant pour forcer le programme `a effectuer des actions ind´esirables tels que : R´ecup´eration d’information priv´ees Corruption de donn´ees importantes Ex´ecution d’un code sp´ecifique.
  10. 10. S´ecurit´e de bas niveau Pourquoi ´etudier les Buffers Overflows ? Ils sont toujours d’actualit´e. C et C++ sont des langages populaires Ils partagent les mˆemes caract´eristiques d’autres bugs r´epondus
  11. 11. S´ecurit´e de bas niveau Les connaissances essentielles Pour comprendre les buffers overflows, il n´ecessaire de savoir : Comment le compilateur produit un code ex´ecutable `a partir d’un code ´ecrit en C Comment le SE et l’architecture mat´erielle coop`erent pour ex´ecuter un programme La connaissance de ces d´etails permet de comprendre : Comment les programmes utilisent la m´emoire et ainsi les attaquer. Comment un utilisateur malveillant peut exploiter les d´efauts logiciels.
  12. 12. S´ecurit´e de bas niveau Arrangements des programmes dans la m´emoire
  13. 13. S´ecurit´e de bas niveau Arrangements des programmes dans la m´emoire (Cont.)
  14. 14. S´ecurit´e de bas niveau Arrangements des programmes dans la m´emoire (Cont.)
  15. 15. S´ecurit´e de bas niveau Arrangements des programmes dans la m´emoire (Cont.)
  16. 16. S´ecurit´e de bas niveau Appel de fonction et pile : r´esum´e Fonction appelante : 1. Empiler les param`etres dans la pile/positionner les param`etres dans des registres 2. Empiler l’adresse de l’instruction de retour 3. Faire un saut vers l’adresse de la fonction Fonction appel´ee : 4. Empiler l’adresse du pointeur de pile (%ebp) 5. (%ebp) ← (%esp) 6. Empiler les variables locales Retour `a la fonction appelante : 7. R´einitialiser le pointeur de pile et le pointeur de sommet de pile 8. Faire un saut vers l’instruction de retour

×