DefCon 21 CTF 후기

defcon_1

 

데프콘. 재작년에 갔었던것을 처음으로 작년에 이어 올해에도 라스베가스에서 열리는 DefCon을 다녀왔습니다.
(지금 글을 쓰면서 알게된 건데…. 작년 데프콘에 관해서는 블로그 글을 작성하지 않았네요??)

매번 그러했듯 저를 비롯한 PPP팀원들이 올해에 데프콘에 간 이유는 해킹방어대회인 CTF 본선대회를 치루기 위해서였습니다.

picoCTF 주최 및 대회 입상들로 얻은 팀 자금으로 올해에 데프콘에 같이 간 팀원들의 경비, 식사비, 숙박비, 그리고 입장에 필요한 뱃지를 지원하여 전원 사비를 들이지 않고 다녀올 수 있었습니다. 올해에는 15명의 팀원들이 베가스로 향했습니다. 작년이나 재작년에 비해 다른점이 있다면, 올해 대회의 규정에 따라 각 팀당 최대 8명까지 밖에 대회 참여를 할 수 없다는 점이었습니다. 그래서 보통 호텔 방에 열댓명씩 쳐박혀서(?) 해킹을 했던 이전 해들과는 달리 딱 8명만 낮에는 대회장에서 해킹을 하고 밤에는 호텔 방에 모여서 진행했습니다. 나머지 팀원들은 대회 압박을 받지 않고 컨퍼런스 발표들도 듣고 여기저기에서 열리는 파티들도 다니는 일정을 가졌습니다.

DefCon21 CTF Finalists

DefCon21 CTF Finalists

올해 본선 대회는 작년과 마찬가지로 총합 20팀이 겨루었습니다.
이중 3팀이 한국팀이어서 베가스에서 반가운 얼굴들을 볼 수 있었습니다 :)

위에서도 보실 수 있겠지만, 본선 참가팀들의 대다수는 예선전 참여를 통해서 본선에 올라왔고 몇몇 팀들은 다른 국제 해킹대회 우승자로써 초청을 받아 본선 진출 티켓을 얻게 되었습니다. 항상 그래왔듯 작년 데프콘 우승팀도 자동으로 본선 진출권을 얻게 됩니다. 다른 해킹대회 우승으로 본선을 진출한 팀들중의 대부분이 이미 본선행임에도 불구하고 예선전을 치루어서 좋은 결과들을 얻었습니다.

헤헤.. 특히 저희 팀은 유일하게 데프콘 예선문제들을 올클리어해서 예선 1등으로 마무리했습니다!
(무려 경기 종료 2시간여를 남기고 말이죠 훗…)

DefCon 21 CTF Quals Scoreboard

DefCon 21 CTF Quals Scoreboard

이번 데프콘 CTF는 예상하기 힘든 점이 많았습니다.

우선, 작년을 마지막으로 지난 4년동안 대회 운영을 맡아온 ddtek이 더이상 운영하지 않고.. legitbs라는 팀이 운영하면서 운영팀이 변경되었습니다. 사실 데프콘 CTF은 전통적으로 매년 대회에 사용되는 운영체제나 설정등을 변경하여 전 해에 참여한 팀들이 갖게 되는 사전지식에 의한 비공정성을 최대한 줄이려는 노력을 합니다. 예를 들어, 같은 FreeBSD 운영체제를 사용하더라도 ipv4대신 ipv6를 사용한다던가, 대회 키 인증 서버와 통신하는 프로토콜을 변경한다던가.. NFC를 이용하여 서버정보를 얻어야한다던가 하는 살짝은 랜덤한 요소들을 추가하여 이미 완성해온 툴이나 프레임워크를 그대로 사용하기 어렵게 만드는것이죠.

