스펙터 취약점 (Spectre)
쉽게 풀면
요즘 CPU는 속도를 높이려고 '다음에 이 코드가 실행될 것'이라고 예측해 미리 계산해 둡니다(투기적 실행). 예측이 틀리면 결과를 버리지만, 그 과정에서 캐시 메모리에 흔적이 남습니다. 스펙터는 공격자가 CPU가 일부러 잘못 예측하게 만든 뒤, 캐시에 남은 흔적의 접근 시간을 재서 원래 볼 수 없는 비밀 데이터를 알아내는 공격입니다. 2018년 1월 멜트다운과 함께 공개되었습니다.
왜 중요한가
스펙터는 소프트웨어가 아니라 CPU 설계 원리 자체에서 생긴 취약점이어서, 거의 모든 현대 프로세서가 영향을 받았습니다. 성능 최적화와 보안이 충돌할 수 있다는 사실을 드러내어, 하드웨어 보안과 컴퓨터 구조 연구의 방향을 크게 바꾼 사례입니다.
논문에서는 이렇게 쓰입니다
보안 대책이 성능에 미치는 비용을 평가한 문장입니다.
하드웨어 수준의 방어 기법을 제안하는 연구 예입니다.
조금 더 깊게 보면
스펙터는 '변형' 여러 개를 가진 공격 계열로, 대표적으로 경계 검사를 우회하는 방식과 간접 분기 예측기를 오염시키는 방식이 있습니다. 공격의 마지막 단계에서는 캐시 메모리 접근 시간 차이를 이용하는 캐시 타이밍 부채널 기법으로 데이터를 읽어 냅니다. 완전한 해결은 하드웨어 재설계가 필요해, 소프트웨어 패치·컴파일러 방어·마이크로코드 업데이트가 함께 쓰였습니다.
주의할 점
부채널 공격은 전력·시간·전자파 같은 부수 정보로 비밀을 알아내는 공격 전반을 가리키고, 스펙터는 투기적 실행을 악용하는 특정 CPU 취약점입니다. 같은 시기 공개된 멜트다운과 이름이 자주 함께 나오지만, 원리와 영향 범위가 다른 별개의 취약점입니다.