본문 바로가기

FOLDER/etc.

2021 화이트햇 콘테스트 국방트랙 참가 후기

WITHCON

화이트햇 콘테스트, 약칭으로 WITHCON이라 불리는 이 대회는 내국인만 참여 가능한 국내 대회 중 꽤 큰 규모를 자랑한다.
이번 2021년도에는 일반부, 청소년부에 이어 국방트랙이라고 현역 장병 및 군무원만 참가 가능한 부문이 생겨났다.
언젠간 나가야지.. 나가야지 했던 CTF 대회를 군대에서 참여를 하게 될 줄은 몰랐다.. 사회에 있을 때 뭐든 나중으로 미루고 언젠간 하겠지 라는 생각을 고치려고 참여를 결심했다.

대회 참여 과정, 준비

처음에 부대 내 간부님이 먼저 WITHCON이 곧 열린다고 알려주셨다. 들었을 당시에는 흥미롭다고 생각했었고, 나갈지 말지를 고민하고 있었다.
그렇게 꽤 오랫동안 갈등하다가 안나가는 쪽으로 생각이 기울 즈음에 같은 기수 정보보호병 동기가 연락이 왔다.
같이 대회 나가자는 연락이였고 이 연락 하나와 더 이상 미루면 안 되겠다는 생각이 겹쳐서 바로 참여하겠다고 하였다. 그때가 대회 3주 남짓 남았을 때였다.
그렇게 수락하고 그날 밤 사지방 연등을 하면서 생각했는데.. 막상 내가 CTF 경험이 거의 전무하다는 것이다. 사회에 있을 때 잘 알려져 있는 쉬운 리버싱 문제, 웹 해킹 문제들 깔짝거린 것 이외에 경험이 없으며, 자격증 공부를 하면서 기본적 보안 지식, 해킹 기법들만 조금 알 뿐이었다.
그리고 팀 구성이 최대 4인이여서 다른 정보보호병들을 모아 나가고 싶었지만, 3주밖에 남지 않은 상황에서 다른 인원을 모으기란 쉽지 않았다.
또한, 군인이라는 특성상 대회에 참여하려면 각 부대에서 자체적으로 휴가나 외출을 통해서 준비하던지, 아니면 부대에 상용 인터넷 사용 허가를 받아서 사용해야 했었다. 어느것 하나 쉽지 않은 선택지들이였다.
이렇게 생각하니 또 이걸 나가는 게 맞나 싶기도 해서 동기에게 양해를 구하고 지금이라도 그만둘까 라는 생각을 많이 했었다.
그래도 이번에 안나가면 사회에 나가서도 안 나갈꺼 같은 생각과 어떻게든 할 수 있도록 환경을 마련해준 간부님들에게 감사해서 마음을 고쳐먹고, 내가 대회에서 팀에게 민폐는 끼치지 말아야지 하는 생각으로 무작정 CTF 문제를 풀기 시작했다.
문제는 pwnable.kr 문제를 처음부터 풀기 시작했다. 당연 관련 지식이 전무했기에.. 푸는 시간은 상당히 오래 걸렸고 제대로 풀지 못하는 문제들도 꽤 많이 있었다. 그래도 쉴 틈 없이 검색해 가면서 조금씩 지식을 쌓고 있었다. 또한 화이트햇 콘테스트 write up 들을 찾아보며 어떤 유형으로 문제가 나올지도 파악을 했었다. 또한 이번 화이트햇 콘테스트 티저에서 랜섬웨어에 대한 직접적인 언급이 있었던걸 보아서 랜섬웨어 관련 위주로 문제가 나오겠구나 라고 어느정도 파악을 했었다.
그러면서 대회 준비를 했고, 그런 중간중간에 계속 여기저기서 팀원을 모집하고 있었다. 결국 1주일 정도 남았을때 같은 기수 정보보호병에서 팀원 한명을 더 구하고 3명이서 대회 하루 전 대회 참가 신청을 완료하였다.

