École de technologie supérieure (Éts) dép. génie …...• qu’est-ce qu’une attaque par...

48
Vulnérabilités logicielles 1 MGR850 École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI

Upload: others

Post on 14-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Vulnérabilités logicielles

1

MGR850

École de technologie supérieure (ÉTS)

Dép. Génie logiciel et des TI

Page 2: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Quiz

• Pourquoi la sécurité des systèmes connectés au réseau

Internet constitue-t-elle un problème majeur difficile à

résoudre?

• Au début, les attaques informatiques étaient effectuées

par des amateurs. Cependant, les attaques de nos jours

sont beaucoup plus motivées par des intérêts

monétaires et autres! Ce changement de motifs a

certainement engendré des changements dans la nature

des attaques et leur façon de faire : citez deux de ces

changements avec justification.

2

Page 3: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Quiz • Qu'est-ce que l'ingénierie sociale, donnez une technique

d'attaque appartenant à cette famille ?

• Quelles sont les principales propriétés de sécurité?

• Qu’est-ce qu’une attaque par machines zombies?

• Quelle est la différence principale entre une approche

holistique et une approche traditionnelle. Afin de

contrecarrer les vulnérabilités d’un système?

3

Page 4: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Plan • Motivations & contexte

• Top 10/25/.. péchés capitaux

• Buffer/Stack Overflow

• OWASP :

– Injection

– Cross-Site Scripting (XSS)

• Mitigation (remède)

• Conclusion

4

MGR850

Page 5: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

• Vulnérabilité

– Faille dans un actif ou dans une mesure de

sécurité qui peut être exploitée par une menace

(source ISO 27000 )

5

Motivations & Contexte

MGR850

Page 6: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Pourquoi les logiciels?

• Les erreurs de codage et de conception représentent déjà

une réalité du métier.

• On a fait du progrès .. MAIS pas de solutions

magiques!

• Les mêmes ingénieurs faillibles développent les mêmes

logiciels vulnérables .. Cependant,

• Il y a de plus en plus d’ennemis!

6

MGR850

Motivations & Contexte

Page 7: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

C’est quoi une vulnérabilité? Un aspect considéré « non pertinent » auparavant

Exemple : Un hacker peut-il attaquer ta voiture?

o Réponse: Oui http://www.examiner.com/article/studies-show-a-car-s-

computer-system-vulnerable-to-hacking

https://www.youtube.com/watch?v=oqe6S6m73Zw

« Sans aucune connaissance particulière sur les voitures, les

chercheurs ont réussi à prendre le contrôle du verrouillage des

portes, de désactiver les freins et même arrêter son moteur,

entre autres choses. »

o http://www.autosec.org/publications.html

L’Internet des objets !

7

MGR850

Motivations & Contexte

Page 8: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

C’est quoi une vulnérabilité?

• Effet surprise:

Cheval de Troie

8

MGR850

Motivations & Contexte

Page 9: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

C’est quoi une vulnérabilité?

• Effet surprise:

Traversée des Alpes

(Hannibal 218 av. J.-C)

• Chemins non empruntés

auparavant

9

MGR850

Motivations & Contexte

Page 11: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

.. ou inoffensive!

• Défense en profondeur (Defense in depth)

• Probabilité d’exploitation: très faible

11

MGR850 -

Motivations & Contexte

Page 12: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Top 10/25 .. 19 Sins .. Principales sources!

• CWE/SANS Top 25 Most Dangerous Software Errors

http://cwe.mitre.org/top25/#Listing (orienté erreurs)

• OWASP Top 10 Application Security Risks (orienté

domaine):

https://www.owasp.org/index.php/Top_10_2010-Main

• 19/24 Deadly Sins of Software Security:

Programming Flaws and How to Fix Them

(livre) (orienté erreurs) 12

MGR850

Page 13: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Top 10/25 .. 19 Sins .. Comment choisir la liste?

C’est une question d’analyse de risque:

Vraisemblance

Impact

13

Page 14: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Top 10/25 .. 19 Sins ..

MGR850

Source: http://www.owasp.org/index.php/Top_10

3

2

1

Méthodologie de classement du risque

14

Schéma de

classification

