Cours MIT "Sécurité des systèmes informatiques". Conférence 18: Navigation privée sur Internet, partie 2

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 3
Conférence 2: «Contrôle des attaques de pirates» Partie 1 / Partie 2 / Partie 3
Conférence 3: «Débordements de tampon: exploits et protection» Partie 1 / Partie 2 / Partie 3
Conférence 4: «Séparation des privilèges» Partie 1 / Partie 2 / Partie 3
Conférence 5: «D'où viennent les systèmes de sécurité?» Partie 1 / Partie 2
Conférence 6: «Opportunités» Partie 1 / Partie 2 / Partie 3
Conférence 7: «Native Client Sandbox» Partie 1 / Partie 2 / Partie 3
Conférence 8: «Modèle de sécurité réseau» Partie 1 / Partie 2 / Partie 3
Conférence 9: «Sécurité des applications Web», partie 1 / partie 2 / partie 3
Conférence 10: «Exécution symbolique» Partie 1 / Partie 2 / Partie 3
Conférence 11: «Ur / Web Programming Language» Partie 1 / Partie 2 / Partie 3
Conférence 12: Sécurité du réseau, partie 1 / partie 2 / partie 3
Conférence 13: «Protocoles réseau», partie 1 / partie 2 / partie 3
Conférence 14: «SSL et HTTPS» Partie 1 / Partie 2 / Partie 3
Conférence 15: «Logiciel médical» Partie 1 / Partie 2 / Partie 3
Conférence 16: «Side Channel Attacks» Partie 1 / Partie 2 / Partie 3
Conférence 17: «Authentification des utilisateurs», partie 1 / partie 2 / partie 3
Conférence 18: «Navigation privée sur Internet» Partie 1 / Partie 2 / Partie 3

Quelqu'un voit-il cela comme un problème potentiel? Le premier problème est que les gens se plaignent toujours des performances en matière de sécurité. Lorsque vous réinitialisez la mémoire et que votre programme est limité par les capacités du périphérique d'entrée / sortie, ce n'est pas un problème, il vous suffit d'attendre que les parties mécaniques du disque dur ou autre chose fonctionnent.



Mais imaginez que votre programme est lié à un processeur et, éventuellement, interagit très intensivement avec la mémoire, allouant et libérant des données. Dans ce cas, la remise à zéro de la mémoire peut sérieusement réduire les performances du système et sera le prix de la sécurité que vous ne voulez pas payer. Ce n'est généralement pas un problème dans la pratique. Mais comme nous le savons tous, les gens apprécient beaucoup les performances, donc la possibilité de réinitialiser la mémoire rencontrera certainement des objections.

Une alternative à la remise à zéro de la mémoire peut être le cryptage des données à mesure qu'elles arrivent pour un stockage permanent. Autrement dit, les données sont chiffrées avant que l'application ne les écrive sur le SSD ou le disque dur. Ensuite, lorsque les données à la demande du programme sont renvoyées du stockage stable, elles sont déchiffrées dynamiquement avant d'entrer dans la RAM. Dans cette méthode de protection, il est intéressant de noter que si vous jetez la clé que vous avez utilisée pour crypter et décrypter des données, un attaquant ne pourra pas récupérer ces données à partir du disque. Cela suppose que vous faites entièrement confiance à la cryptographie.

C'est donc très, très bien, car cela nous donne la possibilité de ne pas nous souvenir de tous les endroits où vous écrivez ces données cryptées. Vous pouvez vous demander pourquoi jeter les clés, car nous considérons simplement toutes les données chiffrées comme quelque chose qui peut être sélectionné à nouveau?