저희 팀 내부에서는 올해의 셋업은 x64 아키텍쳐에 FreeBSD 운영체제 머신들에 ARM 관련 문제를 위한 Raspberry Pi 몇개 정도가 되지 않겠나 예상을 했었습니다. 대회 시작 전까지 대회 셋업에 대한 아무런 힌트조차 주지 않았던 탓에 infrastructure 준비를 최대한 generic하게 해야했고 쉘코드 등 또한 linux/bsd 운영체제와 x86, x64, 그리고 ARM 용까지 미리 준비해놨습니다. 대회 시작 직후에 알게되었지만, 올해 본선대회 셋업은 ODROID-U2 보드위에 LXC 리눅스 컨테이너를 이용하여 돌아가는 Ubuntu Linux였습니다. 대회에 사용된 ODROID는 ARMv7 기기이기 때문에 저희가 가져간 Raspberry Pi는 그다지 쓸모가 없었고, 다행히 팀원 중 한명이 가져온 Chromebook이 대회 셋업과 거의 동일한 환경이어서 (동일 libc) 대부분이 따로 QEMU 설정을 하지 않고 크롬북 위에서 익스플로잇 개발 및 테스팅을 했습니다.

또한, 올해는 지난해들과는 다르게 모든 서비스 (문제)들이 한번에 공개되지 않았습니다. 처음에 몇 개를 공개한 뒤, 시간이 흐르고 팀들이 서비스를 공략함에 따라서 새로운 서비스가 푸시되는 형식으로 진행되었죠. 이 결정은 사실 8명 제한 룰을 무시하는 팀이 생길 경우를 대비한 운영팀의 보험(?) 같은 방식이었습니다. 자세한 설명은 아래에서 하겠습니다.

 

DefCon CTF D-2

여하튼, 저희 팀의 대부분은 컨퍼런스 시작 하루 전날인 7월 31일 수요일에 베가스에 도착하였습니다. 이 날은 늦게 도착한 팀원들이 많았던 관계로 베가스를 즐기며 조금 릴랙스한 분위기로 진행이 되었습니다. 호텔 체크인을 하고 automation infrastructure 코드 리뷰하고 수정할 부분 수정하고.. 동부에서 서부에서 온지라 생기는 (거의 티도 안나는..?) 3시간 시차를 적응하기 위해서 버티다가 적당한 시간에 취침을 했습니다.

(올해는 호텔에서의 전경을 안찍었네요 ^^; 항상 똑같은지라..)

Rio room keys

Rio 호텔 방 키들

DefCon CTF D-1

대회 시작 하루전인 목요일에는 아침부터 본격적으로 대회 준비를 하려고.. 했으나.. 귀차니즘과 게으름에 밀려서 뱃지를 받은 후에 그냥 팀원들과 돌아다니거나 빈둥거리면서 낮을 홀라당 보내버렸습니다.

이 날 오전에는 와우해커팀의 김XX군에게 생긴 일을 해결하는 웃지못할 해프닝(?)도 있었지만 결과적으로 좋게 일이 풀렸습니다. 흔히 영화에서나 보던 카지노의 “backroom” 구경을 한 날이었죠.. 생각보다 좁고 위협적인 느낌이었달까.. -_-

DefCon 21 Badge

DefCon 21 Badge

어찌됐든, 이 날 초저녁에는 Facebook으로부터 초청받은 파티에 잠깐 들려서 간식거리와 음료수를 마시고 (open bar여서 다들 좋아했는데, 술을 안마시는 저는 그냥 sprite만 잔뜩 ㅋㅋ) 페이스북 보안팀 엔지니어들과  얘기도 나누며 놀다가 비슷한시간에 진행된 데프콘 CTF 참가팀을 상대로 한 대회전(?) 파티로 이동했습니다.

사실 데프콘 파티에서 대회에 대한 정보를 조금 흘릴줄 알고 열심히 경청했는데, 그닥 중요한 내용은 없더군요. 물론 네트워크 설정이 어떻게 되어있을것인가는 도움이 되었지만, 크게 저희가 준비할 수 있는 부분은 아니었으니까요. 매년 “인터넷” 문제로 허덕였었는데, 올해에는 운영팀측에서 지원을 해줘서 꽤 빠르고 안정적인 인터넷 사용을 할 수 있었습니다. 일단 호텔에 무료 인터넷이 없는데다가 거의 2만명 가까이 되는 컨퍼런스 인원들이 밀집해있는터라 3G/4G같은 셀률러 네트워크도 마비상태라 테더링하기도 버거운 상황이기 때문에 열악한 인터넷 환경에서 작업을 했었어야했죠 이전에는.

