Ataques em canais de desvio: agora não apenas os PCs, mas também os smartphones estão sob ataque (revisão analítica)

Embora os dispositivos móveis sejam cada vez mais demandados e os ataques aos canais de desvio de memória de cache (a seguir denominados ataques de cache) sejam uma maneira poderosa de quebrar os eletrônicos modernos dos microprocessadores, até 2016, havia apenas algumas publicações sobre a aplicabilidade desses ataques a smartphones . Além disso, essas primeiras publicações limitaram-se a considerar ataques à tabela AES e não abordaram métodos mais modernos de ataques internucleares: Prime + Probe [6], Flush + Reload [6], Evict + Reload [7], Flush + Flush [8], Rowhammer [ 9] Além disso, até 2016, acreditava-se que ataques de cache internuclear só podiam ser realizados nas plataformas Intel e AMD, mas recentemente eles também foram realizados em plataformas ARM (em smartphones e outros dispositivos móveis). [6]


Nos últimos anos, houve um aumento no interesse de especialistas em segurança cibernética - para armazenar em cache ataques a smartphones. Este artigo é uma revisão analítica das principais descobertas nessa área para o período de 2015 a 2017.


- História dos canais de derivação
- Por que ataques de cache no ARM são tão únicos
- Variedades de ataques de cache
- - Despejar + tempo
- - Sonda + Prime
- - Liberar + recarregar
- - Despejar + Recarregar
- - Flush + Flush
- - AnC
- Efeito Rowhammer
- Desduplicação de memória do sistema
- Pseudo-isolamento do kernel do sistema operacional
- Canais ocultos internucleares e interprocessadores



Quanto aos ataques de cache nas tabelas AES, embora já se saiba há algum tempo que esses ataques são possíveis , a implementação vulnerável das tabelas AES ainda é usada como o padrão de fato; inclusive em modernos dispositivos criptografados incorporados, como cartões SIM. Por exemplo, redes 3G / 4G usam o algoritmo de autenticação AES MILENAGE. Seu compromisso permite clonar cartões USIM e escutar conversas. T.O. os ataques de cache nos canais de desvio são relevantes para os cartões SIM (usados ​​para acessar a rede 2G) e cartões USIM (usados ​​para acessar redes 3G / 4G). Em 2015, foi descrito o “ataque de energia diferencial” (DPA) - um ataque que recupera chaves de criptografia (usadas pelo algoritmo MILENAGE) e outros segredos do cartão USIM em apenas alguns minutos. [3]



