본문 바로가기

현장속으로

세계 최대의 정보보안 대회 & 국내 최고의 글로벌 보안 컨퍼런스의 성지 - Codegate 2016(코드게이트 2016)을 다녀오다!



서울 삼성동 코엑스 그랜드볼룸에서 개최된 코드게이트 2016의 안내판. 금색 칼과 다양한 국기가 새겨진 방패의 이미지가 눈을 사로잡는다. 
 

 햇볕이 참으로 화창하고 따스했던 2016년 5월 2일 코엑스(COEX) 그랜드볼룸. 그곳에서 조용하지만 보이지 않는 칼과 방패의 싸움을 엿볼 수 있었다. 이곳에는 우리나라에서 열리는 최고의 정보보안대회인 Codegate 2016(코드게이트 2016)이 성황리에 개최되었기 때문이다. 이 대회에서는 각 나라에서 뛰어난 실력자들이 모인 국제해킹방어대회, 우리나라에 있는 대학에서 화이트해킹 실력을 배양한 인재들이 경쟁을 펼치는 대학생 해킹방어대회, 그리고 고등학교 이하지만 절대 무시할 수 없는 실력을 지닌 주니어 국제해킹방어대회 이렇게 3가지의 대회가 진행되었다.


도서관에 온 것처럼 조용하지만 숨이 막히게 전운이 감도는 국내 대학생 해킹방어대회. 참여자들이 모니터를 숨죽여 응시하고 해결방법을 찾고 있다. 


코드게이트 2016 – 새로이 펼쳐진 국내 대학 대항전

  이번 코드게이트 2016에서는 국제대회뿐만이 아닌 국내 대학 대항전을 새로이 개최하였다. 국내에 있는 여러 대학에 소속된 팀이 다수 참가하여 문제를 열심히 풀어나가고 있는 열정적인 모습을 볼 수 있었다. 대회장에 들어서서 인상적인 점을 하나 꼽자면 바로 분위기이다. 어떻게 보면 어느 대학에서나 볼 수 있는 노트북 열람실의 분위기라고 할까? 굉장히 조용했고 친숙한 분위기였다. 그리고 보이지 않는 긴장감도 맴돌았다. 다들 문제를 풀어내느라 연신 집중하고 고민하고 있었다.

코드게이트 2016에서 새롭게 시작된 대학생 해킹방어대회. 많은 대학의 이름들과 대회안내가 빼곡하게 표기되어있다. 

 
  이번 본선에 올라와서 우승을 거머쥔 팀은 고려대에 속한 사이코어(CYKOR)팀이다. 사이코어팀이 있는 고려대에는 국방부가 최근 우리나라에서 발생한 DDos(분산서비스거부)해킹과 국가적 사이버안보 및 사이버테러에 대한 위기를 해소하고자 만든 ‘사이버국방학과’가 창설이 되어 유지되고 있다.(2011년~) 이처럼 한 대학과 우리나라가 함께 손잡아 운영되고 있는 만큼 코드게이트 대학생 해킹방어대회에서도 빛을 발한 것이라고 생각한다.

묶음 개체입니다.

대회장에는 대형 스크린으로 참여자들의 순위와 점수, 남은 시간 등을 이해하기 쉽게 보여준다. (국제해킹방어대회 왼쪽은 성인 이상이 참여하는 대회. 오른쪽사진은 주니어대회)


코드게이트 최고의 격전지! 국제해킹방어대회

  코드게이트에 참가하는 많은 화이트 해커들은 전 세계의 사람들을 대상으로 참가신청을 받는다. 치열한 예선전 끝에 선발된 본선진출자들이 이 대회장에 모여 실력을 겨루게 된다. 예선 및 본선대회는 주최 측에서 심혈을 기울여 만든 정보보호와 밀접하게 관련된 문제를 풀게 된다. 주로 최신해킹보안 동향에 관한 문제이거나 특정한 OS 또는 프로그램, 웹 등을 해킹하여 보안의 문제점을 찾거나 원하는 정보를 찾는 문제유형이다. 문제에 따른 점수를 차등적으로 부여하여 제한시간동안 획득한 점수가 많은 팀이나 개인이 코드게이트에서 우승하게 된다.


