Institut de technologie du Massachusetts. Cours magistral # 6.858. "Sécurité des systèmes informatiques." Nikolai Zeldovich, James Mickens. 2014 année
Computer Systems Security est un cours sur le développement et la mise en œuvre de systèmes informatiques sécurisés. Les conférences couvrent les modèles de menace, les attaques qui compromettent la sécurité et les techniques de sécurité basées sur des travaux scientifiques récents. Les sujets incluent la sécurité du système d'exploitation (OS), les fonctionnalités, la gestion du flux d'informations, la sécurité des langues, les protocoles réseau, la sécurité matérielle et la sécurité des applications Web.
Cours 1: «Introduction: modèles de menace»
Partie 1 /
Partie 2 /
Partie 3Conférence 2: «Contrôle des attaques de pirates»
Partie 1 /
Partie 2 /
Partie 3Conférence 3: «Débordements de tampon: exploits et protection»
Partie 1 /
Partie 2 /
Partie 3Conférence 4: «Séparation des privilèges»
Partie 1 /
Partie 2 /
Partie 3Conférence 5: «D'où viennent les systèmes de sécurité?»
Partie 1 /
Partie 2 Le remplissage des informations d'identification dans les
iframes augmente considérablement l'ampleur de l'attaque, et la visite d'une page malveillante peut très rapidement compromettre de grands ensembles d'informations d'identification.

Les chercheurs en sécurité ont découvert la vulnérabilité des gestionnaires de mots de passe non vérifiés, tels que
les extensions
Chrome pour
Windows , et des recherches ultérieures par des chercheurs, y compris ceux du
MIT , ont révélé l'extension
LastPass pour
Safari .
Considérez les requêtes interdomaines. Pensez-vous qu'il soit possible que le formulaire d'autorisation rempli par le gestionnaire de mots de passe sur
https: // example.com soit soumis pour entrer
https: // www.isecpartners.com , le gestionnaire de mots de passe peut-il transférer des données à un tiers? Oui, c'est possible, et cela permet de trouver une vulnérabilité ou une fonction qui permet à un attaquant de créer un formulaire de connexion de domaine, après quoi un formulaire de connexion malveillant est envoyé au site authentique
https: // www.isecpartners.com .
Gardez à l'esprit que tous les gestionnaires de mots de passe de confiance envoient en toute sécurité des mots de passe à différents domaines.
Ce qui est vrai pour les domaines l'est aussi pour les sous-domaines. Une caractéristique des sous-domaines est que leur «sensibilité» à la sécurité peut être très différente des contrôles de sécurité effectués par les domaines. Les sous-domaines tels que
blog. * ,
Forum. * Ou
mail. * Peuvent avoir des exigences de sécurité complètement différentes. Le traitement des sous-domaines comme l'équivalent d'un domaine augmente la surface d'attaque. Veuillez noter que tous les gestionnaires de mots de passe de confiance considéraient les sous-domaines comme équivalents au domaine de page.
Des précautions doivent être prises pour identifier les pages de connexion. Les applications Internet évoluent, ce qui entraîne le déplacement des pages de connexion. Par conséquent, leur authenticité doit être vérifiée encore plus soigneusement que l'authenticité des sous-domaines.
Gardez à l'esprit que la plupart des applications Web ont un petit ensemble de pages de connexion. Ils peuvent être liés les uns aux autres afin que l'apparence de la page de connexion déclenche la saisie semi-automatique ou la soumission automatique du formulaire à un domaine principal. Dans ce cas, le gestionnaire de mots de passe remplira toute forme d'autorisation pour tout sous-domaine rencontré.
Dans ce cas, le vecteur d'attaque peut être un e-mail
HTML . Par exemple,
Google ,
Yahoo et
Outlook utilisent des choses comme remplir des formulaires en ligne. La diapositive montre un exemple avec le texte suivant: "si vous rencontrez des difficultés à remplir ou soumettre ce formulaire, vous pouvez le remplir en ligne en utilisant ce lien" et un lien vers le formulaire dirigeant l'utilisateur vers le domaine
docs.google.com est
fourni . Et plus loin sur la page, il est dit: "Ne transférez jamais de mots de passe en utilisant Google Forms!"