올해 데프콘 뱃지는 올해 데프콘이 블랙잭에 해당하는 21회인점을 감안하여 제작된 physical 뱃지였습니다. 각각 플레이 카드의 모양을 하고 있고, A부터 K까지 총 13가지 종류가 존재했는데 저는 Ace로 결정!

나중에 폐회식을 할때 설명을 들어서 알게된것이 있는데, 데프콘 뱃지의 역사를 보면 한 해가 physical 뱃지였다면 그 다음해는 electronic 뱃지이고 그 다음해는 다시 physical.. 이런식으로 한번씩 번갈아가는 테마가 있었다는 점입니다. 돌이켜 생각해보니 처음 본선에 왔던 재작년엔 티탸늄으로 제작되었었고, 작년에는 IR 센서를 장착한 전자 뱃지였었네요.

여하튼 온갖 파티에서 돌아온 뒤에는 대회에 참가하는 팀원들이 모여 짧은 회의와 토론을 통해 현재 대회준비 상황이 어떤지, 어떤 부분을 내일 아침까지 완성해야하는지 등에 대해서 이야기 나누었습니다. 아무래도 작년에 비해 저희 팀이 새롭게 준비한 것은 크게 두가지였습니다:

  1. Web Interface for Automation/Monitoring Framework – 작년까지는 python과 ncurses를 사용하여 오토메이션 및 모니터링 툴을 후다닥 만들어 사용하였는데, 아무래도 (기능) 확장성에 있어서 불편한점이 많아서 웹 인터페이스로 변경하기로 결정했습니다. 아무래도 금방 깔끔하고 사용가능한 인터페이스 만드는덴 웹만한것이 없는데다가 이미 저희 프레임워크 자체는 UI 코드와는 별개로 작동하기 때문에 다른 UI 컴포넌트를 통해 display하는것이 전반적으로 쉬웠습니다. 그래서 자기전까지 몇시간 정도를 투자하여 Bootstrap + Flask를 사용하여 프론트엔드와 백엔드를 대충 만들어놓았죠. 테스팅은 거의 못했는데, 다행히 실제 게임서버 통신 형식을 이용하여 구현했을때 큰 오류 없이 작동하였습니다.
  2. Easy-to-use Library for Shellcode Generation – 사실 어떤 아키텍쳐/운영체제 조합이 나오냐에 따라서 준비해온 쉘코드는 무용지물이 될 수 있지만, 앞서 말씀드린대로 예상해둔 조합에 한해서는 커스톰 쉘코드를 준비해두었습니다. 내부적으로 libshellcode라고 부르는 이 라이브러리는 C로 작성되어 최대한 generic한 방법으로 그때그때 컴파일하여 쉘코드를 생성하고 python binding을 통해서 exploit 개발자들이 바로 임포트해서 사용할 수 있도록 제작되어있습니다. 이날 밤에 마침 ARM 호환이 추가되었는데 다음날에 바로 유용해질 줄이야! :)

3일동안 진행되는 대회인데다 8명 제한이 있는 이유로 컨디션 관리가 중요하므로  너무 늦지 않은 시간에 취침했습니다.
(다 정리하고나니 새벽 4시정도 되어있더군요..)

DefCon CTF D-day

대회장 입장은 아침 9시부터 가능하고, 대회 시작은 10시였습니다. 아무래도 첫날인지라 들떠있는 분위기에 아침 일찍부터 준비하고 아침을 재빠르게 먹고 대회장으로 향했습니다.

DefCon CTF Room

DefCon CTF Room