코드게이트 2016 예선을 치른 결과이다. 

  

 이번 코드게이트 국제해킹방어대회 예선전은 코드게이트 2015에서 미국 ‘PPP’팀을 경기 마지막에 극적으로 역전하여 우승했던 중국의 ‘Oops’팀은 순위권에서 밀려 힘을 제대로 발휘하지 못했다. 올해 처음으로 대회에 모습을 드러낸 대만의 217팀, 수년 전에 우승을 했던 해킹방어의 터줏대감인 미국의 PPP팀, 스웨덴의 HackingForSoju(개인적으로 이름이 정말 마음에 들었다), 우리나라에서 굉장한 실력자들이 모인다고 일컬어지는 한국의 BOB(Best of Best), 살아있는 컴퓨터 천재라고 회자되는 미국의 tomcr00se의 조지 호츠 등 매우쟁쟁한 팀들이 본선에 올라오게 되었다.

 

다양한 해외의 실력자들이 모인 국제해킹방어대회 본선. 여러 탁자에는 각국의 선수들과 오른쪽 벽면엔 역대 코드게이트 우승팀의 정보가 쓰인 현수막들이 걸려있다. 대회장에서는 베트남, 미국, 스웨덴, 중국, 러시아 등 다양한 팀들이 경쟁을 펼치고 있는 모습을 볼 수 있다. 

 
코드게이트에 홀로 출전한 천재 해커 조치 호츠, 그는 누구인가?

  국제해킹방어대회에서는 많은 사람들이 관심을 쏟는 한 인물이 있었다. 다른 국제대회 팀들은 보통 3~4명으로 구성되어 있는데 눈에 확 띄게 홀로 팀을 꾸려 참가한 선수가 있었다. 이 선수가 속한 팀은 미국 카네기멜론대학에 속해있는 팀이며 이름은 tomcr00se (톰크루즈)라고 한다. 혼자서 참가한 인물은 바로  이 팀에 속한 천재 해커 일명 ‘지오핫’이라고 불리는 George Hotz이다.


3~4명이 속한 다른 팀들과는 다르게 홀로 문제를 풀고 있는 조지 호츠(George Hotz). 


  사실 필자(김선대 기자)는 조지 호츠를 실제로 처음 보았다. 당시에는 그를 보았을 때에는 몰랐지만 이 글을 쓰기 이전에 호츠에 관하여 접한 적이 있다. 2007년 스티브잡스가 자만하던 철통보안의 아이폰을 처음 탈옥하기도 했고 SONY의 플레이스테이션 3의 해킹으로 문제를 일으켜 법정싸움도 했다. 또한 그는 그만의 철학을 가지고 해킹 실력을 키워왔다. 실력을 인정받아 특례로 로체스터 공과대학에 입학한 그는 혼자가 좋고, 많은 사람이 속한 조직사회에 혐오를 느껴 중퇴하였다고 한다. 이렇게 천방지축 성격 덕에 문제가 많았지만 전 세계에서 주목받는 인재이다. 많은 IT 거대기업들(Microsoft, Facebook, etc.)에서 탐내는 인재이며, 최근에는 페이팔(Paypal), SpaceX, Tesla Motors(공동)창업자이며 억만장자인 일론 머스크에게 러브콜을 받기도 했다.


  허나, 기술이전 관련하여 머스크와 다툼이 벌어지면서 본인만의 회사(콤마닷ai)를 설립하였다. 애플 창업자인 스티브잡스처럼 차고에서 머스크를 뛰어넘는 인공지능 차량을 개발하는 데 주력하였고 채 두 달도 지나지 않아 모든 차량에 탑재가 가능한 인공지능 운전시스템을 선보이기도 하였다. 이러한 가능성들을 보고 실리콘밸리에서 유명한 벤처투자자에게 3백만 달러나 투자받았다고 한다.

대회 초반에 다른 팀들과 나란히 공동 3위(tomcr00se, 217, CLGT-meepwn, teambob)를 달리기 시작할 때 주최진에서 환호하여 호츠와 서로 웃음을 지어보였다.

 
  혼자 집중하고 있는 호츠의 모습을 보자 왜 그는 혼자이고 나머지 사람들은 팀을 이루어서 하는 것인지 꽤나 궁금해졌다. 같이 코드게이트를 참관하였던 이준오 안랩 대학생기자는 “보안에도 다양한 분류가 있는데 그는 모든 분야를 혼자 해결할 수 있어서”라고 말했다. 다른 팀원들은 각각 자신이 해결하는 전문적인 분야가 있는데 호츠는 모든 분야를 다 해낼 수 있다는 것이다. 이것이 호츠가 사람들에게 천재라고 불리는 이유이다.(이 분야에 대한 설명은 본 기사에서 따로 『기사 속의 Mini기사』란에서 이준오 기자가 설명한다.)


