
1. 면접
BoB에 손쉽게 떨어지고, 고민하던 내게 존경하는 교수님의 추천으로 k-shield 주니어(이하 케쉴주) 15기 취약점 분석 과정을 알게 되어 지원했다.
과기정통부 주최, KISA에서 주관하는 교육이라기에 상당한 긴장감을 가지고 면접을 봤다. 4~5명의 지원자가 한 조가 되어 교육을 담당하시는 멘토님들과 n:n 면접을 진행했다. 면접은 지원자가 간단한 자기소개를 하고, 지원서에 작성했던 내용에 대해 면접관님들이 질문하는 식이었다. 나는 컴퓨터 소프트웨어와 빅데이터 경영공학을 복수 전공했지만, 왜 취약점 분석 분야에 지원하게 되었는지 경험적인 이유를 들어 설명했다.
이후 지원서에 작성했던 내용을 궁금해하셔서 전에 우연히 발견했던 네이버 카페의 <IDOR과 유사한 접근제어 실패> 케이스를 설명했다. (심각도가 정말 낮아 제보하지 않았고, 면접 이후 어느새 조용히 패치되었다.) 당시에는 이런 용어조차 알지 못했고 횡설수설 설명하다 보니 면접관님들은 별거 아닌 것을 알았겠지만, 같은 조의 지원자들 중 나중에 같은 프로젝트 팀이 된 한 친구는 나를 네이버의 엄청난 취약점을 발견한 사람으로 알고 있었다고 한다...
그 외 취약점 분석과 관련된 어떤 지식을 알고 있냐는 질문은 의외로 없었고, 디버깅이나 취약점 분석에 관한 경험이 있는지 여쭤보셨다. 물론 나는 네트워크 보안을 통해 정보보안에 관심을 가졌기 때문에 이런 경험도 전무했다. 나의 작은 자신감에 반비례하여 발생하는 엄청난 긴장 덕분에 혀가 한순간에 마르고, 목이 잠기는 끔찍한 감각을 지금도 기억한다. 최악의 면접이었지만, 감사하게도 나의 긴장감을 지원에 대한 진심으로 받아들여주신 것이 아닐까 생각한다.

우리 조의 5명 중 나를 포함한 3명이 붙은 것으로 추측한다. 그중 한 명은 말했듯 나와 같은 프로젝트 팀이 되었고, 다른 한 명 역시 같은 팀은 아니지만 지금도 비교적 친하게 지내고 있다. 이 친구는 이전 인턴 과정에서 취약점 발견 경험도 있었던 진짜 실력자였다...
2. 교육
케쉴주는 정보보호 관리과정 32명, 취약점 분석 과정 32명으로 선별했다. 나는 위에서 기술했듯 취약점 분석 과정에 지원했고, 첫 2주간은 64명이 공통으로 웹 해킹, 시스템 해킹, 네트워크 해킹이라는 주제를 각 세 멘토님들께 교육받았다. 난이도는 처음 배워도 컴공 정도의 지식만 있으면, 혹은 비전공자라도 어렵지 않았을 것이다. 멘토님들은 수업 외에도 정보 보안에 대한 기본적인 지식과, 면접이나 회사 생활 등 취업과 관련된 이야기를 많이 해주셨다. 한 멘토님은 수업을 시작하기 30분 정도 전에 일찍 온 교육생들과 보안뉴스를 같이 보며 리뷰하는 시간을 가지기도 했다.
짧은 공통과정이 끝나고 7주간 직무과정에 들어가며 각 32명이 두 반으로 나뉘어 각자 직무에 맞는 심화 교육을 듣게 되었다.
나는 2주간 친해진 밥 친구들이 대부분 나와 다른 반이라서 조금 아쉬웠지만 이 친구들 덕분에 다른 반의 좋은 사람들과도 많이 친해질 수 있어서 좋았다. 나는 사람들에게 먼저 쉽게 다가가는 성격은 아니었지만 이들의 미소와 배려 덕분에 우리 반의 사람들과도 금방 친해질 수 있었다. 단체 회식도 있었고 다들 마음의 거리가 가까워지며 초반보다 반의 분위기도 점점 활기차졌다.
내 짝은 부반장 선거(?)에 나오며 자신이 나이가 조금 있다며 소개했는데, 자신 있고 해맑게 나온 것치고 조금 떨려하는 모습이 재미있어서 앞에서 앉아있던 내가 동갑이라고 제스처를 줬던 기억이 난다. 겁쟁이 같은 나와 달리 사랑이 가득 담겨있는 것 같은 이 친구는 교육이 끝난 후에도 나와 친하게 지내는 소중한 친구가 되었다.
심화교육을 듣기 시작하면서부터는 자주 교육장에 남아 공부하고 가려했다. 퇴근 시간의 2호선과 9호선을 타고 싶지 않았고, 남아서 이해하지 못한 내용을 서로 알려주거나 배웠던, 그리고 이런저런 잡담을 하며 웃고 떠들었던 그 분위기가 좋았기 때문이었다.
심화교육은 웹 해킹, 시스템 해킹 1, 시스템 해킹 2 정도의 파트로 나뉘었다. 웹 해킹은 공통 교육보다 조금 어려워졌지만 열심히 따라가다 보면 크게 어렵지 않은 난이도였다. 누구나 대부분 그렇듯 웹 해킹은 재미가 없을 수 없는 분야이기 때문에 즐겁게 배웠다.
그러나 시스템 해킹 2에서 ROP 개념을 넘어가는 순간부터 두어 명을 제외하고 나를 포함한 대부분이 교육 마지막 일주일 간 정신을 놓은 듯했다. 지금도 사실 ROP 이후의 개념들을 정리는 해뒀지만 완전히 습득하지 못했다. 이후의 일정을 핑계로 미뤘는데 조만간 블로그에 정리하며 글을 따로 올리도록 하겠다.