랜덤하게 배정된 자리를 찾아 장비들을 분주히 셋업하고 나니 약 10분 정도 남더군요.
LegitBS 운영진은 이제까지의 관례(?)를 깨고 데프콘 CTF 정시시작이라는 것을 보여주겠다고 호언장담을 하더니.. 정말로 정시에 시작해버렸습니다. 그리고 보통 시작한지 1시간내로 생기는 패닉사태도 안일어나고 아주 조용하고 부드럽게 진행되어나갔죠.. 첫날인만큼 SLA (Service Level Agreement) 포인트는 처음 1시간은 감점하지 않고 팀들이 서비스들을 제대로 관리할 시간을 주었습니다. 각 팀의 vulnerable 서비스가 돌고 있는 서버 접속에 필요한 정보는 팀마다 주어진 CD에 들어있었습니다.

PPP CD-ROM

PPP CD-ROM

접속 권한을 얻자마자 우선 저희 팀은 운영체제와 아키텍쳐를 확인했습니다. 앞서 말씀드린대로 ARM 머신에 Ubuntu 리눅스였습니다. 사실 ARM 부분은 어느정도 예측하고 있었지만 ddtek이 운영하던 시절 내내 이용되어왔던 FreeBSD 대신 리눅스가 사용될 줄은 차마 예상치 못했었죠. 헤헤, 다행히 ARM 리눅스용 쉘코드도 작성을 해놓은 상태라 큰 패닉에 빠지진 않았습니다. 데프콘 CTF에서 이제까지 FreeBSD가 사용되어왔던것이 우연은 아닌것이, 최근까지는 ASLR이나 NX같은 보안기법이 적용되지 않아서 exploit 개발이 훨씬 수월했었습니다. 하지만 최신 Ubuntu를 사용하므로써 기본적으로 ASLR과 NX가 적용되어있었고, 몇몇 바이너리들은 PIE (Position Independent Executable) 옵션으로 컴파일되어있었습니다… (PIE 문제를 공략하려면 info leak이 필수가 되기 때문에 페이로드 작성이 귀찮아지죠..)

어쨋든 게임 시작과 동시에 각 팀의 서버에는 총 4개의 서비스가 존재했고 각각 xinetd를 이용하여 돌아갔기때문에 따로 항상 서비스 프로세스가 돌아가고 있는지 확인할 필요는 없었습니다. 루트권한은 없었지만 ctf 유져가 각 서비스 유져들에 한해서 sudo 권한이 있었기 때문에 바이너리 패치 및 퍼미션 조절이 가능했습니다. 첫째날은 처음 공개된 4개의 서비스가 전부였고, 다음날 새로운 2개의 서비스가 추가되었고 기존에 존재하던 서비스가 다른 서비스로 (하지만 같은이름으로) 교체되었습니다.

대회는 오전 10시부터 오후 8시까지 총 10시간동안 진행되고, 오후 8시 정시에 네트워크가 끊겨 더이상 공격/방어 및 키 제출을 할 수 없게됩니다.

저희 팀은 첫날 대회 도중에 4개 중 2개의 서비스인 lonetuna와 bookworm의 exploit을 만들어 공격하는데 성공했고, 대회장에서 돌아온 후 호텔방에서 atmail 서비스의 exploit까지 완성하고 하루를 마쳤습니다. 물론, 공격에 성공한 서비스들은 바로바로 패치하여 방어에도 신경을 썼습니다. 덕분에 첫날 종료시점에 근소한 차이로 1등으로 마무리할 수 있었습니다.

Day-1 Scoreboard

Day-1 Scoreboard

여기서 잠깐 짚고 넘어가야할 것(?)이 있는데요. 바로 올해에 사용된 새로운 점수 계산방식과 게임 형식입니다. 데프콘 본선에 처음 온 팀들이나 이전 룰에 익숙했던 팀들이 이해하는데 살짝 어려움이 있었던 게임 방식을 조금 설명해볼까 합니다. 왜냐하면 이번 대회에서는 이 게임 방식을 잘 이해하고 사용하는(?)것이 우승하는데 키 요인이 될 수 있었기 때문입니다.

대회 당일날 팀들에게 전달되었던 공식 룰/게임방식 전체는 LegitBS의 블로그에서 확인 가능합니다. 이 중에서 중요하거나 재미난 부분만 발췌하여 설명하도록 하겠습니다.

