스택 보호 기능으로 LLVM 암 백엔드 오버플로우의 취약점 해결
김진범
jinbum01@codingworldnews.com | 2019-07-17 14:36:30
스택보호 장치 슬롯을 다시 할당하면 LLVM의 암 백엔드에서 스택 보호 기능의 취약점이 사라진다고 영국의 IT전문지 Packt에서 밝혔다.
스택 보호 기능은 선택적으로 LLVM 암 백엔드의 버퍼 오버 플로우를 방지하는데 사용된다. 이 기능을 작동 시키려면 로컬 변수와 스택프레임 리턴 주소 사이에 쿠키 값이 추가된다. 이 값을 메모리에 저장한 후 컴파일러는 LocalStackSlotAllocation 함수로 쿠키를 확인한다. 이 함수는 값이 변경 되었거나 겹쳐 썼는지 확인하며 주소값이 변경된 것으로 판별되면 종료된다.
나중에 새 값이 할당되면 스택 보호 장치 슬롯은 보호 해야하는 로컬 변수 뒤에만 나타나기 때문에 비효율적이다. 스택 쿠키 포인터가 값을 덮어 쓸 수도 있다. 이것은 스택 보호 기능이 비효율적으로 렌더링 될 때 발생한다.
스택 보호 기능이 비효율적으로 되면 스택 기반 버퍼 오버플로에 취약해진다. 이로 인해 반송 주소가 변경되거나 쿠키가 덮어 쓰기되어 의도하지 않은 값이 수표로 전달될 수 있다.
스택 취약점에 대한 제안된 솔루션은 LLVM 과 Arm 의 최신 업데이트를 적용하는 것이다.
올해는 많은 경우에 버퍼 오버 플로우 취약점이 발생했다. VLC 3.0.7의 6 월 릴리스에서는 많은 보안 문제가 해결되었다. 해결된 높은 보안 문제 중 하나는 VLC 4.0의 RIST 모듈에서 스택 버퍼 오버 플로우에 관한 것이다.
[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]