Instituto de Tecnologia de Massachusetts. Curso de Aula nº 6.858. "Segurança de sistemas de computador". Nikolai Zeldovich, James Mickens. 2014 ano
Computer Systems Security é um curso sobre o desenvolvimento e implementação de sistemas de computador seguros. As palestras abrangem modelos de ameaças, ataques que comprometem a segurança e técnicas de segurança baseadas em trabalhos científicos recentes. Os tópicos incluem segurança do sistema operacional (SO), recursos, gerenciamento de fluxo de informações, segurança de idiomas, protocolos de rede, segurança de hardware e segurança de aplicativos da web.
Palestra 1: “Introdução: modelos de ameaças”
Parte 1 /
Parte 2 /
Parte 3Palestra 2: “Controle de ataques de hackers”
Parte 1 /
Parte 2 /
Parte 3Aula 3: “Estouros de Buffer: Explorações e Proteção”
Parte 1 /
Parte 2 /
Parte 3Palestra 4: “Separação de Privilégios”
Parte 1 /
Parte 2 /
Parte 3Palestra 5: “De onde vêm os sistemas de segurança?”
Parte 1 /
Parte 2Palestra 6: “Oportunidades”
Parte 1 /
Parte 2 /
Parte 3Palestra 7: “Sandbox do Cliente Nativo”
Parte 1 /
Parte 2 /
Parte 3Aula 8: “Modelo de Segurança de Rede”
Parte 1 /
Parte 2 /
Parte 3Aula 9: “Segurança de aplicativos da Web”
Parte 1 /
Parte 2 /
Parte 3Palestra 10: “Execução Simbólica”
Parte 1 /
Parte 2 /
Parte 3Aula 11: “Linguagem de Programação Ur / Web”
Parte 1 /
Parte 2 /
Parte 3Aula 12: Segurança de rede
Parte 1 /
Parte 2 /
Parte 3Aula 13: “Protocolos de Rede”
Parte 1 /
Parte 2 /
Parte 3Palestra 14: “SSL e HTTPS”
Parte 1 /
Parte 2 /
Parte 3Palestra 15: “Software Médico”
Parte 1 /
Parte 2 /
Parte 3Palestra 16: “Ataques de Canal Lateral”
Parte 1 /
Parte 2 /
Parte 3Palestra 17: “Autenticação de Usuário”
Parte 1 /
Parte 2 /
Parte 3Palestra 18: “Navegação Privada na Internet”
Parte 1 /
Parte 2 /
Parte 3 Então, vamos começar. Bem-vindo a outra fascinante palestra sobre segurança e por que o mundo é tão terrível. Hoje, falaremos sobre modos de navegação privada, sobre os quais muitos de vocês provavelmente têm muita experiência pessoal. Qual é o objetivo da navegação privada? O que os pesquisadores de segurança dizem sobre privacidade?

De um modo geral, eles falam sobre o seguinte objetivo: qualquer usuário em particular não deve ser diferente de muitos outros usuários. Em particular, a atividade desse usuário ao navegar na Internet não deve parecer comprometedora em termos da atividade de outros usuários. Então, como mencionei, hoje falaremos sobre privacidade no contexto específico de uma navegação privada na Internet.
De fato, não há uma definição formal do que significa navegação privada. Existem várias razões para isso. Uma delas é que aplicativos da Web são coisas muito, muito complexas. Eles estão constantemente adicionando novos recursos, como áudio, conteúdo de vídeo e outras coisas semelhantes. Como resultado, o que os navegadores devem ser é um "alvo em movimento". Portanto, o conceito do que os navegadores podem fazer é bastante vago, pelo que nem sempre é claro quais informações sobre um usuário específico são capazes de vazar para o domínio público.
No final, o que acontece é que, na prática, como em muitas outras coisas, a própria existência e tarefas dos navegadores são determinadas pelos padrões de vida. Assim, vários fabricantes de navegadores implementarão várias funções, especialmente com relação à navegação privada. Outros desenvolvedores veem os resultados dos concorrentes e atualizam seu próprio navegador, para que as metas e objetivos do navegador estejam constantemente mudando.

