윈도우즈 Time Travel Debugging

아주 아주 예전에 페이스북에서도 몇번 언급하기도 했었지만, 2010년대 초반기에 내가 한창 즐겨쓰던 내부툴중의 하나, 바로 Time Travel Debugging. 내가 Microsoft에 와서 가장 신기하게 생각했던 툴 중의 하나였음.

예전 2012년에 캔섹웨스트에서 발표했던 데이타 플로우 분석 페이퍼는 바로 이 툴을 사용한 것이었음. 여기에서는 그 당시 어도비 리더 제로 데이를 대상으로 어떻게 취약점이 발생했는지 를 추적하는 과정이었던 걸로 기억함. 특히나 UAF의 경우에는 RCA (root cause analysis)가 굉장히 까다롭기 때문에 TTD가 굉장히 큰 힘을 발휘함.


Memory tracing – excerpt from the sldie

뭐 생각에 따라서는 야 거꾸로 실행이 가능하면 게임 끝난 것 아니야 하는 생각이 들지만, 솔직히 TTD를 사용해도 역시나 굉장히 챌린징한게 바로 vulnerability analysis 또는 triaging이라는 프로세스이다. 지금은 많이 자동화된 걸로 (주로 콜스택을 가지고 버킷에 집어 넣어서 클러스트링하는 방식으로) 알고 있음. TTD 자체가 triaging 용도로 개발 된거라 취약점 분석에는 약간 기능이 모자라는 부분이 있지만, 흥미 진진하게 사용 가능함.

가능하다면, 혹시라도 누가 관심 있다면 취약점 분석 training 코스를 열게 되면 이 TTD 사용하는 트릭 같은 것 한번 포함시켜 보고 싶음. 나야 뭐 이거 가지고 논게 벌써 오래전 일이지만, 처음 보는 사람들은 진짜 신기할테니까. 관심 있으신 분은 아래의 폼에서 ” Advanced exploit and malware analysis (including Time Travel Debugging)”을 선택해 주시기를…

Leave a Reply