À titre d'exemple, considérons le système d'exploitation Open BSD, qui dispose d'une option de cryptage d'échange. De cette façon, vous pouvez associer des clés à différentes sections du fichier d'échange, c'est-à-dire que ce que j'ai mentionné se produit. Par conséquent, chaque fois que vous démarrez l'ordinateur, ce système d'exploitation génère un tas de nouvelles clés. Une fois l'ordinateur éteint ou redémarré, il oubliera toutes les clés qu'il a utilisées pour crypter l'espace de swap. Nous pouvons dire que le swap est maintenant disponible pour réutilisation et puisque ces clés sont oubliées, nous pouvons supposer que l'attaquant ne pourra pas accéder aux choses qui y sont stockées.



Etudiant: comment est affectée l'entropie de ces clés et est-il possible de les déchiffrer?

Professeur: C'est une bonne question. Je ne sais pas quelles ressources d'entropie sont utilisées ici. Open BSD a une paranoïa sur la sécurité. Par conséquent, je suppose qu'elle considère, par exemple, le pool d'entropie collecté à partir des données entrées depuis le clavier de l'utilisateur, et d'autres choses similaires. Je ne sais pas comment cet OS gère les clés. Mais vous avez tout à fait raison de dire que si les ressources d'entropie utilisées sont prévisibles, cela comprime l'espace d'entropie de la clé elle-même, ce qui la rend plus vulnérable.

En principe, ce modèle n'offre qu'un cryptage de swap, c'est-à-dire qu'il est supposé que les pages RAM pour les clés ne sont jamais déchargées de la mémoire. C'est assez facile à faire dans le système d'exploitation, si vous épinglez simplement cette page en mémoire. Cela ne vous aidera pas non plus à faire quelque chose avec quelqu'un qui a des contacts avec le bus mémoire ou avec quelqu'un qui peut «parcourir» la page de mémoire du noyau ou autre.

Étudiant: du point de vue de la navigation, cela aide à se protéger contre les intrus qui viennent après une navigation privée, car si vous devez jeter la clé, elle ne reste pas en mémoire.

Professeur: absolument vrai. La bonne chose à ce sujet est que le cryptage d'échange, en fait, ne nécessite pas de modifications dans les applications.

Étudiant: revenons un peu en arrière - si vous regardez les données avant qu'elles n'entrent dans la RAM, y aura-t-il des artefacts de mémoire?

Professeur: si je comprends bien votre question, cela vous dérange que bien que les données soient chiffrées sur le disque, elles sont stockées en texte clair dans la mémoire. Retour à la discussion sur le chiffrement de swap. Le transfert de données cryptées sur le disque ne protège pas contre un attaquant qui peut afficher la RAM en temps réel. Ainsi, si seul l'attaquant vous dérange après une session de navigation privée qui ne peut pas voir la RAM en temps réel, cela fonctionne très bien. Mais vous avez certainement raison de dire que cela ne fournit pas - faute d'un meilleur terme, disons ceci - le cryptage de la RAM. Il existe des systèmes de recherche qui essaient de faire quelque chose comme ça. C'est un peu plus compliqué, car à un moment donné, lorsque vous accédez à votre matériel, votre processeur doit faire quelque chose avec de vraies données. Par exemple, si vous voulez faire quelque chose avec la commande add et que vous devez passer des opérandes en texte brut.

Il existe également des systèmes de recherche intéressants qui tentent de faire des calculs sur la base de données chiffrées. Il explose le cerveau comme le film The Matrix. Mais il suffit de dire que la protection des données en RAM est généralement beaucoup plus faible que la protection des données résidant sur des disques stables. Vous avez encore des questions?



Étudiant: nous avons parlé d'un attaquant qui agit après une session de navigation privée. Mais si vous avez un onglet Mode public et un onglet Mode privé dans votre navigateur, et après avoir fermé l'onglet de navigation privée, l'onglet de navigation publique reste ouvert, un pirate peut-il atteindre des artefacts de mémoire à travers lui?

Professeur: c'est une question intéressante, et à la fin de la conférence, nous parlerons d'une méthode d'attaque similaire. Le fait est que la plupart des modèles de menace en mode de navigation privée n'impliquent pas la présence d'un attaquant en temps réel. En d'autres termes, ils supposent que lorsque vous effectuez une navigation privée, en même temps, aucune autre personne n'a ouvert un onglet de navigation public ou quelque chose comme ça. Mais vous avez en fait raison de dire que la façon dont les modes de navigation privés sont souvent mis en œuvre n'est pas bien protégée.

