NEW
Font size
WorksheetsExamen Final en Python
Total questions: 62
Worksheet time: 11mins
Quel module Python est le plus adapté pour lire des fichiers CSV volumineux ?
os
pandas
sys
requests
Pour lire un fichier binaire en Python, il faut ouvrir le fichier avec le mode :
"r"
"rb"
"w"
"rt"
Quelle bibliothèque permet de lire et d’analyser des fichiers PCAP en Python ?
socket
pyshark
pandas
hashlib
Pour parser un fichier JSON complexe, quel module Python standard est utilisé ?
pickle
json
xml
csv
Quel est le principal avantage de pandas pour l’analyse de logs ?
Manipulation efficace de gros volumes de données
Création d’interfaces graphiques
Envoi d’e-mails
Génération de clés cryptographiques
Quelle méthode pandas permet d’agréger les données par une colonne spécifique ?
groupby()
aggregate()
filter()
join()
Pour détecter une anomalie dans une série temporelle, on peut utiliser :
La moyenne et l’écart-type
Le tri alphabétique
La concaténation de chaînes
La permutation de listes
Quel algorithme scikit-learn est adapté à la détection d’anomalies ?
IsolationForest
LinearRegression
KMeans
DecisionTreeClassifier
En Python, pour lire chaque ligne d’un fichier texte, on utilise :
for line in file
while file.read()
file.write()
file.append()
Pour extraire des motifs dans des logs, on utilise généralement :
Les expressions régulières (re)
La bibliothèque math
La bibliothèque turtle
La bibliothèque time
Quel module permet de créer des sockets TCP en Python ?
socket
requests
urllib
hashlib
Pour envoyer un paquet personnalisé sur le réseau, on utilise :
scapy
pandas
numpy
os
Quel est le rôle d’un scanner de ports ?
Identifier les ports ouverts sur une machine cible
Chiffrer les communications
Générer des clés RSA
Lire des fichiers JSON
Quelle commande permet de lancer un scan SYN avec scapy ?
sr1(IP()/TCP(flags="S"))
send(IP()/UDP())
sniff()
sendp()
Quel type de socket est utilisé pour UDP ?
SOCK_DGRAM
SOCK_STREAM
SOCK_RAW
SOCK_PACKET
Pour capturer les paquets réseau sur une interface, on utilise avec scapy :
sniff()
listen()
capture()
get()
L’attaque par injection SQL consiste à :
Insérer des commandes dans une requête SQL pour manipuler la base de données
Envoyer des paquets ICMP
Chiffrer un message
Scanner des ports
Quelle API permet d’obtenir des informations sur les vulnérabilités exposées d’une IP ?
Shodan
pandas
hashlib
pycrypto
Pour automatiser un test de vulnérabilité avec Python, il est préférable d’utiliser :
Une API ou un module spécialisé
La bibliothèque turtle
Un fichier .exe
Un script bash uniquement
Le "bannière grabbing" consiste à :
Lire la bannière d’un service réseau pour identifier sa version
Chiffrer les communications
Générer une clé publique
Lister les fichiers d’un dossier
Quel module Python permet de manipuler facilement RSA et AES ?
pycryptodome
pandas
scapy
requests
La cryptographie asymétrique implique :
Une clé publique et une clé privée
Une seule clé partagée
Deux clés identiques
Un mot de passe simple
Pour générer une paire de clés RSA avec pycryptodome :
RSA.generate()
AES.new()
hashlib.sha256()
socket.socket()
Le chiffrement symétrique utilise :
Une seule clé pour chiffrer et déchiffrer
Deux clés différentes
Un certificat SSL
Une API REST
Quel type de clé utilise le chiffrement symétrique ?
Une seule clé pour chiffrer et déchiffrer
Deux clés différentes
Un certificat SSL
Une API REST
Quel mode d’AES garantit l’authenticité et la confidentialité ?
EAX ou GCM
ECB
CBC sans padding
OFB
Pour stocker un mot de passe de façon sécurisée, il faut :
Le hasher avec bcrypt ou argon2
Le stocker en clair dans un fichier texte
L’envoyer par email
L’enregistrer dans un cookie non sécurisé
La signature numérique permet de :
Vérifier l’intégrité et l’authenticité d’un message
Chiffrer un message
Scanner des ports
Générer un rapport HTML
Pour générer un hash SHA256 en Python :
hashlib.sha256()
pandas.hash()
scapy.hash()
os.hash()
Un HSM (Hardware Security Module) sert à :
Stocker et gérer des clés cryptographiques de façon sécurisée
Scanner des ports
Lire des fichiers CSV
Générer des rapports PDF
Pour échanger une clé AES de façon sécurisée, on peut :
La chiffrer avec la clé publique RSA du destinataire
L’envoyer en clair par email
L’écrire dans un fichier non protégé
L’annoncer à voix haute
Quel module Python permet de piloter nmap ?
python-nmap
pandas
pycrypto
scapy
Le fuzzing consiste à :
Envoyer des entrées aléatoires ou malformées à un programme pour détecter des bugs
Scanner des ports
Générer des clés RSA
Lire des fichiers JSON
Pour automatiser l’exploitation d’une faille, il faut :
Écrire un script qui reproduit l’attaque de façon contrôlée
Utiliser uniquement la ligne de commande
Chiffrer le trafic réseau
Utiliser un éditeur de texte
Quelle est la première étape d’un test de pénétration automatisé ?
La reconnaissance (scan de ports/services)
Le chiffrement des communications
La génération de clés
L’envoi d’emails
Pour automatiser la génération d’un rapport, on peut utiliser :
La bibliothèque fpdf ou reportlab
La bibliothèque turtle
La bibliothèque time
La bibliothèque math
Une vulnérabilité "buffer overflow" consiste à :
Écrire au-delà de la mémoire allouée à un programme
Scanner tous les ports d’une machine
Chiffrer un message
Lire un fichier CSV
Pour intégrer un outil externe en Python (ex : sqlmap), on utilise :
subprocess
pandas
hashlib
socket
Pour automatiser la collecte d’informations sur un site web, on utilise :
requests + BeautifulSoup
pandas
scapy
hashlib
Pour analyser les résultats d’un scan nmap en Python, il est recommandé de :
Utiliser python-nmap pour parser les résultats
Lire le fichier XML avec turtle
Utiliser uniquement la ligne de commande
Scanner les ports avec hashlib
Pour détecter si un service est vulnérable, on peut :
Comparer sa version à une base de données de vulnérabilités (CVE)
Chiffrer le trafic réseau
Lire un fichier JSON
Générer une clé RSA
Pour éviter l’exécution de code arbitraire lors du chargement d’un fichier, il faut éviter :
pickle.load() sur des fichiers non fiables
json.load()
open()
print()
Pour gérer les erreurs réseau en Python, il est conseillé d’utiliser :
Un bloc try/except
Un bloc if/else
Un bloc while/for
Un bloc with/as
Pour sécuriser un script Python contre les injections de commandes, il faut :
Valider et échapper les entrées utilisateur
Utiliser des mots de passe simples
Stocker les clés en clair
Désactiver le pare-feu
Pour limiter les attaques par brute force, il est recommandé de :
Mettre en place un système de verrouillage après plusieurs échecs
Utiliser des ports non standards
Chiffrer les logs
U
Limiter les attaques par brute force, il est recommandé de :
Mettre en place un système de verrouillage après plusieurs échecs
Utiliser des ports non standards
Chiffrer les logs
Utiliser des sockets UDP
L’utilisation de virtualenv en Python permet de :
Isoler les dépendances d’un projet
Générer des clés RSA
Scanner des ports
Lire des fichiers PCAP
Pour éviter les fuites d’information dans les logs, il faut :
Masquer ou anonymiser les données sensibles
Écrire tous les logs en clair
Partager les logs publiquement
Utiliser des ports non standards
Pour protéger un mot de passe dans un script Python, il est préférable de :
Le stocker dans une variable d’environnement
L’écrire en dur dans le code
L’envoyer par email
L’imprimer à l’écran
Pour éviter les attaques de type "race condition" lors de la manipulation de fichiers :
Utiliser des verrous (locking)
Utiliser des sockets UDP
Chiffrer les fichiers
Scanner les ports
Pour s’assurer qu’un script Python est maintenable et sécurisé, il faut :
Documenter le code et utiliser des tests automatisés
Écrire tout dans une seule fonction
Utiliser uniquement des variables globales
Éviter les commentaires
Pour limiter l’impact d’une faille, il est important de :
Appliquer le principe du moindre privilège
Donner tous les droits à tous les utilisateurs
Désactiver les logs
Utiliser un seul mot de passe pour tout
Quelle est la première étape pour analyser un fichier de logs inconnu ?
Comprendre sa structure et son format
L’effacer
Le chiffrer
L’envoyer par email
Pour détecter une attaque de brute force dans des logs, il faut :
Rechercher de nombreuses tentatives de connexion échouées par la même IP
Scanner les ports
Générer une clé RSA
Chiffrer les logs
Lors d’un scan de ports, si le port 22 est ouvert, cela signifie :
Le service SSH est probablement accessible
Le serveur est vulnérable
La machine est éteinte
Le port est réservé au HTTP
En cryptographie, pourquoi utiliser une clé de session AES même si on utilise RSA ?
Pour la rapidité du chiffrement symétrique
Pour la compatibilité avec les navigateurs
Pour générer des logs
Pour scanner des ports
Lors d’un test de pénétration automatisé, il est important de :
Documenter chaque étape et résultat
Utiliser des mots de passe faibles
Scanner uniquement les ports 80 et 443
Désactiver le pare-feu
Pour sécuriser la transmission d’une clé AES, il faut :
La chiffrer avec la clé publique du destinataire
L’envoyer en clair
L’écrire dans un fichier texte
L’imprimer à l’écran
Un script Python qui automatise la collecte de vulnérabilités doit :
Interroger des bases de données ou API de vulnérabilités
Scanner les ports uniquement
Chiffrer les logs
Générer une clé RSA
Pour valider la signature d’un message, il faut :
La clé publique du signataire
La clé privée du destinataire
Le mot de passe de l’utilisateur
Le port ouvert
Pour détecter une anomalie dans un flux réseau, on peut :
Surveiller les pics de trafic ou les paquets inhabituels
Chiffrer tous les paquets
Générer une clé RSA
Lire un fichier CSV
Lors de la conception d’un outil de cybersécurité en Python, il est essentiel de :
Comprendre les concepts sous-jacents avant d’automatiser
Copier-coller du code sans comprendre
Utiliser uniquement des bibliothèques propriétaires
Écrire tout en une seule ligne