Parce que les gens utilisent souvent le courrier pour envoyer des formulaires, les attaquants se sont concentrés sur les utilisateurs de ces trois services. Vous remplissez un formulaire, par exemple, en répondant à des questions de diverses enquêtes, et utilisez votre boîte aux lettres pour l'envoyer. Comment ces services résistent-ils aux attaques?
Mieux opposé par les pirates d'
Outlook (
live.com ). Il empêche la possibilité d'une attaque en interdisant à un tiers de fournir des documents originaux, y compris des formulaires d'utilisateur et des informations personnelles.
À la deuxième place se trouve
Google , qui avertit simplement les utilisateurs de prendre de telles mesures, ce qui n'exclut pas la possibilité de vol de mot de passe.
Yahoo vous permet de voler des mots de passe sans avertissement.
Le danger du mécanisme de remplissage automatique intégré et de la création de formulaires d'authentification réside dans le fait que les services ne préviennent pas toujours du danger de les envoyer à un tiers ou du danger d'utiliser ces fonctions sur les pages d'autres ressources Internet. Par exemple, lors de la réussite de l'enquête ci-dessus, il existe une fonction d'
envoi suspecte. En répondant à la question de savoir qui est le meilleur, les chiens ou les chats, et en cliquant sur le bouton
Soumettre , vous confirmez non seulement la réponse que vous avez choisie, mais confirmez également que votre identifiant et votre mot de passe sont envoyés à l'attaquant.
Yahoo est le pire service de sécurité, surtout si vous utilisez le gestionnaire de mots de passe
LastPass .
Les versions des navigateurs mobiles sont encore moins bien protégées. Il n'y a pas d'extensions, mais les chercheurs en sécurité ont découvert un plug-in pour la version mobile du navigateur
Chrome appelé
Javascript Bookmarklets . Il exécute un faux code de sécurité sur les sites hostiles que vous visitez. En fait, il dissimule leur danger, créant un sentiment de fausse sécurité, ce qui peut vous causer de gros dégâts.
Vous pouvez afficher d'autres extensions de navigateur et en savoir plus sur les résultats de la recherche sur la protection contre les attaques et les mots de passe à l'aide des liens des organisations de recherche sur la sécurité de
Berkeley et
Joint Stanford .
Je veux que vous compreniez: après vous être familiarisé avec les bases des gestionnaires de mots de passe, vous pouvez vous-même trouver presque toutes les erreurs de sécurité de ces applications.
Vous devez comprendre quelles fonctionnalités le développeur a mises dans l'application et comment cela fonctionne dans la pratique. Si vous faites cela, il vous sera beaucoup plus facile de trouver des vulnérabilités.
Considérez une attaque
TLS appelée
CRIME , qui est l'abréviation de
Compression Ratio Info-leak Made Easy . Il s'agit d'un exploit de sécurité qui vous permet de décoder
les sessions
HTTPS , y compris les cookies utilisateur, interceptant le trafic crypté entre le serveur et le navigateur. Les vulnérabilités sont affectées par toutes les versions de
TLS , y compris
TLS 1.2 .
Lors de cette attaque, le pirate intercepte le trafic utilisateur, y ajoute ses données et envoie des requêtes au serveur. L'algorithme de compression lors de la répétition d'une partie du texte le comprime. Après avoir envoyé des données au serveur, le pirate examine la longueur du message et s'il a diminué, la séquence correcte a été sélectionnée. Ainsi, vous pouvez sélectionner des lignes et des paramètres individuels dans la demande, par exemple, des valeurs de cookie.

Cette attaque est basée sur le fait que votre navigateur interagit avec le site en utilisant l'interface interne - le protocole HTTP. Dans le même temps, si je vais sur
example.com , le navigateur lui envoie mes cookies avec toutes les informations disponibles dans le formulaire d'autorisation précédemment rempli, y compris le nom d'utilisateur et le mot de passe. Dans un formulaire
HTTP , cela ressemble à ceci:

Même si les données sont protégées par une
connexion SSL / TLS , je peux toujours obtenir certaines informations si je suis propriétaire du réseau. Voici à quoi ressemblent les informations
SSL :

Ici, je vois les informations suivantes: heure de transmission, à partir de laquelle le message est envoyé, c'est-à-dire l'IP de l'utilisateur, à qui le message est envoyé, c'est-à-dire l'IP du destinataire, et la longueur du message.

Il s'agit de la conception de la couche de protocole cryptographique des sockets sécurisés
SSL . Si vous avez la possibilité d'analyser le trafic, ces données fournissent un immense champ d'activité malveillante.
Considérez le message que le navigateur envoie.

