“보안 인력들의 노력에 대한 정당한 가치 평가가 뒤따라야 한다”
“우수한 보안인력 더 많이 배출될 수 있는 정책적 기반 조성되길”
이 글은 ‘Defcon 참가기’ 정도 되지만 개인적인 느낌보다는 사실 위주로 글을 풀어나가도록 하겠습니다(사실이 아닌 것은 이 글에 포함시키지 않으며, 추측인 부분은 그 여부를 밝히도록 하겠습니다). 그리고 데프콘 전체에 대한 스케치이기보다는 CTF(Capture the Flag)에 초점을 맞출 것이기 때문에 ‘Defcon CTF 참가기’가 더 적절한 제목일지도 모르겠습니다. 그 이유는 필자의 경우 CTF 참가로 인해 전체 이벤트에 제대로 참가하지 못했기 때문입니다. 또한 다른 팀의 사정을 세세하게 알 수 없기 때문에 이 글은 Song of Freedom팀의 예를 많이 들 수밖에 없을 것으로 보입니다.
현지 시간으로 2009년 7월 31일부터 8월 2일까지 17회 Defcon이 Las Vegas의 Riviera 호텔에서 열렸습니다. 올해도 다양한 발표와 이벤트가 있었습니다. 그 중에서도 역시 데프콘의 주된 이벤트는 CTF입니다.
작년까지 CTF는 미국 해킹 그룹인 kenshoto가 운영하였습니다. 그러나 올해부터는 DDTEK에 의해 운영되었습니다. CTF 본선이 끝난 후에야 밝혀졌지만 DDTEK는 2008년 우승팀인 sk3wlofr00t의 별도 그룹인 것으로 밝혀졌습니다. 결국 sk3wlofr00t가 이번 CTF를 운영한 셈입니다. 본선이 끝나고 전체 운영에 대한 조언을 듣는 자리에서도 sk3wlofr00t의 리더인 John Bos와 DDTEK의 리더라고 자신을 소개한 Troy는 서로 모르는 척했는데, 아무튼 각 팀 대표로 참가한 사람들을 멋지게 속였네요.
아무튼 올해 CTF 예선은 6월 6 ~ 8일에 있었습니다. 이전 대회 우승팀을 포함하여 총 8개 팀이 본선에 참가하던 작년과 달리 올해부터 10개 팀이 본선에 진출해서 경쟁을 하는 것으로 변경되었습니다. 즉, 예선 9위까지 본선에 참가하게 되는 것입니다. 그러나 9위 이내에 포함된 팀 중 참가를 포기하거나 작년 우승팀이 포함되어 있을 경우 10위부터 차례로 참가하게 됩니다.
예선에서 흥미로웠던 것은 작년까지 대회를 주최했던 kenshoto 그룹도 Underminers라는 이름으로 참가해 8위를 차지했다는 것입니다. 그러나 본선 참가는 하지 않아 그들과 실력을 겨뤄볼 수 있는 기회를 가지지 못한 것은 아쉬움으로 남았습니다. 최종적으로 본선에 진출한 팀은 다음과 같습니다.
1. sk3wlm4st3r (미국, sk3wl0fr00t, 작년 우승팀)
2. Team Awesome (미국, VedaGodz)
3. Sexy Pwndas (스페인, Sexy Panda)
4. PLUS@postech (한국, 포항공대 PLUS)
5. Shellphish (미국, Santa Barbara California 대학 컴퓨터공학과 Giovanni Vigna 교수 주축)
6. Song of Freedom(한국, Song of Freedom)
7. lollerskaterz dropping from roflcopters (한국, 미국, 프랑스, 일본 등 다국적)
8. Routards (프랑스)
9. WOWHACKER (한국, 와우해커)
10. Sapheads (한국 해커스쿨, 영국, 스페인 다국적)
예선전은 sk3wlofr00t가 1위를 했는데, DDTEK가 sk3wlofr00t의 별도 그룹이라는 것으로 고려해보면 1위의 가능성이 높았다고 추측해봅니다. 물론 실력으로 1위를 충분히 할 수 있는 팀이기도 합니다.
본선은 현지 시간으로 2009년 7월 31일 오전 10시부터 8월 2일 오후 2시까지 열렸습니다. 참, 데프콘 이야기를 하기 전에 먼저 이야기 할 것이 있습니다. 데프콘 바로 직전에 Black Hat USA가 항상 열립니다. 블랙햇 역시 데프콘을 운영하며, 올해 미국 Homeland Security Advisory Council에 지명된 Jeff Moss가 운영하고 있습니다.
이번 블랙햇에서 한국인으로서는 최초로 오정욱님이 “Fight Against 1-Day Exploits”라는 주제를 풀타임 발표 했습니다. 정욱님은 미국 유명 보안 회사인 eEye에 근무하고 있습니다. 많은 외국인들 앞에서 발표하는 모습이 자랑스러웠습니다. www.securityproof.org/condata/BH09.zip에서 블랙햇 2009 발표 자료를 구할 수 있습니다. 그리고 데프콘의 발표자료도 www.securityproof.org/condata/defcon17.zip에서 구할 수 있습니다.
데프콘이 열리기 전날 정욱님을 비롯하여 우리나라 보안인력들과 함께 데프콘 CTF에 참가하는 PLUS와 Song of Freedom팀이 함께 저녁 식사를 했습니다. 저녁으로는 라스베가스에 있는 ‘김치’라는 식당에서 불고기와 김치찌개를 먹었습니다. 힘내라고 맛있는 음식을 사주신 국내 보안 인력들에게 다시 감사 드립니다. PLUS와 Song Of Freedom팀은 서로를 격려하며 대회 준비를 위해 호텔로 떠났습니다.
(출처: KIMCHI 홈페이지)
늘 겪는 일이지만 모든 한국 팀원들은 시차 적응에 힘들어 했습니다. 혹시라도 다음에 참가할 팀이 있다면 적어도 이틀 전에 현지에 도착해 적응할 필요가 있을 것입니다. 사실 이틀도 부족합니다. 여유가 있다면 적응 기간을 늘릴수록 좋습니다. 왜냐하면 대회 기간 동안 잠을 거의 자지 못할 것이기 때문이다.
대회 첫날, 9시 30분에 대회장으로 들어갔습니다. 대회장에 들어가 먼저 운영진으로부터 소속을 확인 받는데, 대회 전날 메일로 팀 확인 패스워드를 받습니다. 메일을 확인하기 위해 CTF 참가 팀은 반드시 인터넷을 사용해야 합니다. 팀 확인을 한 후 장비 세팅을 하기 시작했습니다. 세팅이 완료되자 운영진에서 대회 규칙을 전달했습니다. 올해는 이전 대회와 많은 부분이 달라졌는데, 그 중 점수 획득 방식이 많이 달라졌습니다. 다음 대회 본선 참가팀을 위해 점수 획득 방식 중에서 중요한 것만 몇 가지 설명하도록 하겠습니다.
우선 최종 점수에 포함되는 것은 Breakthru, key 값 Steal, Overwrite, 그리고 서비스 제공 비율을 나타내는 SLA 값입니다. 다른 팀에 대해 DoS 공격이나 다른 팀의 공격을 방해하는 것에 대해서는 패널티가 있습니다. 그러나 미국 팀의 방해 행위에 대해서는 패널티가 없었습니다. 운영진은 로그를 찾아 패널티를 주겠다고 했지만 그런 일은 없었습니다. 이 부분은 실력으로도 극복할 수 없는 것입니다. 외국팀들의 경우 그냥 받아들일 수밖에 없었습니다.
이번 대회에는 총 15개의 문제가 나왔습니다. 대부분 원격 공격을 하는 데몬들입니다. 문제 서버는 OpenBSD 4.4였습니다. www.securityproof.org/condata/def17_ctf.tar에서 본선 문제를 다운로드 받을 수 있습니다. 관심 있는 분들은 OpenBSD를 설치하고, 문제 파일을 다운받아 home 디렉토리에 압축을 풀고, 각 데몬에 대해 사용자를 추가한 후 문제를 풀 수 있습니다.
가장 특징적인 점수 산정 방식은 하나의 서비스에 대한 공격 점수를 전체 팀이 백분율로 나눠 가진다는 것입니다. 하나의 서비스에 대한 점수는 1800점이며, key Steal과 Overwrite에 각각 900점을 반영합니다. 이에 다시 백분율을 적용하는데, 그 적용 방식은 하나의 데몬에 대해 A라는 한 팀이 공격(Breakthru)에 성공하고(1점 획득), 만약 key 하나를 Steal하거나 Overwrite하면 그 팀은 100점을 획득합니다. 그러나 B라는 다른 한 팀이 key 하나를 Steal하거나 Overwrite하면 A의 점수는 50점이 되고, B에게도 50점이 주어집니다. A, B팀을 포함해 총 5개 팀이 key 하나를 Steal하거나 Overwrite하면 전체 5개 팀의 점수는 10점이 됩니다. 제일 먼저 공격에 성공하여도 더 이상 Steal이나 Overwrite에 성공하지 못하면 순위가 바뀔 수 있습니다. 즉, 다른 팀이 Steal이나 Overwrite를 하지 못하고 있을 때 B팀이 특정 한 서비스에 대해 전체 공격의 90%를 차지한다면 90점을 획득하고, 다른 4개 팀이 나머지 10점을 나눠가지게 됩니다. 그러다 다른 C라는 팀이 그 특정 한 서비스에 대해 B를 제치고 90%를 차지하게 되면 C가 90점을 획득하게 됩니다. 이처럼 하나의 문제에 대해 각 팀의 점수는 100점을 가지고 대회가 끝날 때까지 수시로 변하게 됩니다.
그래서 전체 문제가 15개이고, 9개의 팀이 10개의 문제를 동일하게 풀었을 경우 그 9개의 팀의 점수는 모두 100점일 것입니다. 그런데 나머지 문제를 전혀 풀지 못한 한 팀이 다른 팀이 풀지 못한 2개의 문제를 풀게 된다면 그 팀의 점수는 200점이 됩니다. 따라서 10개의 문제를 푼 다른 팀들이 풀지 못한 문제를 두 문제만 풀어도 꼴찌가 우승할 수 있습니다. 그래서 대회가 끝날 때까지 안심을 할 수 없으며, 끝날 때까지 문제를 풀고 공격에 성공해야 합니다. 대회 둘 째날 오후까지 Song of Freedom팀이 1위를 하고 있었고, 이번에 우승을 차지한 VedaGodz팀은 4위였습니다. Song of Freedom팀 멤버들은 끝까지 1위를 할 수 있을 거라고 생각을 했었습니다.
이번 본선에서 Breakthru 성공 점수 1점이 몇 개 팀에게 주어지는지 그 기준을 밝히지 않았습니다. 작년의 경우 3개 팀에게 먼저 주어졌습니다. 그리고 대회 진행 결과를 실시간으로 보여주는 스크린에 Breakthru의 결과가 제대로 반영되지 않아 수정을 요구하는 일도 있었습니다. 대회 셋 째날 Song of Freedom팀의 Breakthru를 나타내는 스크린 결과는 첫 째날 것이었고, 이를 수정해달라고 요구를 했지만 대회 결과와는 상관없으니 수정하지 않겠다고 하더군요. 수많은 카메라들의 렌즈들과 그것들이 남기는 역사를 의식할 수밖에 없는 것이 참가 팀들이라는 것을 고려하면 운영진의 태도에 문제가 많았습니다.
결국 끝까지 가장 많은 Breakthru를 가장 먼저 성공하여 최대한 많은 Steal과 Overwrite를 성공시켜야 우승할 수 있습니다. 물론 방어를 제대로 할 수 있어야 합니다. 바이너리에 대해 패치를 하지 못할 경우 많은 공격을 당할 수가 있습니다. 그런데 SLA 값을 올리기 위해서는 기본적인 공격 형태가 가능하도록 하는 바이너리 패치가 필요합니다. 방화벽은 사용할 수가 없습니다. 사용하면 SLA 값이 떨어져 팀의 점수가 낮아지기 때문입니다.
이번 대회에는 몇 가지 공정하지 못한 것이 있었습니다. 첫날 미국 VedaGodz팀이 설정상의 문제를 이용해 문제 서버의 root 권한을 획득했습니다. 원칙적으로는 root 권한을 획득하는 것이 금지되어 있었던 것은 아닙니다. 물론 root 권한을 획득하는 것이 점수로 인정된다고 공개적으로 언급한 것도 없습니다. 그러나 어떤 수단을 이용하던 다른 팀의 공격을 방해하는 행위는 금지되어 있었습니다. 몇 개의 팀이 root 권한을 가지고 문제 풀이에 이용했습니다. 이는 역시 금지되어 있었던 것입니다. 그리고 다른 팀의 서버를 다운시키는 일도 빈번하게 발생하였습니다. 그러나 더 큰 문제는 운영진들이 다운된 서버를 신속하게 살려주지 않았다는 것입니다. 다른 팀은 잘 모르겠지만 Song of Freedom팀의 경우 마지막 날 서버가 공격을 오랫동안 할 수 없도록 서버가 몇 차례 다운되어 있었습니다. 팀 멤버들의 개인 시스템이 아니라 서버에 직접 확인해야만 하는 내용들이 있었는데, 이를 확인할 수가 없었습니다. 서버가 다운되어 있었기 때문에 SLA 값도 같이 떨어졌는데, 이에 대한 합리적인 조치는 없었습니다. 강력한 우승 후보였던 Sexy Pandas 팀의 서버 역시 다운되는 일이 마지막 날 한 차례 있었습니다.
아마도 이런 방해 말고도 파일의 내용이 바뀌는 문제를 겪은 팀들이 있는 것으로 알고 있습니다. Song of Freedom팀의 경우 데몬이 죽을 경우 다시 실행하면 프로세스는 살아있지만 port가 열리지 않도록 하는 경우가 있었습니다. 그래서 SLA값이 떨어지도록 하였습니다. 운영진 측에서는 이런 문제를 해결해주지 않았는데, 몇 개 팀이 이런 문제를 겪었을 것입니다. 이번에는 팀이 총 11개의 팀이었다고 생각하면 되겠군요. 운영진들과도 싸워야 했으니까요.
대회는 3일 째 오후 2시에 끝났는데, 12시가 좀 넘어서자 실시간으로 각 팀의 점수를 알려주는 스크린을 운영진이 꺼버리더군요. 그래서 경쟁이 가장 치열했던 대략 1시간 30분 정도의 마지막 순간들의 점수와 경쟁 결과를 아무도 알 수가 없었습니다. 전체 결과는 8월 5일에야 공개가 되었습니다. 왜 이런 일련의 일들이 발생했는지 그 이유가 8월 6일 Sexy Panda팀의 홈페이지에 공개가 되었습니다. 글의 제목이 “Capture the Root”인데요, 한가지 명확한 의미를 담고 있습니다. 이번 대회 기간 동안 root 권한으로 이용해 공정하지 못하게 대회를 진행한 팀이 VedaGodz, Routards, Shellphish, sk3wl0fr00t 이렇게 4개 팀이 됩니다. 대회 마지막날 결과에 대해 신뢰를 할 수 없는 이유가 자세하게 나와 있는데요, 아마도 공정한 대회가 진행되었다면 대회 결과는 좀 달랐을 것입니다. 3위를 한 PLUS가 우승을 했을지도 모르고, Sexy Panda와 Song of Freedom팀이 우승을 다투었을지도 모릅니다. 객관성을 유지하기 위해 핵심적인 부분을 인용합니다.
“ The third day…… The last four hours of competition were completely crazy. It seems that on saturday’s evening (second day), some teams found a way to get root on the servers due to a permission misconfiguration and it seems they used it to score a few points to stay on top. The DDTEK staff was aware of the problem and was trying to solve it, but during this last part of the competition some other teams realized about what was happening and started to steal flags from all services without needing to exploit them. As far as we know (because they told us ;D), VedaGodz, Routards, Shellphish and Sk3wl were doing it, ...”
이번 CTF에서는 궁금한 것이 몇 가지 있었습니다. 우승을 차지한 VedaGodz팀은 무엇을 하는 사람들로 구성되어 있는지 예선전부터 많은 궁금증을 자아냈습니다. 그러나 본선에서 그들은 자신이 누구인지 소개도 없었고 인사도 없었습니다. 아주 형식적인 인사만 나누었을 뿐입니다. 어느날 갑자기 나타나 예선전에서 탁월한 실력을 보여주고, 본선에서는 1위를 차지한 팀인데, 알려진 것이 하나도 없네요.
대회의 1위부터 3위까지의 결과는 대회 폐막식에서 알려졌습니다. 이번에는 대회 참가자들이 결과를 사전에 알 수 없었기 때문에 많이 궁금해 했었습니다. 마지막 순간 놀라운 일이 한가지 더 일어났는데요, DDTEK 운영진이 아니라 sk3wl0fr00t팀 멤버들이 CTF 시상식을 진행한 것입니다. 많은 사람들이 의아해 했습니다. 그 당시에는 sk3wl0fr00t의 멤버 3명이 DDTEK의 멤버로 들어왔다고만 밝히고 시상식을 진행했는데, 이제는 그 이유를 알겠군요.
대회 운영과 순위 결정 방식과는 상관없이 이번에 처음으로 단일팀으로 참가한 PLUS팀이 3위를 차지했습니다. 정말 멋지고 우리 모두 축하해줄 일입니다. 어쩌면 더 좋은 결과가 나왔을지도 모르는데, 아쉬운 부분도 있습니다. 그래도 PLUS 정말 잘 했습니다!!
대회 최종 결과는 다음과 같습니다.
결과를 보면 sk3wlofr00t팀이 명단에 나와 있지 않은데, 이는 DDTEK이 sk3wlofr00t의 일원이기 때문일 것입니다.
결과가 어떻게 나왔던 지금은 겸허하게 받아들이고 있습니다. 어떤 상황도 극복할 수 있는 실력과 준비가 부족했던 것이 사실이기 때문입니다.
데프콘 참가가 힘들고 불합리한 경험만 주는 것은 아닙니다. 힘들어도 즐거운 일들도 많습니다. 대회 둘째날 밤 마지막 전의를 불태우며 멤버들 전체가 Circus Circus 호텔 방에서 하나가 된 것은 정말 유쾌한 경험이었습니다. 서로 부족한 부분에 대해 이야기를 나누고 보충해주는 모습, 그래서 수 많은 과정들이 신선한 인식의 연속이었던 것, 멤버 한 명의 말을 인용하면 “아름다운 순간”이었습니다. 서로에 대해 잘 이해하고, 더 깊어진 이해를 바탕으로 한 새로운 인간관계 형성은 CTF 참가가 주는 소중한 경험이었습니다. 잠을 거의 자지 않았기 때문에 대회 가 끝난 다음 날에는 다들 오후 2시가 넘어서야 일어났습니다.
대회가 끝나고 멤버들은 라스베가스의 명물들을 하이애나처럼 찾아 다녔습니다. 원래는 그랜드 캐넌에 갈 계획이었고, 국제면허증도 준비해갔는데, 피곤해서 운전을 할 수가 없어 포기했습니다. 라스베가스를 상징하는 것들에는 카지노, 사막의 무더위, 섹시한 여자들 등이 있습니다.
다들 경험이나 재미로 슬롯머신이나 블랙잭 등의 게임을 했습니다. 물론 돈을 벌겠다는 생각으로 한 멤버들은 아무도 없었습니다. 그러나 운이 좋아서 돈을 따게 되는 멤버들도 있게 되는데, 그 멤버는 맛있는 점심을 사기도 했습니다. 어디서 샀냐구요? 라스베가스에서도 유명한 벨라지오 호텔 뷔페입니다. 다들 게걸스럽게 먹었습니다. 대회 기간 중에는 제대로 식사를 할 수 없기 때문에 최고 뷔페 식당에서 맛있게 먹었습니다. 이건 천기누설입니다. 벨라지오 호텔 카지노에 가면 뷔페 식당 앞 부분에 있는 슬롯 머신들 중 777이 적혀 있는 머신들이 있습니다. 그 중 플레이 라인이 3개 있는 머신을 찾으십시오. 딱 한 대 있습니다. 그 머신으로 게임을 하면 멤버들 점심 한 끼를 멋지게 살 수 있을 것입니다.
라스베가스에는 예쁜 여자들이 많습니다. 일부 멤버들은 넋을 잃고 보기도 합니다. 참, 멤버들 중 대학생 멤버 한 명이 시저 팰리스 호텔 수영장을 가자고 난리였습니다. 이유는 아주 간단합니다. 시저스 팰리스 호텔 수영장에 가면 예쁜 여자들이 수영복마저 벗고 수영을 하는 곳이 있습니다. 블랙햇에 참가하신 분은 혹시 봤을지도 모르겠네요. 아무튼 그 멤버가 그곳에 갔는지는 알 수가 없습니다. 아직 한국에 돌아오지 않아 물어볼 수가 없습니다. 지금은 LA에서 시간을 보내고 있다고 합니다. 간 김에 더 많은 세상을 보고 올 모양이지요. 아마도 시저서 팰리스 호텔 수영장보다 미국 여러 곳을 돌아다니며 보게 될 다양한 인간군상들의 모습을 통해 더 많이 배우고 더 즐거울지도 모릅니다.
데프콘 CTF 본선에 진출했다는 것 자체가 의미 있고, 결코 쉽지 않은 일입니다. 그러니 이번에 참가한 모든 한국 해커들에게 성원의 박수를 부탁 드립니다. 그렇다고 데프콘 CTF가 해커들의 실력을 모두 보여주는 것이라고 생각하지 않습니다. 우수한 해커의 기본 자질은 탄탄한 기초와 창조적인 생각과 구현능력일 것입니다. 이런 면에서 필자는 아직 형편 없고, 수많은 노력이 필요할 것 같습니다.
데프콘 CTF 참가는 세상을 더 크고 깊게 볼 수 있도록 해줍니다. 그리고 자신을 더욱 잘 볼 수 있게 해줍니다. 채울 것이 더 많은 자신을 발견하고, 더 채울 수 있다면 데프콘 CTF 참가는 멋진 경험이 될 것 같습니다.
한가지 희망을 가져봅니다. 국내 보안 인력들에 대한 대우는 현재 그렇게 만족스럽지 못합니다. 이것은 국내 보안 산업의 기반이 허약한 것도 그 중요한 한 가지 이유가 될 것입니다. 그러나 보안 인력들의 피땀이 배여 있는 열정이 ‘돈’으로 직접 보이지 않는다고 해서 그들의 노력이 가치 없는 것으로 치부되는 일은 더 이상 없어야 할 것입니다. 보안 인력들의 노력에 대한 정당한 가치 평가가 뒤따르지 않는다면 우수한 보안 인력 양성은 생각하지도 못할 것입니다. 물론 보안 인력들 역시 자신의 노력이 정당한 평가를 받을 수 있도록 노력해야 할 것입니다. 아무튼 우수한 인력이 더 많이 배출될 수 있는 기반이 정책적으로 조성되어 장기적으로 유지가 되고, 더 발전되면 좋겠습니다.
마지막으로 이런 글을 쓸 수 있는 기회를 함께 만들어온 Song of Freedom 멤버들에게 감사하다는 말을 전하고 싶습니다. 그들과 다른 모든 한국팀이 자랑스럽습니다.
(글·vangelis(securityproof.org))
<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>








.gif)