História dos canais de desvio


  • À medida que a complexidade do software aumenta e o número de proteções avançadas de software, a invasão do sistema no nível do hardware, em particular o uso de ataques de cache nos canais de desvio, está se tornando uma alternativa cada vez mais atraente. Esses ataques são baseados em vulnerabilidades encontradas na arquitetura de memória do processador. [4]
  • Em 1985, foi introduzida a tecnologia de leitura de informações em vídeos - medindo a interferência eletromagnética induzida por eles [10]. Com base nessa tecnologia, em 2014 foi desenvolvido um keylogger - construído com base em um smartphone e antena de rádio. [12]
  • Em 1996, foi demonstrado que, medindo cuidadosamente a quantidade de tempo gasto executando operações com chaves privadas, vários sistemas criptográficos, como a cifra DES, podem ser invadidos. Em 2016, foi demonstrado pela primeira vez o ataque aos canais de desvio em um dispositivo de criptografia usando criptografia elíptica avançada; durante o ataque, a chave secreta de descriptografia foi extraída do dispositivo de destino localizado em outra sala. [13]
  • Em 1997, o "método de distorção diferencial" (DFA) foi introduzido - um ataque que usa vários modelos de micro-falhas, bem como vários métodos de análise criptográfica; restaurar configurações secretas de cartões inteligentes e outros dispositivos protegidos contra acesso não autorizado. [11] Tendo acesso físico ao dispositivo, você pode alterar a tensão de alimentação, a frequência do sinal do relógio; ou condições ambientais (temperatura, etc.) - para danificar o cartão inteligente. Além disso, o mau funcionamento do equipamento pode ser acionado - mesmo pela intervenção do software; e, portanto, isso pode ser feito no modo de acesso remoto.
  • Em 2014, foi demonstrado um ataque a desvios de cache; esse ataque usa vazamentos de informações causadas pela diferença no tempo de acesso aos dados, dependendo se eles estão no cache ou não; assim esse ataque deixa claro em quais dados o código sob investigação operou recentemente. Durante esse ataque, uma recuperação completa das chaves AES foi demonstrada. [9] Um pouco mais tarde, em 2015, foi mostrado que os canais de desvio de cache podem ser usados ​​não apenas para atacar sistemas criptográficos, mas também para coletar informações sobre pressionamentos de tecla. [14]
  • Em 2014, foi demonstrado que o acesso à mesma célula de memória em alta frequência pode provocar troca espontânea de bits nos chips DRAM (efeito Rowhammer). [9] Como a DRAM é dimensionada para o menor tamanho, não é fácil impedir a interferência elétrica entre células individuais. É por isso que a ativação de uma determinada linha da memória leva à distorção dos dados nas linhas adjacentes.
  • Em 2015, foi demonstrado que o efeito Rowhammer pode ser usado para elevar privilégios ao superusuário. [15] No mesmo ano, foi demonstrado que a troca espontânea de bits pode ser acionada mesmo com o código Java carregado no site. [7] Inicialmente, esse cenário foi implementado apenas para sistemas Intel e AMD usando módulos DDR3 e DDR4. [16, 17] No entanto, em 2016, esse ataque também foi demonstrado nas plataformas ARM. [1] No mesmo ano, foi demonstrado que ataques de cache também podem ser usados ​​para monitorar a atividade de cache no TrustZone. [1]
  • Em 2016, foi realizada a "engenharia reversa" para as funções de endereçamento DRAM comumente usadas em smartphones modernos. Como resultado, foram descobertas maneiras adicionais de alternar bits disponíveis para implementação em milhões de dispositivos Android, sem a necessidade de trabalhar no modo privilegiado. [1]
  • Em 2016, o ataque no último nível do cache do processador ARM foi demonstrado pela primeira vez. Esse ataque pode ser implementado para ataques de cache internuclear e entre processos nos canais de desvio. [1]


Por que os ataques de cache no ARM são tão únicos


  • Métodos de ataque, como Flush + Reload e Flush + Flush - use a instrução de redefinição de privilégio x86 clflush para remover uma linha de dados do cache. No entanto, com exceção dos processadores ARMv8-A, as plataformas ARM não possuem instruções de redefinição de cache sem privilégios; e, portanto, em 2016, um método indireto de extrusão de cache foi proposto usando o efeito Rowhammer. [1]
  • Para realizar um ataque bem-sucedido ao cache, são necessárias informações como o tempo exato do ciclo de acesso a uma célula de memória. Os ataques anteriores ao cache usavam contadores de desempenho do sistema para esses fins, mas esse método é ineficiente, pois esses contadores nos processadores ARM estão disponíveis apenas no modo privilegiado. No entanto, em 2016, foram propostas três fontes alternativas de sincronização, incluindo as disponíveis no modo não privilegiado. [1] Um deles é o lançamento de um fluxo de sincronização paralelo, que incrementa continuamente uma variável global. Ao ler o valor dessa variável, um invasor pode medir o tempo de ciclo do acesso a uma célula de memória.
  • Além disso, o chamado. política de substituição pseudo-aleatória, como resultado do qual a exclusão do cache é menos previsível do que nos processadores Intel e AMD. No entanto, em 2016, um ataque de cache eficaz foi demonstrado mesmo em condições tão barulhentas - para três smartphones: “OnePlus One” (usa “Snapdragon 801 SoC” com processador “Krait 400” da arquitetura ARMv7-A), “Alcatel One Touch Pop 2 ”(usa o“ Snapdragon 410 SoC ”com o processador“ CortexA53 ”da arquitetura ARMv8-A),“ Samsung Galaxy S6 ”(usa o“ Samsung Exynos 7 Octa 7420 SoC ”com dois conjuntos de processadores“ ARMv8-A ”). [1]


