스펙터는 CPU(주로 인텔)의 투기 실행 기능을 악용하는 취약점입니다. 지금까지 스펙터를 악용한 멀웨어를 실행하려면 로컬에서 프로그램을 실행해야 했습니다. 원격 실행은 잘 만든 자바스크립트나 감염된 파일을 처리하도록 만든 클라우드 호스트에서만 가능했습니다.
그런데 멜트다운 취약점을 발견해낸 사람이, 원격 컴퓨터의 프로그램을 공격자가 실행하지 않아도 메모리를 일어낼 수 있게 해주는 네트워크 기반 공격인 넷스펙터를 발견했습니다.
프로세서가 추측 과정을 성공하거나 실패했을 때 복귀하는 시간을 측정, 메모리에서 특정 데이터를 유도합니다. 프로세서는 코드를 실행하면서 다음 명령어나 데이터가 무엇인지를 추측하고 결과를 미리 저장합니다. 성공한 추측은 시간을 줄이지만 실패하면 해당 단계를 반복해야 합니다. 프로세서가 실행하는데 걸린 시간을 측정하면 메모리의 내용이 성공인지 실패인지를 파악할 수 있습니다.
다행인 건 그 과정이 매우 느리다는 겁니다. 1비트의 값을 유도하기 위해 100,000번의 측정을 수행합니다. 1바이트를 추츨하려면 30분이 걸립니다. 코드가 AVX2 레지스터를 사용한다면 1바이트에 8분입니다. 이런 속도로 1MB의 데이터를 만드려면 15년이 걸립니다. 다만 몇 바이트 길이의 암호화 키를 만들고 찾는지를 확실히 알고 있다면 약간의 시간만으로도 중요한 데이터를 빼낼 수 있겠죠.