내 뒷자리의 비전공자 친구는 시스템 해킹 1부터 조금 먼저 어려워했던 기억이 난다. 그럼에도 항상 열심히 배우려 했고, 교육이 끝난 이후 만들어진 스터디에서도 항상 가장 많은 공부 시간을 기록하는 멋진 친구다.
전반적으로 강의를 담당해 주셨던 모든 멘토님들이 지식적인 전수를 너무 잘해주셨고, 강사라는 느낌보다 선배 같은 느낌으로 따뜻하게 우리를 대해주셨다. 멘토님들 뿐 아니라 뒤에서 우리의 성장과 편의를 위해 노력해 주신 이사님과 팀장님, 주임님께도 감사의 말을 다시 전하고 싶다.
3. 프로젝트
공통과정과 직무과정이 끝나고 남은 5주의 기간 동안 프로젝트를 진행하게 된다. 기존 교육 시간대로 월, 수, 금은 필수로 출석해야 하지만 우리 팀과 내 짝의 팀을 포함하여 절반 정도는 남은 화, 목요일과 주말도 각자의 사정에 따라 최대한 참석하여 같이 진행하는 분위기였다.
우선 팀원들을 정하고 현직에 계시는 멘토님들을 초빙하여 멘토-멘티 매칭이 있었다. "우리는 이런 프로젝트를 할 것입니다!"라는 느낌의 발표를 진행하게 되고, 멘토님들은 자신의 직무와 성향에 맞는 팀을 선택하여 프로젝트를 각자의 방법으로 도와주는 방식이었다. 블록체인과 관련한 주제를 선정한 팀이 있었는데, 매칭 당시 오셨던 멘토님들의 직무와 거리가 있어 케쉴주에서 따로 다른 멘토님을 매칭시킬 정도로 교육생들을 위한 지원이 좋았다.
발표에 앞서 임베디드 장비 취약점 분석을 하기로 한 우리 팀은 용산으로 장비를 구하러 갔다.



현직에 계시는 멘토님들은 멋모르고 IoT 카메라를 들고 있던 우리의 열정만 가득한 발표를 들으시고 많이 부족한 우리들에게 아프지만 현실적인 소중한 충고들을 해 주셨다. 대부분의 팀들이 프로젝트의 범위를 축소하여 핵심적인 목표에 집중하는 방향으로 수정되었고, 몇 팀은 주제가 조금씩 바뀌기도 했다.
우리 팀도 사족을 거두고, 가정용 공유기 취약점 분석으로 포인트를 집중해서 1-day 취약점을 여럿 분석하고 그 경험을 바탕으로 최신 펌웨어에서 0-day까지 찾아보는 방향으로 정했다.
우리 멘토님은 큰 방향성을 잡아주시고, 진행 중간마다 결과물들을 보시며 다시 방향이 맞는지 피드백해 주시는 방법으로 우리와 프로젝트를 진행했다. 최종 PT에 대한 것 외에 디테일한 지시나 교육은 없었지만, 우리가 엉뚱한 곳에서 오래 빠져있지 않게, 우리가 충분히 성장할 수 있도록 큰 틀에서 잘 지도해 주셨다고 생각한다.
결과적으로 우리는 6개의 PoC가 공개되지 않은 1-day 취약점들을 분석하여 PoC를 포함한 보고서를 만들고, 최신 펌웨어에서 3개의 0-day 취약점을 찾아냈다! CVE 발급을 원했지만 아쉽게도 아직 벤더사에 제보 후 추가적인 연락을 기다리고 있는 상황이다.
그간 우리는...

열심히 모여 프로젝트도 하고,

열심히 회식도 (정말 자주) 했다.

힘들었겠지만 대부분 늦은 시간까지 다들 자발적으로 남아서 진행했으며,

옆 팀과 희로애락을 함께하기도 했다.

그렇게 짧았던 한 달 조금 넘는 시간이 훌쩍 지나갔다.
아쉽게도 프로젝트 1등은 놓쳤지만 나쁘지 않은 성적을 기록해서 우리 팀 팀장은 전체 수료생 중 1등을 했다!! 막내였지만 책임감 있고 성실하게 팀장을 맡아 우리를 잘 이끌어 줘서 참 고맙다. 열심히 하는 모든 사람들이 세상의 인정을 받지는 못하는게 세상인데, 이 친구가 마땅한 노력의 결실을 손에 쥐게 되어 참 다행이라고 생각한다. 나보다 어리지만 너무 멋있는 이 팀장에게 많은 것을 배웠고, 앞으로도 함께 더 나은 우리가 되길 기대한다.
내가 여기서 이야기를 나눴던 대부분의 사람들은 열정 있고 겸손하며, 따뜻하고 격려할 줄 알며, 사과할 줄 알고 인정하고 배워나가는 그런 사람들이었다. 나에게는 지식적으로 많은 성장이 된 교육도 좋았지만, 그보다 더 소중한 삶의 동료들을 얻게 된 기회였다.
하루 7시간씩 월, 수, 금 300시간의 정규 수업이었지만 날짜로 치면 99일의 기간이었다. 프로젝트 기간에는 거의 매일 아침부터 밤까지, 어떤 팀들은 때론 새벽 카페에서 모여서 할 정도로 한정된 기간에 많은 시간을 얻어내려고 했다. 무더위의 날씨에 시작해서 추위 속에서 코트를 입으며 마무리했던 짧다면 짧고, 길다면 긴 여정이었다. 상대적인 시간은 각자 다르게 흘렀을 테지만, 다들 나름대로의 의미가 있었던 추억으로 간직되길 바란다.