0% ont trouvé ce document utile (0 vote)
58 vues17 pages

Correction Chapitre4

Ce document traite des attaques par force brute en cybersécurité, en définissant la méthode et en explorant divers types d'attaques, notamment le crackage de mots de passe Windows, les attaques SSH et contre les dispositifs Z-Wave. Il présente également des mesures préventives et une modélisation mathématique pour quantifier l'efficacité de ces attaques. Des exemples d'outils et de procédures d'attaque sont fournis pour illustrer les concepts discutés.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
58 vues17 pages

Correction Chapitre4

Ce document traite des attaques par force brute en cybersécurité, en définissant la méthode et en explorant divers types d'attaques, notamment le crackage de mots de passe Windows, les attaques SSH et contre les dispositifs Z-Wave. Il présente également des mesures préventives et une modélisation mathématique pour quantifier l'efficacité de ces attaques. Des exemples d'outils et de procédures d'attaque sont fournis pour illustrer les concepts discutés.
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Chapitre 1:

Chapitre 2:

Chapitre 3:ATTAQUE PAR FORCE BRUTE

Chapitre 4:ATTAQUE PAR FORCE BRUTE

1
4.1 Introduction
Ce chapitre se concentre sur l'une des méthodes d'attaque les plus rudimentaires mais toujours
répandues dans le domaine de la cybersécurité : l'attaque par force brute. Nous définirons cette technique, puis
explorerons divers types d'attaques, allant du crackage de mots de passe sous Windows aux attaques contre les
protocoles de sécurité comme SSH et les dispositifs IoT Z-Wave. En parallèle, nous aborderons les mesures
préventives qui permettent de se prémunir contre ces attaques et de renforcer la sécurité des systèmes. Enfin,
une modélisation mathématique des attaques par force brute sera présentée pour quantifier leur efficacité et
illustrer le temps nécessaire en fonction de différents facteurs, tels que la longueur des mots de passe et les
techniques de hachage.

4.2 Définition de l’attaque par force brute


Les attaques par brute force consistent à trouver un mot de passe ou une clé en testant successivement
toutes les combinaisons possibles.

L’attaque peut se faire par ordre alphabétique. Cependant, l’ordre du test peut être optimisé par la consultation
d’un dictionnaire de mot de passe les plus souvent utilisés, par exemple.

Plus le mot de passe est long et complexe, plus il est difficile de casser le mot de passe. Cependant, des
optimisations heuristiques une méthode de calcul qui fournit rapidement une solution réalisable peuvent
donner des résultats dans des délais beaucoup plus courts.

Aussi, des mots de passes hachés (chiffrés) peuvent avoir été récupérés depuis des hacks. Le cybercriminel peut
attaquer les comptes en local puisqu’il possède la base de données et donc tous les hashs.

Des attaques plus complexes peuvent même viser des algorithmes de chiffrement comme lors du ransomware
TeslaCrypt. L’attaque par brute force avait permis la récupération de fichiers.

4.3 Différents types d’attaques par brute force


4.3.1 Crackage d’un mot de passe windows
Le crackage de mots de passe Windows par force brute est une méthode d'attaque où un attaquant
essaie systématiquement toutes les combinaisons possibles de mots de passe jusqu'à trouver le bon. Voici un
aperçu détaillé de cette attaque :

a- Concept de l’attaque
- Force Brute : L'attaque par force brute consiste à essayer toutes les combinaisons possibles de
caractères pour deviner un mot de passe. Cette méthode est particulièrement efficace contre des mots
de passe faibles ou courts.

L'attaque par force brute repose sur la recherche exhaustive des mots de passe. Voici les paramètres
essentiels :

 L : longueur du mot de passe.

2
 C : ensemble de caractères utilisés (minuscules, majuscules, chiffres, symboles).
 T : temps nécessaire pour tester une combinaison de mot de passe.

Le nombre total de combinaisons possibles pour un mot de passe de longueur L est donné par :

N = CL (4.01)

 Si l'ensemble de caractères C contient 62 caractères (26 lettres minuscules, 26 lettres majuscules, 10


chiffres), et que le mot de passe a une longueur de 8 caractères (L= 8), alors le nombre de combinaisons
possibles est :

N = 628 = 218 340 105 584 896

Le temps nécessaire pour réaliser une attaque dépend du nombre de tentatives par seconde. Si on suppose
qu'un attaquant peut essayer 1000 mots de passe par seconde (avec Intel(R) HD graphics 630), le temps total
T_total pour essayer toutes les combinaisons est :