Variedades de ataques de cache


  • Em geral, um ataque de cache nos canais de derivação pode ser dividido em três estágios: 1) identificação do sinal microarquitetural “infiltrando” do sistema eletrônico “com vazamento”; Exemplos típicos desses sinais microarquiteturais com vazamentos são o consumo de energia e a radiação eletromagnética de circuitos integrados. [2, 3]; 2) monitoramento e análise desse sinal durante a operação do sistema; 3) a identificação do sinal microarquitetural das diferenças de padrão. [2]
  • Despejar + tempo. A idéia básica é determinar quais conjuntos de cache o programa vítima está acessando. Algoritmo: 1) mede o tempo de execução do programa da vítima; 2) deslocar uma certa parte do cache; 3) medir o tempo de execução do programa vítima novamente. Usando a diferença de horário entre as duas dimensões, é possível determinar quanto tempo uma certa parte do cache foi usada pela vítima em tempo de execução. Em 2010, um tipo poderoso de ataque baseado no Evict + Time foi demonstrado - contra o AES no OpenSSL; sem a necessidade de textos abertos e criptografados. [18, 19]
  • Prime + Probe. Esse método - como o anterior - permite que um invasor determine quais conjuntos de cache o programa vítima está acessando. Algoritmo: 1) preenche uma certa parte do cache; 2) transferir o controle para o programa da vítima; 3) determine qual parte do cache completo ainda nos pertence. Isso pode ser feito medindo o tempo de acesso aos endereços que o invasor usou para preencher o cache no primeiro estágio. T.O. se o programa vítima usar endereços mapeados para as mesmas áreas do cache que o invasor, forçará os dados do invasor a sair do cache; e um invasor pode rastrear isso no terceiro estágio. Em [19], um ataque usando esse mecanismo foi demonstrado - no OpenSSL AES e no Linux dm-crypt. Em 2015 [20], foi demonstrado como, usando o Prime + Probe, você pode montar o canal secreto internuclear e entre máquinas e atacar ElGamal no GnuPG. No mesmo ano, foi demonstrado um ataque bem-sucedido à implementação do OpenSSL AES na nuvem. [21]
  • Liberar + Recarregar. Em 2011 [22], foi mostrado como o clflush pode ser usado para atacar o AES. Clflush é usado para empurrar uma célula de memória rastreada para fora do cache; seguido por verificar se essa célula foi recarregada no cache após o programa vítima executar um pequeno número de instruções. Algoritmo: 1) Projete um binário (por exemplo, um objeto compartilhado) em seu espaço de endereço (usando uma chamada de sistema apropriada, como mmap); 2) expulsa a linha do cache (código ou dados) do cache; 3) transferir o controle para o programa da vítima; 4) verifique se esta linha de cache (da cláusula 2) foi carregada pelo programa vítima (essa verificação é realizada medindo o tempo de acesso à célula de memória). Em 2014, a restauração completa da chave secreta do AES na máquina virtual VMWare foi demonstrada através de um ataque de cache Flush + Reload. [23] No mesmo ano, usando o mesmo ataque, foi demonstrada a restauração da chave secreta do algoritmo OpenSSL ECDSA (algoritmo de assinatura digital baseado em curvas elípticas). [24] Em 2015, através do ataque Flush + Reload, o mecanismo do sistema de “desduplicação de memória” foi comprometido; como resultado, a possibilidade de comunicação não autorizada entre máquinas virtuais em execução em uma máquina física comum. [25] No mesmo ano, foi demonstrado como usar Flush + Reload para obter informações sobre quais bibliotecas criptográficas são usadas por várias máquinas virtuais em execução em uma máquina física comum. [26] Em 2015, também foi demonstrado que, além de atacar sistemas criptográficos, o método Flush + Reload também pode ser usado para um keylogger. [14]
  • Despejar + Recarregar. Foi introduzido em 2015 [14]. Usa Flush + Reload para extrusão - em vez de instruções de extrusão. Embora esse ataque não faça sentido para o x86 (como o clflush não precisa de privilégios), é muito relevante para os processadores ARM (já que essa instrução está disponível apenas no modo privilegiado). A essência do Evict + Reload é que, para espremer a célula desejada do cache, enchemos o cache com um grande número de endereços interconectados, como resultado do qual o mecanismo responsável pela exclusão decide espremer a célula de cache que precisamos. Além disso, em 2016, foi demonstrado que uma estratégia preventiva eficiente e rápida pode iniciar a troca espontânea de bits em linhas adjacentes dos módulos DRAM (como resultado do acesso múltiplo à mesma linha de memória) usando applets escritos em JavaScript. [24] Assim ataques de cache não dependem mais de instruções privilegiadas de limpeza de cache, como clflush.
  • Flush + Flush. Os ataques Flush + Reload e Prime + Probe causam vários acessos ao cache, cuja duração pode ser medida (através dos contadores de desempenho do sistema). O ataque Flush + Flush, lançado em 2015, é precisamente baseado nessas observações. [8] O ataque é quase o mesmo que Flush + Reload. Um objeto de arquivo binário ou dividido é mapeado para o espaço de endereço do invasor. A célula de memória é forçada a sair do cache e o controle é transferido para o programa vítima. No entanto, em vez do estágio de reinicialização, onde a célula que estamos observando está sendo acessada, ela é novamente substituída; sem causar erros, em comparação com Flush + Reload ou Prime + Probe. T.O. É fácil saber se um local de memória está armazenado em cache ou não.
  • AnC. Esta é uma modificação mais recente do ataque de cache "Evict + Time", lançado em 2017. [4] Uma característica distintiva do AnC é que esse ataque de cache depende da análise de tabelas de páginas em cache, usadas na maioria dos processadores modernos (Intel, AMD, ARM). [4] Hoje, no coração de qualquer processador está uma "unidade de gerenciamento de memória" (MMU), que simplifica o gerenciamento da memória física disponível - através de sua virtualização; para uso subseqüente por vários processos. A MMU usa a estrutura de dados da "tabela de páginas" para mapear células de memória física e virtual. Tabelas de páginas é um alvo atraente para ataques de hardware. Por exemplo, alternância espontânea de apenas um bit (causado pelo efeito Rowhammer) na "tabela de páginas" - pode ser suficiente para o invasor obter controle sobre o endereço físico da memória à qual ele não deve receber acesso; e isso pode ser suficiente para obter privilégios de superusuário. [4]