Page 15: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Top 10/25 .. 19 Sins ..

MGR850

Méthodologie de classement du risque

3

2

1

Exemple: injection 3 2 2 3

7 évaluation du risque

2.33 * 3

15 Source: http://www.owasp.org/index.php/Top_10

Page 16: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Top 10/25 .. 19 Sins .. Les gagnants sont …

• OWASP TOP 10

16

MGR850

Page 17: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Top 10/25 .. 19 Sins .. Les gagnants sont ..

• CWE/SANS Top 25 http://cwe.mitre.org/top25/

• Interactions non-sécurisées entre les composantes

17

MGR850

Page 18: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Top 10/25 .. 19 Sins .. Les gagnants sont ..

• Gestion risquée des ressources

18

MGR850 - A12 Chamseddine Talhi, ÉTS

Page 19: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Top 10/25 .. 19 Sins .. Les gagnants sont ..

• Défense poreuse

19

MGR850

Page 20: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Top 10/25 .. 19 Sins .. Les gagnants sont ..

• 19 péchés capitaux

[1] Débordement de tableaux

[2] Problème de format de chaînes

[3] Dépassement de capacité d’entier

[4] Injection SQL

[5] Injection de commandes

[6] Cas d’erreurs non traités

[7] Injection de scripts à distance

[8] Trafic non protégé

[9] URL magique et champs caché

[10] Mauvaise utilisation de SSL/TLS

20

MGR850 - A12

[11] Mauvaise utilisation de mot de passe

[12] Donnée non protégée

[13] Fuite d’information

[14] Accès erroné à un fichier

[15] Mauvaise résolution d’une adresse réseau

[16] Concurrence critique

[17] Échange de clés non authentifié

[18] Générateur pseudo-aléatoire faible

[19] Méthode non conviviale

Page 21: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Buffer/Stack Overflow

• Les structures de données reçoivent des données qui

peuvent dépendre des entrées des utilisateurs.

• Le débordement de tampon est une erreur de

programmation qui se déclenche lorsqu’une zone

délimitée en mémoire réservée pour une variable (de

longueur fixe) est remplie avec un contenu de

longueur qui dépasse la limite.

• Le contenu déborde donc de la zone mémoire qui lui

est attribuée.

21

C’est quoi un débordement de tampon?

MGR850

Page 22: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Buffer/Stack Overflow Risques

• Meilleur des cas:

Arrêt brutal de l’application.

• Pire des cas:

Exécution d’un code injecté durant le débordement de la

zone mémoire

Escalade des privilèges systèmes

Prise de contrôle du système

22

MGR850

Page 23: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Buffer/Stack Overflow C’est quoi?

23

void copy (char *in)

{ char buf[16];

strcpy (buf, in);

...

}

int main (int argc, char *argv[])

{

...

copy (argv[1]);

...

}

Cas typique

Ne jamais faire confiance

aux données provenant

des utilisateurs!

Page 24: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Buffer/Stack Overflow Exploitation

1. Traquer les fonctions manipulant les données reçues

en entrée:

Directement

Quelque part sur un chemin d’exécution où les valeurs des

paramètres de la fonction ont été influencées par les

données de l’attaquant

2. Identifier les fonctions vulnérables

3. « Fabriquer » les données requises pour provoquer le

débordement au niveau de la fonction vulnérable

ciblée.

4. Place au génie

24

MGR850

Page 25: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

25

Structure de la mémoire

Buffer/Stack Overflow

Variables locales

Adresse de retour

Paramètres passés

Stack

Frame

copy

Buff[0] Buff[1]

Buff[2] Buff[..] Buff[15]

Vers le haut

De la pile

(adresses

basses)

Variables locales

Adresse de retour

Paramètres passés

….

Stack

Frame

main

Suite de la pile

Source : http://www.matthieuamiguet.ch/media/documents/MA-SECU-02-Logiciels.pdf

void copy (char *in)

{ char buf[16];

strcpy (buf, in);

}

int main (int argc,

char *argv[])

{ copy (argv[1]);}

Source : http://www.matthieuamiguet.ch/media/documents/MA-SECU-02-Logiciels.pdf

MGR850

Page 26: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

26

Structure de la mémoire