Le temps nécessaire pour casser un mot de passe par force brute est :

N
Ttotat = secondes (4.02)
V

Où V est la vitesse de traitement (nombre de mots de passe testés par seconde).

En prenant l’exemple précédent :

218 340 105 584 896


Ttotat = secondes = 218 340 105 584.896 secondes = 6,92 × 106 ans
1000

Cela montre que même une attaque par force brute peut être extrêmement coûteuse en temps pour des mots
de passe relativement longs.

b- Procédure de l’attaque
i. Préparation :
- Obtenir les Hashes : Les mots de passe Windows ne sont pas stockés en clair mais sous forme de
hachages dans la base de données SAM (Security Account Manager). Les attaquants doivent d'abord
obtenir ces hachages, souvent par des techniques comme l'extraction de fichiers SAM ou le vol de
données de registre.

ii. Extraction des Hachages


- Accès aux Hachages : Les hachages peuvent être extraits en exploitant des vulnérabilités dans les
systèmes ou en utilisant des outils comme Mimikatz qui peuvent extraire les hachages directement
depuis la mémoire.

3
iii. Crackage des Hachages
- Utilisation d'Outils : Les attaquants utilisent des outils de crackage de mots de passe tels que John the
Ripper ou Hashcat pour tenter de casser les hachages extraits. Ces outils peuvent utiliser diverses
techniques, y compris des attaques par dictionnaire et par force brute
- Dictionnaires et Listes de Mots de Passe : L'attaquant peut également utiliser des listes de mots de
passe courants (dictionnaires) pour accélérer le processus, surtout si le mot de passe est simple ou
commun.

iv. Détection et Exploitation


- Vérification des Résultats : Lorsque l'outil trouve une correspondance, l'attaquant peut alors utiliser le
mot de passe découvert pour accéder aux systèmes protégés par ce mot de passe.

c- Exemples d’Outils
John the Ripper : Un outil populaire pour le crackage de mots de passe qui peut effectuer des attaques
par force brute et par dictionnaire.

Hashcat : Un autre outil puissant pour le crackage de mots de passe qui utilise des GPU pour accélérer le
processus.

d- Exemple de Code pour John the Ripper


john --format=nt hash.txt

Où ‘hash.txt’ contient les hachages des mots de passe extraits.

e- Exemple de Code pour Hashcat


hashcat -m 1000 -a 0 hash.txt wordlist.txt

- ‘-m 1000’ spécifie le format NTLM,

- ‘hash.txt’ est le fichier contenant les hachages,


- ‘wordlist.txt’ est la liste de mots de passe à tester.

4.3.2 Attaque par Force Brute SSH


a- Concept de l’Attaque
- SSH (Secure Shell) : SSH est un protocole de communication sécurisé utilisé pour accéder à des systèmes
à distance. Il permet l'exécution de commandes, la gestion de fichiers et la configuration des systèmes.
- Attaque par Force Brute : L'attaque par force brute consiste à essayer de manière répétée différentes
combinaisons de mots de passe pour accéder au serveur.

4
b- Procédure de l’Attaque
i. Identification des Cibles
- Scannage des Ports : Les attaquants scannent généralement des plages d'adresses IP pour trouver des
serveurs ouverts sur le port 22, qui est le port par défaut pour SSH.
- Utilisateurs Ciblés : Les attaquants ciblent souvent des noms d'utilisateur par défaut comme ‘ root’,
‘admin’, ou des noms communs comme ‘johndoe’, ‘admin’, etc.

ii. Exploitation des Vulnérabilités


- Utilisation d’Outils : Les attaquants utilisent des outils automatisés pour lancer des attaques par force
brute. Des outils courants incluent Hydra, Medusa, et Bruteforce.
- Dictionnaires de Mots de Passe : Ces outils utilisent des listes de mots de passe prédéfinies ou générées
pour tester différentes combinaisons. Ces listes peuvent inclure des mots de passe courants ou des
variations des mots de passe de l'utilisateur.

Une attaque par dictionnaire peut être modélisée mathématiquement pour estimer le temps nécessaire
au crackage :

Td = N p × T t (4.03)

- Td : Temps total nécessaire pour compléter l'attaque par dictionnaire.


- Np : Nombre de mots de passe dans le dictionnaire.
- Tt : Temps nécessaire pour tester un mot de passe (inclut la latence réseau et le traitement serveur).

