두둥..!!
그렇습니다.. PPP는 이제껏 항상 … 이라고 해봐야 2년이 채 안됬지만, CTF 경기를 참여만 해왔습니다.
그래서 무언가 색다른걸 해보자 ~ 라는 취지로 저희만의 CTF 대회를 주최하는 계획을 짜기 시작했습니다.
사실 계획 자체는 지난 학기말부터 (2010년 12월) 나왔던 얘기였지만, 실제로 실행에 옮기기 시작한건
대회주최 약 2달 정도 전인 2월쯤이었습니다. 그 전까지는 일단 다들 각자 brainstorm을 해왔습니다.
특히 Plaid CTF (pCTF) 같은 경우에는 올해가 첫 회였기 때문에 인프라부터 문제들까지 바닥부터 만들어 올려야 했기 때문에 조금 부담감이 없지않아 있었고, 그만큼 학기중에 수업들으랴, 과제하랴, 대회 참가하랴, 대회 준비하랴.. 정말 정신 없는 학기였던것 같습니다 :p
하지만 다들 한번쯤은 중형 프로젝트에 참여해본 적이 있던터라 개발과정이 그렇게 거칠지만은 않았습니다.
버젼 컨트롤은 git과 svn을 둘다 사용했고, 내부적으로 프로젝트 관리는 redmine과 wiki를 병행해서 사용했습니다. 사실 어떤식으로 하는것이 가장 효율적인지 알지 못했기때문에 이것저것 실험차 시도해본것들이 많았습니다.
여하튼 이래저래 아이디어들을 종합하고 구상을 짠 다음, 개발하고 테스팅 하는 매우 무난하며 일반적인 개발 루틴으로 대회 준비를 했습니다.. 물론 매주 금요일/토요일 literally 하루종일 쏟아야 했지만요 ㅠㅠ
2달동안의 폭풍 개발 및 테스팅을 어느정도 한 뒤에, 어느정도 구도가 잡혔습니다.
도중에 갑자기 게임 방식 및 보드 설계를 바꾸는 바람에 정신이 없긴 했지만, 대회가 막상 진행되고 나서 바꾸길 잘했다는 생각이 들 정도로 재밌었습니다 :) — 적어도 저희한테는요 ㅋㅋ
게임 보드 완성 후 Rules페이지에 설명~


또, Lockheed Martin에서 스폰서를 자청해줘서 막대한 상금들과 작은 상품들까지 걸리게 되었습니다
사실 저희도 처음 주최하는 대회라 불안했는데 전혀 걱정없이 처음부터 밀어준 LM사에게 감사를 표합니다~
이래저래 해서~ 총 상금 4000 USD와 티셔츠, 깃발 상품등을 걸고 대회가 시작되었습니다.