Buffer/Stack Overflow

Variables locales

Adresse de retour

(écrasée)

Paramètres passés

Stack

Frame

copy

Buff[0] Buff[1]

Buff[2] Buff[..] Buff[15]

Vers le haut

De la pile

(adresses

basses)

Variables locales

Adresse de retour

Paramètres passés

….

Stack

Frame

Suite de la pile

Source : http://www.matthieuamiguet.ch/media/documents/MA-SECU-02-Logiciels.pdf

void copy (char *in)

{ char buf[16];

strcpy (buf, in);

}

int main (int argc,

char *argv[])

{ copy (argv[1]);}

Source : http://www.matthieuamiguet.ch/media/documents/MA-SECU-02-Logiciels.pdf

Buff[16]

Buff[17]

Buff[..]

Buff[..]

MGR850

Page 27: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

27

Structure de la mémoire

Buffer/Stack Overflow

Variables locales

Adresse de retour

(écrasée)

Paramètres passés

Stack

Frame

copy

Buff[0]

Buff[1]

Buff[2]

Buff[..]

Buff[15]

Vers le haut

De la pile

(adresses

basses)

Variables locales

Adresse de retour

Paramètres passés

….

Stack

Frame

Suite de la pile

Source : http://www.matthieuamiguet.ch/media/documents/MA-SECU-02-Logiciels.pdf

void copy (char *in)

{ char buf[16];

strcpy (buf, in);

}

int main (int argc,

char *argv[])

{ copy (argv[1]);}

Source : http://www.matthieuamiguet.ch/media/documents/MA-SECU-02-Logiciels.pdf

Buff[16]

Buff[17]

Buff[..]

Buff[..]

• Comment le code ci-dessus peut-il être utilisé pour exécuter du code

arbitraire ?

• Réponse: • Concevoir le argv[1] du programme de manière à ce que:

Il écrase l’adresse de retour avec l’adresse du début du buffer

Le début du buffer contient le code que l’on veut exécuter.

Code arbitraire

MGR850

Page 28: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Buffer/Stack Overflow Exemple réel (KVM)

• Contexte: KVM (Kilo Virtual Machine): Machine virtuelle Java

embarquée.

Langage de programmation: C et assembleur

Vulnérabilité: fonction standard C vulnérable

• Faille: • Les fonctions en code natif (C, assembleur) n’étaient pas

encore permises par la plateforme .. MAIS

• Pouvaient être déclarées comme interfaces ET

• L’interprète de la KVM lève une exception s’il ne trouve

pas l’implémentation de l’interface native.

28

MGR850

Page 29: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Buffer/Stack Overflow Exemple réel (KVM)

29

MGR850 - A12 Chamseddine Talhi, ÉTS

Code vulnérable

Données de test

Page 30: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10

Injection

Cross-Site Scripting

30

Page 31: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

The Open Web Application Security Project

31

MGR850

Page 32: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

The Open Web Application Security Project

32

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 33: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

Chamseddine Talhi, ÉTS

33

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 34: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

+

+

- -

=

=

=

=

34

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 35: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

Top 10

35

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 36: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

Top 10

36

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 37: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

Vulnérabilité #1 Injection

37

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 38: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

Vulnérabilité #1 Injection

• Tromper une application en incluant des commandes non désirées dans les données envoyées à un interprète

Injection

• Prend une chaîne de caractère en entrée et l’interprète comme une commande

• SQL, OS Shell, LDAP, XPath, Hibernate, etc…

Interprètes

• Toujours, beaucoup d’applications souffrent de cette vulnérabilité (ne sachant vraiment pas pourquoi)

• Pourtant, la vulnérabilité est souvent très simple à prévenir!

Injection SQL est encore assez répandue!

• Habituellement grave: lire ou modifier des bases de données entières

• Peut également permettre d’avoir le schéma complet d’une base de données, l'accès à un compte utilisateur ou même l'accès au niveau SE!

Impact typique

38

MGR850 - A12

Source: http://www.owasp.org/index.php/Top_10

Page 39: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

Vulnérabilité #1 Injection – Attaque -

Fir

ewal

l

Hardened OS

Web Server

App Server

Fir

ewal

l

Dat