Efeito Rowhammer


  • Um chip DRAM separado tem uma capacidade pequena e, portanto, vários microcircuitos são conectados juntos em uma placa - para formar os chamados Série DRAM. Um módulo de memória DRAM pode conter uma ou mais linhas DRAM. Um chip DRAM consiste em uma matriz bidimensional de células. Cada célula DRAM é um capacitor; 0 e 1 são o estado carregado ou descarregado do capacitor. Cada célula da grade é conectada a uma célula vizinha por fio. Se alguma célula estiver ativada, a tensão será aplicada ao capacitor e a todos os outros capacitores da mesma linha. Como as células de memória se tornam cada vez menores e mais próximas umas das outras à medida que o progresso tecnológico, a interferência causada pela ativação de uma linha de memória freqüentemente afeta as cargas de capacitores das linhas adjacentes. Em 2014, foi demonstrado [9] que o acesso frequente à mesma célula de memória DRAM leva ao efeito Rowhammer - comutação espontânea de bits. Este efeito pode ser usado para aumentar privilégios (por exemplo, para sair da caixa de proteção de segurança [15]); ele pode ser implementado, entre outras coisas, como resultado da execução de código JavaScript não privilegiado localizado no site.
  • Para "entupir" uma célula de memória específica, um invasor precisa encontrar dois endereços no mesmo banco DRAM - mas em linhas diferentes. Certos bits de endereço são usados ​​para selecionar a linha, canal e banco da localização da memória. No entanto, como a função de amostragem funciona não está documentada. Portanto, em 2015 [27] foi introduzido um mecanismo para a automação completa da engenharia reversa da função correspondente; usando o fato de que "conflitos de string" levam a um aumento no tempo de acesso à memória. A essência da abordagem usada é procurar endereços mapeados para o mesmo banco DRAM, mas em uma linha diferente; medindo repetidamente o tempo de acesso a dois endereços aleatórios. Para alguns pares de endereços, o tempo de acesso é maior que para outros - isso significa que eles pertencem a linhas diferentes, mas ao mesmo banco. Em seguida, esses endereços são agrupados em conjuntos com o mesmo canal, linha e banco. Esses endereços identificados são então usados ​​para reconstruir a função de endereçamento - gerando todas as funções lineares e aplicando-as a todos os endereços de um subconjunto selecionado arbitrariamente. T.O. Como o espaço de pesquisa é pequeno, a força bruta é muito eficaz aqui. [1]
  • As primeiras implementações de ataques usando o efeito Rowhammer se baseavam em métodos probabilísticos (devido aos quais uma falha não planejada do sistema poderia ocorrer durante o ataque); ou funções especializadas de gerenciamento de memória: desduplicação de memória, paravirtualização de MMU, interface de mapa de página. No entanto, essas funções em dispositivos modernos ou não estão disponíveis ou desativadas por motivos de segurança. [30]
  • Portanto, em 2016, o ataque do Drammer foi introduzido - livre das desvantagens e limitações listadas. Ele depende apenas dos recursos atuais dos sistemas operacionais modernos, disponíveis sem direitos de superusuário. Em particular, o comportamento previsível do subsistema de distribuição da memória física. Essa previsibilidade é usada para obter a distribuição da memória física (na qual os dados confidenciais serão processados, como tabelas de páginas da memória) em um local vulnerável da memória física escolhida pelo invasor. A técnica correspondente de "massagear a memória" foi chamada de Phys Feng Shui. Para demonstrar a operacionalidade do ataque Drammer, é fornecida uma implementação de exploração que fornece acesso ao diretório raiz de um dispositivo Android. Essa exploração pode ser iniciada por qualquer aplicativo sem permissão especial; e sem explorar nenhuma vulnerabilidade de software. [30]
  • T.O. Drammer , Rowhammer ( Intel AMD), ( ARM-); , . [30]
  • 2016 « » Flip Feng Shui (FFS) – Rowhammer, ; ; . FFS , Ubuntu/Debian. [31]
  • 2017 , MLC NAND -, SSD-, – , Rowhammer. . – . [5]



  • - ; . , ; . [1]
  • ( ) – , , . ( – , ). , – , . – . [1]
  • – ; Windows 8.1 10. – , « ». – . , , . , « », , . , , , . [35]
  • 2016 , – . . -, , , – ; (, 64- ). -, , , , . -, , , - – . [35]
  • , JavaScript- Microsoft Edge – . ; . , - ngnix , , : , . [35]
  • .. . , , . [35]



  • ASLR ( ) ( ) . «» , . , « » , . , ASLR – - . [33]
  • 2016 ASLR 32- 64- Linux, « ». , , – . . .. ASLR . [33]
  • ASLR – , , .. «- » (ROP). , , , , . . [37]
  • 2017 KAISER, , . , , – , . [37] , KAISER BTB ( ), 2016 . [36]
  • 2016 (BTB). BTB- 30 . -, BTB, – . , 30- , – . , , . BTB- . , Intel Skylake (Intel Skylake i7-6700K), . . [36]
  • 2017 , , - . [34]



  • . - – , . , . [29]
  • - - – ; Flush+Reload, Evict+Reload Flush+Flush. - . «» « ». Android , , – ; (. [28]). .. .
  • , - . – . , - , , , . [1] ; ; « » « », ; . - TCP .
  • 2017 , SSH, (45 /); . SSH-, , , telnet-. [29]
  • 2015 , . – ( , ), . . [32]
  • , . . -, ; , ; .. , . -, ( ). [32]
  • , , (16 ). , « » Intel Xeon ( 8 ) 12,5/. 5 4 . [32]
  • 2015 , . , , – . [32]
  • Em 2016, foi introduzida uma nova implementação do canal oculto no Android, que funciona 250 vezes mais rápido do que qualquer outra implementação proposta anteriormente. [1]

