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

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

Commençons donc. Bienvenue à une autre conférence fascinante sur la sécurité et pourquoi le monde est si terrible. Donc, aujourd'hui, nous allons parler des modes de navigation privée, dont beaucoup d'entre vous ont probablement beaucoup d'expérience personnelle. À quoi sert la navigation privée? Que disent les chercheurs en sécurité de la confidentialité?



Dans un sens général, ils parlent de l'objectif suivant: un utilisateur particulier ne devrait pas être différent d'un tas d'autres utilisateurs. En particulier, l'activité de cet utilisateur lors de la navigation sur Internet ne doit pas paraître compromettante en termes d'activité des autres utilisateurs. Ainsi, comme je l'ai mentionné, nous parlerons aujourd'hui de la confidentialité dans le contexte spécifique d'une navigation Internet privée.

En fait, il n'y a pas de définition formelle de ce que signifie la navigation privée. Il y a plusieurs raisons à cela. L'un d'eux est que les applications Web sont des choses très, très complexes. Ils ajoutent constamment de nouvelles fonctionnalités, telles que du contenu audio, vidéo et d'autres choses similaires. Par conséquent, ce que les navigateurs devraient être, c'est une «cible mobile». Par conséquent, le concept de ce que les navigateurs peuvent faire est assez vague, de sorte qu'il n'est pas toujours clair quelles informations sur un utilisateur particulier sont susceptibles de fuir dans le domaine public.

En fin de compte, ce qui se passe, c'est que dans la pratique, comme pour beaucoup d'autres choses, l'existence même et les tâches des navigateurs sont déterminées par les normes de vie. Ainsi, différents fabricants de navigateurs mettront en œuvre diverses fonctions, notamment en ce qui concerne la navigation privée. D'autres développeurs voient les résultats des concurrents et mettent à jour leur propre navigateur, de sorte que les buts et objectifs du navigateur changent constamment.



Comme les utilisateurs comptent de plus en plus sur la navigation privée sur Internet, ils trouveront éventuellement de nombreuses erreurs de confidentialité, dont je parlerai dans une minute. Dans un sens global, la navigation privée peut être considérée comme un objectif ambitieux. Mais à mesure que la société s'améliore, certains aspects de la navigation privée s'améliorent et d'autres s'aggravent.

Qu'entendons-nous donc par navigation privée sur Internet? C'est difficile à déterminer, mais l'article de la conférence tente de formaliser ce problème de deux manières spécifiques. Tout d'abord, il s'agit d'un pirate informatique local dans un réseau privé - une personne qui prendra possession de votre ordinateur après avoir terminé la navigation privée. Et cette personne veut savoir quels sites vous avez visités en mode de navigation privée.

L'article parle également des cybercriminels qui contrôlent les sites que vous visitez. Cet attaquant peut tenter de découvrir que vous êtes une personne spécifique, John ou Jane, et non un utilisateur impersonnel sur lequel le site Web ne peut fournir aucune information. Par conséquent, nous examinerons chacune de ces attaques en détail. Il suffit de dire que si un attaquant peut organiser simultanément ces deux attaques, à la fois locales et Internet, cela améliorera considérablement sa capacité à révéler votre identité.

Par exemple, un attaquant local qui peut connaître votre adresse IP est en mesure de savoir si cette adresse IP particulière figure dans les journaux du site. Donc, d'un point de vue de la sécurité, il est très utile de considérer ces attaques locales et Web, d'abord individuellement, puis sous une forme combinée.

Regardons le premier type d'attaquant - un attaquant local. Supposons que ce pirate contrôlera l'ordinateur de l'utilisateur après la fin de la session de communication réseau. Je veux dire que la navigation privée sur Internet est terminée, l'utilisateur a cessé d'utiliser le navigateur et il n'est plus devant l'ordinateur. Après cela, le pirate prend le contrôle de l'ordinateur et essaie de découvrir ce qui s'est passé avant. Par conséquent, le but de la sécurité est d'empêcher un attaquant de comprendre les sites Web que l'utilisateur a visités lors de sa navigation privée.