Supposons que vous ouvrez l'onglet pour la navigation privée et après un certain temps le fermez pour vous enfuir pour une tasse de café. Cependant, Firefox, par exemple, enregistre des statistiques telles que l'allocation de mémoire. Donc, si la mémoire de votre onglet de navigation privée se trouve avec toutes les ordures collectées par le navigateur, je peux voir les URL que vous avez visitées, etc. dans votre onglet. Mais, en bref, la plupart des modèles d'attaquants n'impliquent pas un attaquant en même temps que vous êtes occupé à naviguer sur Internet en privé.

Ainsi, le chiffrement par échange est une chose utile, car il vous offre des fonctionnalités de sécurité assez intéressantes sans avoir à changer le navigateur ou l'une des applications qui s'exécutent dessus. En pratique, le coût d'utilisation d'un processeur lors du chiffrement d'un swap est beaucoup moins élevé que le coût réel des opérations d'E / S en général, surtout si vous avez un disque dur, car vous achetez ses performances avec le disque. C'est le coût des pièces purement mécaniques, du matériel, donc le chiffrement par échange n'est pas un gros coup sur les performances.

Ainsi, le prochain type d'attaquant que nous examinerons est un attaquant Web, que j'ai mentionné au début de la conférence. Ici, il est supposé que l'attaquant contrôle le site Web que l'utilisateur est sur le point de visiter en mode de navigation privée, mais cet attaquant ne contrôle pas l'ordinateur local de l'utilisateur. Ce faisant, nous avons deux objectifs de sécurité afin de nous protéger contre les attaques Web.

Tout d'abord, nous ne voulons pas qu'un attaquant puisse identifier les utilisateurs. L'identification signifie qu'un attaquant peut distinguer un utilisateur d'un autre utilisateur visitant son site.

Deuxièmement, nous ne voulons pas que l'attaquant puisse savoir si l'utilisateur utilise ou non le mode de navigation privée. Comme l'écrit un article de conférence, la protection contre un attaquant Web est en fait une tâche assez douteuse.

Alors, que signifie identifier différents utilisateurs? Comme je l'ai dit, dans un sens global, vous pouvez imaginer qu'un utilisateur ressemble exactement à tous les autres utilisateurs qui visitent ce site. Supposons qu'un attaquant Web veuille faire l'une des deux choses spécifiques. Le premier ressemble à ceci: "Je vois que plusieurs personnes ont visité mon site en mode de navigation privée, et vous étiez les cinquième, septième et huitième visiteurs." En d'autres termes, cela signifie l'identification de l'utilisateur dans le cadre de plusieurs sessions de navigation privées.



La deuxième chose qu'un attaquant pourrait vouloir est d'essayer d'établir une connexion entre l'utilisateur et les sessions de navigation en modes public et privé. Supposons qu'une fois que je vais sur amazon.com en vue publique, et la deuxième fois en vue privée. Un attaquant peut-il vraiment découvrir que le même utilisateur a effectué les deux visites sur le site?

Étudiant: mais est-ce que tout cela est lié aux adresses IP?

Professeur: oui, c'est vrai. C'est une excellente hypothèse, donc j'ose supposer que dans notre cas, l'utilisateur n'utilise pas Tor, ou quelque chose comme ça. Alors oui, nous pouvons construire sur l'adresse IP de l'utilisateur. Il est facile de l'identifier par son adresse IP. Et si un site est visité deux fois pendant une courte période à partir de la même adresse IP, il est fort probable que le même utilisateur l'ait fait.