WITHCON 예선 당일 전날

당일 전날에 WITHCON 주최자 측에서 메일을 보내왔다. 바로 예선 문제 풀이에 사용될 victim PC 이미지 파일이였다.
당연하게도 용량은 상당히 컸고, 미리 다운받아서 가상머신으로 바로 돌릴 준비를 했어야 했지만 그렇지 못한게 큰 한이다..

WITHCON 예선 당일

WITHCON 예선은 9.11(토) 09:00 부터 20:00까지 이여서 토요일 아침 점호를 끝내자마자 바로 준비를 해서 08:20분 부터 문제 풀이에 사용될 이미지를 다운하였다. 근데 역시 용량이 커서 다운로드 하는데 꽤 오래 걸린데다가 원래 내가 알고 있던 이미지 파일 형식인 .iso 형식도 아니여서 victim PC를 Vmware로 부팅 시키는데만 시간을 많이 잡아먹었다. 이게 진짜 큰 한으로 남는다..
일단 이미지 파일을 다운로드 하면서 예선 시작인 9시가 되자, 바로 접속해서 문제들을 보았다. 처음 문제들은 역시나 어렵지 않은 문제들이였으나 이미지 파일을 제때 다운로드 하지 않은 탓에, 이미지 파일들을 부팅 시키는 방법들을 잘 몰랐기에 시도조차 못하면서 계속 내려가는 점수를 안타깝게 바라봐야했다...
이번 대회가 처음이여서 다른 대회는 어떤 형식으로 진행되는지 잘 모르겠으나(아마 대부분 비슷한 형식으로 진행되지 싶다.) WITHCON 예선은 대회가 시작했을때 문제를 다 주지 않고 일부만 주었고 시간이 지나면서 한 두문제씩 개방을 하는 형식이다. 그리고 막 개방된 문제는 점수가 상당히 높은데, 그 문제를 다른 팀들이 풀 수록 그 문제의 점수는 점점 떨어진다.
문제는 대부분 랜섬웨어에 감염된 victim PC를 분석하는 포렌식 형태의 문제였고, 마지막으로 개방된 리버싱 2문제 포함 17문제 정도가 나왔다. 문제 난이도는 당연 시간이 지나면서 개방될수록 어려워졌고.. 접근조차 힘든 문제들이 많았다.
여튼 토요일 하루를 완전히 바쳐서 대회에 임했고, 우리 팀은 각 2문제씩 총 6문제를 풀었다.
그래도 문제 하나를 풀었을 때의 그 쾌감이 엄청났기에 긴 시간동안 버티고 삽질하면서 문제를 풀었던거 같다.
결과는 예선 탈락 확정이였지만 비록 쉬운 문제일지라도 첫 대회에 문제를 푼거 자체와 쾌감 덕분에 대회가 끝나고 후회는 전혀 없었다.

느낀점

대회를 참여하고 나서 느낀점이 꽤 많았던거 같다.

  1. 컴퓨터 사양은 비교적 좋은 것을 사용해야 한다. - 부대 특성상 노트북을 대여하고 사용했는데 진짜 답답했다....!!
  2. 대회 전 이미지 파일을 주면 미리 세팅해놓자. - 이거때문에 시간을 얼마나 잡아먹었는지..
  3. 문제를 풀면서 팀원간의 소통의 중요성. - 찾은게 있으면 바로바로 얘기하는게 문제를 푸는데에 큰 도움이 되었다.
  4. 문제를 푸는데 필요한 도구들의 사용법들이 손에 익어야된다. - 도구들 사용하는 방법에 대해 검색하는것도 시간이 아까웠다.
  5. 대회를 나간다는 것에 대해 두려움을 가지지 말고 경험으로 생각하자. - 경험을 쌓고, 내 수준을 알 수 있는 좋은 척도인거 같다.