국제해킹방어대회 - 충격적인 국제대회 실격패! 그리고 최후의 우승자는?

  이번 코드게이트(시니어) 2016 우승팀은 바로 PPP팀이다. 총 3천만원상당의 상금과 상패(Zeroone Heart)와 상장이 수여되었다. 이번 대회에서 가장 극적인 장면을 뽑는다면 러시아의 ‘릿치킨‘팀이 끝내기 역전이 아닌가 싶다. 릿치킨팀은 코드게이트 2012에서 우승을 거머쥔 강한 팀이다. 하루정도의 긴 시간동안 순위권 다툼에서 마지막까지 살아남아 극적인 역전을 하였다. 하지만 앞서 말했듯이 우승팀은 PPP팀이다. 미국의 PPP팀을 역전한 러시아의 릿치킨팀이 왜 우승하지 못했을까? 이유는 바로 ‘실격패’를 당했기 때문이다.
  릿치킨팀이 대회 막바지에 이르러 코드게이트 2015와 비슷하게 미국의 PPP팀을 종료직전 역전하였다. 이렇게 역전 할 수 있게 된 계기는 외부의 도움을 받았다는 것으로 밝혀졌다. 이 때문에 주최진이 정확한 확인에 착수하였고 결국 미국의 PPP팀을 역전한 릿치킨팀은 코드게이트 규칙상 어긋나는 행동을 하였다고 판단, 실격처리가 되었다. 앞으로 코드게이트에 3년간 출전이 중지되어 오는 2019년까지 열리는 코드게이트엔 출전할 수 없게 되었다. 릿치킨팀은 인정한다는 듯이 실격처리 당한 이후로 시상식에서 모습을 보이지 않았다.
  코드게이트를 둘러보고 발걸음을 되돌아 나가자 비가 많이 내렸다. 문득 영화 ‘매트릭스’가 생각이 났다. 매트릭스에서는 모니터에 초록색으로 가상세계의 정보들이 쏟아진다. 이렇듯이 쏟아지는 많은 빗방울처럼 사적이거나 중요한 정보들이 바로 우리의 눈앞에 있지만 이것을 제대로 다루고 보는 이들이 과연 얼마나 있을까 궁금해졌다. 앞으로는 지금보다 훨씬 더 많은 정보를 바탕으로 사회가 디지털화되고 있기 때문에 정보보안은 선택이 아닌 필수이다. 언제 어디에서 가리지않고 우리를 지킬 것이기에 이번 코드게이트 참관은 나에겐 PC를 지키는 컴퓨터 보안프로그램 그 이상의 가능성을 보고 왔다고 느낀다.
  매번 세계적으로 열리는 코드게이트의 목적인 정보보안의 진흥과 화이트해커 및 글로벌 전문보안인력의 양성을 이룩하고 지금보다 더 많은 사람들이 정보보안에 관심을 가졌으면 좋겠다. 세계적인 IT강국인 우리나라가 앞으로 마주하게 될 미래에 더없이 좋은 자양분이 될 거라 믿어 의심치 않기 때문이다. 

  『기사속의 MINI 기사! - 코드게이트의 해킹대회는 어떻게 펼쳐지는가?』

  해킹보안대회인 Codegate는 Capture The Flag 형식을 표방하고 있으며, 주최 측에서 문제를 제시하고, 또 그 문제를 해결함으로서 점수를 얻어가는 형식이다. 그렇다면 Codegate 같은 보안대회에서는 보통 어떤 문제가 나오는 것일까?
  대회는 목적에 따라 여러 가지 문제가 나오지만, 코드게이트에서는 크게 Web해킹, 시스템 해킹 등으로 나누어진다. 각각의 항목들은 서로 겹칠 수 있으며 독립적이지 않을 수 있다. 즉, 분류가 섞인 응용문제로 출제가 가능하다는 뜻이다. 출제된 문제에서는 각각의 취약점이 존재한다. 그러한 취약점을 찾아서 시스템을 장악하는 형식인데, 취약점의 대표적인 예를 들어본다면 웹 해킹 쪽에서는 SQL injection 이라는 취약점이, 시스템 해킹에 대해서는 Buffer Overflow 로 나눌 수 있다.