DefCon 21 CTF 대회 규칙 및 게임 방식
– 엄격한 8명 제한 (교체/원격 불가능)
=> 처음에 팀들이 이게 지켜질것인가 의아해했지만 거의 모든 팀이 양심적으로 플레이했습니다. 훈훈한 엔딩.
– 서비스 (문제) 서서히 공개
=> 한번에 모든 서비스를 공개해버리면 혹시라도 룰을 지키지 않고 많은 인원을 동원하여 작업하는 팀이 유리하기 때문에 8명의 인원으로 작업할 수 있는 양의 문제만을 서서히 공개함으로써 최대한 공정성을 지키려고 했습니다.
– 게임 시스템 공격 금지 (0-day 사용한 우승 불가능)
=> ‘데프콘에서는 수단방법을 가리지 않아도 된다’라는 마인드셋을 봉인하는 룰. 덕분에 CTF 자체만으로 실력을 판가름 할 수 있었죠.
– Token overwrite 없이 read만 존재
=> ‘토큰을 읽을 수 있으면 쓰는건 다른 쉘코드를 껴넣는 문제일뿐’이라는 생각에 굳이 게임 시스템을 혼란케하는 overwrite을 없앴다고 합니다.
– 점수 시스템 변경
* Token (토큰)은 각 팀의 서버에 존재하는 alphanumeric 스트링 (즉, 서비스 공격으로 탈취하는 값)
* Flag는 토큰을 스코어링 서버에 제출함으로써 얻는 ‘포인트’ (스코어보드에 나타나는 숫자는 각팀의 flag 갯수)
* Zero-sum (제로썸) 게임 형식 — 대회 시작시에 각 팀당 2500개의 flag 보유. 누군가가 점수를 얻으면 누군가는 잃는 끔찍한(?) 형식.
* 팀 A의 서비스 B 토큰을 탈취하여 제출하게되면 그 라운드에 해당 A팀의 서비스 B 토큰을 탈취한 팀의 총 수가 N이라고 했을때 19/N 개의 flag 갯수 만큼 얻게 됨.
* 그러므로, 팀 A는 서비스 B가 공격당하면 19개의 flag를 잃게 됨.
* 라운드마다 실행되는 SLA 체크에 실패하면 역시 19개의 flag를 잃고, 이 flag들은 나머지 19팀에게 분배됨 (즉, 팀당 1 flag 씩).
* 각 라운드는 5분; 각 라운드마다 Token 변경.
* 얻어온 Token은 최대 3라운드 이내에만 제출하면 됨. 즉, 스코어보드는 15분전의 flag 상황을 보여줌.
=> 결론적으로, 이전까지 데프콘에서는 사실 방어부분은 쌩까고(?) 공격만 잔뜩 성공하면 우승이 가능했으나 올해부터는 방어가 공격만큼 중요해졌습니다.
– 네트워크 캡쳐 제공
=> 10분 딜레이된 정보이긴 하지만 자기 팀 네트워크로 보내진 패킷들의 덤프를 받아서 분석 가능했습니다.
– 팀 이름과 아이피 주소 맵핑 제공
=> 작년같은 경우에는 맵핑을 제공하지 않아서 직접 알아내야했지만 (약간의 소셜 엔지니어링과 함께 ^^; ) 올해에는 맵핑을 미리 제공했습니다. 덕분에 특정 팀을 상대로 테스트를 하거나 공격을 보내지 않거나 하는등의 전략적인 플레이를 가능하게 해주었죠.

포인트만 잡아보자면 요정도 되겠네요. 아무튼 이전과는 다른 점이 많아서 일찌감치 파악하지 못하면 피보는 상황이 속출되었습니다..

대회가 종료된 후 알게된 사실이지만, 자기 자신 토큰을 제출해서 점수를 받는것도 가능했더군요.. (물론 의도된 부분은 아니고 내년에는 고치겠다고 했습니다만) 만약에 다른 팀이 자신의 서비스를 공략했다면 어짜피 19개의 flag를 잃는것인데, 자기자신의 토큰을 역시 제출함으로써 19/N 만큼 돌려받는 것이죠 -_-…

DefCon CTF D+1