Si le navigateur vous permet de faire des demandes interdomaines, il enverra une demande avec un cookie contenant les données du formulaire à tout site qui sera redirigé par un attaquant, par exemple, le site
example.com. Si un attaquant saisit ces cookies, il pourra contrôler les paramètres suivants:

Afin de deviner le mot de passe de l'utilisateur, je commence à sélectionner le paramètre pour la chaîne
username = tom & password et au lieu de
hunter2 j'entre la lettre
a .

Ensuite, je regarde le décryptage HTTP et je vois que ce paramètre prend 195 octets.

Pour faciliter son travail, le pirate utilise la compression
TLS . L'algorithme de compression, lors de la répétition d'une partie du texte, le compresse et la compression crée des marqueurs pour ces parties et les place sous la forme d'un message
HTTP .

Dans ce cas, l'
ID de session est équivalent aux parties du code marquées avec le jeton correspondant, et la taille du message compressé est de 187 octets.
Que se passe-t-il si j'assimile l'
ID de session = d ?

La taille du message est réduite car il doit compresser plus d'octets. Cela peut être vu en comparant le nombre d'arguments encerclés par un cadre rouge dans la 2ème ligne à partir du haut.

C'est ce que voit l'attaquant. Il voit que le message est en cours de compression, et grâce à cela, il apprend qu'il a deviné la première lettre de l'
ID de session . Il remplace ensuite la
session ID = da et reçoit la taille du message de 188 octets.

Ainsi, en substituant successivement des lettres et des chiffres et en analysant les changements de taille de message, il devine l'
ID de session entier. Autrement dit, il sélectionne non pas la clé de chiffrement, mais le contenu du message chiffré lui-même.

Pour gérer
CRIME , vous devez empêcher le navigateur d'effectuer une compression
TLS . Vous devez également modifier le
protocole SPDY afin que lorsque vous demandez des données secrètes, elles soient compressées dans un contexte distinct.
Considérez les cas de violation
HTTP . Les réponses
HTTP qui parviennent à l'utilisateur après avoir accédé au serveur peuvent contenir des informations sensibles telles que des jetons
CSRF ou d'autres informations sensibles. Les attaques similaires à
CRIME nécessitent la connaissance d'au moins un préfixe de session secrète et la possibilité de saisir vos données dans un message de réponse.
Vous pouvez empêcher une attaque en interdisant la compression des réponses ou en
supprimant une attaque
CRIME , car cette attaque utilise le principe de
MiTM (la personne au milieu) et peut faire baisser les demandes réelles. Il s'agit d'une attaque «bruyante» satisfaisante, qui peut être détectée, car l'attaquant ne communique généralement pas directement avec le serveur, mais utilise l'accès au routeur, et le serveur peut même ne pas «connaître» l'attaque.
Vous pouvez également vous protéger en plaçant diverses informations sensibles dans divers fichiers, tels que
javascript , mais cela est difficile à mettre en œuvre dans la pratique et il est également difficile de modifier les applications existantes pour cela.
Vous pouvez essayer de randomiser les informations secrètes dans les requêtes, principalement
les jetons
CSRF , cependant, cette méthode entraînera une forte baisse des performances.
Connaissant les principes des applications et des vulnérabilités, vous êtes capable de "faire tomber" tout Internet:
SSL / TLS ,
DNS ,
DNSSEC / DNSEC ,
IPv6 , c'est tout à fait faisable.

Et maintenant, je veux parler d'un très grand acteur de la sécurité - la
NSA , la National Security Agency ou la NSA. Ce sont des gens qui créent souvent des problèmes de sécurité et les résolvent eux-mêmes.
Pour certaines choses, je suis prêt à les détester. Cependant, le personnel de la NSA n'est pas en mesure de modifier les politiques existantes. Ils contribuent au développement intellectuel de tout ce qui touche à la sécurité, et j'espère qu'ils croient que le résultat de leur travail sera utilisé à bon escient.
Dans leur travail, il y a deux côtés à la médaille, cependant, ce n'est que mon opinion et cela peut ne pas coïncider avec l'opinion de mes employeurs. Et je pense que toutes les données de recherche dont je vais vous parler ne sont pas officiellement déclassifiées.
Snowden a déclaré que certaines déclarations peuvent être prouvées comme vraies et d'autres comme fausses. Un exemple de fausse déclaration est la déclaration de la
NSA selon laquelle «il y a un accès direct aux réseaux
Google », car le véritable état des choses avec l'accès à ces réseaux est illustré dans la figure suivante, ce que la NSA elle-même a fait.
Actuellement,
Google crypte tout son trafic car il craint que quelqu'un ne puisse pirater son réseau. De plus, toutes les nouvelles sont filtrées par les médias et nous ne voyons que des extraits de documents.