À medida que os usuários confiam cada vez mais na navegação privada da Internet, eles acabam encontrando muitos erros de privacidade, sobre os quais falarei em um minuto. Em um sentido global, a navegação privada pode ser vista como uma meta ambiciosa. Mas, à medida que a sociedade melhora, alguns aspectos da navegação privada melhoram e outros pioram.
Então, o que queremos dizer com navegação privada na Internet? Isso é difícil de determinar, mas o artigo da palestra tenta formalizar esse problema de duas maneiras específicas. Antes de tudo, ele fala sobre um hacker local em uma rede privada - uma pessoa que tomará posse do seu computador depois que você terminar a navegação privada. E essa pessoa deseja descobrir quais sites você visitou no modo de navegação privada.
O artigo também fala sobre cibercriminosos que controlam os sites que você visita. Esse invasor pode tentar descobrir que você é uma pessoa específica, John ou Jane, e não um usuário impessoal sobre o qual o site não pode fornecer nenhuma informação. Portanto, examinaremos cada um desses ataques em detalhes. Basta dizer que, se um invasor puder organizar simultaneamente esses dois ataques, tanto locais quanto na Internet, isso aumentará muito sua capacidade de revelar sua identidade.
Por exemplo, um invasor local que pode saber seu endereço IP é capaz de descobrir se esse endereço IP específico está nos registros do site. Portanto, do ponto de vista da segurança, é muito útil considerar esses ataques locais e da Web, primeiro individualmente e depois de forma combinada.
Vejamos o primeiro tipo de atacante - um atacante local. Suponha que esse hacker controlará o computador do usuário após o final da sessão de comunicação da rede. Quero dizer que a navegação privada na Internet foi concluída, o usuário parou de usar o navegador e ele não está no computador. Depois disso, o hacker assume o controle do computador e tenta descobrir o que aconteceu antes. Portanto, o objetivo da segurança é impedir que um invasor entenda quais sites o usuário visitou durante a navegação privada.
Um motivo importante para considerarmos um ataque após o término de uma sessão de atividade na Internet é o seguinte. Se assumirmos que um invasor pode controlar o computador antes da exibição privada, o "jogo acabou", porque nesse caso o hacker pode instalar um interceptador de teclado, violar a integridade do navegador ou do próprio sistema operacional. Portanto, não prestaremos atenção a um invasor. Observe que, pelo mesmo motivo, não estamos tentando garantir a privacidade do usuário depois que o invasor controlou seu computador, porque, tendo assumido o controle do computador, o hacker poderá fazer o que quiser com ele, pelo menos instalar o mesmo interceptador de teclado. Assim, em princípio, assim que o usuário sai do computador, não consideramos diretamente o conceito de privacidade.
Aqui você pode introduzir outro objetivo que deseja alcançar - tente ocultar do invasor que o usuário geralmente usa o modo de navegação privada.

O artigo da palestra diz que é muito difícil. Essa propriedade costuma ser chamada de "negação plausível". Por exemplo, seu chefe se aproxima de você após uma sessão de navegação privada e diz: "você navegou em mylittlepony.com?" E você responde que não foi para lá! E, é claro, não usei o modo de navegação privada para ocultar o fato de estar navegando em mylittlepony.com. Então, como eu disse, é difícil garantir a propriedade da negação plausível, depois darei razões específicas. Portanto, consideraremos principalmente apenas um invasor local.
Podemos pensar na pergunta: qual é o estado constante do lado do cliente contribuindo para vazamentos durante uma sessão de navegação privada? Por persistência, quero dizer que alguns dados serão armazenados em um disco rígido local, SSD local ou algo semelhante.

Portanto, quais condições operacionais do sistema estão repletas de vazamentos de dados se não formos cuidadosos o suficiente ao visualizar em particular? Primeiro de tudo, esse é o estado de acessibilidade dos componentes JavaScript, como cookies e armazenamento DOM. Outra coisa com que as pessoas se preocupam ao navegar em particular é o cache do navegador. Afinal, você não deseja que alguém encontre no cache interno algumas imagens ou arquivos HTML de sites cujas visitas você deseja ocultar de outras pessoas.
Outra coisa importante é a história dos sites que você visitou. Você pode arruinar o relacionamento com outra pessoa quando ele se conectar ao navegador, começar a digitar algo na barra de endereços e interromper de forma constrangedora o que foi iniciado, pois o histórico de suas visualizações automaticamente indica algo extremamente indecente. Esse é um dos motivos pelos quais você não deseja que essas informações vazem da sua sessão de navegação privada.
Você também pode pensar em visualizar estados de configuração e coisas como certificados de cliente e marcadores de página. Talvez você tenha acessado um site específico e o navegador se ofereça para salvar suas senhas em um arquivo de configuração para visualizá-lo, e você não deseja vazá-las.
O quinto são os arquivos baixados. Isso é interessante porque é necessária uma ação explícita do usuário para baixar o arquivo. Você pode usar o arquivo baixado durante a navegação privada ao abrir o navegador, mas também é possível que você o utilize após terminar de trabalhar com o navegador fora do modo de navegação privada. Falaremos sobre isso um pouco mais tarde.
E, finalmente, no modo de navegação privada, você pode instalar novos plug-ins ou extensões para o navegador. Esse é outro tipo de estado cujo vazamento além da navegação privada é indesejável.