On peut trouver le temps moyen pour réussir l’attaque. En supposant que le mot de passe correct se
trouve en moyenne à mi-chemin de la liste des mots de passe :

Np
Tmoyen= ∗Tt (4.04)
2

Exemple numérique :

 Taille du dictionnaire (Np) : 100 000 mots de passe.

 Temps par tentative (Tt) : 0,05 seconde.

Temps total : Td = 100 000 × 0,05 = 5 000s = 83,3 minutes.

Temps moyen : Tmoyen = (100 000/2) * 0.05 = 2 5000 s = 41,7 minutes

Ce modèle aide à comprendre les performances des attaques par dictionnaire en fonction de la taille du fichier
de mots de passe utilisé et des caractéristiques de l'environnement.

5
iii. Détection et Exploitation
- Vérification des Résultats : Lorsque l'outil trouve une combinaison valide, l'attaquant obtient l'accès au
serveur et peut alors effectuer des actions malveillantes, telles que l'installation de logiciels malveillants,
la modification de fichiers, ou l'exfiltration de données.

c- Exemples d’Outils
Voici des exemples d’outils pour faire l’attaque par force brute contre le chiffrement :

- Hydra : Un outil populaire pour les attaques par force brute sur divers services, y compris SSH.
- Medusa : Un autre outil d'attaque par force brute qui supporte plusieurs protocoles dont SSH.
- Bruteforce : Un script ou un programme qui tente systématiquement toutes les combinaisons possibles
de mots de passe.

d- Exemples de code pour Hydra


hydra -l username -P passwordlist.txt ssh://target-ip

‘username’ est le nom d'utilisateur ciblé,

‘passwordlist.txt’ est la liste de mots de passe à tester,

‘target-ip’ est l'adresse IP du serveur.

e- Exemple de code pour Medusa


medusa -h target-ip -u username -P passwordlist.txt -M ssh

‘-h’ spécifie l'adresse IP cible,

‘-u’ le nom d'utilisateur,

‘-P’ le fichier de mots de passe,

‘-M’ le module (ici ssh).

4.3.3 Attaque par Force Brute sur les Dispositifs Z-Wave


Les dispositifs Z-Wave, utilisés principalement dans les systèmes de domotique et de maison intelligente,
permettent le contrôle à distance de divers appareils tels que les lumières, les thermostats et les serrures. Une
attaque par force brute contre ces dispositifs vise à accéder à un réseau Z-Wave en essayant systématiquement
différentes combinaisons d'identifiants ou de mots de passe jusqu'à ce que l'accès soit accordé. Voici un
développement détaillé de cette attaque :

6
a- Concept de l’Attaque
Z-Wave : Z-Wave est un protocole de communication sans fil utilisé pour les applications de domotique.
Il permet à divers dispositifs intelligents de communiquer entre eux via un réseau maillé.

Attaque par Force Brute : Cette attaque consiste à essayer toutes les combinaisons possibles de mots de
passe ou d'identifiants pour accéder au réseau Z-Wave ou à des dispositifs spécifiques.

b- Procédure de l’attaque
i. Identification des Cibles
- Scan du Réseau : Les attaquants identifient les réseaux Z-Wave disponibles en utilisant des outils de
scannage des réseaux sans fil. Ces outils détectent les réseaux Z-Wave et les dispositifs connectés.
- Ciblage des Dispositifs : Les attaquants se concentrent souvent sur des dispositifs critiques comme les
serrures intelligentes ou les systèmes de sécurité, car le contrôle de ces dispositifs peut avoir des
conséquences graves.

ii. Exploitation des Vulnérabilités


- Obtenir les Identifiants : Les dispositifs Z-Wave utilisent des codes de sécurité ou des mots de passe
pour protéger l'accès. Les attaquants tentent de trouver ces codes en utilisant des techniques de force
brute.

Si un dispositif utilise un code de sécurité de longueur fixe L et que chaque caractère est choisi parmi un
ensemble S de taille n, alors le nombre total de combinaisons possibles N est donné par :

N = nL (4.05)

Par exemple, si le code est une chaîne hexadécimale (16 caractères possibles) de 4 chiffres :

N=164=65,536 combinaisons.

Avec une vitesse d’attaque RRR (nombre de codes testés par seconde), le temps nécessaire pour épuiser
toutes les combinaisons est :

N
T= (4.06)
R

Si un outil teste R = 100 codes par seconde :

Np
T= =¿655.36 secondes, soit environ 11 minutes.
2