Vous voyez une émoticône à côté de la phrase «Les
SSL sont ajoutés et supprimés ici sur le serveur principal de
Google », car c'est à partir de là que la
NSA peut récupérer des données.
Google , qui possède des centres de données dans le monde entier, utilise largement des lignes de fibre dédiées pour ses réseaux. Grâce à cela, le trafic est transmis à grande vitesse et il est très difficile de s'y rendre.
Le gouvernement a non seulement de grandes capacités techniques, mais aussi un effet de levier. Il est très difficile pour certaines entreprises de résister à la contrainte de coopérer avec le gouvernement. Un exemple de confrontation avec l'État est le service de messagerie gratuit
Lavabit , créé comme une alternative à
Gmail , car ce dernier a violé la confidentialité de la correspondance des utilisateurs à la demande des services gouvernementaux.
L'État peut également obliger les entreprises à ne pas reconnaître publiquement qu'elles coopèrent avec les services gouvernementaux.
Examinons les outils dont dispose l'État pour mettre en œuvre des politiques de sécurité.
Tout d'abord, il s'agit de
SIGINT - la plateforme cryptographique mondiale de protection. Il est basé sur des réseaux de fibres optiques. Le site suivant montre un diagramme d'un document top secret publié par Snowden. Vous y voyez beaucoup de points jaunes, désignés comme CNE. Snowden suggère que ces sites sont équipés d'un équipement de piratage de réseau. Leur nombre est supérieur à 50 000 dans le monde.
Les réseaux peuvent être piratés de différentes manières. Le gouvernement utilise pour cette
attaque de chaîne d'approvisionnement - des cyberattaques visant les éléments les moins sécurisés des réseaux de diverses organisations. Afin de se protéger de telles attaques, le gouvernement évite toute coopération de quelque nature que ce soit, ne fournissant qu'un accès direct à ses propres réseaux, sans intermédiaires ni tiers.

Selon l'organisation non gouvernementale
EFF (Electronic Frontier Foundation) et les poursuites qu'elle a engagées, la NSA aime utiliser les soi-disant «commutateurs optiques», qui vous permettent d'intercepter les conversations téléphoniques, y compris de
MPLS, et d'empêcher la fuite d'informations cibles vers les intermédiaires. La majorité des intermédiaires impliqués dans le transfert d'informations entre utilisateurs, non seulement aux États-Unis, mais dans le monde entier y participent.

J'espère que
TLS pourra résister à ce genre d'interférence.
Le gouvernement est en mesure de compromettre même l'infrastructure réseau interne en utilisant des clés de cryptage privées
Pokemon provenant des serveurs finaux. Cela vous permet d'organiser des attaques comme
Heartbleed et des attaques réseau standard. Le gouvernement utilise souvent le modèle de réseau
DOD développé par le département américain de la Défense. Un tel système est utilisé sur les réseaux
google.com .
Il est possible d'utiliser des attaques cryptographiques contre
TLS . On suppose que le
ver informatique
Stuxnet , qui infecte les
ordinateurs Windows , a été développé à l'initiative du gouvernement américain. Il utilise un conflit à l'intérieur de l'
algorithme de chiffrement
MD5 , qui possède un certificat valide. Ce ver intercepte les données entre les contrôleurs et les stations logiques et peut interférer avec le processus de contrôle automatisé de divers complexes industriels. Il s'agit du seul virus capable de détruire l'infrastructure physique des réseaux.
Il existe une organisation
NIST qui développe des normes de cryptage pour presque tout dans le monde. Elle recommande d'utiliser le générateur de
nombres pseudo-aléatoires cryptographiquement robuste
DUAL_EC_PRNG pour créer des clés de chiffrement. Cependant, il a toujours une vulnérabilité. Si vous utilisez les points de la courbe elliptique spécifiés dans sa norme de cryptage, puis en raison du grand nombre de bits de sortie en une seule génération, il est possible de pénétrer le code du générateur et de le casser en utilisant
la force brute (recherche exhaustive). Les créateurs de l'algorithme connaissaient cette vulnérabilité depuis le tout début. Cela ne signifie pas qu'une porte dérobée était initialement prévue dans ce générateur, mais signifie qu'une porte dérobée peut y être créée à tout moment.
Je note que la
NSA utilise le plus souvent des attaques basées sur des incohérences dans les derniers
algorithmes de chiffrement
MD5 .