Assim, os modos de navegação atuais geralmente tentam impedir o vazamento de dados durante o primeiro, o segundo e o terceiro estado de uma sessão de navegação privada. Ou seja, não deve haver possibilidade de vazamento de cookies ou dados DOM. Tudo o que você armazena em cache durante uma sessão de navegação privada deve ser excluído. Você não deve manter um histórico dos URLs visitados.
Como regra, os dados do quarto, quinto e sexto estado do modo de visualização privada podem vazar da sessão. Existem razões úteis e prejudiciais pelas quais isso pode ocorrer. Mais tarde veremos que, se um vazamento for permitido, isso aumentará radicalmente a superfície da ameaça de vazamento de todas as informações privadas. Portanto, é bastante difícil discutir exatamente quais propriedades de segurança se destinam a um modo de exibição privado.
A próxima coisa, sobre a qual falaremos muito brevemente, é a atividade de rede durante o modo de navegação privada. O interessante sobre isso é que, mesmo se fornecermos a proteção de todos esses 6 estados, impedindo o vazamento de informações, o próprio fato de você emitir pacotes de rede durante a conexão é a prova do que você fez. Imagine que, quando você quiser acessar o site foo.com, seu computador deve emitir uma consulta DNS para o site foo.com. Portanto, mesmo que você não deixe nenhum rastro da atividade dos seis estados mencionados acima, ainda haverá registros no cache DNS local que você tentou entrar em contato com o host foo.com. Isso é muito interessante. Você pode pensar que os navegadores podem tentar limpar o cache do DNS depois de concluir uma sessão de navegação privada, mas na prática isso é difícil de fazer, porque muitos sistemas exigem direitos de administrador para fazer isso. Aqui surge uma contradição, porque provavelmente você não deseja que o navegador tenha privilégios de root, pois garantimos que os navegadores não sejam confiáveis o suficiente. Além disso, os comandos de limpeza de cache DNS foram projetados para a atividade de um usuário específico, eles não limpam todo o cache, o que você gostaria para o modo de navegação privada. Você precisará de precisão "cirúrgica" para se livrar da menção de visitar foo.com e outros sites no modo de navegação privada sem afetar outras coisas. Na prática, lidar com isso é bastante difícil.
E outra coisa complicada mencionada no artigo são os artefatos da RAM, ou RAM. A idéia principal aqui é que, no modo de navegação privada, o navegador privado deve armazenar algo na memória. Mesmo que o modo de navegação privada não exija a gravação direta de dados no disco ou a leitura de dados no disco, a RAM fornece o navegador. Por exemplo, a guia que você está visualizando pode permanecer no arquivo de paginação e essas informações podem ser refletidas no arquivo de hibernação do notebook. Portanto, se esse estado for refletido no armazenamento persistente, após a conclusão da sessão de navegação privada, o invasor poderá encontrar o código JavaScrip ou HTML que foi refletido no disco no arquivo de paginação.
Teremos uma pequena demonstração de como isso pode funcionar. Na tela, você vê a guia de navegação privada com a qual irei ao site do grupo de programação PDOS do laboratório de ciência da computação do nosso instituto CSAIL.

\
Em seguida, usarei este comando divertido chamado gcore para armazenar um instantâneo desta página aberta do PDOS.

Em seguida, uso um pouco de mágica para que meu terminal tire uma foto instantânea da memória, às vezes leva um pouco de tempo.

Aqui está o que acontece quando você faz isso - o arquivo de imagem principal dessa exibição privada é gerado aqui. Agora vamos olhar dentro desta imagem e ver se podemos encontrar alguma menção a pdos.

Curiosamente, vemos várias instâncias de sequências pdos com prefixos diferentes nessa imagem de memória para o modo de navegação privada.

Se olharmos mais adiante, veremos coisas como URLs completos e códigos HTML.