밤늦게까지 프레임워크의 안정도를 높이고 기능을 추가하는 작업과 함께, 아직 exploit을 개발하지 못한 서비스들 분석을 하느라 대회 둘째날 아침은 다소 피곤하게 시작했습니다.

이제 나이가 들어서 그런지.. (헉..) 체력이 팍팍 딸리더군요.. 재작년에 왔을때만 해도 이틀꼬박은 안자고 버티기도 했는데 말이죠..

어찌되었든 이 날에는 전날 밤에 완성해둔 atmail 서비스의 exploit과 함께 총 3개의 페이로드를 각 팀들에게 보내 점수 격차를 벌여가고 있었습니다. 둘째날 중반쯤에는 avoir 서비스 exploit까지 완성하여 총 4개의 exploit들로 상대팀들의 token을 수집하고 있었고 열심히 네트워크 분석등을 통해서 방어쪽도 계속 신경쓰고 있었습니다. 둘째날 역시 오전 10시부터 오후 8시까지 10시간동안 대회장에서 이루어졌는데, 둘째날 일정이 끝나기 1시간여정도 전에 reeses 서비스에 대한 exploit을 완성했습니다.

하지만, PIE 바이너리였던 관계로 info leak이 필요했는데.. 그 부분을 찾지 못해서 일단은 libc base address를 bruteforce하는 방식으로 공격하는 코드만 완성되있는 상태였죠. 이렇게해서 첫날 나온 4개의 서비스와 새로운 서비스인 avoir에 대한 페이로드는 어느정도(?) 완성이 되었는데, 둘째날에 추가된 나머지 서비스들인 trouver와 lonetuna2 (lonetuna 업그레이드 버전으로 이전 lonetuna를 교체함) 만을 남겨놓고 둘째날이 종료되었습니다.

Day-2 Scoreboard

Day-2 Scoreboard

이 날은 정신이 없어서 미쳐 둘째날 경기종료 시점 스크린샷을 못찍었는데, LegitBS에서 올린 스크린샷을 보면 이날 경기 종료 1시간 반정도 전 상황을 보실 수 있습니다.

ㅠㅠ 여담이지만, 이날 마지막 30분여 정도는 저희 automation 프레임워크를 모니터링 하고 있지 않았는데 (이틀내내 아무 문제 없이 잘 작동하길래..) 하필이면 딱 모니터링을 안한 순간에 무언가가 꼬여서 5~6 라운드 정도에 해당하는 token들을 서버에 제출하고 있지 않았더군요. 대회 종료 30초정도 전에 눈치채고 얼른 서브밋 하려고 했는데, 네트워크 연결을 예상보다 살짝 일찍 끊어버리는 바람에 결국 이 라운드들 동안 모아뒀던 토큰은 하나도 제출하지 못한채로 둘째날을 종료하게되는 일을 맛보았습니다…ㄷㄷ

다행히 안정적으로 게임을 리드해가고 있었기 때문에 큰 걱정은 하지 않았지만.. 일단 게임 형식이 제로썸 방식인 점과 작년에도 경기 마지막날 종료 1시간여를 남기고 역전당하여 우승을 놓친 기억이 있어 마지막까지 최선을 다하고 정신줄을 놓지 않기로 다짐하고 호텔로 돌아와서 막판 스퍼트를 올렸습니다. lonetuna의 업그레이드 버전이었지만 크게 다르지 않았던 탓에 lonetuna2의 exploit을 비교적 빠르게 완성했지만, 문제는 다른 문제들이었습니다.

시간은 흘러흘러.. 새벽이 깊어가면서 하나둘씩 쓰러지기 시작했고.. 남은 세네명은 서서히 정신줄을 놓기 시작하고 안풀리는 문제들을 앞에두고 미친 가능성들을 얘기하기 시작했습니다. 솔직히 누가 들어도 ‘그게 말이됨? ㅋㅋㅋ’ 반응을 할정도의 솔루션들이었는데 황당하게도 그 솔루션들을 잘 다듬었더니 성공해버린게 아니겠습니까 -_-!!

