본문 바로가기

Academy I/Windows

[Windows10]인텔 역사상 최악의 사고


메모리에 입력되는 비밀번호가 키로거도 필요없이 CPU에 정보 들어가는 순간 노출되고 있다.[1]

2018년 1월 3일 레딧 게시판에서 처음 언급되어 확산되고 있는, 인텔 CPU 아키텍처의 중대한 보안 버그 및 그 대응 진행과정이다. 고쳐진 보안 버그도[2] 그것대로 백신 보안 시스템을 무시하고 시스템을 망가뜨릴 수 있는 치명적인 버그였으며, 그보다 더 논란이 된 부분은 그 보안 패치로 인한 성능 저하이다.

발견된 버그는 멜트다운 취약점으로 불리며, 이 사이트[3]에서 자세한 기술 문서를 확인할 수 있다.




레딧에서 알려진 멜트다운 버그의 내용은 다음과 같다.


- 해당 버그는 인텔의 몇 세대에 걸친 버그입니다. 인텔 한정으로, AMD는 영향없는 것으로 보입니다.(다만 현재 커널 패치에서는 AMD를 수정사항에서 제외하는 항목이 머지되지 않은 상태입니다. 즉 현 커널 패치에서는 같이 성능이 떨어질 것으로 예상)
- 해당 버그는 리눅스뿐만 아니라 Windows, macOS 모두에 영향을 줍니다.
- 해당 버그는 엠바고로 인해 아직 전모가 밝혀지지는 않았습니다.
- 해당 버그는 인텔 CPU의 버그로 인해 커널 메모리 정보가 유저 공간으로 유출될 수 있는 결함입니다.
- 해당 버그로 인해 크게 공개되지는 않았지만 데이터 센터/클라우드 업체 등에서는 상당한 물밑작업이 진행되었을 것으로 예상됩니다.
- 해당 버그의 수정으로 인해 발생하는 성능 손실은 각 OS와 기타등등에 따라 다르지만 대략 5~30% 정도로 알려져 있습니다.
- 해당 버그에 대응하는 리눅스 커널 패치는 이미 릴리즈 되었습니다.
- PCID 기능이 적용된 신형 인텔 CPU에서는 해당 버그의 커널 패치로 인한 성능 저하가 완화되는 것으로 알려져 있습니다.
- 해당 버그에 대응하는 리눅스 커널 패치를 적용하고 테스트 해 보니....

  1. 파일시스템 I/O쪽은 성능이 반토막이 납니다.

  2. 컴파일러 벤치마크 중 initial setup 항목에서 15% 정도 성능이 저하됩니다.

  3. 커널 컴파일, 인코딩 등은 큰 영향이 없는 것으로 나타납니다.

  4. SQL 같은 DB 관련 벤치에서도 15% 정도 성능이 저하됩니다.

  5. 데이터 스트럭처 서버라는 것에서 6% 정도 깨집니다.

  6. 게임은 영향이 거의 없습니다.[4][5]




멜트다운 버그와 스펙터 버그 두개가 같은 연구진에 의해서 발견되었는데,
멜트다운 버그는 유저 프로그램이 운영체제 권한 영역 훔쳐보는 버그고, 스펙터 버그는 한 유저 프로그램이 다른 유저 프로그램 메모리를 훔쳐보는 버그이다.

이름에서 볼 수 있듯, 멜트다운 버그가 좀 더 심각한 버그임.
애초에 운영체제의 보안 자체가 철저하게 개박살 난다고 해서 멜트다운....
스펙터는 이보단 덜 심각하고, 구현하기도 어렵지만, 반대로 막는 것도 어렵다고 해서 마치 유령같은 놈이라 하여 스펙터가 됨.
일단 멜트다운은 현재로서는 인텔에서만 발생한다고 알려져 있음.[10]
(비순차적 실행(OOE) 구조의 결함 때문인데, 다른 프로세서들의 비순차 실행 엔진이 인텔과 같지 않아서)
하지만 스펙터는 명령어 캐쉬 메모리를 탑재하는 현존하는 모든 프로세서에서 공통적으로 발생이 가능하다고 함.[11]
(all modern processors capable of keeping many instructions in flight are potentially vulnerable)



1) 알려진 것과 달리, CPU 보안 버그는 하나가 아니라 2개.
2) 멜트다운 버그와 스펙터 버그중 더 심각한 것은 전자, 해당 버그는 인텔 CPU와 일부 ARM Cortex 제품군에서만 발생.
3) 스펙터 버그는 인텔, AMD, ARM 프로세서에서 발견.
4) 업데이트는 2가지 버그 다 수정하는데, 멜트다운 버그 해결 과정에서 성능저하가 크게 발생.



[출처 : https://namu.wiki/w/2018%EB%85%84%20%EC%9D%B8%ED%85%94%20CPU%20%EB%B3%B4%EC%95%88%20%EB%B2%84%EA%B7%B8%20%EC%9C%A0%EC%B6%9C]