기존에 있는 회사에서도 하는 업무는 만족스럽고 좋았지만 주로 단기, 중기 사업들을 위주로 하다 보니 모의해킹 레퍼런스는 잘 쌓여가지만 뭔가 불안했다.
경력 3년차에 접어들고 있고 분명 1년 이상 되는 장기 사업도 경험해봐야 하는데.... 현재 회사에선 그런 프로젝트를 할 기회가 적어 장기 사업을 해보고도 싶기도 하고 이것저것 좀 더 다양하게 경험해보고 싶어 이직을 결심하였다.
전엔 보안관제에서 모의해킹으로 이직을 하긴 했지만 그때는 말그대로 "중고 신입"이었고 경력직 이직은 처음 해봤다. 그래서 정보도 많이 없고 어떻게 해야 하나 많이 고민했던 것 같다. 이력서를 작성하고 그동안 했던 프로젝트 경력 프로필을 만들면서 "이렇게 하는게 맞나?" 이 말만 계속 되뇌였다. 게다가 경력직들 면접은 어떻게 물어볼지를 몰라서 그 정보를 구하는데 시간도 많이 들였다.
그렇게 이력서, 경력 기술서 등을 완성하고 이력서를 넣기 시작했다. 이번엔 정말 큰 회사를 가고 싶었고 여기가 안되면 그냥 이직 안한다는 각오로 했다. 내가 워낙 단기나 중기 사업 위주로 많이 했어서 경력직 서류 통과도 쉽지 않을 것이라고 예상했다. 회사는 총 세군데를 넣었고 1주일~2주일 뒤에 연락이 왔는데 놀랍게도 넣었던 회사들 모두 서류가 통과되었다. 신입 땐 서류 통과 조차도 안되었던 회사들이 통과되니까 자신감이 붙었다.
그 때 들었던 생각은 "그래, 떨어지더라도 최선을 다해보자, 해보지도 않고 어떻게 알아?" 였다. 인성 검사도 통과되고 기술 및 인성 면접을 한꺼번에 보게 되었는데 몇년만에 보는 면접이라 조금 긴장도 됐지만 자기소개가 끝나곤 마음이 편해졌다. 확실히 경력직 면접은 지금까지 해왔던 프로젝트들을 위주로 질문을 받았고 내가 직접 다 했던거라 편안하게 면접관들한테 답변했다. 엄청 테크닉적인 질문보단 해왔던 프로젝트 경험 위주, 만약 이 회사에 와서 어떤 업무를 할 수 있는지 등을 중점적으로 물어봤다. 또한 큰 회사라 그런지 인성 질문도 많이 받았다. 아마 조직생활에 대한 적응 능력, 팀원들과의 협업 능력, 태도 등을 평가하려고 했던 것 같다.
그렇게 면접이 끝나고 결과를 기다렸다. 면접을 본 지 3일 후 내 이메일로 최종 합격 통보를 받을 수 있었다. 걱정도 참 많이 했는데 받고 나니 얼마나 기뻤는지 모른다. 게다가 내가 한번 쯤은 꼭 가보고 싶었던 회사여서 더 열심히 해야겠다는 생각도 들었다. 이젠 건강검진만 남겨놓고 있지만 이직해서도 절대 안주하지 않고 지금보다 더 발전하고 스킬업 할 수 있게 최선을 다 할 생각이다.
2020년 한해도 저물어가고 있다. 코로나로 인해 모두가 힘든 시기를 겪고 있고 모의해킹쪽도 프로젝트 일정이 밀리고 엉켜서 하반기로 많이 밀렸다. 얼른 코로나가 극복되었으면 좋겠는데... 생각 외로 오래가고 있는 것 같다. 자유도 많이 잃어버리고 얼른 다시 일상으로 돌아갔으면 하는 바램이다. 2020년 한 해를 돌아보면 정말 열심히 살았다고 말할 수 있을 것 같다. 내가 하고 싶었고 관심이 있었던 모의해킹 업무였던 만큼 내 힘이 닿는데까지 열심히 했다.
역시 단순히 돈만 보고 쫓아가는게 아닌 내가 정말 하고 싶은 일이 어떤 것인지 다시 생각하고 선택했던 것이 주효했던 한 해였다. 열심히 돌아다니고 많은 고객사를 방문해보면서 내 자신을 한단계 더 업그레이드 시켰다. 고객을 대하는 방법, 모의해킹 기술들, 위험 평가 등.... 모두 나에겐 자산이 되고 느낀게 많았다. 그에 따른 원동력은 역시나 사람들을 잘 만났던 것 같다.
같이 일한 PM님, 수석님들이 실력도 좋으시고 실수를 하는게 있어도 질타하는게 아닌 다시 한 번 어떤 부분이 잘못되었는지 알려주시는 방식으로 업무를 진행하셨고 나도 그런 윗사람들을 보면서 많이 배우고 느꼈던 것 같다. 프로젝트는 항상 나 혼자만을 생각하며 진행할 순 없기에... 늘 협업이라는 것이 중요했고 그러한 부분을 보면서 내껏으로 승화시키기 위해 노력했다. 지금 생각해보면 입사하고 정말 아무것도 모르는 상태에서 갑자기 금융권쪽 프로젝트에 투입되서 어떻게 진행했는지.... 처음부터 금융권 프로젝트에 투입될 진 생각도 못했지만 역시 금융권쪽이 배울게 가장 많았었다.
많은 돈이 왔다갔다하고 그만큼 보안에 엄청나게 투자를 하는 만큼 보는 시각이 좀 더 넓어졌다. 지금도 금융권쪽 커리어를 쌓게 해준 회사에 고마울 따름이다. 그렇게 여러 단기 프로젝트를 경험해본 후 계속 혼자 웹, 모바일 앱 모의해킹을 하면서 돌아다녔고 바쁠땐 3~4개월씩 본사 구경도 못해본 채 일만 했다. 때론 너무 돌아다녀 지치기도 했지만 다른 회사의 좋은 분들을 만나 다시 충전되고 일하고 그랬다.
전국을 돌아다닌다는 것도 쉽지만은 않지만 그냥 여행 다닌다는 생각으로 다녔다. 내가 좋아서, 진심으로 하고 싶었던 일이었던 만큼 열과 성의를 다했고 틈나는 대로 모의해킹에 필요한 기술, 대학원 공부까지 꾸준히 했었던 만큼 후회없는 한 해를 보낸 것 같다.
이제 대학원도 졸업을 앞두고 있고 어느덧 보안 경력도 3년차에 들어가고 있지만 늘 현실에 안주하지 않고 꾸준히 올라가는 기술컨설턴트가 되는 것이 현재 내 목표다. 내년에도 나태해지지 않고 지금처럼만 하길 바라며 계획했던 것들이 모두 이루어지길 소망하며 글을 마친다.
이건 버그바운티는 아니지만 리액트에서의 XSS 공격에 대한 대응방안을 잘 적어놨다. XSS 공격은 버그바운티 뿐만 아니라 실무에서도 많이 나오는 공격이기 때문에 좋은 대응 방안은 알면 알수록 도움이 많이 된다. 생각보다 어렵진 않다. dangerouslySetInnerHTML이라는 속성 사용을 자제하면 리액트에선 간단하게 XSS 공격이 막힌다. 대신 아래와 같은 코드를 사용한다.
한국어로 된건 많이 없어서 생각보다 많이 어렵다. 그나마 해당 링크가 잘나와있는 편인데 좀 간단하게 말해서 동일한 HTTP 요청을 여러종류의 서버들이 각기 다른방식으로 처리하기 때문에 발생되는 취약점 중 하나다. Smugging bug 중에서도 CLTE 기법을 사용했는데 해당 공격기법은 Content-Length 헤더와 Transfer-Encoding 헤더를 동시에 전송하는 공격기법이다. Transfer-Encoding은 hop-by-hop 헤더로, 리소스 자체가 아닌 두 노드 사이에 메시지를 적용한다. 프론트엔드 서버에서는 Content-Length를, 백엔드 서버에서는 Transfer-Encoding을 각각 해석하는것을 이용하여 요청을 변조한다.