살짝 늦었지만, CGC (Cyber Grand Challenge) 참관 후기입니다. CGC는 제 개인적으로는 굉장히 뜻깊은 대회였고, KaisHack GoN 멤버들과 함께 할 수 있어서 더욱 좋았습니다. 참고로 CGC Final Event의 동영상은 다음의 링크를 통해 확인할 수 있습니다.
지금까지 미국 국방성(DARPA)에서는 핵심 과학분야를 발전시키기위해 여러가지 대회를 개최했습니다. 예를 들어 요즘 한창 뜨고있는 무인자동차 분야는 이미 2004년에 DARPA Grand Challenge 라는 이름으로 시작되었죠. 그 당시만 해도 무인자동차는 먼 미래의 일처럼 느껴졌습니다. 하지만 10년이 지난 요즈음에는 무인자동차라는 말이 전혀 어색하지 않게 되었죠. 비슷한 취지로 로보틱스분야의 대회가 2012년부터 시작되었는데 (DARPA Robotics Challenge), 2015년에는 KAIST 오준호 교수님께서 우승하기도 했습니다.
이러한 연장선에 있는 대회가 바로 CGC입니다. DARPA가 생각하는 사이버분야에 있어서의 핵심 challenge는 바로 "자동화된 해킹"이었던 것이죠.
자동화된 해킹은 사실 2005년도 부터 연구가 시작된 분야입니다. ICSE 2005에 발표된 해당 논문은 최초로 자동화된 익스플로잇 생성을 verification문제로 간주한 연구였고, 이후 2008년에는 패치를 기반으로한 익스플로잇 생성, 2011년에는 소스코드 기반의 익스플로잇 자동 생성, 그리고 2012년에는 바이너리 기반의 익스플로잇 자동생성 연구가 나타났습니다. 그리고 그 이후로 수많은 연계 연구들이 나타나기 시작했죠.
사실 이때까지만 해도 많은 해커들이 이 기술에 대한 실용성에 의문을 제기했습니다. 왜냐하면 자동화된 익스플로잇 생성 기술들은 SMT (Satisfiability Modulo Theory) 라는 잘 알려진 NP문제에 의존하기 때문이었습니다. 그리고 결정적으로 실제 익스플로잇을 만드는 과정이 워낙 복잡하다보니 이것을 컴퓨터가 쓸 수 있는 일반화된 알고리즘으로 나타내는 것이 거의 불가능해 보이기 때문이었습니다.
하지만 여기서 주목할 점은 (여느 컴퓨터과학 문제와 마찬가지로) 해킹에는 사람만이 할 수 있는 문제가 있는 반면, 컴퓨터가 훨씬 잘 할 수 있는 문제도 있다는 겁니다. 특히 사람의 직관으로는 보기 어려운 취약점을 찾는 측면이나, 정형화된 공격 루틴에 맞는 익스플로잇을 생성하는 측면은 컴퓨터가 사람에 비해 유리한 부분입니다.
이러한 측면이 여실히 드러난 대회가 바로 CGC입니다. 실제 결선에서는 출제자가 전혀 의도하지 않은 취약점을 찾아 공격을 하고 방어를 하는 컴퓨터들의 모습이 나타났습니다. 이러한 장면이 나타날 때마다 관중들은 박수를 보냈고, 해설을 맡은 Visi가 놀라는 모습도 볼 수 있었죠. 그리고 결정적으로 CGC에 나왔던 문제들의 난이도와 그를 풀어내는 컴퓨터들의 속도는 정말 놀라움 그 자체였습니다. 이러한 CGC의 성공은 자동화된 익스플로잇 연구에 대한 부정적 시각을 가진 해커들의 입장마저 바꾸는 계기가 되었습니다. 대회가 끝난 뒤에 있던 일화로, 부정적인 시각을 갖는 가장 대표적인 해커 친구가 Mayhem을 만들었던 CMU팀에 찾아와서 사과를 하는 해프닝도 있었답니다.
저는 CGC에서의 가장 큰 성과가 여기에 있다고 생각합니다. 자동화된 해킹이라는 연구 분야를 학계 뿐 아니라 해커들 까지도 끌어들인 점. 그리고 이러한 분야의 발전을 미국이 주도적으로 가져갈 수 있었던 점. 어떻게 보면 이것이 DARPA의 신의 한수가 아니었나 하는 생각도 듭니다.
지금까지 미국 국방성(DARPA)에서는 핵심 과학분야를 발전시키기위해 여러가지 대회를 개최했습니다. 예를 들어 요즘 한창 뜨고있는 무인자동차 분야는 이미 2004년에 DARPA Grand Challenge 라는 이름으로 시작되었죠. 그 당시만 해도 무인자동차는 먼 미래의 일처럼 느껴졌습니다. 하지만 10년이 지난 요즈음에는 무인자동차라는 말이 전혀 어색하지 않게 되었죠. 비슷한 취지로 로보틱스분야의 대회가 2012년부터 시작되었는데 (DARPA Robotics Challenge), 2015년에는 KAIST 오준호 교수님께서 우승하기도 했습니다.
이러한 연장선에 있는 대회가 바로 CGC입니다. DARPA가 생각하는 사이버분야에 있어서의 핵심 challenge는 바로 "자동화된 해킹"이었던 것이죠.
자동화된 해킹은 사실 2005년도 부터 연구가 시작된 분야입니다. ICSE 2005에 발표된 해당 논문은 최초로 자동화된 익스플로잇 생성을 verification문제로 간주한 연구였고, 이후 2008년에는 패치를 기반으로한 익스플로잇 생성, 2011년에는 소스코드 기반의 익스플로잇 자동 생성, 그리고 2012년에는 바이너리 기반의 익스플로잇 자동생성 연구가 나타났습니다. 그리고 그 이후로 수많은 연계 연구들이 나타나기 시작했죠.
사실 이때까지만 해도 많은 해커들이 이 기술에 대한 실용성에 의문을 제기했습니다. 왜냐하면 자동화된 익스플로잇 생성 기술들은 SMT (Satisfiability Modulo Theory) 라는 잘 알려진 NP문제에 의존하기 때문이었습니다. 그리고 결정적으로 실제 익스플로잇을 만드는 과정이 워낙 복잡하다보니 이것을 컴퓨터가 쓸 수 있는 일반화된 알고리즘으로 나타내는 것이 거의 불가능해 보이기 때문이었습니다.
하지만 여기서 주목할 점은 (여느 컴퓨터과학 문제와 마찬가지로) 해킹에는 사람만이 할 수 있는 문제가 있는 반면, 컴퓨터가 훨씬 잘 할 수 있는 문제도 있다는 겁니다. 특히 사람의 직관으로는 보기 어려운 취약점을 찾는 측면이나, 정형화된 공격 루틴에 맞는 익스플로잇을 생성하는 측면은 컴퓨터가 사람에 비해 유리한 부분입니다.
이러한 측면이 여실히 드러난 대회가 바로 CGC입니다. 실제 결선에서는 출제자가 전혀 의도하지 않은 취약점을 찾아 공격을 하고 방어를 하는 컴퓨터들의 모습이 나타났습니다. 이러한 장면이 나타날 때마다 관중들은 박수를 보냈고, 해설을 맡은 Visi가 놀라는 모습도 볼 수 있었죠. 그리고 결정적으로 CGC에 나왔던 문제들의 난이도와 그를 풀어내는 컴퓨터들의 속도는 정말 놀라움 그 자체였습니다. 이러한 CGC의 성공은 자동화된 익스플로잇 연구에 대한 부정적 시각을 가진 해커들의 입장마저 바꾸는 계기가 되었습니다. 대회가 끝난 뒤에 있던 일화로, 부정적인 시각을 갖는 가장 대표적인 해커 친구가 Mayhem을 만들었던 CMU팀에 찾아와서 사과를 하는 해프닝도 있었답니다.
저는 CGC에서의 가장 큰 성과가 여기에 있다고 생각합니다. 자동화된 해킹이라는 연구 분야를 학계 뿐 아니라 해커들 까지도 끌어들인 점. 그리고 이러한 분야의 발전을 미국이 주도적으로 가져갈 수 있었던 점. 어떻게 보면 이것이 DARPA의 신의 한수가 아니었나 하는 생각도 듭니다.