En fait, cela sert de motivation pour utiliser des choses comme Tor, nous discuterons de ce sujet dans la prochaine conférence. Si vous n'avez pas entendu parler de Tor, je dirai que c'est essentiellement un outil qui essaie de cacher des choses comme votre adresse IP. Vous pouvez imaginer le navigateur comme une collection de couches, basées sur Tor, et en plus vous avez un mode de navigation privé. Cela peut vous offrir des avantages tels que le mode privé ne peut pas du tout fournir. Ainsi, Tor fournit un certain sens de l'anonymat d'une adresse IP, mais n'est pas vraiment en mesure d'assurer la confidentialité des données, une période spécifique de leur vie ou des choses similaires. Vous pouvez considérer «Tor» comme une condition nécessaire mais non suffisante pour la mise en œuvre complète du régime de navigation privée sur Internet.

Fait intéressant, même si vous utilisez Tor, un serveur Web peut toujours identifier un utilisateur en examinant les caractéristiques uniques de ce navigateur.



Maintenant, je vais vous montrer la dernière démo pour aujourd'hui. Voyons comment j'utilise un site appelé Panopticlick. Certains d'entre vous ont entendu parler de ce site. Il s'agit d'un projet en ligne lancé par l'EFF - Electronic Frontier Foundation, l'Electronic Frontier Foundation. L'idée principale du projet est qu'il essaie de vous identifier en tant qu'utilisateur en analysant les différentes caractéristiques de votre navigateur Web. Je vais vous montrer exactement ce que je veux dire. Nous allons sur ce site, vous voyez le bouton "Testez-moi", et je clique dessus.



Généralement, un tas de code JavaScript fonctionne ici, peut-être quelques applets et certains Java.

Ce site essaie de prendre les empreintes digitales de mon navigateur et de découvrir la quantité d'informations uniques dont il dispose.

Permettez-moi d'augmenter la police - vous voyez que l'une des choses qu'il veut découvrir est les détails des plugins de navigateur que j'utilise. Donc, fondamentalement, ce test exécutera un code qui vérifie si j'ai Flash installé, quelle version de ce Flash, si Java est installé et quelle version il a.



Vous voyez que tous ces plugins ne tiennent même pas sur le même écran en même temps. Ce sont tous les différents plugins et formats de fichiers pris en charge par mon navigateur. Dans un sens global, cela devrait vous déranger si vous êtes une «personne de sécurité». Si j'utilise vraiment activement toutes ces choses à un moment donné, ce n'est qu'un cauchemar!



En fin de compte, le serveur Web ou l'attaquant Web peut rechercher le code affiché ici et déterminer les plug-ins utilisés par votre navigateur. Maintenant, si vous regardez ces deux colonnes à gauche, qu'est-ce que c'est?



La première colonne est constituée des bits des informations identifiées. La colonne suivante est plus intéressante - elle montre qu'un seul du nombre donné de navigateurs a le même ensemble de plug-ins, dans ce cas, il s'agit de 1 navigateur sur 27679. C'est donc une façon assez spécifique de prendre mes empreintes digitales. Ce nombre indique qu'il y a très, très peu de personnes dont le navigateur a exactement le même ensemble de plugins et de configurations de fichiers.
Donc, il s'est avéré qu'ils avaient raison, je suis une personne complètement unique, mais à long terme, cela crée un gros problème de sécurité. Regardez le reste des résultats du test.



Voici la résolution d'écran et la profondeur de couleur de mon ordinateur portable, une pour 1,5 million d'ordinateurs. C'est une découverte plutôt choquante, car cela signifie qu'une seule personne sur un échantillon d'un million et demi d'utilisateurs possède de telles caractéristiques d'écran.
Donc, ces choses sont en quelque sorte additives. Plus il y a d'empreintes digitales, plus il est facile pour un attaquant de découvrir que c'est vous qui avez visité son site. Et notez que cela a été fait exclusivement par le serveur. Je suis simplement allé sur cette page et j'ai cliqué sur un bouton, et c'est ce qu'ils ont obtenu. Juste une seconde, je veux montrer encore une chose. Le site Web Panopticlick a été connecté en privé. Maintenant, je vais copier l'adresse de la barre d'adresse et ouvrir la version régulière et publique de Firefox. Après cela, je relancerai ce test.