- Utilisation d'Outils : Les outils de force brute peuvent être utilisés pour essayer différentes
combinaisons de codes de sécurité ou mots de passe. Ces outils automatisent le processus, permettant
de tester rapidement de nombreuses combinaisons.
- Analyse de Réponse : Certains attaquants analysent les réponses des dispositifs Z-Wave pour
déterminer si une combinaison est correcte ou non, ajustant leur approche en conséquence.

7
iii. Accès et Exploitation
- Accès au Réseau : Lorsque l'attaquant trouve la bonne combinaison, il obtient un accès au réseau Z-
Wave ou aux dispositifs individuels.
- Contrôle des Dispositifs : Une fois l'accès obtenu, l'attaquant peut contrôler les dispositifs à distance.
Par exemple, il pourrait désactiver les systèmes de sécurité, ouvrir des portes, ou modifier les réglages
de la maison intelligente.

c- Exemples d’Outils
- Outils de Scannage Z-Wave : Des outils comme Z-Wave Network Scanner peuvent être utilisés pour
détecter les réseaux et les dispositifs Z-Wave.
- Outils de Force Brute : Des scripts ou des outils personnalisés peuvent être développés pour effectuer
des attaques par force brute contre les codes de sécurité ou les mots de passe des dispositifs Z-Wave.

d- Exemple de Code un Script de Force Brute :


import itertools

from zwave import ZWaveController

controller = ZWaveController()

for code in itertools.product('0123456789abcdef', repeat=4):

test_code = ''.join(code)

if controller.authenticate(test_code):

print(f"Code trouvé: {test_code}")

break

4.3.4 Attaque par Force Brute contre le Chiffrement des données


Une attaque par force brute contre le chiffrement des données consiste à essayer toutes les
combinaisons possibles pour casser un algorithme de chiffrement et accéder aux données protégées. Ces
attaques visent à découvrir la clé de chiffrement ou le mot de passe utilisé pour chiffrer les données. Voici un
développement détaillé de ce type d'attaque :

a- Concept de l’Attaque
- Chiffrement des Données : Le chiffrement est un processus qui transforme des données en un format
illisible (texte chiffré) en utilisant une clé de chiffrement. Ce processus est conçu pour protéger les
données contre l'accès non autorisé.

8
- Attaque par Force Brute : Cette attaque implique d'essayer systématiquement toutes les combinaisons
possibles de clés ou de mots de passe jusqu'à ce que la clé correcte soit trouvée pour déchiffrer les
données.

b- Procédure de l’Attaque
i. Identification des Cibles
- Déterminer l'Algorithme de Chiffrement : Les attaquants doivent d'abord connaître l'algorithme de
chiffrement utilisé (par exemple, AES, DES, RSA).
- Obtenir le Texte Chiffré : Les attaquants ont besoin d'accéder au texte chiffré, qui est la version
encryptée des données originales.

ii. Exploitation des Vulnérabilités


- Essayer Toutes les Clés : Les attaquants utilisent des outils ou des scripts pour essayer toutes les
combinaisons possibles de clés de chiffrement jusqu'à ce qu'ils trouvent la bonne clé.

Si la clé de chiffrement a une longueur de L bits, le nombre total de combinaisons possibles est donné par :

N=2L (4.07)

Exemple : Pour AES-128, L = 128, donc N = 2128 ≈ 3.4 × 1038 combinaisons.

Le temps d’exécution est comme suit, avec une vitesse d’attaque R (en clés testées par seconde), le temps
nécessaire pour épuiser toutes les combinaisons est :

N
T= (4.08)
R

Si un système peut tester R=109clés par seconde, le temps requis pour AES-128 serait :

38
3.4∗10
T= 9 = 1029 secondes
10

Ce temps est astronomiquement long, ce qui rend une attaque brute irréaliste pour des algorithmes modernes
avec des clés suffisamment longues.

- Utilisation d'Outils : Des outils de force brute spécialisés comme Hashcat ou John the Ripper peuvent
être utilisés pour effectuer ces attaques. Ces outils automatisent le processus et utilisent des ressources
informatiques importantes pour tester rapidement différentes combinaisons.

iii. Analyse des Résultats


- Déchiffrement des Données : Une fois que la clé correcte est trouvée, les données chiffrées peuvent
être déchiffrées pour révéler les données originales.
- Utilisation des Données : Les données déchiffrées peuvent être utilisées à des fins malveillantes, comme
le vol d'informations sensibles ou l'exécution d'attaques supplémentaires.

