Sécurité Applicative : Ingénierie Sociale
Sécurité Applicative : Ingénierie Sociale
DUVERGER Kévin
14 février 2024
1
DUVERGER Kévin Révisions - Sécu. app Université de Limoges
Définition : l’ingénierie sociale regroupe tous les moyens où quelqu’un essaie de manipuler une personne pour ac-
complier une action qui peut être ou ne pas être dans l’intéret de la cible : révéler des informations confidentielles,
créer / suspendre un accès, c’est souvent couplé à des techniques d’OSINT (OpenSource INTelligence).
OSINT peut se faire via internet (site web de l’entreprise, réseaux sociaux, données publiques, infos sur les DNS,
archives web) ou encore avec les lettres d’informations, les journaux, les paternaires, les fusions, ... SIGINT : Signals
Intelligence : scan de réseaux wifi, SMS, tracking GPS. HUMINT (Human Intelligence) : social engineering, c’est le
moyen le plus simple pour accéder à l’information.
Plus une entreprise a de salariés, plus il y a de maillons faibles potentiels : il est difficile de s’en protéger (il faut
éduquer les gens et continuer les entraı̂ner à déceler et résister aux techniques). Les attaquants utilisent des méthodes
qui ne relèvent pas uniquement de la technique (manipuer les gens au lieu de machines c’est plus simples, ils profitent
des réponses prévisibles des triggers psychologiques humains).
La collecte d’information peut être directe (interactions avec la cible) : soit par le téléphone, soit en personne, soit
en ligne ou encore avec des arnaques au président. Il est également possible de faire des observations indirectes / des
inférences.
Les biais :
Le biais de réciprocité : nous retournons une faveur peu importe celle initiale (même si nous ne la désirions
pas). Souvent utilisé par les charités, exploite la tentation de donner en retour. En SE permet de lancer des
demandes compliquées : ”pour enlever les virus de votre ordinateur, j’aurais besoin de vos identifiants”.
La consistance : on essaye de rester cohérent avec nos actions pasées même si les raisons ont changé depuis.
C’est exploité par les vendeurs : on commence à remplir un formulaire sans engaement ce qui nous fait donner
beaucoup d’informations personnelles, le cerveau se commit et décide de rester concistant et ce même si le
message change.
La preuve sociale : on essaie de faire et de pense ce que les autres personnes qui nous ressemblent font et pensent
(fonctionne même quand les gens en sont conscients). Applications en SE : ”Bob m’a donné son mot de passe
et vous ?”.
L’appréciation / similarité : on coopère plus facilement avec les gens qui semblent nous apprécier (principe du
good cop / bad cop). La flatterie marche, même si elle est mauvaise. Même genre de réaction si on se trouve
des points communs.
L’autorité : on coopère avec une personne qui semble être en charge (parfois sans se poser questions trop
littéralement avec l’expérience de Milrgram), effet blouse blanche / uniforme / badges, cela fonctionn très bien
dans les structures de type militaire.
La pénurie : on surévalue l’apparente rate d’informations : célélbrations, censure, ”Act now ! Supplies are
limited !”, cela peut être utilisé pour gagner un accès (je suis là jusqu’à midi donc si j’ai pas les accès vous
devrez attendre un mois de plus, bonne chance pour y expliquer à votre posse) ou pour une augmentation (vous
savez, la boite ... m’a contacté récédemment pour un job).
SMTP (Simple Mail Transfer Protocol) : standard pour transmettre des mails défini dans la RFC 821. Il ne définit ni
le format ni le contenu des messages sauf qu’ils doivent être en ASCII et qu’il ajoute des informations sur le chemin
parcouru. Le protocole essaie d’être fiable mais il ne prévoit rien (les hôtes perdents les fichiers, l’un des deux ne donne
pas d’accusé de réception, ...). Il ne comporte que 14 commandes simples (ex : HELO pour le premier message, MAIL
FROM, RCPT TO, Quit).
Les attaques sur les en-têtes sont peu fréquentes à l’heure actuelle mais peuvent toujours arriver sur de vieilles
implémentations pour faire des buffer overflow. De plus les attaques protocolaires sont plutôt difficiles à mettre en
place sur des protocoles challenge / response (les commandes reçues dans le désordre sont ignorées) du coup on va
plutôt viser des connexions multiples pour faire un DOS sur le serveur.
Les attaques les plus fréquentes pour SMTP sont les attaques par authentification car il n’y a pas authenfication du
client (ce qui entraı̂ne de nombreux problèmes de spam et de phishing). Les attaques basées sur le traffic sont aussi nom-
breuses : on va utiliser reply to pour faire du déni de service distributé, des messages trop gros vont ralentir les serveurs.
POP (Post Office Protocol) : c’est un protocol de transfert de mails entre un client et un serveur (RFC 1939) qui
fournit également un mécanisme d’authentification. Dans une session POP : le client POP3 se connecte à un serveur
POP3 (login et mdp en clair), l’utilisateur peut configurer àquelle fréquence les mails sont vérifiés et donc combien de
fois le mot de passe est transmis.
IMAP (Internet Mail Access Protocol) : permet de récupérer et classer les messages, POP ne fonctionne pas très
bien avec plusieurs clients vu que les mails sont supprimés une fois lus (avec IMAP on peut les garder sur le serveur
et propager les modifications entre les clients).
2.3 La PKI :
Le problème de l’échange de clés publiques : dans une architecture publique la prise en compte d’une clé publique
nécessite d’avoir confiance en la personne qui nous la fournit. Cette dernière peut s’obtenir soit par envoi point à point
(GPG) soit en passant par un annuaire centralisé comme LDAP. Dans les 2 cas il faut s’assurer que la clé obtenue
provient bien de la bonne personne concernée (pas de garanties !). On pourrait très bien imaginer un adversaire qui
fasse un man in the middle pour remplacer cette clé par la sienne.
L’objectif de la PKI va être de fournir des tiers de confiance partagés par Alice et Bob. Une PKI va être composée de
plusieurs éléments : des certiifcat électroniques, des autorités pour l’enregistrement (RA) / la certification (CA) / la
validation (VA) ainsi qu’un protocole standardisé de vérification.
Le certificat joue le rôle d’une carte d’identité numérique de la clé publique. Il contient l’identité de la personne, sa
clé publique et une attestation de cette association par un tiers de confiance. L’attestation est en fait la signature
électronique apposée par l’autorité de certification.
La clé publique de l’autorité est ensuite largement diffusée et peut également être signée par une autre autorité : on
parle alors de chaı̂n ede confiance. La confiance est accordée si dans la chaı̂ne on trouve une autorité dans laquelle on
a confiance (ex : VeriSign, Certinomis, ...). La confiance dans la PKI repose donc sur la confiance que l’on accorde aux
autorités associées.
Par défaut les OS et les navigateurs disposent de clés publiques d’autorités de confiance. Sous windows on peut utiliser
le service certmgr.msc pour voir ces certificats.
Un certificat est doté d’une date d’expiration : si l’aurotié disparaı̂t entre temps les certificats associés doivenet être
révoqués. La CA doit donc délivrer des certificats, leur donner une date de validité et les révoquer si sa clé privée est
compromise.
Il y a 3 classes de certificats :
Les certificats de classe 1 qui associent une clé publique à un e-mail (c’est juste le mail qui est contrôlé), permet
de la signature et du chiffrement de courrier électronique, ils peuvent s’obtenir très rapidement et souvent
gratuitement.
Les certificats de classe 2 font une vérification plus poussée de l’identité pouvant aller jusqu’à la présentation
physique, ils permettent de faire de l signature d’application logicielle par exemple.
Les certificats de classe 3 vont avoir le plus haut niveau de vérification avec une compensation financière en
cas de litige, il permettent également de mettre en oeuvre sa propre CA pour émettre des certificats (l’entité
devient alors une LRA : Local Registration Authority).
Une CA reconnue doit être plus qu’un simple logiciel : il faut des moyens humains pour vérifier les informations et elle
doit fournir des CPS (Certification Practice Statement) qui donne la manière dont les infos sont vérifiées, les étapes
pour produit le certificat et comment révoquer ces derniers.
Obtention d’un certificat : on s’enregistre auprès de la RA qui va générer une paire de clés, l’envoyer à la CA qui va
pour finir nous envoyer notre certificat. Ce dernire pourra ensuite être stocké localement dans un ”Key Store” (base
de données locale accessible via une API) (par exemple PKCS#11, CAPI, JCA, ...) ou encore dans un annuaire LDAP
pour un réseau local.
Le format des certificats est défini par l’IETF à travers le standard X.509. Il utilise actuellement la version 3 des
certificats : issuer caractérise la CA, subject le propriétaire du certificat et la gestion des extensions. Les noms sont
représentés grâce au DN de X.500.
Les certificats peuvent aussi identifier une CA / des CA intermédiaires / des matériels / des utilisateurs / des appli-
cations.
La validation d’un certificat : le contenu (sauf la signature) est passé dans l’algorithme de Hash ce qui donne une valeur
A, ensuite la signature est vérifiée avec ce hash et la clé publique de l’autorité. Ensuite il faut faire ça pour toute la
chaı̂ne de confiance. Il faut également vérifier que le certificat n’a pas expiré et n’a pas été révoqué en consultant la
CRL (Certificate Revocation List) de la CA.
Les CRLs sont des listes noires de certificats : 0 = non-spécifié, 1 = toutes les clés compromises, 2 = la CA compromise,
3 = changement d’affiliation du certificat, ...
La clé privée doit rester la propriété exclusive de son propriétaire : elle ne doit jamais être communiquée ni copiée, elle
doit être stockée en étant chiffrée par un algorithme symétrique et la paire de clé doit avoir une durée de vie et pouvoir
être révoqué. Mais que fait quand l’utilisatuer perd sa clé ? que sa hiérarchie doit avoir accès à certains documents ?
en cas de décision de justice ordonnant la divulgation de certaines données ?
Pour ce faire on utilisera une autorité de séquestre (key escrow) : elle va se charger de stocker les infos secrètes comme
les bi-clés. C’est un élément très important d’une PKI car il doit absolument maintenir la confidentalité des données.
Un moyen pour simplifier l’utilisation d’une autorité de séquestre est d’utiliser plusieurs couples de clés (un couple
sert pour le chiffrement et un autre pour la signature).
Les limites de la PKI : la révocation des certificats n’est pas optimale (listes noires à réactualiser sans celle, mieux =
listes blanches), tout repose sur la chaı̂n de confiance (si les CA compromises le système flanche), les CA sont toutes
des entreprises privées qui se financent sur l’émission de certificat et pas sur les vérification : que se passe-t-il en cas
de faillite / d’acquisition ?
Confidentialité : un message chiffré avec la clé publique d’Alice ne peut être déchiffré que par la clé privée d’Alice.
Intégrité et non-répudation : signature (on utilise la clé privée pour la signature).
Authentification : se fera en mode challenge response (le serveur va envoyer une valeur chiffrée avec notre clé publique
et on devra renvoyer le déchiffré ce qui prouvera qu’on connaı̂t la clé secrète).
PKI = IGC = ICP. Son univers est un ensemble de composants physiques, logiciels et procédures.
Le but est de fournir des garanties qui permettent de faire confiance à un certificat signé par une CA. Ses services :
enrgistrement des utilisateurs, génération de certificats, renouvellement, révocation, publication de ces derniers, public
des listes de révocation, identification et authentification des utilisateurs, archivage, séquestre et recouvrement des
certificat.
4 autorités dans une PKI : certification, enregistrement, validation, séquestre.
Cas d’usage : accès sécurisé à votre banque en ligne via SSL/TLS, le certificat va permettre de vérifier que c’est bien
le serveur de la banque auquel on se connecte mais également d’échanger la clé de sesion symétrique.
OCSP : Online Certificaet Signing Protocol : permet de savoir si le certificat (identifié par son numéro de éérie) est
révoqué ou non.
La PKI de l’état français est l’IGCA.
Key Ceremony :
La première étape est l’initialisation du HSM + la création de la CSR et du bi-clé.
La seconde étape : signature du certificat auto-signé.
La dernière étape : initialisation de la PKI.
Cette cérémonie fait intervenir plusieurs personnes : le master, le key manager, le security officer, l’auditeur, les 5
secrets de shamir et 2 témoins. L’idée est qu’il n’y aura besoin que de 3 secrets pour que ça marche (allez voir le cours
de meca-crypto).
Pour aller plus loing : chiffrement symétriqu eAES, chiffrement asymétrique RSA, collisions sur les fonctions de ha-
chage, certification des produits par les agences nationales, règlementations associées (Critères Communs et eIDAS),
la norme X.509 pour le certificats, la PKI de l’état français (ICGA), l’horodatage, les HSM = Hardware Seucrity
Module, FIDO 2, France connect, OIDC / OAUTH, SSO, Passwordless.
France connect : moyen de s’authentifier basé sur un ensemble d’IDP (fournisseurs d’identités compatibles avec france
connect)
3.3 Le cloud :
4 principes : tout le temps (Any Time : AT), partout (Any Where : AW), sur tout support (Any Device), tout contenu
(Any content) : ce qui nous donne ATAWADAC.
Il y a de nouveaux enjeux pour les entreprises : les utilisateurs internes / externes sont e plus en plus exigeants (time-
to-market, disponibilité, réactivité, qualité, délivrabilité, agilité des processus, expérience utilisatuer, exploitation de
la data, ...)
Les géants du web GAFAM vont naturellement vers ATAWADAC et les autRES BHATX (Baidu, Huawei, Alibaba,
Tencent, Xiaomi) redéfinissent les modèles économiques du 21ème siècle.
Intérêt du cloud : maintenir et continuer à garder la main sur son activité (nomadisme), on a aussi la scalabilité (on
va mettre les ressources à disposition en fonction de nos besoins).
Cloud computing : modèle informatique permettant un accès réseau omniprésent, pratique et à la demande à un
ensemble partagé de ressources informatiques configurables qui peuvent être rapidement mises à disposition et libérées
avec un minimum d’administration ou d’interaction avec des fournisseurs de service.
5 caractéristiques essentielles : libre-service à la demande, mutualisation des ressources, large accès au réseau (ouver-
ture), élasticité horizontale et vertificale (capacité de stockage et puissance de clacul adaptées au besoin du consom-
mateur), service mesuré = paiement à l’usage.
3 modèles de service : SaaS (mise à disposibiont d’applications entreprise), PaaS (mise à disposition de plateformes
de middleware, de développement, de test, d’exécution d’applications), IaaS (ise à disposition de ressources informa-
tiques).
4 modèles de déploiement : privé (utilisé par un seul organisme = datacenter), hybride (ménage de plusieurs modèles
de cloud pour avoir les avantages des différents environnemnts), communautaire (partagé par plusieurs organismes) et
public (déployé par un fournisseur de cloud tiers et partagé par les utilisateurs).
5 grands fournisseurs de services cloud : Amazon, Microsoft, Google, Alibaba, Oracle. IBM a une position de lea-
der mondial sur les segments de cloud privés et hybrides. Les autres acteurs sont sur des marchés de niche. Les CSP
français proposent généralement de l’IaaS et hébergent du SaaS (OVH, OutScale, Ikoula, Scaleway, ...)
Les données vont avoir différents niveaux : C1, C2, C3, C4 (C4 on y mettra pas dans le cloud).
Eléments essentiels pour la sécurité du cloud : identité (chaque action doit pouvoir être identifiée), data (les données ne
doivent pas être corrompues / accessibles), devices (les dispositifs d’accès doivent être aussi sécurisés que l’infrastruc-
ture cloud), apps (les applications et leur cadre d’utilisation doivent être vérifiés), infra (l’infrastructure doit vérifier
certains critères nous garantissant la pérennité et la sécurité des données).
Lois et règlements français : CISPE (Cloud Infrastructure Service Providers in Europe), RGPD (Règlement général
sur la protection des données), loi de programmation miliaire, ...
Comme dit précédemment, le RGPD n’a pas révolutionné la loi Française, il s’est inspiré de la LIL.
L’individu a des roits sur ses données personnelles : décider à contrôler les usages qui en sont fait.
CNIL : autorité créée spécialement pour vérifier que cette loi est respectée.
Cela a aboutit à la mise en place d’obligations déclaratives.
En revanche on ne peut pas faire une loi de la protection des données pour tous les pays du monde : les dicta-
tures n’accepteront pa (Chine, Corée du Nord, Iran) et certaines démocracties n’ont pas la même approche que la
France pour ces données : par exemple les USA veulent la circulation des données pour se faire de l’argent.
24 octobre 1995 : directive européenne (directive : un objectif et c’est aux états membres de faire ce qu’il faut pour
l’atteindre).
27 avril 2016 : règlement UE (après un problème de réseaux sociaux) : le règlement s’applique directement dans tous
les états (c’est le fameux RGPD). D’application au 25 mai 2018 : il faut laisser un peu de temps aux états membres
pour s’adapter. On peut s’y référer pour l’immense majorité des problématiques.
Loi du 20 juin 2018 : c’est une adaptation de la LIL : les gens vont donner leurs données personnelles aux réseaux
sociaux : du coup on a un gros problème.
Revenons sur les données personnelles : une donnée personnelle c’est toute information se rapportant à une per-
sonne physique identifée ou identifiable (on ne protège pas les personnes morales).
Identification directe : une donnée personnelle qui nouspermet d’identifier directement la personne : nom + prénom /
adresse mail / ...
Identification indirecte : on a une donnée pseudonymisée telle que le numéro de sécurité sociale, l’empreinte digitale,
l’adresse IP, le numéro étudiant, le numéro de téléphone et en regroupant suffisamment d’informations on peut iden-
tifier une personne (ex : le fils aı̂né du médecin habitant au 5 rue Jean Jaurès).
Ensuite la définition de ce qu’est un traitement est donnée : c’est toute opération ou tout ensemble d’opérations ef-
fectuées ou non à l’aide de procédés automatisés et appliquées à des données ou des ensembles de données à caractère
personnel.
Donnée personnelle : toute information se rapportant à une personne physique identifiée ou identifiable (on protège
pas les personnes morales) Notez que le RGPD et la LIL s’appliquent aussi aux données papiers.
Il faut qu’il y ait une approche professionnelle pour que le RGPD s’applique.
Ce règlement s’applique dans l’ensemble de l’unoin européenne : à toutes les administrations et les entreprises privées
(tout le monde est soumis au RGPD à partir du moment où on est dans un cadre professionnel). Pour les données
européennes stockées ailleurs c’est au cas pas cas.
1. Le pays a sa propre loi et l’union européenne considère que la législation est similaire au RGPD (comme au Japon) :
ça se base sur des décisions d’adéquation, ce pays là en terme de décision il est adéquat, la réglementation est tellement
sévère qu’on retrouver celle du RGPD.
2. Les autres pays où ça coince beaucoup plus : quand on veut transférer des données de citoyens européens vers eux
il faut encadrer juridiquement : on va donc avoir une convention de transfert des données (on envoie la donnée mais il
faut qu’lle soit traitée similairement au RGPD, ce sont les closes contractuelles types) : par exemple on peut chiffrer
la donné.
On a beaucoup de problèmes de transfert avec les USA : ils ont développé le ”privacy shield”, les entreprises qui ont
obtenu cette certification se retrovent sur une liste du secrétaire au commerce, et pour obtenir cette certification il faut
que le gouvernement américain puisse accéder à la donnée si c’est pour la sécurité nationale : c’est la même logique de
l’adéquation. Maximilien Schrems (autrichien) : c’est le héros de la protection qui portera l’affaire devant la court de
justice européenne car c’est pas cohérent : s’il y a des organismes de rensiengment qui veulent accéder aux données,
elle peuvent et c’est contraire au RGPD.
Avant le RGPD, le responsable de traitment devait déclarer tous ses traitements de données personnelles à la CNIL.
Avec le RGPD c’est une autre logique : accountability : l’idée est que le responsable de traitement doit être responsable
et pouvoir rendre des comptes dès lors qu’on lui en demade.
Plusieurs choses permettent de faire de l’accountability :
Tenue d’un registre de traitement : il enregistre chacun des traitements et pour ces derniers quelles données
sont traitées et qui y accède.
Privacy by design : la conformité au RGPD est prise en compte dès la conception de projets rattachées au
traitement des données.
Privacy by default : le responsable de traitement doit assurer par défaut le plus haut niveau de protection
(implique des mesures de de protection systématiques telles que la minimisation de la quantité de données et
de leur durée de conservation).
PIA (Privacy Impact Assessment) : pour les traitements à risque élevé, étude d’impact. Trois parties à détailler :
la description du traitement, l’évaluation juridique et l’évaluation technique. La CNIL ne sera consultée que si
le risque résiduel est élevé.
Les traitements qui remplissent 2 des critères suivants doivent subir un PIA : évaluation pour donner une note à
un client, décision automatique avec effet légal, surveillance systématique, collecte de données sensibles, collecte de
données personnelles à grande échelle, croisement des données, traitement des données d’une personne vulnérable,
usage innnovant.
Du coup on ne déclare quasiment plus rien à la CNIL ce qui lui allège son travail et lui permet de se concentrer sur
les cas les plus critiques (par exemple il faudra encore déclarer les énormes traitements de données de santé).
Consentement des personnes : se fait sur une base légal (mon but est légal).
Il y a 6 possibilités pour recueillir / traiter de la donnée et le consentement en est la première.
2. On peut ne pas demander ce consentement si c’est nécessaire au respect d’une obligation légale : par exemple pour
le vote élecronique, la mise en place requiert le transfert des listes électorales : on est obligé de faire ce transfert et
donc on demande pas aux étudiants leur accord.
3. On peut également ne pas le demander si c’est pour la sauvegarde de la vie d’une personne : en coma ehtylique, je
peux pas donner mon identité, le médecin va pas attendre qu’on se réveille pour faire unr prise de sang.
4. C’est aussi valable pour une mission de service publique.
5. Exécution d’un contrat : baskets en lignes, on a pas décidé qu’on donnerait que la moitié du numéro de carte
bancaire et il leur faut bien l’adresse de facturation pour envoyer le produit.
6. Intérêt légitime : grosse éponge quand on ne sait pas quelle autre condition utiliser (typiquement dans les jeux aux
supermarchés on donne nore date anniversaire, ce qui est dans l’intérêt légitime du commercant pour récupérer des
clients). Quand le consentement est recueilli, il faut qu’il soit libre, spécifique (on dit oui pour une chose mais pas pour
les autres), éclairé (on est totalement informé) et univoque (c’est très clair).
La CNIL c’est un autorité administrative indépendante (elle ne dépend pas de l’état, ils n’ont pas de comptes à
lui rendre).
Elle a une mission d’information : toute personne peut s’adresse à la CNIL pour avoir de l’aide.
Mission de régulation : en 2019, une délibération super précise sur comment évaluer le niveau de sécurité pour un vote
électronique, elle prend également des doctrines très offensives pour les cookies.
Misson de contrôle et de sanction : vu qu’on déclare plus rien, la CNIL a renforcé ses missions de contrôle, elle vient
souvent aussi car il y a eu une plainte (on peut la contacter : ex : ca fait 4 fois qu’on demande un déréférencement
google et on peut demander à la CNIL). Elle sanctionne de manière graduelle : avertissement puis rappel à l’ordre
puis suspension du traitement des données (interdiction de continuer à traiter la donnée pendant un certain temps)
puis une amende (elle peut prendre soit 20 millions d’euros, ou 4% du chiffre d’affaires annuel mondial).
Risque : un évènement susceptible d’entraı̂ner dse dommages / des pertes pour l’entreprise. Il s’obtient en combi-
nant une potentialité avec un impact (une menace avec une vulnérabilité). 4 notions à retenir :
Menaces permanentes : peu importe notre sécurité, il peut toujours y avoir une menace.
Le risque est une cause de vulnérabilité due à une faiblesse du système.
Un risque arrive forcément tôt ou tard.
Maı̂trise du risque : mettre en place des mesures pour diminuer les niveaux de risques.
En revanche il ne faut pas confondre audit et analyse de risques : l’audit trouve les vulnérabilités mais ne dit pas si
elles sont tolérables pour l’etnreprise et l’analyse de risque permet de dire quels risques sont pris en compte / acceptés.
Le risque est accepté dans certains cas : faible probaiblité d’apparation / le coût de correction est plus grand que la
valeur des dommages.
La matrice de risques :
Des rapports adaptés à chaque interlocuteur client : ce seront soit des rapports techniques pour comprendre les
vulnérabilités, soit des rapports exécutifs pour avoir une vue globale de la sécurité du SI.
On a également un plan d’action qui va définir les mesures à prendre contre les vulnérabilités et les prioriser.
L’entreprise va mettre en place une politique de sécurité avec des règles et des procédures pour éviter les problèmes
sur l’application, définir des actions en cas d’intrustion et pour finir comment sensibiliser le personnel.
Le niveau de sécurité du SI c’est le niveau de sécurité du maillon le plus faible.
L’audit web : attaquer pour mieux protéger (le risque est toujours présent : tôt ou tard, les hackers passeront à travers
les protections). Il est très très rare d’avoir un SOC qui a détecté en quasi temps réel et bloqué.
Les vulnérabilités peuvent venir de plein d’endroits : changement de configuration, portails d’administration, mélange
de logiciels complexes sur les serveurs web.
Il existe également plusiers types de sites : sites statiques (que du HTML pas d’interaction), sites dynamiques (avec du
PHP / javascript), sites e-commerce, extranet, intranet, applications mobiles et ils ne devront pas tous être analysés
de la même manière.
Ex : portail d’administraitation exposé avec les identifiants par défaut : poentitalité = 4 (max) et impact = 4 (max) du
coup dans la matrice de risque ça nous donne un risque très élevé (toujours demander au client s’il a sa propre matrice).
Ensuite il montre qu’on peut encoder les caractères : par exemple %20 pour l’espace, %26 pour l’esperluette.
Quaand on utilise des outils toujours savoir bien les utiliser.
Supprimer régulièrement les informations de session du navigateur lors d’un audit.
Quelques applications utilisent des load balancers (qu’il faut prendre en compte).
En premier on fait une cartographie de l’application : toujours utiliser un proxy, bien regarder les en-têtes (avec Burp
par exemple). On peut aussi consulter les ressources publiques. google dorking : intitle:unilim inurl:université
intext:Limoges
Pages status : donne des logs du serveur qui tourne (et donc on peut voir les paramètres et toutes les requêtes, mais
on ne verra pas les données si c’est un post, pour un get en revanche on aura les données).
filetype:env "DB PASSWORD" after:2018 aussi du dorking et il peut égalmenet être utilisé pour trouver des caméras.
Pour le contenu par défaut : utiliser des crawler (ex : Nikto, gobuster, ...)
Si on fait un test en production, il faut nous limiter sur certaines commandes (pour ne pas détruire le système du
client)
Se faire passer pour un utilisateur connecté / externe, voir ce que ça change si on enlève les cookies, ...
Trouver du contenu caché : lister les documents déjà trouvés pour prévoir les noms de fichiers cachés. Analyser le
code reçu à la recherche d’informations sur les serveurs / formulaires désactivés. On peut également automatiser la
recherche avec des dictionnaires.
Chercher les pages dans lesquelles on passe des paramètres via l’URL et si ce paramètre est un id encore mieux.
Essayer de comprendre la logique des fonctions et de l’application. Chercher également les pages qui ont un paramètre
de debug.
Résumé : déccouverte / observation, contenu visible, ressources publiques, contenu caché, paramètres intéressants +
outils
CSRF / XSRF : Corss-Site Request Forgery attack : l’idée est d’envoyer un lien frauduleux à l’administrateur pour
lui voler sa session.
5.5 Un peu de TP :
DVWA : aller chercher l’ISO
Ajouter un réseau privé d’hote
Se onnecter sur 192.168.56.101 avec ce login : admin, password
Sur la badstore on a une application web sur le port 80 (il faut faire un ifconfig eth1 192.168.56.102 pour lui set son
ip)
whatweb http ://192.168.56.102
Injection SQL :
SELECT * FROM users WHERE nom="toto"; : notre requête de départ.
payload : " OR "1" == "1
payload : " OR 1 == 1; --
La méthode la plus simple est d’essayer de provoquer une erreur
Sauf que les mots de passe sont pas généralement dans la table users mais dans la table passwords
SELECT * FROM users WHERE nom=""; : on va donner " UNION SELECT * FROM passwords : pour connaı̂tre le nombre
de colonnes dans la base on va utiliser un order by : ORDER BY 1 permet d’ordonner usr la première colonne (on va
pouvoir augmenter le nombre et tester quand ça marchera plus). Pour pouvoir faire l’union, on va rajouter des NULL
pour mettre le meme nombre de colonnes au 2 tables.
La faille SQL est dans le champ de recherche de badstore.net
Le site web fait : SELECT itemnum, sdesc, ldesc, price FROM itemdb WHERE ’$1’ IN (itemnum,sdesc,ldesc);
Blind sql : on a aucune réponse (pas d’erreur visuelle) : on joue avec d’autres variables (comme le code de retour)
Si mal fait, la BDD peut avoir acces en root au shadow et pourra ajouter des utilisateurs admin
(ajouter notre nom de compte, notre mot de passe hashé et rajouter ça au shadow)
si en deuxième on a x, pas besoin de mot de passe pour s’authentifier
Injection XSS :
Pour la XSS sur badstore on a un livre d’or que l’on peut signer
On peut envoyer <script>alert("test");</script> en commentaire
Le code est ajouté au code source de la page mais n’est pas encodé : c’et ce qui fait marcher la XSS
python3 -m http.server 8080 --bind 127.0.0.1 : pour demarrer un serveur http avec python
XSS volatile : l’injection n’est pas stocckée en base de données mais plutôt dans un URL
Avant la période de vote : gestion des listes électorales, gestion des listes de candidats, gestion du découpage électorale,
gestion des moyens d’authentification et la propagande électorale. Avec les machines à voter on a toujours besoin des
mêmes étapes, avec le vote par internet la gestion des moyens d’authentification va changer.
Pendant la période de vote : on authentifie l’électeur, on contrôle son appartenance à la liste électorale, on lui présente
les bulletins, on lui laisse réaliser son vote, il dépose son bulletin dans l’urne puis émargement, contrôle de la liste
d’émargement et contrôle de l’urne. Pour les machines à voter, la présentation des bulletins, la réalisation du vote, le
dépôt du bulettin et le contrôle de l’urne seront modifiés (c’est seulement le vote qui est numérisé mais pas l’authen-
tification). Pour le vote par internet tout est numérisé et donc toutes les étapes vont changer.
Finalement après le vote on dénombre les émargements, les bulletins (tant que c’est pas cohérent avec les émargements
on recompte), puis on dépouille les bulletins on totalise les suffrages et on proclame les résultats. Avec les machines
à voter le dénombrement des bulletins, leur dépouillement et la totalisation change. Pour le vote par internet tout
change sauf la proclamation des résultats.
Le vote par internet requiert donc une numérisation beaucoup plus forte.
En France, on ne peut utiliser le VPI que pour les élections législatives pour les français à l’étranger. Il est également
autorisé pour les élections non politiques : profesionnelles, représentants du personnel, primaires de partis politiques,
assications : une élection politique élit une personne qui a du pouvoir sur les citoyens.
On peut pouvoir plusieurs propriétés pour un vote et ces dernières peuvent être contradictoires (c’est pour ça que c’est
compliqué) :
Eligibilité : seuls les électeurs légitimes doivent pouvoir vote (+ protection contre le vote multiple = mettre
plusieurs bulletins dans la même envelope).
Robustesse : doit pouvoir tolérer des électeurs malveillants.
Exactitude : les résultats doivent correspondre aux suffrages exprimés.
Justice / fairness : pas de résultat préliminaire avant l’élection.
Vérifiabilité individuelle : chaque électeur doit pouvoir vérifier que son vote est pris en compte.
Vérifiabilité universelle (transparence implique la confiance) : représente le faire que n’importe qui peut assister
au dépouillement, n’importe qui peut entrer dans le bureau de vote : tout le monde peut vérifier quel les
résultats annoncés correspondent à la somme des votes exprimés.
Secret du vote : il ne doit pas y avoir de lien entre l’électeur et son choix (permet de résister à l’achat de vote : la
coercition), en revanche la vérifiabilité individuelle va favoriser l’achat de vote si on envoie un recu aux électeurs
(première contradiction).
Le bulletin de vote électronique : passe par l’ordinateur (première zone dangereuse), le FAI, puis le serveur : on peut
ne pas vouloir que la famille, les voisins, les collègues, le patron sachent ce qu’on a voté, la mafia peut également
acheter mon vote, les GAFAM peuvent être intéressés à manipuler le résultat de l’élection et il faut que ça marche
même quand l’état est compromis. Il y a également la possibilité d’une ingérence étrangère.
Usurpation d’identité : un attaquant vote à la place d’un électeur légitime (il peut être l’organisateur, un autre
électeur légitime ou il peut également être externe au scrutin).
Légitimité des électeurs : seuls les électeurs sur la liste électorale doivent pouvoir voter.
Vote à l’urne : constitution des listes électorales, l’identité de chaque électeur et sa présence sur la liste d’émargement
sont contrôlées physiquement par les membres du bureau de vote.
Vote par correspondance électronique : plus complexe que le vote à l’urne, il faut un système d’authentification des
électeurs et le risque d’usurpation d’identité doit être couvert sans la connaissance ou la possession du moyen d’au-
thentification, même en cas de succès de l’authentification il est difficile de se protéger contre un achat de vote / de la
coercition.
Atteinte à l’intégrité d’un résultat : atteinte à la volonté d’un ou plusieurs électeurs à l’insu de l’électeur et de l’orga-
nisateur : soit usurpation d’identité, soit altération du vote à l’insu de l’électeur, soit proclamation d’un résultat sans
accord avec la somme des votes.
Vote à l’urne : seuls les suffrages exprimés doivent être comptabilisés : contrôle de l’urne par le bureau de vote, l’urne
est transparente et fermée par 2 clés sous le contrôle de 2 personnes différentes, l’urne reste sous surveillance active
durant la durée du scrutin et pour finir n’importe quel observateur doit pouvoir venir surveiller les opérations de vote.
Validité de l’expression du vote : le vote des électeurs et le résultat ne doivent pas être altérés peu importe l’étape du
processus.
Vote par correspondance électronique : la vérification de la validité est plus complexe à cause du chiffrement, on peut
utiliser des protocoles zero-knowledge de cette façon n’importe qui pourra s’assurer que le bulletin est bien formé (un
seul vote à l’intérieur) sans jamais dévoiler le contenu du bulletin. Il faut également mettre en place de la vérifiabilité
avec des mécanismes permettant à n’importe quel observateur de vérifier que le scrutin s’est correctement déroulé et
aussi détecter les fraudes.
Vérifiabilité universelle : elle doit permettre aux électeurs de vérifier que leur choix de vote a bien été pris en compte
(cast as intended), de vérifier que leur bulletin a été correctement enregistré par le système de vote (recorded-as-cast)
et pour finir de vérifier que l’ensemble des bulletins a été correctement dénombré par le système de vote. Pour le
premier : audit du client de vote, pour les 2 autres on va donner un récipissé. Il faut également permettre à n’importe
quel oservateur de contrôler que ca s’est bien passé : génération de preuves mathématiques lors du dépouillement et
elles doivent ensuite pouvoir être vérifiées par n’importe qui.
Pour la transparence, que peut-on rendre public ?
El-Gamal :
Clé privée : un nombre x, clé publique : h = g x .
Chiffrement : c = (c1 , c2 ) = (g r , hr × m).
Déchiffrement : c2 /cx1 .
Sa sécurité repose sur le problème du logarithme discret : étant donné h et g il est difficile de retrouver x.
Problème CDH (Computational DH) : connaissant g x et g y il est difficile d’avoir g x×y .
Il sont difficiles si le modulo est sur 2048 voire 3072 bits et que c’est un premier safe : p = 2q + 1 avec q premier.
Chiffrement homomorphe :
ElGamal forme un chiffrement homomorphe : soit E(m) = (g r , hr × m) et E(n) = (g s , hs × n) on a que E(m × n) =
(g r+s , hr+s × m × n) = (g r × g s , hr × m × hs × n) = E(m) × E(n) mais il n’est pas adapté au vote électronique.
En revanche, le chiffrement qui va faire E(m) = (g r , hr × g m ) est également homomorphe mais avec une autre pro-
priété : E(m + n) = E(m) × E(n) ce qui est parfaitement adapté au vote électronique (un bulletin sera le chiffré d’un
0 / 1 et en les multipliant entre eux puis en déchiffrant on pourra compter, on a pas besoin de déchiffrer les bulletins
individuellement !).
Présente ensuite la cryptographie sur courbes elliptiques (qui offre des tailles plus petites).
Pour certains types de scrutins, la multiplication de bulletins est impossible : mixnets : l’idée est juste de mélanger les
bulletins des électeurs de façon à ne pas pouvoir relier un électeur à son bulletin.
On va vouloir 4 aspects pour la sincérité du scrutin : la légitimité des électeurs, la validité des bulletins, l’intégrité du
résultat (signifiant que le décompte final révèle la volonté exacte des électeurs), la transparence du scrutin.
Du côté du client, avec le schéma ElGamal précédent on pourrait très bien imaginer un électeur qui enverrait autre
chose que 0 ou 1 et qu’il faudrait détecter. En plus avec ElGamal n’importe qui peut re-randomiser un texte chiffré et
invalider un bulletin.
On veut des preuves de sécurité pour s’assurer que ces attaques ne peuvent pas exister.
On peut également signer les bulletins mais cela peut avoir un impact sur le secret du vote.