Je note à nouveau - maintenant je suis en mode navigateur public, et avant j'étais en mode privé. Vous voyez que si vous regardez les plug-ins du navigateur, l'indice d'unicité des empreintes digitales du navigateur reste presque le même - 27679.82 contre 27679.68. Cette différence est faite par plusieurs plugins, qui peuvent ou non se charger selon la façon dont le mode de confidentialité est implémenté. Mais regardez - les empreintes digitales sont toujours faciles. Regardez la taille de l'écran et la profondeur des couleurs - ces indicateurs ne sont pas différents dans les modes de visualisation public et privé.

Ainsi, la possibilité de laisser des empreintes digitales dans les deux modes est à peu près la même. C'est l'une des raisons pour lesquelles il est si difficile de se protéger contre une telle attaque Web, car les navigateurs eux-mêmes dans leur configuration transportent beaucoup d'informations pour votre identification par un attaquant.

Étudiant: Je suis curieux de connaître les options de taille d'écran et de profondeur de couleur. Comment cela se produit-il? Pourquoi sont-ils si uniques? Combien de tailles d'écran et de profondeurs de couleurs existent généralement?

Professeur: Je pense qu'il cache en réalité une partie de la magie que Panopticlick utilise pour découvrir de quoi il s'agit. Globalement, comment fonctionnent ces tests? Certaines parties de votre navigateur ne peuvent être consultées qu'en utilisant du code JavaScript. Ainsi, vous pouvez imaginer que le code JavaScript examine les propriétés de l'objet fenêtre, qui est une image en trois dimensions de JavaScript, et remarque comment le code à l'intérieur de la fenêtre dénote cet étrange widget, widget voisin, partie de texte, plugins, etc. Ces pages utilisent également couramment le fait que les applets Java et les objets Flash peuvent rechercher des éléments plus intéressants, tels que les polices disponibles sur votre ordinateur, etc. Par conséquent, je pense personnellement que lors de la détermination de l'unicité de la taille de l'écran et de la profondeur des couleurs, ce qui suit se produit: le test lance une applet qui tentera de demander votre carte graphique ou vos interfaces graphiques en Java, et vérifiera alternativement divers aspects de leur travail dans le processus d'affichage de la page du navigateur.

Par conséquent, je pense que cet indicateur contient en fait plus que la taille de l'écran et la profondeur des couleurs, ils réduisent simplement son nom à cette forme.

. , , , JavaScript. , , . , .

? . , Tor, Tor – , IP- , — . !

. , , -. , , , , Firefox v10.7. , Firefox, . .

: Tor? ?

: , . , , , , , -. - , - .



: , , - Tor, Firefox .

: , - Tor. , «» Tor. , — IP, — , , , -.

, -, , , Firefox, - . - , . , - Firefox 10.7. , Firefox 10.7. HTML , . .

: , , . Tor , Firefox.

: , . , , , , . , Tor , Tor, , Firefox Java, .

– Tor , «» . , . – , , .
, ? – . , , ? , - . . , , ?



, . , . , , , iframe URL-, , iframe . . , iframe, , , , .

, , , , , . , , , , . . , . JavaScript JavaScript, . .

: , , ?

: , . , , , . , , -. , - , .



, , . , Amazon.com , . , , cookie , -, .

: , IP-.

: , .

: , , , IP- . , , .

: , . , , -, . JavaScript, iframe foo.com, iframe . , , , .

. , iframe, , .

, . , .

IP-, , , Tor IP-.

54:00

MIT « ». 18: « », 3


.

Merci de rester avec nous. ? 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).

VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbit / s jusqu'en décembre gratuitement en payant pour une période de six mois, vous pouvez commander ici .

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?

Source: https://habr.com/ru/post/fr430206/


All Articles