9
c- Exemples d’Outils
- Hashcat : Un outil de crackage de mots de passe qui peut être utilisé pour attaquer divers algorithmes
de chiffrement.
- John the Ripper : Un autre outil de force brute qui prend en charge plusieurs algorithmes de chiffrement
et de hachage.

Aircrack-ng : Utilisé pour casser les clés de chiffrement des réseaux Wi-Fi, ce qui peut également être
applicable dans des contextes de chiffrement de données.

d- Exemples de code pour Hashcat


hashcat -m 0 -a 3 encrypted_file hashlist.txt

‘-m 0’ spécifie le type de hachage (par exemple, MD5),

‘encrypted_file’ est le fichier contenant les données chiffrées,

‘hashlist.txt’ est la liste de clés à tester..

e- Exemple de code pour John the Ripper


john --format=raw-md5 encrypted_file

‘--format=raw-md5’ spécifie le format de hachage,

‘encrypted_file’ est le fichier contenant les données chiffrées.

4.4 Mesure contre Force Brute


4.4.1 Renforcer le mot de passe
a- Utiliser la plus grande gamme de symboles et de caractères possibles
Les mots de passe doivent inclure une variété de caractères pour augmenter leur complexité :

- Majuscules et minuscules : inclure à la fois des lettres en majuscule (A-Z) et en minuscule (a-z).
- Chiffres : ajouter des chiffres (0-9).
- Symboles spéciaux : utiliser des caractères spéciaux comme ‘!’, ‘@’, ‘#’, ‘$’, ‘%’, ‘^’, ‘&’, ‘*’, ‘(‘, ‘)’, ‘-‘,’ _’,
‘+’, ‘=’ pour accroître la diversité.

Cette diversité rend les mots de passe beaucoup plus difficiles à deviner par des attaques par force
brute, où des scripts automatisés essaient toutes les combinaisons possibles.

Une fois que des mots de passe sécurisés sont générés, il est essentiel de les protéger contre les
attaques par force brute ou en cas de compromission de la base de données. Une pratique courante consiste à
ne jamais stocker les mots de passe en clair, mais plutôt à les hacher avec un salt.

10
La formule suivante illustre ce processus :

H(P,S)=SHA256(P∥S) (4.09)

- H(P, S) : hash du mot de passe.


- P : mot de passe en clair.
- S : salt aléatoire.
- \parallel : concaténation du mot de passe et du salt.
- SHA256 : algorithme de hachage qui produit une empreinte de 256 bits.

Le hash est ensuite stocké dans la base de données avec le salt.

En Oracle, vous pouvez appliquer des politiques de mots de passe complexes en utilisant Oracle Database Vault
ou Profile pour définir des règles de complexité.

Voici un exemple de définition d'un profil avec des règles de complexité :

i. Code pour créer un profil avec des règles de complexité :


CREATE PROFILE complex_profile LIMIT

FAILED_LOGIN_ATTEMPTS 5

PASSWORD_LIFE_TIME 60

PASSWORD_REUSE_TIME 365

PASSWORD_REUSE_MAX 5

PASSWORD_VERIFY_FUNCTION verify_function;

 CREATE PROFILE complex_profile LIMIT : Crée un profil nommé complex_profile avec des limites
spécifiques.
 FAILED_LOGIN_ATTEMPTS 5 : Limite le nombre de tentatives de connexion échouées avant le blocage du
compte à 5.
 PASSWORD_LIFE_TIME 60 : Définit la durée de validité du mot de passe à 60 jours. Après cette période,
le mot de passe doit être changé.
 PASSWORD_REUSE_TIME 365 : Empêche la réutilisation d'un mot de passe pendant 365 jours après son
changement.
 PASSWORD_REUSE_MAX 5 : Limite la réutilisation d'un mot de passe jusqu'à 5 fois.
 PASSWORD_VERIFY_FUNCTION verify_function : Utilise la fonction verify_function pour valider la
complexité du mot de passe.

ii. Code pour créer la fonction de vérification de mot de passe :


CREATE OR REPLACE FUNCTION verify_function (username IN VARCHAR2, password IN
VARCHAR2, old_password IN VARCHAR2)

11
RETURN BOOLEAN AS

BEGIN

-- Exige au moins 8 caractères, une majuscule, une minuscule, un chiffre et un caractère spécial

IF LENGTH(password) < 8 OR

REGEXP_INSTR(password, '[A-Z]') = 0 OR

REGEXP_INSTR(password, '[a-z]') = 0 OR

REGEXP_INSTR(password, '[0-9]') = 0 OR