좀더 정확히 말하자면, 위에서 언급했던 reeses 문제 풀이법이 reliable하지 않아서 고민중이던 와중에 저와 친구가 지푸라기라도 잡는 심정으로 이것저것 분석을 해놨는데.. 별로 쓸모없어보이는것들 투성이었습니다. 그러다가 다른 팀원이 ‘아.. 왠지 “이것”만 있으면 될거 같은데.. 있을리가 없나’라고 말하는데.. 저희 눈앞에 그 친구가 찾던 “이것”이 있었습니다ㅋㅋ..  그래서 이 단서들과 코드조각들을 가지고 한시간여 삽질을 한 끝에 결국 reliable한 공격코드를 만드는데 성공했습니다.

저는 체력이 바닥날대로 바닥나서.. 이쯤에서 수면에 취했는데..  나머지 팀원들은 결국 두세시간을 더 깨어있으면서 마지막으로 남아있던 trouver 문제를 풀어놨더군요.. 허허 괴물같은 친구들 -_-);

그렇게 하여 일단 출제된 문제는 모두 클리어 한 상태로 다음날을 맞을 수 있었습니다 :)

DefCon CTF D+2

그리하여 마지막날이 도래했습니다.

이 날은 데프콘 컨퍼런스의 마지막날이기도 하기에, 오후에 있을 시상식 및 폐회식 전에 경기 종료를 해야해서 오전 10시에 시작해서 오후 2시에 끝나는 일정이었습니다.

대회가 시작되었고 저희는 준비해온 공격 페이로드들을 열심히 날리고 flag들을 수집하였습니다.

이 때 운영팀에서 지금까지 나온 문제들이 전부라는 공지를 했고, 얼떨결에 저희는 본선에 출제된 문제들을 올클리어하고 마지막날은 모니터링 열심히 하며 점수를 안정적으로 모으는데 신경을 썼습니다.

경기종료 1시간전에는 데프콘 관례중 하나인 스코어보드 다운 행사(?)가 있었는데, 원래는 안할 계획이었지만 막판에 raon_ASRT팀과 men in black hats 팀의 접전이 있었기에 긴장감을 높이기 위해서 하기로 다시 변경했다고 하더군요ㅋㅋ

Day 3 - Scoreboard

Day 3 – Scoreboard

스코어보드가 다운되기 바로 직전에 찍은 스크린샷인데, 마침 저희 flag 포인트가 13373 이군요
후후후후.. 전혀 의도한건 아닌데 말이에요~

경기 종료 후에 네트워크 리밋팅에 의해 누락된 키 섭미션 등을 감안하여 점수 재조정을 하여 랭킹을 정했는데 상위 3팀은 큰 변화가 없었다고 합니다.

Final Scoreboard

Final Scoreboard

글 쓰면서 알게된건데, 2등과 3등팀의 점수를 합치면 저희 팀 점수를 아주 살짝 넘는군요 흐흐..
이번 대회는 각 팀원들이 엄청난 고수들이라는 점과 각자의 역할분담/센스가 백배 활용되었던 대회였던 만큼 좋은 결과가 있었고 전반적으로 안정적인 리드를 경기 초반부터 후반까지 이끌어갔던 대회 같습니다.

DefCon CTF Award Ceremony

Award Ceremony

Award Ceremony

항상 그렇듯이 각종 연설과 새로운 데프콘 군들에 대한 환영과 떠나는 군들에 대한 배웅이 끝나고, 각종 대회들에 대한 설명과 시상식이 있은 후, 거의 마지막 순서로 CTF 대회가 소개되었습니다. 이제는 따로 설명안해도 다들 알거나 들어봤을만한 대회이긴 하지만 올해는 특별히 어떤점이 달랐는지, 각 팀들이 어떤식으로 풀어나갔는지 간략히 소개하고 시상식이 진행되었습니다.

드디어 꿈에 그리던 데프콘 블랙뱃지를 GET! 이번에는 아래의 사진과 같이 해골 무늬의 카드위에 mechanical clock이 달려있는 뱃지였습니다. 처음에 나눠줬을때 태엽을 감아놔서 계속 틱틱 거리면서 돌아가더군요.