커맨드 센터!
정말 많은 대회를 참여했었던 저희로써는 딱 한가지 도전해보고 싶은것이 있었는데요..
바로 대회 시작시간을 지키는것이었습니다. 보통 유명한 대회 (예를들어 데프콘)들이라고 해도 피해가지 못했던 초반 러쉬! 아무래도 엄청나게 많은 트래픽이 한번에 몰려서 모든게 멈춤상태가 되고 부서지는경우가 족족이지만 사실 저희는 내심 여러가지 로드 밸런싱을 해놓은 상태였습니다..
하지만 문제는 30여개가 넘는 문제를 보드에 배치하는데에 시간이 생각보다 오래 걸렸다는것입니다 ㅜㅜ
일일히 X,Y 좌표를 찍어줬어야 했는데, 문제 카테고리등과 거리 간격등으 조정하면서 추가하다보니 생각보다 좀 길어졌고, 또 대회 직전이라 긴장감이 더 고조되서 집중해서 할 수가 없더군요 ㅎㅎ
그래서 결국 정시에 시작은 못하구 25분 가량 지체한 뒤 시작되었습니다. 정시가 되면서 사람들이 refresh를 때려대니까 순간적으로 느려져서 문제 추가도 더 힘들어지더군요… 정말 무시무시한 트래픽이었습니다. 초당 몇천 리퀘스트가 들어 오더군요..
그래도 다행히 5~10분 내로 전체적으로 안정화가 되고 첫 세문제가 열렸습니다.
문제들이 처음 공개되고 고요해지는 IRC의 느낌이란~
그 다음부터는 수많은 쿼리 (1:1 대화)들과.. (한때는 쿼리창이 90개 가까이 열려있었다는..)
48시간동안 잠과의 싸움 이었습니다 ㅎㅎ 물론 대회를 참가하는것이 아닌 만큼 잠은 자고싶은 만큼 잘 수 있었지만, 아무래도 운영하는 재미도 쏠쏠하고~ 또 혹시 모를 일에 대비해서 적어도 두 명은 항상 깨어 있는것으로 했습니다.
다행히 화면에 띄워놓은 key submission 로그 창과 irc에서의 대화들이 간간히 재밌는것들이 많아서 잠 깨는데 도움이 많이 되었습니다 :)
특히, disekt 팀이 여기저기 심어놓은 가짜 키들을 넣는 팀들이 의외로 많더군요.. 키 내용만 읽었더라도 키가 아니라는걸 알 수 있었을텐데 말이죠 ㅠㅠ;
그리고 몇몇은 문제 출제자의 이름을 밝혀내는데도 성공을 한 듯 보이는군요 ㅋㅋ
잠이 필요하다고 절규를 외치기도..
그리고 중간에 ssh 들어가서 푸는 문제에서 참가자들이 너무 bruteforce를 많이 돌려서 로드가 심하게 걸리길래 서버 이미지를 복사해서 새로 다른 머신에다가 똑같이 카피해놓고 wall로 공지를 날렸는데… 그 공지 내용을 키로 입력한 팀도 있네요… orz.. (If machine is slow, please refer to the announcement)
경기 중후반쯤 가서는 저희가 key submission log를 보고있다고 알아챈 몇몇 팀이 아스키아트 선물을 선사하기도 했습니다 ㅋㅋ 보기 참.. 그런것도 올라왔지만 그나마 귀여운거 캡쳐해서 올립니다 ㅎㅎ
뭐.. 대회는 나름 순조롭게 진해되었습니다. (개인적인 생각으로는요 ^^;)
마지막에 가서 Hacking For Soju (HFS)가 5분남기고 역전을 하면서 우승을 거머쥐었습니다!
[작년 코드게이트 생각이 나는군요 ..훌쩍..]
48시간이 훌쩍 지나가고 경기가 마감되었습니다.

상위 5팀
보시다시피 상위 5팀이 모두 다른 나라! (6위팀은 미국팀이라 상위 6개팀이 6개 나라!)
카이스트 대학교 보안동아리인 GoN 팀 역시 좋은 성적으로 마무리 했습니다.
경기 종료 후 확인했더니 총 497팀이 등록을 했었더군요 ㅎㅎ
상위 팀들의 write-up도 마련되어있습니다.
1. HFS팀 보고서
2. C.o.P팀 보고서
3. SSH팀 보고서
4. Sutegoma2팀 보고서
대회를 하면서 신기하면서도 뿌듯했던 점은, 상위 팀들이 푼 문제 수는 비슷하지만 각자 서로 다른 문제들을 푸는 진풍경이 벌어지더군요 ㅎㅎ 각자의 강점에 맞춰서 말이죠. 총 35개 문제중에서 망가진 문제 하나를 제외한 (나중에 뺐음..) 모든 34문제가 적어도 한팀에 의해서는 풀렸습니다. 문제들을 잘 만들었다는 뜻으로…… 마음대로 넘겨짓고 가겠습니다 ㅋㅋ..
정말 팀원 모두에게 정신없이 바쁜 두 달이 지나가고..
코드게이트 뒷풀이 및 pCTF 뒷풀이를 한번에 같이 한국 음식점에서 했습니다!
다들 수고 너무 많았구~ 정말 유익하면서도 재밌었던 경험 같습니다 :D
내년 Plaid CTF 2012 도 많은 기대 부탁드리며 ㅎㅎ