REGEXP_INSTR(password, '[[:punct:]]') = 0 THEN

RETURN FALSE;

END IF;

RETURN TRUE;

END;

 CREATE OR REPLACE FUNCTION verify_function : Crée ou remplace une fonction PL/SQL nommée
verify_function.
 username IN VARCHAR2 : Paramètre d'entrée pour le nom d'utilisateur (non utilisé dans la fonction mais
nécessaire pour la signature).
 password IN VARCHAR2 : Paramètre d'entrée pour le mot de passe à vérifier.
 old_password IN VARCHAR2 : Paramètre d'entrée pour l'ancien mot de passe (non utilisé dans la
fonction mais nécessaire pour la signature).
 RETURN BOOLEAN : La fonction retourne un booléen pour indiquer si le mot de passe est valide.
 LENGTH(password) < 8 : Vérifie si la longueur du mot de passe est inférieure à 8 caractères.
 REGEXP_INSTR(password, '[A-Z]') = 0 : Vérifie si le mot de passe ne contient pas de majuscules.
 REGEXP_INSTR(password, '[a-z]') = 0 : Vérifie si le mot de passe ne contient pas de minuscules.
 REGEXP_INSTR(password, '[0-9]') = 0 : Vérifie si le mot de passe ne contient pas de chiffres.
 REGEXP_INSTR(password, '[[:punct:]]') = 0 : Vérifie si le mot de passe ne contient pas de symboles
spéciaux.
 RETURN TRUE : Retourne vrai si toutes les conditions sont remplies, indiquant que le mot de passe est
valide

iii. Appliquez ce profil à un utilisateur :


ALTER USER username PROFILE complex_profile;

12
b- Eviter l’emploi de mots communs
Les mots de passe basés sur des mots courants ou des phrases faciles à deviner sont vulnérables. Par exemple :

- Mots de passe communs : ‘password’, ‘123456’, ‘admin’, ‘welcome’.


- Phrases communes : ‘iloveyou’, ‘letmein’.

Les attaquants utilisent souvent des dictionnaires de mots de passe courants dans leurs attaques, donc éviter ces
choix peut protéger contre les tentatives basiques.

c- Eviter les répétitions de formes de mots de passe


Les structures de mots de passe comme des motifs simples peuvent être repérées plus facilement :

- Patterns : ‘ABCabc123!@#’, ‘Qwerty123’, ‘Password1!’.


- Structures courantes : alternance de majuscules/minuscules suivie de chiffres et de symboles.

Les outils de force brute modernes peuvent détecter et cibler ces structures en utilisant des techniques de
permutation pour accélérer le processus. Utiliser des combinaisons aléatoires est plus sûr.

d- Générer un mot de passe de manière aléatoire


Les mots de passe générés aléatoirement sont généralement plus sécurisés. Utiliser des générateurs de
mots de passe aléatoires garantit :

- Longueur : optez pour des mots de passe longs (au moins 12 caractères).
- Complexité : assurez-vous qu'ils incluent une combinaison de lettres, chiffres et symboles.

Des outils en ligne ou des gestionnaires de mots de passe peuvent créer et stocker ces mots de passe de manière
sécurisée.

En Oracle, vous pouvez générer des mots de passe aléatoires pour les utilisateurs comme ceci :

DECLARE

v_password VARCHAR2(20);

BEGIN

v_password := DBMS_RANDOM.STRING('X', 12); -- Génère une chaîne aléatoire de 12


caractères

DBMS_OUTPUT.PUT_LINE('Generated password: ' || v_password);

-- Créer un utilisateur avec le mot de passe généré

EXECUTE IMMEDIATE 'CREATE USER new_user IDENTIFIED BY "' || v_password || '"';

END;

13
 DECLARE : Déclare des variables dans le bloc PL/SQL.
 v_password VARCHAR2(20); : Déclare une variable pour stocker le mot de passe généré.
 BEGIN : Débute le bloc PL/SQL d'exécution.
 v_password := DBMS_RANDOM.STRING('X', 12); : Utilise la fonction DBMS_RANDOM.STRING pour
générer une chaîne aléatoire de 12 caractères contenant des lettres et des chiffres.
 DBMS_OUTPUT.PUT_LINE('Generated password: ' || v_password); : Affiche le mot de passe généré pour
référence.
 EXECUTE IMMEDIATE 'CREATE USER new_user IDENTIFIED BY "' || v_password || '"'; : Crée un nouvel
utilisateur avec le mot de passe généré.