Une raison importante pour laquelle nous considérons une attaque après la fin d'une session d'activité Internet est la suivante. Si nous supposons qu'un attaquant peut contrôler l'ordinateur avant une visualisation privée, le "jeu est terminé", car dans ce cas, le pirate peut installer un intercepteur de clavier, violer l'intégrité du navigateur ou du système d'exploitation lui-même. Nous ne ferons donc pas attention à un tel attaquant. Veuillez noter que pour la même raison, nous n'essayons pas de garantir la confidentialité des utilisateurs après que l'attaquant a contrôlé son ordinateur, car après avoir pris le contrôle de l'ordinateur, le pirate pourra faire tout ce qu'il veut avec lui, au moins installer le même intercepteur de clavier. Ainsi, en principe, dès que l'utilisateur quitte l'ordinateur, nous ne considérons pas directement le concept de confidentialité.

Ici, vous pouvez introduire un autre objectif que vous souhaitez atteindre - essayez de cacher à l'attaquant que l'utilisateur utilise généralement le mode de navigation privée.



L'article de la conférence dit que c'est très difficile. Cette propriété est souvent appelée «déni plausible». Par exemple, votre patron vient vers vous après une session de navigation privée et vous dit: "avez-vous parcouru mylittlepony.com?" Et vous répondez, non, que vous n'y êtes pas allé! Et bien sûr, je n'ai pas utilisé le mode de navigation privée pour masquer le fait que je naviguais sur mylittlepony.com. Ainsi, comme je l'ai dit, la propriété du déni plausible est difficile à garantir, je donnerai plus tard des raisons spécifiques. Nous ne considérerons donc principalement qu'un attaquant local.

Nous pourrions penser à la question: quel est l'état constant du côté client qui contribue aux fuites lors d'une session de navigation privée? Par persistance, je veux dire que certaines données seront stockées sur un disque dur local, un SSD local ou quelque chose de similaire.



Alors, quelles conditions de fonctionnement du système sont lourdes de fuites de données si nous n'étions pas assez prudents lors de la visualisation en privé? Tout d'abord, c'est l'état d'accessibilité des composants JavaScript tels que les cookies et le stockage DOM. Une autre chose qui inquiète les gens lorsqu'ils naviguent en privé est le cache du navigateur. Après tout, vous ne voulez pas que quelqu'un trouve dans le cache interne des images ou des fichiers HTML de sites Web dont vous souhaitez cacher les visites à d'autres personnes.

Une autre chose importante est l'histoire des sites que vous avez visités. Vous pouvez ruiner une relation avec une autre personne lorsqu'il se connecte au navigateur, commence à taper quelque chose dans la barre d'adresse et interrompt de manière embarrassante ce qui a commencé, car l'historique de vos vues lui indique automatiquement quelque chose d'extrêmement indécent. C'est l'une des raisons pour lesquelles vous ne voulez pas que ces informations fuient hors de votre session de navigation privée.

Vous pouvez également penser à afficher les états de configuration et des choses comme les certificats clients et les signets de page. Vous êtes peut-être allé sur un site spécifique, et le navigateur vous propose d'enregistrer vos mots de passe dans un fichier de configuration pour visualiser ce site, et vous ne voulez pas les divulguer.

Le cinquième est les fichiers téléchargés. Ceci est intéressant car une action explicite de l'utilisateur est requise pour télécharger le fichier. Vous pouvez utiliser le fichier téléchargé pendant la navigation privée lors de l'ouverture du navigateur, mais il est également possible que vous utilisiez le fichier téléchargé après avoir fini de travailler avec le navigateur en dehors du mode de navigation privée. Nous en reparlerons un peu plus tard.

Et enfin, en mode de navigation privée, vous pouvez installer de nouveaux plug-ins ou extensions pour le navigateur. Il s'agit d'un autre type d'État dont la fuite au-delà de la navigation privée n'est pas souhaitable.



Ainsi, les modes de navigation actuels tentent généralement d'empêcher les fuites de données au cours des premier, deuxième et troisième états d'une session de navigation privée. Autrement dit, il ne devrait y avoir aucune possibilité de fuite de cookies ou de données DOM. Tout ce que vous mettez en cache lors d'une session de navigation privée doit être supprimé. Vous ne devez pas conserver un historique des URL visitées.

En règle générale, les données des quatrième, cinquième et sixième états du mode d'affichage privé peuvent s'échapper de la session. Il existe des raisons utiles et nuisibles pour lesquelles cela peut se produire. Plus tard, nous verrons que si une fuite est autorisée, cela augmentera radicalement la surface de la menace de fuites de toutes les informations privées. Par conséquent, il est assez difficile de déterminer exactement quelles propriétés de sécurité sont destinées à un mode d'affichage privé.

