관련 사건이 뭔가 해서 찾아보았었는데요.
Meltdown 버그는 무려 인텔 cpu의 OoOE(out of order execution)버그라고 하네요...
레딧 링크 - https://www.reddit.com/r/sysadmin/comments/7nl8r0/intel_bug_incoming/?st=jc8xfk8u&sh=c3275847 를 참고해보시면 정보가 많이 나와있구요.
현대의 cpu는 여러 단계의 execution pipeline(메모리 읽기, 처리, 연산주소 등등...)로 구성되어 있고
명령어를 순차적으로만 처리하기에는 노는 pipeline가 많으므로, 사전에 예측해서 연산함으로서 성능을 올릴 수 있게 한 게 OoOE인데... 여기서 예측버그를 이용해 해킹을 할 수 있다고 하네요.
물론 정교한 시간 제어와 어셈블리 레벨에서의 접근이 필요하기는 하지만... OoOE와 Speculative execution 에서, intel cpu는 예외처리에 대해 commit 단에서 시행하기에 이 시차를 이용해 공격할 수 있고, AMD cpu는 execute 단에서 실행차단이 되도록 하였기 때문에 해킹이 안 된다고 하네요.
관련 내용 참고는 : https://namu.wiki/w/CPU%EA%B2%8C%EC%9D%B4%ED%8A%B8?from=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 를 보시면 될 듯 싶구요.
이걸 이용하면, 명령어 실행 취소가 되기 전에 해킹 명령어를 실행해서 커널의 주소값을 알아낼 수 있다고 해요.
해당 문제점을 막기 위한 패치의 결과
INTEL cpu들의 OOoE기능을 일부 제약함으로서 평균 25% - 30% 정도의 성능 하락이 일어났다고 합니다....
Spectre 버그는, Branch Target Injection(메모리 점프), Bounds Check Bypass(조건문 실행)시에 발생하는데요.
위의 멜트다운과 유사한 메모리 실행 오류로서, 메모리 취소 버그로 인해 다른 프로세스의 메모리 영역에 접근하는 게 가능해지는 경우가 있다는군요.
위의 멜트다운 버그와 다르게 발생조선이 일정하지 않아서 해결이 더 어렵다고 하네요.
특히 이 버그의 문제점은, KVM등 가상 서비스에서 원래 운영체제의 메모리에 접근이 가능해질 수도 있다는 것으로, 이 방식을 이용하면 기존 가상운영체제 서비스의 근간을 위협할 수도 있을 듯 싶네요.
AMD, ARM을 포함한 현대의 고성능 cpu들은, 거의 모든 cpu들이 이 문제가 발생할 수 있다고 해요.
현대 cpu에 있어 상당히 치명적인 위의 2가지 버그는 구글에 의해 2917년 6월경에 발견되었다고 하며, 비밀리에 관련 업체들에게 정보가 알려졌었다고 하네요.
그러다가 일부 정보가 누출되어 예상보다 조금 빠른 2018년 1월 3일경에 공개되었다고...
브라우저에 쓸 수 있는 자바스크립트를 이용하면 해당 버그를 이용하여 공격을 가할 수 있는데, 이를 막기 위해 브라우저의 시계 정확성을 낮추는 패치를 진행하였다고 해요.
Meltdown 공격 영상도 있네요...
댓글 없음:
댓글 쓰기
글에 대한 의문점이나 요청점, 남기고 싶은 댓글이 있으시면 남겨 주세요. 단 악성 및 스팸성 댓글일 경우 삭제 및 차단될 수 있습니다.
모든 댓글은 검토 후 게시됩니다.