L'État a un impact mondial sur Internet dans le monde entier. La plupart des communications mondiales se font via les États-Unis. Les appels téléphoniques, les e-mails et les chats sont effectués sur les moyens les moins chers, physiquement pas toujours directs, et vous pouvez toujours suivre cette voie. La majeure partie du trafic Internet mondial passe par les États-Unis. Dans tous les cas, la façon dont la connexion est établie avec l'objectif ultime de votre contact peut facilement être redirigée vers les États-Unis, c'est-à-dire que l'État peut contrôler tous les flux de télécommunications dans le monde.
Je vais donner un exemple du «retour» d'une telle activité. L'Etat intervient non seulement dans les relations avec les particuliers, mais aussi dans le travail des entreprises. En novembre 2013, le Washington Post a publié des informations selon lesquelles la NSA intercepte le trafic entre les centres de données
Google via un câble à fibre optique avant qu'il ne soit chiffré entre les serveurs finaux et les ordinateurs des utilisateurs. Des détails supplémentaires sur le programme gouvernemental
MUSCULAR et des fragments de colis volés sur le réseau interne de
Google ont été publiés.

Les employés de Google ont confirmé le piratage de leur réseau par la NSA, pas timides dans les expressions - le spécialiste de la sécurité de
Google , Brandon Downey, a directement écrit: "Fuck these guys!", Faisant référence à l'arrogance sans précédent de la
NSA .
Par conséquent, il est difficile pour les gens de faire confiance à l'équipement réseau américain et aux services fournis par les fournisseurs de réseau américains. Je citerai les paroles du cardinal Richelieu: "Donnez-moi six lignes écrites de la main de l'homme le plus honnête, et je trouverai en elles quelque chose qui peut être suspendu."
Je ne veux pas que vous deveniez paranoïaque dans le sens de la méfiance envers le gouvernement et que vous voyiez un espionnage total et une violation de la confidentialité des informations et de la vie privée. Mais en tant que futurs développeurs de logiciels, vous devez savoir comment un attaquant peut agir. Si vous travaillez dans une grande entreprise, un pirate peut utiliser les outils et techniques du gouvernement pour organiser une attaque. Par conséquent, vous devez faire des choses utiles comme le fait
Google , chiffrer tout votre trafic interne et utiliser des certificats de test de pénétration.
Je veux vous présenter plusieurs autres types de logiciels malveillants. L'un d'eux s'appelle
Flame ou "Flame".

,
Stuxnet . , :
Flame MD5 , , . - 2008 ,
CA -,
RapidSSL .
Internet Public Key Infrastructure (PKI) , .
4
RapidSSL . 3- , 215
Sony PlayStation 3 . , ,
MD5 .
,
Microsoft Microsoft Terminal Server ,
MD5 .
MD5 , , 1 .
Microsoft , ,
Windows . ,
MS ,
Flame , . , , .
– , ? -, , .
, « »? « ?», .

, , . , .
, , , . , .
:
- « » , ;
- jailbreakme.com , iOS root- . , , , ;
- – , , , ;
- , ;
- , , .
.
, . , . , . , . , , .
. , , . , , . , , .
, , , . , , , .
, .
— .
, iSEC Partners:
- 2 -3 20-30 . , , MIT;
- , ;
- , ;
- , ;
- , !
paul@isecpartners.com . , .

. , , «». , , . , . «»
IBM .
, , , . . , , ,
Facebook ,
Google Yahoo . , , , .
!
.
Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en le recommandant à vos amis, une
réduction de 30% pour les utilisateurs Habr sur un analogue unique de serveurs d'entrée de gamme que nous avons inventés pour vous: Toute la vérité sur VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbps à partir de 20 $ ou comment diviser le serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).
Dell R730xd 2 fois moins cher? Nous avons seulement
2 x Intel Dodeca-Core Xeon E5-2650v4 128 Go DDR4 6x480 Go SSD 1 Gbps 100 TV à partir de 249 $ aux Pays-Bas et aux États-Unis! Pour en savoir plus sur la
création d'un bâtiment d'infrastructure. classe utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?