4.4.2 Détection et prévention des attaques sur les serveurs


a- Un mot de passe complexe et renouvelé régulièrement
- Complexité : appliquez les mêmes principes que pour les utilisateurs finaux.
- Renouvellement : changez les mots de passe périodiquement (par exemple, tous les 3 à 6 mois) pour
réduire le risque d’utilisation prolongée d’un mot de passe compromis.

Comme mentionné, utilisez le profil et la fonction de vérification pour assurer la complexité et la régularité du
renouvellement des mots de passe.

b- Programmes de détection pour bloquer certaines adresses IP


Oracle ne gère pas directement les adresses IP bloquées, mais vous pouvez configurer des outils
externes comme des pare-feu ou fail2ban pour surveiller les tentatives de connexion.

Le filtrage des IPs est géré par des outils externes comme le pare-feu, et non par la base de données Oracle elle-
même. Configurez des règles sur des pare-feu pour détecter et bloquer les adresses IP suspectes. Le code ci-
dessous est un exemple pour iptables :

# Exemple de règle iptables pour limiter l'accès à l'Oracle DB

iptables -A INPUT -p tcp --dport 1521 -s 192.168.1.0/24 -j ACCEPT

iptables -A INPUT -p tcp --dport 1521 -j DROP

 ‘iptables -A INPUT -p tcp --dport 1521 -s 192.168.1.0/24 -j ACCEPT ‘: Permet l'accès au port 1521 (port
par défaut pour Oracle) uniquement depuis la plage d'adresses IP 192.168.1.0/24.
 ‘iptables -A INPUT -p tcp --dport 1521 -j DROP’ : Bloque toutes les autres tentatives d'accès au port 1521.

c- Filtrage des accès aux services


Les règles de filtrage sont gérées par des pare-feu ou des configurations de réseau. Le filtrage d'accès est
généralement appliqué au niveau du serveur ou du réseau.

d- Protection des pages de login


Code pour ‘.htaccess’ :

14
<Files "login.php">

Require valid-user

</Files>

‘<Files "login.php">’ : Cible le fichier ‘login.php’ pour l'application de la règle.

‘Require valid-user’ : Exige une authentification valide pour accéder à ce fichier.

- Renommage des pages de login : Changez le nom des pages de connexion par défaut pour éviter les
tentatives automatisées.
- Intégration CAPTCHA : Ajoutez un CAPTCHA sur les pages de connexion pour vérifier que l'utilisateur est
humain, généralement via une bibliothèque ou un service comme Google reCAPTCHA. Cette intégration
se fait au niveau de l'application web.

e- Protection des comptes sensibles avec une double authentification


La double authentification (2FA) est généralement mise en œuvre au niveau de l'application ou via des
outils tiers comme Oracle Identity Management. Voici un exemple général :

- Configuration 2FA : Intégrez des services de 2FA comme Google Authenticator, Authy, ou des solutions
d'authentification multifactorielle dans votre système de gestion des utilisateurs.

En intégrant ces pratiques et configurations, vous renforcez la sécurité de votre base de données et protégez vos
systèmes contre les attaques par force brute et d'autres menaces.

4.5 Impact pour l’organisation


Les impacts d'une attaque par force brute sur une organisation sont multiples et peuvent gravement
affecter la sécurité, la disponibilité des services, et l'intégrité des données. Voici un développement détaillé des
impacts d'accès non autorisé, de détérioration des services, et de perte de données.

4.5.1 Accès non autorisé


a- Description
Lorsqu'une attaque par force brute réussit, l'attaquant obtient l'accès à un compte utilisateur, ce qui
peut être particulièrement dangereux si le compte ciblé a des privilèges élevés ou des accès critiques. Cet accès
non autorisé permet à l'attaquant de manipuler les ressources et les données de l'organisation.

b- Impacts
Voici les impacts des accès non autorisés :

- Compromission des comptes sensibles : Les comptes administratifs ou d'autres comptes avec des accès
élevés sont particulièrement vulnérables. Si un tel compte est compromis, l'attaquant peut modifier les
paramètres système, désactiver des mesures de sécurité, ou même créer de nouveaux comptes avec des
privilèges administratifs.