La prochaine chose, dont nous parlerons très brièvement, est l'activité du réseau pendant le mode de navigation privée. La chose intéressante est que même si nous assurons la protection de tous ces 6 états, empêchant la fuite d'informations, le fait même que vous émettiez des paquets réseau lors de la connexion est la preuve de ce que vous avez fait. Imaginez que lorsque vous souhaitez accéder à foo.com, votre ordinateur doit émettre une requête DNS pour foo.com. Donc, même si vous ne laissez aucune trace de l'activité des six États susmentionnés, de toute façon, il y aura toujours des enregistrements dans le cache DNS local que vous avez essayé de contacter l'hôte foo.com. C'est très intéressant. Vous pourriez penser que les navigateurs pourraient en quelque sorte essayer d'effacer le cache DNS après avoir terminé une session de navigation privée, mais en pratique, cela est difficile à faire car de nombreux systèmes nécessitent des droits d'administrateur pour ce faire. Une contradiction se produit ici, car il est fort probable que vous ne souhaitiez pas que le navigateur dispose de privilèges root, car nous nous sommes assurés que les navigateurs ne sont pas suffisamment fiables. De plus, les commandes de nettoyage du cache DNS sont conçues pour l'activité d'un utilisateur spécifique, elles n'effacent pas tout le cache, qu'aimeriez-vous pour le mode de navigation privée. Vous aurez besoin d'une précision «chirurgicale» pour vous débarrasser de la mention de visiter foo.com et d'autres sites en mode de navigation privée sans affecter d'autres choses. En pratique, il est assez difficile de gérer ce problème.
Et une autre chose délicate que l'article mentionne est les artefacts de RAM, ou RAM. L'idée principale ici est qu'en mode de navigation privée, le navigateur privé doit stocker quelque chose en mémoire. Même si le mode de navigation privée ne nécessite pas d'écriture directe de données sur le disque ou de lecture de données à partir du disque, le navigateur fournit de la RAM. Par exemple, l'onglet que vous consultez peut rester dans le fichier d'échange et ces informations peuvent être reflétées dans le fichier d'hibernation du bloc-notes. Ainsi, si cet état se reflète dans le stockage persistant, alors une fois la session de navigation privée terminée, l'attaquant peut trouver du code JavaScrip ou HTML qui se reflétait sur le disque dans le fichier d'échange.

Nous aurons une petite démonstration de la façon dont cela peut fonctionner. Sur l'écran, vous voyez l'onglet de navigation privée avec lequel je vais aller sur le site du groupe de programmation PDOS du laboratoire d'informatique de notre institut CSAIL.

\

Ensuite, je vais utiliser cette commande amusante appelée gcore pour stocker un instantané de cette page PDOS ouverte.



Ensuite, j'utilise un peu de magie pour que mon terminal prenne un instantané de la mémoire, parfois cela prend un peu de temps.



Voici ce qui se passe lorsque vous faites cela - le fichier image principal de cette vue privée est généré ici. Maintenant, nous allons regarder à l'intérieur de cette image et voir si nous pouvons trouver une mention de pdos.



Fait intéressant, nous voyons un tas d'instances de chaînes PDO avec différents préfixes dans cette image mémoire pour le mode de navigation privée.



Si nous regardons plus loin, nous verrons des choses comme les URL complètes et les codes HTML.



Le fait est que si nous pouvions trouver tout cela dans la mémoire de la page, c'est-à-dire que certaines données de cette page ont été placées dans le fichier d'échange sur le disque, alors l'attaquant pourrait facilement exécuter ces lignes. Il peut faire ce que je viens de faire avec le fichier sur cette page et essayer de savoir quels sites vous avez visités en mode de navigation privée. Est-ce clair?
En principe, le problème ici est que le mode de navigation privée n'essaye pas de «confondre» la RAM ou de la crypter d'une manière ou d'une autre. Cela semble être une chose assez fondamentale, car à un moment donné, le processeur devrait effectuer une tâche basée sur des données de texte ouvertes. Par conséquent, cette circonstance peut devenir un gros problème. Quelqu'un a des questions?