abas

es

Leg

acy S

yst

ems

Web

Ser

vic

es

Dir

ecto

ries

Hum

an R

esrc

s

Bil

ling

Custom Code

APPLICATION

ATTACK

Net

wo

rk L

ayer

A

pp

lica

tio

n L

ayer

Acc

ounts

Fin

ance

Ad

min

istr

atio

n

Tra

nsa

ctio

ns

Co

mm

unic

atio

n

Kno

wle

dge

Mgm

t

E-C

om

mer

ce

Bus.

Funct

ions

HTTP

request

SQL

query

DB Table

HTTP

response

"SELECT * FROM accounts

WHERE acct=‘’ OR 1=1--’"

1. Application presents a form to

the attacker

2. Attacker sends an attack in the

form data

3. Application forwards attack to

the database in a SQL query

Account Summary

Acct:5424-6066-2134-4334

Acct:4128-7574-3921-0192

Acct:5424-9383-2039-4029

Acct:4128-0004-1234-0293

4. Database runs query

containing attack and sends

encrypted results back to

application

5. Application decrypts data

as normal and sends results

to the user

Account:

SKU:

Account:

SKU:

39

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 40: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

Vulnérabilité #1 Injection – Prévention -

40

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 41: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

Vulnérabilité #2 Cross-Site Scripting (XSS)

41

MGR850 -

Source: http://www.owasp.org/index.php/Top_10

Page 42: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

MGR850 - A12 Chamseddine Talhi, ÉTS

Vulnérabilité #2 XSS – Attaque -

Application with

stored XSS

vulnerability

3

2

Attacker sets the trap – update my profile

Attacker enters a

malicious script into a

web page that stores the

data on the server

1

Victim views page – sees attacker profile

Script silently sends attacker Victim’s session cookie

Script runs inside

victim’s browser with full

access to the DOM and

cookies

Custom Code

Acc

ounts

Fin

ance

Ad

min

istr

atio

n

Tra

nsa

ctio

ns

Co

mm

unic

atio

n

Kno

wle

dge

Mgm

t

E-C

om

mer

ce

Bus.

Funct

ions

42 Source: http://www.owasp.org/index.php/Top_10

Page 43: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

Vulnérabilité #2 XSS – Attaque -

43

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 44: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

OWASP Top 10 – 2010

Vulnérabilité #2 XSS – Prévention -

44

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 45: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Mitigation • Développer un code sécurisé

– Suivre les meilleures pratiques du guide de l’organisme (OWASP) pour le

développement d'applications Web sécurisées:

• http://www.owasp.org/index.php/Guide

– Utiliser le standard de l’organisme (OWASP) pour la vérification de la sécurité

des applications :

• http://www.owasp.org/index.php/ASVS

– Utiliser les composants de sécurité standards qui répondent aux besoins de votre

organisation:

• Utilisez l’API OWASP’s « ESAPI » comme une base des composants standards:

• http://www.owasp.org/index.php/ESAPI

• Analysez vos applications

– Faites appel à une équipe d’experts

– Analysez vos applications vous-même en suivant les lignes directrices d’un

organisme (OWASP)

• OWASP Code Review Guide: http://www.owasp.org/index.php/Code_Review_Guide

• OWASP Testing Guide: http://www.owasp.org/index.php/Testing_Guide

45

MGR850

Source: http://www.owasp.org/index.php/Top_10

Page 46: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Conclusion • Vulnérabilités:

Une vulnérabilité n’est qu’une porte d’entrée

L’exploitation d’une vulnérabilité est un travail de longue

haleine

MAIS les attaquants peuvent être agréablement surpris

• Contremesures:

• Ne jamais faire confiance aux données des utilisateurs

• Il faut être conservateur: éliminer le maximum de

vulnérabilités.

• Veille technologique

46

MGR850

Page 47: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

47

Page 48: École de technologie supérieure (ÉTS) Dép. Génie …...• Qu’est-ce qu’une attaque par machines zombies? • Quelle est la différence principale entre une approche holistique

Références

• https://www.owasp.org/index.php/OWASP

_Risk_Rating_Methodology

• https://www.owasp.org/index.php/Categor

y:OWASP_Download

48