Bibliografia

1. Moritz Lipp, Daniel Gruss. ARMageddon: ataques de cache em dispositivos móveis // Anais do 25º Simpósio de Segurança da USENIX. 2016. pp. 549-564.
2. Robert Callan. Metodologia prática para medir o sinal de canal lateral disponível ao atacante para eventos em nível de instrução // 47º Simpósio Anual Internacional de Microarquitetura da IEEE / ACM (MICRO), páginas 242-254, dezembro de 2014.
3. Junrong Liu. Pequenos ajustes não ajudam: Análise de potência diferencial de implementações MILENAGE em cartões USIM 3G / 4G. BlackHat 2015.
4. Herbert Bos, Ben Gras. Cache de tabela de página de hardware de engenharia reversa usando ataques de canal lateral na MMU . 2017.
5. Yu Cai, Saugata Ghose. Vulnerabilidades na programação de memória flash MLC NAND: técnicas de análise experimental, exploração e mitigação // 23º Simpósio IEEE sobre arquitetura de computadores de alto desempenho, Sessão industrial, fevereiro de 2017.
6. Falkner Katrina. Flush + Reload: Um ataque de canal lateral de cache L3 de alta resolução e baixo nível de ruído // Anais do 23º Simpósio de Segurança da USENIX. 2014. pp. 719-732.
7. Gruss Daniel, Maurice Clementine M angard, Stefan. Rowhammer.js: um ataque remoto induzido por software em JavaScript . 2016.
8. Gruss Daniel, Wagner Klaus. Flush + Flush: um ataque de cache de último nível mais furtivo . 2015.
9. Kim Yoongu, Daly Ross. Lançando bits na memória sem acessá-los: um estudo experimental de erros de perturbação de DRAM // Processo do 41º Simpósio Anual Internacional de Arquitetura de Computadores. Piscataway, NJ, EUA: IEEE Press, 2012 (ISCA '14).
10. Eck Wim. Radiação eletromagnética das unidades de exibição de vídeo: um risco de espionagem? // Computadores e segurança. Não. 4, 1985. pp. 269-286.
11. Biham Eli, Shamir Adi. Análise diferencial de falhas do sistema de criptografia de chave secreta // Avanços na criptografia - CRYPTO '97 Bd. 1294
12. Callan Robert, Zajic Alenka. Metodologia prática para medir o sinal de canal lateral disponível para o atacante para eventos em nível de instrução // Anais do 47º Simpósio Anual Internacional de Microarquitetura do IEEE / ACM. 2014. pp. 242-254.
13. Genkin Daniel. Extração de chave ECDH por ataques eletromagnéticos de baixa largura de banda em PCs // Cryptology ePrint Archive, Relatório 2016/129.
14. Gruss Daniel. Ataques de modelo de cache: Automatizando ataques em caches de último nível inclusivos // Anais do 24º Simpósio de Segurança USENIX. 2015. pp. 897-912.
15. Marca maritima. Explorando o bug do DRAM rowhammer para obter privilégios de kernel . 2015.
16. Gruss Daniel. Rowhammer bitflips no Skylake com DDR4 . 2016.
17. Mark Lanteigne. Como o Rowhammer pode ser usado para explorar fraquezas no hardware do computador . 2016.
18. Osvik Dag, Shamir Adi. Ataques de cache e contramedidas: o caso da AES // Tópicos em Criptologia. 2005. pp. 1-20.
19. Tromer Eran, Osvik Dag. Ataques de cache eficientes no AES e contramedidas // Journal of Cryptology. 23 (1), 2010. pp. 37-71.
20. Liu Fangfei, Yarom, Yuval. Os ataques de canal lateral do cache de último nível são práticos // Anais do Simpósio IEEE de Segurança e Privacidade Bd. 2015. pp. 605-622.
21. Eisenbarth Thomas. Um ataque de cache compartilhado que funciona em núcleos e desafia o VM Sandboxing - e seu aplicativo no Simpósio AES // IEEE sobre segurança e privacidade. 2015.
22. Gullasch David, Bangerter Endre. Jogos em cache - Trazendo ataques de cache baseados em acesso ao AES para a prática // Procedimentos do Simpósio IEEE sobre segurança e privacidade. 2011. pp. 490-505.
23. Irazoqui Gorka, Inci Mehmet. Espere um pouco! Um ataque rápido entre VMs no AES // Notas de aula em Ciência da Computação Bd. 2014. pp. 299-319.
24. Yarom Yuval, Benger Naomi. Recuperando nonces do OpenSSL ECDSA usando o ataque de canal lateral do Flush + Reload Cache // Cryptology ePrint Archive, Relatório 2014/140 (2014).
25. Gulmezoglu Berk, Inci Mehmet. Um ataque de descarga + recarga mais rápido e realista na AES // Anais do 6º workshop internacional sobre análise construtiva de canais laterais e design seguro. 2015. pp. 111-126.
26. Irazoqui Gorka, Inc. Mehmet. Conheça o seu vizinho: detecção de biblioteca de criptografia na nuvem // Procedimentos das tecnologias de aprimoramento da privacidade. 2015. pp. 25-40.
27. Pessl Peter, Gruss Daniel. Engenharia reversa Endereçamento e exploração de DRAM da Intel . 2015.
28. Marforio Claudio, Ritzdorf Hubert. Análise da comunicação entre aplicativos em conluio em smartphones modernos // Anais da 28ª Conferência Anual de Aplicações de Segurança em Computadores. 2012. pp. 51-60.
29. Clementine Maurice, Manuel Webe. Olá do outro lado: SSH sobre canais secretos de cache robusto na nuvem . 2017.
30. Victor van der Veen, Lindorfer. Drammer: Ataques determinísticos de Rowhammer em plataformas móveis // Anais da Conferência ACM SIGSAC de 2016 sobre segurança de computadores e comunicações. 2016. pp. 1675-1689.
31. Kaveh Razavi, Ben Gras. Flip Feng Shui: martelando uma agulha na pilha de software // Anais do 25º Simpósio de Segurança da USENIX. 2016. pp. 1-18.
32. Ramya Jayaram Masti, Devendra Rai. Canais encobertos térmicos em plataformas multinúcleo // Anais do 24º Simpósio de Segurança USENIX. 2015. pp. 865-880.
33. Angelos Oikonomopoulos. Cutucando Buracos em Ocultar Informações // Anais do 25º Simpósio de Segurança USENIX. 2016. pp. 121-138.
34. Koen Koning. Não há necessidade de se esconder: proteger regiões seguras em hardware de commodities // Anais da décima segunda conferência europeia de sistemas de computadores. 2017. pp. 437-452.
35. Erik Bosman. Dedup Est Machina: Desduplicação de memória como vetor de exploração avançada // Anais do Simpósio IEEE de segurança e privacidade. 2016. pp. 987-1004.
36. Evtyushkin, D., Ponomarev, D. Salte sobre o ASLR: Atacando os preditores do ramo para contornar o ASLR // Anais do 49º Simpósio Internacional de Microarquitetura. 2016. pp. 1-13.
37. Daniel Gruss, Moritz Lipp. KASLR está morto: viva o KASLR . 2017.

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


All Articles