혹시나 고장날까 고이고이 모셔서 집까지 돌아오는데 성공했습니다 :)

DefCon 21 Black Badge

DefCon 21 Black Badge

실제로 동작하는 영상은 여기서 보실 수 있습니다.

시상식이 모두 끝나고 기분 좋게 팀원들과 단체사진 한방 찍고 저녁식사를 했습니다.

#PPP4LIFE!

#PPP4LIFE!

 

Home! Sweet Home!

데프콘 일정이 끝난 후 다시 버지니아에 있는 아파트로 돌아왔습니다.

저희 회사 전원이 데프콘에 갔었기 때문에.. 뭐 데프콘에 가있는동안 일 안한거에 대해서는 큰 죄책감은 안들었습니다만 ^^;
돌아오니 이것저것 할 일이 많아지고 바쁘더군요.

여하튼 돌아왔다고 모든게 끝이 아니었습니다!

8월 10일에는 PPP팀 대부분이 참여한 AMA (Ask Me Anything)를 netsec subreddit에서 진행하였습니다.
이번 데프콘이나 혹은 PPP팀에 궁금한 점이 있는 사람들이 질문을 하고 저희가 대답을 하는 기회였는데, 좋은 질문과 좋은 답변들이 많이 오고 간거 같아서 데프콘, CTF, 또는 저희 팀에 관해서 전반적으로 궁금하신 분들은 한번쯤 읽어보셔도 좋을듯 싶네요 :)

A letter from Secretary of Technology of Virginia

A letter from Secretary of Technology of Virginia

마지막으로는 제가 살고 있는 버지니아 주의 Secretary of Technology로부터 축하편지를 받았습니다!

 

제가 PPP팀을 만든지도 벌써 4년이 되었고..
그 사이에 참 똑똑하고 착하고 멋진 친구들과 함께 같이 해킹하고 공부하며 팀을 키워 이제는 많은 대회들에서 좋은 성적을 거두는 팀으로 거듭났고 마침내 제 인생의 큰 목표중 하나였던 데프콘 우승까지 오게 되었습니다..
혼자만으로는 한없이 부족한 제 곁에 이렇게 좋은 팀원, 친구들을 허락하심에 감사하지 않을 수 없네요 ^^!

베가스에서는 워낙 피곤해서 티를 팍팍 내진 못한것 같지만, 정말 감격적이었고 기쁜 순간이었습니다.

앞으로 더 성장하고 견고해질 PPP팀을 위해! 화이팅 :)

——————

이번 글로 직접 대회에 오지 못하셨던 분들이나 궁금하셨던 분들이 간접적으로나마 체험하고 대회가 어떤식으로 진행되는지 알아갈 수 있는 기회가 되었으면 좋겠네요.

기술적인 보고서를 기대하셨던 분들에겐 죄송합니다 ㅠㅠ.. 아마 나중에 정말 심심하면 할지도..? 국내에서 열리는 Incognito 해킹 컨퍼런스에서 raon_ASRT팀으로 본선에 참가하셨던 박찬암 팀장님께서 예선 및 본선 후기를 짚어주신다고 하니 관심있으신 분들은 가보시는것도 괜찮을것 같습니다!

 

 

You may also like...

3 Responses

  1. 와우해커의 김XX says:

    형 잘 봤습니다 조심하고 다닐게요 ㅎㅎ 감사했습니다~

  2. Sabrina says:

    Hey Brian!
    It’s Sabrina, the Producer at CNBC that shot the story of you guys at Defcon. I’m finally putting together the final cuts and just found your blog. I was wondering if you took all these photos/screen shots and if I could use some of them in my piece???

    If you were the one that took the photos then all I need is your permission… if someone else took the photos then I would need their permission.

    Let me know at your convenience and thank you!!

    Sabrina

    • Cai says:

      Hey Sabrina! The photos/screenshots used in the post are all taken by myself, and you can use them at your will :) Thanks for putting things all together! I can’t wait to see it!

Leave a Reply to Sabrina Cancel reply

Your email address will not be published. Required fields are marked *