Hacking of SQL Injection & Buffer Overflow
  SQL Injection 은 SQL 구문의 허점을 이용한 취약점으로써 웹에서 알게 모르게 많이 당하게 되는 취약점들 중 하나이다.  보통 웹사이트의 개인정보가 속해있는 데이터베이스를 공격하여 정보를 빼내거나 특정한 조건 하에서는 그 서버 자체를 장악 가능한 취약점이다. 공격 방식에는 Blind SQL injection, Union SQL injection 등이 있다.  SQL injection 은 나온 지 오래된 취약점이지만, 항상 보안 취약점 TOP 10에서 보란 듯이 자리를 지키고 있다. 이만큼 위험도가 높기 때문에 새로 작성한 SQL코드를 웹 사이트에 전송할 때에는 항상 주의해야 한다. 그리고 DB에 직접 정보를 받아 전송하는 부분에서는 민감한 단어를 필터링하는 코드를 작성하여야 한다.
  Buffer Overflow 는 원리 자체는 단순하다. 물을 계속 부으면 물통이 꽉 차게 된다. 그리고 그 물통이 꽉 찼는데도 물을 부으면? 물은 넘치기 마련이다. 물을 계속 부어서 개발자가 원하지 않는 부분까지도 물이 차게 만드는, 그러한 공격을 Buffer Overflow 라고 한다. Buffer Overflow 에는 Stack Overflow 나 Heap Overflow, 두 가지 종류가 있다. 이 취약점 또한 무서운 취약점으로서 수년전에 등장해 전 세계 OpenSSL 사용자들을 경악에 빠뜨린 HeartBleed(하트블리드) 취약점도 이러한 버퍼오버플로우로 인해 일어났다. 요즘에는 이러한 취약점을 해결하기 위해 컴파일러 내에서 자동으로 수정을 권고하여 바꾸어준다. (strcpy -> strcpy_s 로 바꾸도록 유도하는 등)이렇게 시스템이 발전하기도 하지만 제일 중요한 것은 개발자가 오버플로우를 막기 위해 코드를 꼼꼼히 체크하는 것이다.
  이렇게 서로 다른 해킹의 분야가 여러가지 있기 때문에  Codegate에 참여한 팀들은 모두 각각 자신이 해결할 수 있는 전문적인 분야가 있다. 그래서 한 사람은 웹 해킹을 전문적으로 할 줄 아는 사람이고 같은 팀에 소속된 다른 팀원은 시스템 해킹을 굉장히 잘하는 사람. 다른 팀원은 또 다른 분야를 잘하는 사람이 섞여 팀이 구성된다고 보면 된다.
  해킹방어대회에서 팀원들이 서로 대화를 나누고 같이 풀며 문제를 해결하는 모습을 많이 볼 수 있다. 이는 앞서 말한 분류가 섞인 응용문제가 나와 해결하는 과정이라고 보면 된다. 조지 호츠는 전문적인 지식이 필요한 많은 분야를 섭렵하였기 때문에 다른 팀과 다르게 혼자 대회에 출전한 것이다.
  끝으로, 시스템해킹/Web해킹 문제는 대회마다 매년 나오는 단골문제이다. 해킹대회를 준비하거나, 보안에 대해 공부를 하고 싶은 독자들은 위의 두 가지 부터 찾아 공부한다면 보안에 대한 좋은 디딤돌이 될 것이다. 



참고 :
조지 호츠에 대한 자료 -
사진 : Ahnlab 16기 대학생기자단 김선대기자.
Searching Wikipedia by George Hotz
&기사 참조
http://money.cnn.com/2016/04/04/technology/george-hotz-comma-ai-andreessen-horowitz/

코드게이트 2016 대회 정보 참조 :
사진 : Ahnlab 16기 대학생기자단 김선대기자.
예선 결과 사진 - 코드게이트 공식사이트 codegate.org 캡쳐

본선 자료 : 매일경제신문
http://news.mk.co.kr/newsRead.php?no=330675&year=2016

글/사진 김선대, 윤연경, 이준오기자