Etudiant: c'est exactement ce que je n'attends pas de mon navigateur, car les navigateurs doivent garantir la confidentialité de la navigation privée. Par exemple, si vous effectuez des achats, un ami qui s'est assis sur votre ordinateur ne pourra pas les consulter. Pourriez-vous nous dire un peu quelles garanties les auteurs de l'article donnent et décrivent-ils dans l'article ce qui peut être changé dans les navigateurs pour assurer une telle confidentialité?

Professeur: oui, c'est très intéressant. Il y a une chose à laquelle vous pouvez faire attention - lorsque vous ouvrez l'onglet de navigation privée, en règle générale, un message texte apparaît devant vous: "Bienvenue en mode navigation privée". Ce mode vous aidera à ne pas laisser de traces si plusieurs utilisateurs travaillent sur l'ordinateur, et votre ami, qui s'est assis après vous sur l'ordinateur, ne pourra pas se familiariser avec l'historique de vos vues, cookies et données de remplissage de formulaire. Cependant, le mode incognito n'aidera pas si quelqu'un derrière vous se tient avec un club de caoutchouc et va vous assommer dès que vous entrez sur le site.

Par conséquent, les fabricants eux-mêmes évitent de spécifier des garanties concernant la confidentialité des données lorsqu'ils utilisent leur navigateur.

En fait, après l'incident avec Snowden, de nombreux navigateurs ont changé ce message contextuel parce qu'ils voulaient vraiment faire comprendre à l'utilisateur qu'ils ne pouvaient pas le protéger de l'intervention de forces telles que la NSA ou quelque chose comme ça.

Bref, quelles garanties offrent-ils? En pratique, ils ne fournissent que la vulnérabilité que vous venez de mentionner. Autrement dit, celui qui ne peut pas voir ce que vous faites maintenant pourra voir ce que vous faisiez. Nous supposons qu'un profane ne peut pas exécuter des lignes dans un fichier d'échange ou faire quelque chose de similaire. Cependant, il y a deux problèmes. L'un des problèmes est que les navigateurs sont si complexes qu'ils ne protègent souvent même pas contre les actions des profanes.

Je peux donner un exemple personnel. Plusieurs fois, lorsque j'ai vu des bannières publicitaires drôles du Huffington Post sur la page, comme «regardez comment le fait de toucher ces chiots aide d'autres chiots à descendre les escaliers!», Je l'ai parfois attrapé et cliqué dessus à cause de ma faiblesse. Mais comme je ne voulais pas que les gens découvrent ma faiblesse, je l'ai parfois fait en mode visionnement privé. Cependant, il arrivait que parfois les URL de ces éléments publicitaires fuyaient dans l'historique des URL dans le mode de navigateur public normal auquel ce matériel n'était pas destiné. Ainsi, l'un des problèmes est que parfois ces navigateurs n'offrent pas de protection contre les attaques non professionnelles.

Deuxièmement, je pense qu'il y a beaucoup de gens qui, en particulier après l'histoire de Snowden, souhaiteraient une meilleure protection de la vie privée contre la navigation privée. Ils souhaiteraient une protection contre les attaques d'artefacts RAM, même s'ils ne peuvent pas formuler correctement techniquement leur désir.

Par conséquent, l'une des choses que j'ai faites pendant mes études à cet institut était une étude dans le domaine de l'amélioration de la protection en mode de visualisation privée, afin que nous puissions en parler. , , , , . , … ?

: , , , . , ?

: . . , . , , . , , .

, , . , , . , , , , , . , , , , .

. , memclear. , , « ».



read_secret? , , , .



, . , , , memset , , . , , , : « ».



, , ? , .



, . , «», , , . gcore, memclear, .



, , grep .



, , , , , , . , ? , .

, / , . , , , , , C /, , . , memset , , , . , , , , / - .



, . , , , , . ? , , , . , memset memclear, . , , , . ? , , SQL.

- - RAM , , , .

, RAM, , , -, . , , . -, - , , . , , , , . .

. , , , , malloc . , , RAM. , , , – , - . , , .

. / , . , .

? , . , . . , Microsoft Word , Word . , Word, .

, , . , Linux, , , 4- . , . , Linux , , , - .

, — , , .

- SSD. . , SSD, , . , .



, , SSD, : «, , , ».

. , , .

, , , - «» .

, ? , , , . , - , - , -, .

27:05

Cours MIT "Sécurité des systèmes informatiques". 18: « », 2


.

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 ? 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/fr430204/


All Articles