O ponto é que, se pudéssemos encontrar tudo isso na memória da página, ou seja, alguns dados dessa página foram colocados no arquivo da página em disco, o invasor poderia executar essas linhas com facilidade. Ele pode fazer o que acabei de fazer com o arquivo desta página e tentar descobrir quais sites você visitou no modo de navegação privada. Isso está claro?
Em princípio, o problema aqui é que o modo de navegação privada não tenta "confundir" a RAM ou de alguma forma criptografá-la. Isso parece uma coisa bastante fundamental, porque em algum momento, o processador deve executar uma tarefa baseada em dados de texto aberto. Portanto, essa circunstância pode se tornar um grande problema. Alguém tem alguma dúvida?
Aluno: é exatamente o que eu não espero do meu navegador, porque os navegadores devem garantir a privacidade da navegação privada. Por exemplo, se você fizer algumas compras, um amigo que se sentou no seu computador não poderá vê-las. Você poderia nos contar um pouco sobre o que garante os autores do artigo e eles descrevem no artigo o que pode ser alterado nos navegadores para garantir essa confidencialidade?
Professor: sim, é muito interessante. Há uma coisa em que você deve prestar atenção - quando você abre a guia de navegação privada, via de regra, uma mensagem de texto aparece à sua frente: "bem-vindo ao modo de navegação anônima". Esse modo ajudará você a não deixar rastros se vários usuários estiverem trabalhando no computador, e seu amigo, que se sentou atrás de você no computador, não conseguirá se familiarizar com o histórico de suas visualizações, cookies e dados de preenchimento de formulários. No entanto, o modo de navegação anônima não ajudará se alguém atrás de você estiver em pé com um taco de borracha e vai nocautear você assim que você entrar no site.
Portanto, os próprios fabricantes evitam especificar garantias quanto à confidencialidade dos dados ao usar seus navegadores.
De fato, após o incidente com Snowden, muitos navegadores mudaram essa mensagem pop-up porque realmente queriam deixar claro para o usuário que não podiam protegê-lo da intervenção de forças como a NSA ou algo assim.
Em suma, que garantias eles fornecem? Na prática, eles fornecem apenas a vulnerabilidade que você acabou de mencionar. Ou seja, quem não puder ver o que você está fazendo agora poderá ver o que estava fazendo. Assumimos que um leigo não pode executar linhas em um arquivo de paginação ou fazer algo semelhante. No entanto, existem dois problemas. Um dos problemas é que os navegadores são tão complexos que nem sempre se protegem contra as ações dos leigos.
Eu posso dar um exemplo pessoal. Várias vezes, quando vi anúncios engraçados do banner do Huffington Post na página, como "olha como esses filhotes comoventes ajudam outros filhotes a descer as escadas!", Às vezes eu era pego por essa fraqueza e clicava neles. Mas como eu não queria que as pessoas aprendessem sobre minha fraqueza, às vezes fazia isso no modo de visualização privada. No entanto, aconteceu que algumas vezes os URLs dessas peças publicitárias vazavam para o histórico de URLs no modo normal de navegador público para o qual este material não se destinava. Portanto, um dos problemas é que, às vezes, esses navegadores não oferecem proteção contra ataques não profissionais.
Em segundo lugar, acho que há muitas pessoas que, principalmente após a história de Snowden, gostariam de ter uma proteção de privacidade mais forte contra a navegação privada. Eles gostariam de proteção contra ataques de artefatos de RAM, mesmo que não possam tecnicamente formular corretamente seu desejo.
Portanto, uma das coisas que fiz enquanto estudava neste instituto foi um estudo no campo de aprimoramento da proteção no modo de visualização privada, para que possamos conversar sobre isso.
Você descobrirá que todos os professores podem falar incessantemente sobre seus estudos; portanto, se você quiser falar sobre isso por três horas, envie-me uma solicitação e nós providenciaremos. Então, o que acabei de mostrar demonstra ... você tem uma pergunta?Aluno: sim, sobre RAM, porque não estou familiarizado com o funcionamento. Por que o navegador no final da sessão não pode simplesmente pedir ao sistema operacional para limpar as partes da memória que ele usou?Professor: . . , . , , . , , .
, , . , , . , , , , , . , , , , .
. , 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, : «, , , ».
. , , .
, , , - «» .
Então, como podemos corrigir esses problemas com a vida útil dos dados? Já discutimos uma solução, que é redefinir a memória após a conclusão do processo. Portanto, sempre que você libera algo, basta anotar um monte de zeros ou algumas coisas aleatórias para ocultar essencialmente os dados antigos de alguém que possa vir atrás de você.27:05 minCurso MIT "Segurança de sistemas de computadores". Aula 18: Navegação Privada na Internet, Parte 2A versão completa do curso está disponível aqui .Obrigado por ficar conosco. Você gosta dos nossos artigos? Deseja ver materiais mais interessantes? Ajude-nos fazendo um pedido ou recomendando a seus amigos, um
desconto de 30% para os usuários da Habr em um análogo exclusivo de servidores básicos que inventamos para você: Toda a verdade sobre o VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps de US $ 20 ou como dividir o servidor? (as opções estão disponíveis com RAID1 e RAID10, até 24 núcleos e até 40GB DDR4).
VPS (KVM) E5-2650 v4 (6 núcleos) 10 GB DDR4 240 GB SSD de 1 Gbps até dezembro de graça quando pagar por um período de seis meses, você pode fazer o pedido
aqui .
Dell R730xd 2 vezes mais barato? Somente nós temos
2 TVs Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 a partir de US $ 249 na Holanda e nos EUA! Leia sobre
Como criar um prédio de infraestrutura. classe usando servidores Dell R730xd E5-2650 v4 custando 9.000 euros por um centavo?