자바에서 보안실현(1)새로운 작업 환경으로 가볼까

시간을 들여 풀리지 않는 문제는 없다고

by 늘여름

암호처럼 보이는 정보 보안에 관한 이야기를 평문으로 복호화하는 눈을 가지고 싶어서, 3년간 익숙해진 프로그래밍 언어와 개발 환경, 분석 도메인을 내려놓고 새로운 틀로 갈아 끼우고 있습니다.


초수의 입장에서 네트워크에 관한 책을 읽는 것부터 배경지식이 필요하다는 걸 알게 되었습니다.

프로그램의 기능을 정의하고 구현하기 전에 뭘 할지, 왜 하는지 설명하는 과정을 거쳐가는 중입니다.


금융회사 내부통제 업무에 임한다는 건 금융소비자의 어려운 상황을 그들의 입장과 감독당국의 관점에서 봐야 한다는 걸 의미합니다. 퇴근 태그를 찍고 사옥 문턱을 넘어 제 머릿속에 남겨진 각종 피싱과 같은 금융사기로 고통을 겪는 이들의 이야기로부터 이 프로젝트가 시작되었습니다.


25년 1월부터 지금까지 파이썬에서 자바로, 관계형 데이터베이스(MySQL)에서 비관계형(Not only SQL, MongoDB)으로 네트워크 트래픽 패킷 데이터에서 이상행위를 탐지하는 라이브러리를 만들어가고 있습니다.

작업물 깃허브 링크

데이터 분석과 개인정보 보호·이용 활성화에서 네트워크와 보안 도메인으로 확장된 광활한 이세계에 임하는 자세는 하찮은 걸 계속 쌓아 의미있게 만드는 겁니다.


프로젝트 팀 빌딩

(중고) 신입을 구하지만 경력직을 찾는다는 현실이 비즈니스뿐만 아니라 사이드 프로젝트 팀원을 구할 때도 적용되더군요. 지난 가명정보에 관한 파이썬 라이브러리를 기획하고 개발하는 데 성공했던 친구와 당장 수익화가 실현되지 않더라도 이번에도 함께 진행 중이랍니다.


24년 하반기에 다른 팀원들과 그래프 DB를 이용한 AML 구현 과제를 실패하면서 배운 건 목표가 거창할수록 실행보다 자료조사, 환경설정과 같이 준비 단계가 길어지면서 의도와 다르게 핵심에서 멀어진다는 점입니다.


따라서 친구에게 개요를 제시하고 프로그램을 기획 단계에서부터, 서로 무엇인지모르는 내용을 가지고 퇴근 후나 주말에 한정된 시간 내 결과물을 뽑아야 한다는 본질을 인정하고 초반 넘치는 의욕과 같은 힘을 싹 빼기로 했습니다.

(3일 초안기획 + 3일 중간점검 + 4일 기능개발 과정을 반복하는 3·3·4법칙을 적용하고 부담이 조금 줄었습니다.)


저에게 2달 동안 직장생활과 이직준비(서류/면접) 사이에서 자아실현을 위한 플젝 활동과 운동은 직업적인 생존만을 위해 삶을 꾸리지 않아도 된다는 믿음을 주었고요, 동료이자 친구에게는 플젝이 회사에서의 전반적인 시야를 넓혀주는 효과를 주고 있다고 합니다. 언젠가 알아야 할걸 좋은 계기로 알게 된 느낌이 들 정도로 말입니다.

현생의 직장생활에서는 재택근무(라는 꿈)는 이루어지 않지만, 언제 어디에서든 책임을 덜고 자유롭게 하고싶은 걸 적극 제안한 후 실행해보는 일을 경험하고 있습니다.


문제가 있어야 따라오는 성장

중요한 건 초반 한 달은 본격적인 보안 취약점 분석은 시작도 못했었다는 겁니다. 조바심이 느껴졌냐고 물으시면 끝내 인내심이 늘었을 정도였으며, 출근길 만원 지하철에서 사람들 틈새로 유튜브로 솔루션을 찾고 구글링을 대안이 나올 때까지 했었다고 말씀드릴 수 있겠습니다.


로컬 경로 문제로 의존성 패키지를 불러오고 플러그인 오류로 Maven 빌드하지 못하거나, 네트워크 트래픽을 캡처한 pcap파일을 Java에서 처리하도록 docker에서 zeek로 변환하지 못하거나, NoSQL DB에 json 데이터를 삽입하지 못하는 등 매 순간 시행착오들이 풍족했습니다.


그럼에도 그저 하다 보니 3월에 와서 DDoS 공격 패턴을 탐지하는 로직을 구상하고, SQL 인젝션·크로스사이트 스크립팅, 쿠키정보를 통한 세션탈취 등과 같은 웹 모의해킹 소스코드를 실행하는 과정에 놓여있습니다.


그렇습니다. 우리는 힘들다는 내면의 속삭임에 속지 말아야 합니다. 그 상태에서 힘을 더 들이고 버틴 이후에는 오히려 힘이 아직 충분히 남아있다는 걸 알 수 있으니까요. 비록 무자본·무일푼 과제라도 저번 달보다 더 나은 사람이 된다는 건 현재는 0원으로 할인되었을 뿐인 미래가치를 지닙니다.

20년 팬데믹 때 나갔던 무역기술장벽(TBT) 논문 공모전과 22년 카드 데이터 해커톤 출품작을 준비하던 모습입니다. 어쩌면 제 소재와 환경만 바뀔 뿐 본질은 그대로인 듯합니다.


사회생활과 무관한 여러분 스스로 주체가 될 수 있는 일을 선택해서 일단 몰입해 보시는 건 어떠신가요?

(물론 저는 본업보다 부업 연차가 더 긴 경우여서 업무 경력도 부지런히 쌓아야 하지만요.)


성과에 대한 압박에서 벗어나 0년차로써 겸손을 배우고, 그토록 찾던 자신이 선명하게 보이고 이해하며 못하는 모습을 있는 그 자체로 인정해 볼 수 있겠습니다.


상대방이 편안하다고 느끼는 건 그 사람이 마음을 열어 깊은 배려를 주고 있기 때문이라는 걸 알려준 선배의 추천 글을 끝으로 저는 다음주에 브런치로 돌아오도록 하겠습니다.

누군가에게 실망감을 안겨 주었을 때 내가 먼저 해야하는 것은 기대에 못 미친 나도 나라는 것을 인정하는 것이다. 스스로에게 실망할 때가 더 나은 내가 될 수 있는 기회가 된다. 오히려 더 정확한 값을 위한 판단 기준이 될 수 있다고 혼잣말을 삼키기로 한다.

자신을 오래 들여다볼 줄 아는 사람들은 천천히 늙는다. 어른은 실수 안 하는 줄 아는 사람들이 그들의 실수를 감추려고만 하니 도리어 실수도 더 많이 한다.

- 문상훈 작가님(빠더너스), 내가 한 말을 내가 오해하지 않기로 함 中 -
시나리오를 분석하는 방법이 실제 사용하는 것과 다를 수 있다. 모두가 자신의 관점에서 문제 해결과 추론에 접근한다. 분석결과로 문제가 해결되지만 그렇지 않을 때에도 실패로부터 배우는 것이 중요하다.

결국 경험은 우리가 원하는 것을 얻지 못할 때 얻을 수 있는 것이다.

- 와이어샤크를 활용한 실전 패킷 분석 3/e 中 -
keyword
토요일 연재