Ensino de Arquitetura e as Predições Tomadas por Desempenho com as Predições não Tomadas pela Segurança: Vulnerabilidades Meltdown e Spectre
DOI:
https://doi.org/10.5753/ijcae.2018.4851Keywords:
Execução fora de ordem, Execução especulativa, Memória cache, Spectre, MeltdownAbstract
Na busca por desempenho não foram levados em consideração os efeitos colaterais gerados pelas correlações entre as otimizações, resultando hoje em vulnerabilidades como Spectre e Meltdown que ameaçam a segurança dos processadores fabricados nas duas últimas décadas. Este artigo apresenta uma abordagem para motivar o ensino de arquitetura de computadores para melhor compreender as vulnerabilidades, mostrando que uma visão ampliada e correlacionada de vários temas é necessária. Estes temas incluem a execução fora de ordem, a execução especulativa, as caches, os medidores em hardware, a memória virtual, dentre outros. A primeira parte deste trabalho apresenta uma proposta simplificada de ensino das otimizações para buscar desempenho e como correlacioná-las para fundamentar a explicação das vulnerabilidades. A metodologia é baseada em exemplos. A segunda parte mostra experimentos que podem ser utilizados para avaliar alguns impactos das vulnerabilidades. As grandes empresas do ramo, como Intel, AMD, ARM, entre outras, desenvolveram patches de correção. Porém os patches impactam diretamente no desempenho dos sistemas. Além da abordagem para ensino, o impacto do desempenho computacional com e sem os patches de segurança é ilustrado. A partir de testes feitos em benchmarks, foram observadas perdas de desempenho em torno de 10% para o conjunto de programas do Linux-Bench, podendo chegar a 16% para o conjunto de programas do GtkPerf a fim de garantir da proteção dos sistemas.
Downloads
Referências
AMD. Amd processor security updates. Disponível em: [link]. Acessado em: 17/06/2018, 2018.
Android. Android security bulletin—january 2018. Disponível em: [link]. Acessado em: 17/06/2018, 2018.
Apple. About speculative execution vulnerabilities in arm-based and intel cpus. Disponível em: [link]. Acessado em: 17/06/2018, 2018.
ARM Developer. Speculative processor vulnerability. Disponível em: [link]. Acessado em: 17/06/2018, 2018.
H. P. Baranda, J. C. Penha, and R. Ferreira. Implementacao de um preditor de desvio no mips 5 estagios. International Journal of Computer Architecture Education, 6, 2018.
J. Charles, P. Jassi, N. S. Ananth, A. Sadat, and A. Fedorova. Evaluation of the intel® core™ i7 turbo boost feature. In Workload Characterization, 2009. IISWC 2009. IEEE International Symposium on, pages 188–197. IEEE, 2009.
I. Coorporation. Intel 64 and ia-32 architectures optimization reference manual, 2009.
Google. Today’s cpu vulnerability: what you need to know. Disponível em: [link]. Acessado em: 17/06/2018, 2018.
GtkPerf. Gtkperf benchmark. Disponível em: [link]. Acessado em: 02/08/2018, 2018.
M. Hashemi, E. Ebrahimi, O. Mutlu, Y. N. Patt, et al. Accelerating dependent cache misses with an enhanced memory controller. In ACM SIGARCH Computer Architecture News, volume 44, pages 444–455. IEEE Press, 2016.
J. Horn. Reading privileged memory with a side-channel. Project Zero, 3, 2018.
Intel. Intel responds to security research findings. Disponível em: [link]. Acessado em: 17/06/2018, 2018.
M. Klein. Meltdown and spectre, explained, 2018.
P. Kocher, D. Genkin, D. Gruss, W. Haas, M. Hamburg, M. Lipp, S. Mangard, T. Prescher, M. Schwarz, and Y. Yarom. Spectre attacks: Exploiting speculative execution. ArXiv e-prints, Jan. 2018.
J. Levin. Mac OS X and IOS Internals: To the Apple’s Core. John Wiley & Sons, 2012.
R. H. E. Linux. Kernel Side-Channel Attacks - cve-2017-5754 cve-2017-5753 cve-2017-5715, 2018.
R. H. E. Linux. Speculative Execution Exploit Performance Impacts - describing the performance impacts to security patches for cve-2017-5754 cve-2017-5753 and cve-2017-5715, 2018.
Linux-Bench. Linux-bench benchmark. Disponível em: [link]. Acessado em: 02/08/2018, 2018.
M. Lipp, M. Schwarz, D. Gruss, T. Prescher, W. Haas, S. Mangard, P. Kocher, D. Genkin, Y. Yarom, and M. Hamburg. Meltdown. ArXiv e-prints, Jan. 2018.
Microsoft. Windows client guidance for it pros to protect against speculative execution side-channel vulnerabilities. Disponível em: [link]. Acessado em: 17/06/2018, 2018.
Microsoft Azure. Securing azure customers from cpu vulnerability. Disponível em: [link]. Acessado em: 17/06/2018, 2018.
I. of Applied Information Processing and Communications. Meltdown proof-of-concept, 2018.
O. Sibert, P. A. Porras, and R. Lindell. The intel 80/spl times/86 processor architecture: pitfalls for secure systems. In Security and Privacy, 1995. Proceedings., 1995 IEEE Symposium on, pages 211–222. IEEE, 1995.
J. E. Smith. Dynamic instruction scheduling and the astronautics zs-1. Computer, 22(7):21–35, July 1989.
R. M. Tomasulo. An efficient algorithm for exploiting multiple arithmetic units. IBM Journal of Research and Development, 11(1):25–33, Jan 1967.
E. Tromer, D. A. Osvik, and A. Shamir. Efficient cache attacks on aes, and countermeasures. Journal of Cryptology, 23(1):37–71, 2010.
Y. Yarom and N. Benger. Recovering openssl ecdsa nonces using the flush+ reload cache side-channel attack. IACR Cryptology ePrint Archive, 2014:140, 2014.
Downloads
Published
Como Citar
Issue
Section
Licença
Copyright (c) 2018 Os autores
Este trabalho está licenciado sob uma licença Creative Commons Attribution 4.0 International License.