세종대 SSG, 명지대 MJSEC, 건국대 seKUrity
이른바 MSG 되시겠다.
세 동아리가 내부 CTF를 개최하자! 라고 한 것은 작년 11월 경입니다. 동아리 간의 교류 및 부원들(특히 신입부원)의 실력 함양을 위해 꽤 좋은 기회가 될 것 같았습니다.
평소 CTF 참여에 소극적이었던 부원들과 CTF 경험이 없는 신입부원들에게 의미있는 활동이 될 것이라 확신했습니다.
저로서는 보안 공부를 시작한지 1년도 채 안된 시점에서 'CTF 운영 / 문제 출제' 라는 책임이 매우 무겁게 느껴졌지만, 많이 배울 수 있는 기회가 될 것이라고 느껴 감사한 마음으로 진행했습니다.

준비 기간은 약 4개월 (2024.11 ~ 2025.03) 정도 걸렸습니다.
약 한 달간의 기획, 두 달 정도 문제 출제 및 검수, 마지막 한달은 운영 검토를 반복했습니다.
대회 목적을 가장 중요하게 생각했습니다. 저희 동아리에게 부족한 것은 신입부원의 CTF 참여 및 문제 출제 경험이었기에 신입부원도 부담없이 참여할 수 있는 CTF로 설정했습니다.
또한, 일정 및 역할 분담도 이 시기에 진행했습니다. 각 동아리별로 문제 분야와 개수 등을 구체화하고 규정 및 방식을 정하는, 어떻게 보면 가장 중요한 시기였다고 생각이 듭니다.

문제를 출제할 인원을 먼저 선발했습니다. 자원을 받고, CTF 경험이 많이 없는 신입부원들은 반강제로 출제하도록 했습니다. 또한 호스팅이 필요한 문제들은 각 동아리 별로 서버에 호스팅하기로 정해졌기에, 서버를 관리할 인원도 필요했습니다.
또한 문제 내용에 최대한 겹치는 부분이 없게 하기 위해, 출제 인원들에게 문제 분야와 구체적인 기술을 확인해야 했습니다.

이 과정에서, 저도 문제를 만들고,, 또 다른 인원들에게 문제 제작을 독촉하고,,, 화이트햇 스쿨 지원이랑 겹치는 기간이라 매우 정신 없었습니다..
Docker 관련해서 잘 알지 못했었기 때문에 해당 개념들을 공부하며 만들어보고,, 삽질도 정말 많이 했습니다.
"내가 만든 문젠데 익스가 안 돼", "언인텐 나오면 어떡하지", "서버엔 어떻게 올려야 하는거지" 등등 정말 힘들었지만, 가장 많이 배우는 시기였던 것 같고 제일 스트레스를 많이 받았던 시기였던 것 같습니다...

이 과정엔 출제자 분들께서 만들어주신 문제를 전부 검토하고, 다른 동아리 문제들도 검토하는 게 주 업무였습니다.
사실 웹 공부를 등한시했었는데 웹 문제가 매우 많아 검토하는 데 애를 많이 먹었습니다.
열심히 검토했지만, 정작 대회 당일 확인하지 못한 실수가 많이 나왔습니다....

fake flag 대신 real flag를 올려버린 멍청이 같은 나..
그냥 가볍게 참가만 했던 CTF와 달리 운영하는 입장에선 고려할 부분이 굉장히 많았습니다.
풀이 대상, 예상 인원, 문제 수, 난이도 등 직접 운영해보지 않은 입장에선 느낄 수 없는 것들이 많았다고 생각합니다.
기술적인 부분이 가장 큰 걸림돌이라고 생각했지만, 기획/운영적인 부분에서 훨씬 어려움을 많이 겪었습니다. 인력 관리, 시간 관리, 협업 및 소통 등 가장 중요한 점들을 많이 배웠습니다.
보안/해킹은커녕 전반적인 지식과 경험이 부족했던 것을 깨달았고, 앞으로 더 겸손하고 자신 있게 배워나갈 수 있을 것 같습니다.


부끄럽지만 제 모든 부분이 개선할 점이었다고 생각합니다. 위에서 배운 점이라고 적었지만, 전부 부족했으니 배운 것이라고 포장하고 싶습니다.
하지만, 이와 별개로 앞으로 CTF 운영을 진행하게 된다면 꼭 고려했으면 하는 점들이 몇 가지 있습니다.
이번 MSG CTF는 약 25 문제 정도 출제되었는데, 포너블 1문제, 안드로이드 1문제, 포렌식 약 2문제, 리버싱 약 3,4문제, misc 2문제를 제외한 15문제 정도가 WEB2 문제였습니다.
한 분야로 치중된 CTF의 경우 참여하는 인원들이 쉽게 흥미를 잃을 수 있을 것 같습니다.
첫 CTF 운영이라는 변명을 할 수 있겠지만, real flag를 파일로 그냥 올려버린다던가, flag를 정확하게 설정하지 못했다던가.. 하는 실수가 굉장히 많았습니다.
문제 검토 및 운영 단계에서 더 신경 썼다면 없었을 부분이기에 아쉬움이 남습니다.

누가 flag 올리라고 총 들고 협박함?
저는 'X'라고 생각합니다. 적어도 몇개월 이상 공부해야 풀 수 있는 문제가 대부분이었다고 생각합니다.
실제로 이번에 막 공부를 시작하신 분들이 용기있게 도전하셨다가 장렬히 전사하셨습니다.. (아님)
앞으론 목표 난이도를 정확히 설정하고, 서로 피드백하며 진행해야 함을 느꼈습니다.

결국 끝나서 속 시원하긴 합니다! 아쉬움도 있었지만 그런 부분에서 또 배워나가면 되는 거 아니겠습니까? 정말 고생하신 MJSEC, seKUrity 동아리 분들, 문제 만들고 서버 구축하느라 신경써준 우리 SSG 인원들 다들 감사하다는 말씀 드리고 싶습니다.
끗!