15
- Escalade des privilèges : L'attaquant peut utiliser l'accès obtenu pour essayer de monter en privilège,
c'est-à-dire obtenir des droits d'administrateur s'il ne les a pas déjà. Cela pourrait lui permettre de
prendre le contrôle total des systèmes et des réseaux de l'organisation.
- Violation de la sécurité des systèmes : Une fois dans le système, l'attaquant peut désactiver les mesures
de sécurité, exécuter des commandes non autorisées, ou exploiter d'autres vulnérabilités pour
compromettre davantage le système.
- Mouvement latéral : Avec l'accès non autorisé, l'attaquant peut se déplacer latéralement dans le
réseau, compromettant d'autres systèmes et comptes. Cela peut aboutir à une compromission à grande
échelle, affectant divers aspects de l'infrastructure informatique de l'organisation.

4.5.2 Détérioration des services


a- Description
Les attaques par force brute sont souvent caractérisées par de nombreuses tentatives de connexion en
un court laps de temps. Cette activité intense peut avoir un impact négatif sur les ressources serveur, conduisant
à une détérioration des services offerts par l'organisation.

b- Impacts
Voici les impacts de la détérioration des services :

- Surcharge des serveurs : Les tentatives répétées et massives de connexion peuvent surcharger les
serveurs, consommant des ressources système telles que la CPU, la mémoire, et la bande passante. Cela
peut ralentir le service ou le rendre totalement inaccessible aux utilisateurs légitimes.
- Interruption de service (DoS) : Dans certains cas, une attaque par force brute peut provoquer une sorte
de déni de service (DoS) si les serveurs ne peuvent pas traiter toutes les requêtes, affectant la
disponibilité des services. Cela peut être particulièrement critique pour les services en ligne qui
nécessitent une disponibilité constante.
- Impact sur l'expérience utilisateur : Les utilisateurs peuvent rencontrer des temps de réponse lents, des
difficultés à se connecter, ou des interruptions de service, ce qui peut réduire la satisfaction client et
entraîner des pertes commerciales.
- Augmentation des coûts d'infrastructure : Pour faire face à l'augmentation du trafic malveillant,
l'organisation peut être contrainte d'augmenter la capacité de ses serveurs ou de mettre en place des
mesures de défense supplémentaires, ce qui engendre des coûts supplémentaires.

4.5.3 Perte de données


a- Description
L'accès non autorisé obtenu par une attaque par force brute peut permettre à un attaquant d'accéder à d'autres
parties du système, souvent via une escalade des privilèges. Cela signifie que l'attaquant pourrait utiliser les
informations d'identification compromises pour obtenir des droits administratifs ou accéder à d'autres systèmes
et réseaux internes.

16
b- Impacts
Voici les impacts de la détérioration des services :

i. Exfiltration des données sensibles


L'attaquant peut copier des informations sensibles et les exfiltrer vers un endroit externe. Cela peut
inclure des données personnelles des clients, des secrets commerciaux, des informations financières, ou toute
autre donnée critique pour l'organisation.

ii. Modification des données


Une fois à l'intérieur du système, l'attaquant peut altérer les données, ce qui peut affecter la précision et
la fiabilité des informations. Par exemple, des modifications dans les bases de données financières peuvent
causer des erreurs graves dans les rapports financiers ou les opérations bancaires.

iii. Suppression des données


L'attaquant peut également supprimer des données, causant des pertes permanentes si les systèmes de
sauvegarde ne sont pas adéquats. La suppression de données critiques peut paralyser les opérations, nécessitant
des temps d'arrêt prolongés pour la récupération des données.

iv. Compromission des sauvegardes


Si l'attaquant obtient l'accès à des systèmes de sauvegarde, il peut également compromettre ou
supprimer les sauvegardes, rendant la récupération des données encore plus difficile et coûteuse.

v. Violations réglementaires
La perte de données peut entraîner des violations de la réglementation sur la protection des données
(comme le RGPD en Europe), exposant l'organisation à des sanctions financières et juridiques.

4.6 Conclusion
Ce chapitre a permis de comprendre l’impact et le fonctionnement des attaques par force brute ainsi que
les moyens de les contrer. Bien que cette technique d'attaque soit souvent simple dans son principe, elle
représente un risque réel, surtout si des mesures de sécurité robustes ne sont pas mises en place. Les calculs
mathématiques réalisés démontrent la complexité croissante de ces attaques en fonction de la longueur des
mots de passe et de l’usage de techniques de hachage. La sensibilisation aux mesures de protection, telles que le
renforcement des mots de passe et les systèmes de détection, est essentielle pour minimiser les risques. Les
connaissances acquises ici serviront de base pour comprendre et implémenter des stratégies de défense plus
avancées contre les attaques par force brute.

17

Vous aimerez peut-être aussi