회고

이번주는 우리 프로젝트의 탐지 고도화 확보를 위해 Open Search에서 제공하는 SIEM 솔루션인 Security Analysis를 활용하여 Rule Based Detection 설계와 Correlation Engine 동작을 위한 로그 정규화 같은 작업이 진행됐다.
목요일에는 개발 직종에서 종사하시는 현업자분의 취업특강, 금요일에는 오전에 토스뱅크 특강, 오후에는 취업지원센터 교육이 잡혀 있었고 금요일 교육 종료 2시간 전부터 강사님과 프로젝트 중간점검을 하는 시간을 가졌다.
프로젝트가 한창인 와중 특강 일정이 있어 조금 부담스러웠던건 사실이지만 유익한 시간이었던거 같다. 18주차에 특강 일정이 잡혀 있었기에 월~수 동안 많은걸 끝내놔야 한다는 생각에 평소보다 더 부지런하게 움직여야겠다는 생각에 더 속도감 있게 프로젝트를 수행을 하는데 화요일이었나 사고가 있었다. 이 이야기는 밑에서 풀어보도록 하겠다.

프로젝트 진행 내용이 궁금하다면?

프로젝트 수행일지 보기
프로젝트 수행일지 시리즈 링크입니다. 자세한 내용은 위 링크에서 확인 해주시고, 질문 있다면 댓글 달아주세요!


Knowledge Based Detection(지식 기반 탐지)의 신뢰성 확보

우리 프로젝트에서 "탐지"는 핵심이다. Tetragon의 프로세스 계보 추적 기능을 통해 악성 행위를 커널 레벨에서 탐지하는 Behavior Based Detection(행위 기반 탐지), 평소와 다른 트래픽의 흐름을 탐지하는 Anomaly Detection(이상 행위 탐지), 그리고 사전에 정의 된 규칙에 의해 공격 행위를 탐지하는 Knowledge Based Detection(지식 기반 탐지) 이 세 가지가 서로 독립적으로 동작하지만 상호 보완적으로 탐지 결과를 분석한다.
행위 기반 탐지는 이전 TIL에서도 여러 번 언급했듯이 Hubble의 가시성 정책과 Tetragon 정책을 통해 고도화를 시키고, 이상 행위 탐지는 Open Search의 Anomaly Detection을 통해 정상 트래픽을 학습 시켜 동작한다. 근데 지식 기반 탐지는? 우선 지식 기반 탐지는 미리 정의된 알려진 공격 패턴(시그니처) 또는 규칙 데이터베이스와 네트워크, 시스템 활동을 비교하여 일치하는 경우를 침입으로 간주하고 탐지하는 방식이다.

기본적으로 100% 완벽한 수치는 존재할 수 없기에 한 가지 방식으로 탐지를 하기 보다 탐지 레이어를 쌓아 다중 탐지 프레임워크를 설계했다. 따라서 설계한 프레임워크에 각 컴포넌트는 서로서로 Hole을 메꾸어 주기 때문에 각각의 탐지 방식이 신뢰성을 가져야 한다.
Tetragon을 이용한 행위 기반 탐지와 이상 행위 탐지는 탐지 정책 설계와 정상 트래픽 학습으로 동작하지만 지식 기반 탐지는 사전에 정의 된 규칙 기반으로 동작을 하는 것이기 때문에 규칙에 대한 신뢰성이 절대적으로 필요했다. 그래서 SIEM 관련 된 내용을 찾아보던 중 Sigma Rule에 대해 알게 되었고 표준으로 사용된다는 사실에 우리 프로젝트에 녹이면 좋겠다라는 생각과 동시에 설계에 돌입했다.


프로젝트 도중 실전 맛보기

기존에 Open Search 검색 엔진과 대시보드를 로컬 환경에 올려서 활용하다가 시스템 부하 때문에 프로젝트 수행 환경이 멈추는 현상이 빈번하게 발생해서 AWS Ec2에 오픈서치를 올리게 됐다. 근데.. 다음날 와서 확인 해보니 허블 로그가 5천만개가 쌓여 있고 몇 분? 안지나서 1억개가 쌓여 있던거다. 진짜 1억이라는 수치를 처음 봐서 당황스러웠다. 처음 올려놨을 때 퍼블릭으로 올려놔서 밤 사이에 공격 당했나..? 싶어서 로그를 하나씩 까보기 시작했다.

처음 로그를 한 두개 까봤을 때 우리가 설계 해놓은 정상 트래픽은 거르고 보는데 포트 스캔 공격과 같은 흔적들도 보이고 우리 대역이 아닌 내부망 IP가 보였다. 점점 불안해졌다. 보안한다는 사람들이 .. 진짜 공격인가..? 로그만 뜯어보다가 하루가 다 갔고 임시로 접근 제어를 빡빡하게 해놓고 집에 갔다.
근데 다음날 왔는데 또 6천만개 가량의 로그가 쏟아져 있었다.

또 로그를 뜯어보고 위 사진과 같이 그래프, 우리 프로젝트 환경 로그를 종합적으로 분석 해보니 오픈서치와 Fluentd 간 성능 차이로 발생한 이슈였다.
Fluentd가 Open Search로 로그를 보내는데 Fluentd가 보내는 속도에 맞춰 Open Search가 처리하지 못해 로그가 끊겼다가 한번에 처리되면서 로그가 폭증했던 것이다. 그래서 Open Search가 로그를 문제없이 처리 시키기 위해 서버 스펙을 올리고, Fluentd 스펙을 조정했다. 그랬더니 다행히 다음날부터는 정상적으로 로그가 균등하게 쌓이는 것을 확인할 수 있었다.
뜻밖에 찾아온 이런 이슈 덕분에(?) 우리가 프로젝트에서 분석하던 것들을 실전적으로 활용할 수 있어 나름 괜찮은 경험이었던거 같다. 1억개 찍혔을 때 스크린샷 찍어 놨어야 됐는데 수습하느라 정신 없어서 ㅋㅋㅋㅋㅋㅋ 아쉽다.. 암튼 정말 긴장감 넘치는 이틀을 보냈다.


성찰

프로젝트를 하루하루 수행하고 집에 가는 길, 작업 끝내고 자려고 누웠을 때 요즘 부쩍 팀원들에게 나는 어떤 팀장일까라는게 궁금해졌다. 사실 내가 잘하고 있나?부터 출발해서 좋은 팀장은 무엇일까?라는 생각을 항상 했던거 같다. 특히 요즘 프로젝트 마무리 단계를 밟고 있어 그런 생각을 하는 빈도가 잦아진거 같다.

모두를 만족할 수 없다는건 너무나도 잘 알고 있어 어떤 순간에 악역이 필요하다면 악역이 될 미움 받을 용기 또한 지니고 있어야 한다고 생각한다. 마음이 안좋아도 싫은 소리도 할줄 알아야 하고 책임감, 결단력 등 "팀장"이라는 역할이 주는 부담감은 큰거 같다.

내 MBTI는 ENTJ 유형이다. 다들 알겠지만 사람들이 그리 선호하는 성격 유형은 아니다ㅋㅋㅋㅋㅋ 거기다 나는 T가 거의 100%에 육박하는 사람이라..ㅎ
논리적이지 않고 근거가 없는 얘기들은 받아 들일 수 없고 평상시에도 그런편이지만 특히 프로젝트 같은 일을 할 때는 더 심해진다. 어떤 이야기의 설득력과 논리가 없으면 집요하게 물어보고 파는 스타일이라 아마 이 점 때문에 우리 팀원들이 힘들지 않았을까?라는 생각이 든다.
예를 들어 어떤 작업을 할 때 기한 안에 못했다고 치자. 그럴 수 있다고 생각은 한다. 근데 왜 못했는지 어떤게 문제였는지를 명확하게 파악하고 있다는 전제가 깔린다.
나는 이런 전제가 안되어 있다면 질문을 많이 해서 주어진 테스크를 완료하게 만드는 편이다.

근데 이걸 팀원이 받아 들이지 못 하는 상황이 발생할 수도 있다고 생각한다. 누군가는 조금 더 포용력 있는 태도를 보일 수 있지 않느냐고 하지만 사실 그게 나한테 쉽지는 않다. 그리고 동시에 굳이?라는 생각도 든다. 전반적인 팀 운영에 책임이 있기 때문에 적어도 포용력이라는게 프로젝트에서 우선순위에 존재하진 않는거 같다.


취업특강

아무튼 .. 이런 생각을 하던 와중에 취업특강에서 팀장으로서 태도와 관련된 이야기가 잠깐 나왔다. 좋은 팀장, 리더는 무엇인가? 라는 질문을 받았고 나 자신에게도 질문을 던졌던거 같다. 특강 이후에 일대일 면담 시간이 주어져서 팀 내에서 발생했었던 갈등(?) 상황과 팀 운영에 대한 질문을 주로 했던거 같다.
우리 팀은 지금껏 큰 갈등 상황은 없었지만 의견 충돌, 자잘한 소음들은 당연히 존재했기에 겪었던 일들이나 대처했던 방식들을 이야기 드리면서 면담을 했다.
뭐 .. 일단 특강 해주시러 와주신 강사님 말씀으론 잘하고 있다고 해주셨는데 사실 잘 모르겠다. 일정, 테스크와 같은 업무적인 리더십은 잘 관리한다고 생각하는데 인간성?이라고 해야할까 그런 부분에 있어선 난 내 자신이 부족하다고 생각하는 편이라 ... 프로젝트가 끝나면 팀원들에게 꼭 한번 물어봐야겠다.
이런 생각이 많아지니 작년에 나의 가장 큰 터닝 포인트였던 유난한 도전을 읽었을 때가 생각났다. 과정 종료 이후 회고할 때 책을 다시 한번 읽어 봐야겠다.

취업특강에서는 취업을 위해 어떤 자세로 준비를 해야하는지를 주로 말씀 해주셨다. 간단히 요약하자면 기술적인 것도 중요하지만 어떤 일이 끝나고 혹은 진행중에 있을 때 "회고"의 중요성과 "의문"의 중요성을 정말 많이 강조하셨다. 그냥 흘러 가듯이 선택하는 것이 아닌 작은 선택 하나하나에도 이유가 있어야 한다는 것. 정말 공감이 많이 되는 포인트였던거 같다.

현재 프로젝트 할 때도 선택 하나하나의 논리적인 비약이 없도록 우리의 생각과 이유를 부여하려고 하고 있다. 이는 개인 프로젝트면 모를까 팀 프로젝트면 팀 구성원이 이에 공감을 해야 가능한 일인데 다행히 논리성 확보를 당연시하는 희수와 이를 공감해주는 다른 팀원들이 있기에 가능했지 않았을까라는 생각이 든다.

개인적인 부분에선 오피스 투어 이후부터 나의 일주일의 감상, 반성과 같은 회고를 작성하고 있는데 본격적으로 취업 시장에 나갈 때 이런 점들이 플러스 요인으로 작용하겠다는 생각이 들었다. 다시 한번 토스뱅크에게 감사 인사 드립니다🙇‍♂️


프로젝트 종료 D-17

슬슬 프로젝트 마무리 단계에 돌입했기 때문에 중간점검이 이루어졌다. Tetragon 정책 설계부터 탐지 프레임워크 고도화 진행 상황에 대해 보고 드렸고 이제 우리조는 문서 작업을 시작하라는 피드백을 받았다. 정말 다행이었던건 우리의 방향성이 크게 휘둘리고 그런적이 없었기 때문에 처음 계획했던 대로 거의 모든게 수행된거 같다.
근데 탐지 고도화 외에 분석 부분이 약한거 같다는 내부적인 피드백이 있어서 이 부분은 고민중에 있다.


마무리

뭔가 끝나가니까 한게 얼마 없는거 같고 그런 생각이 이따금씩 든다. 프로젝트 수행만 쭉 해오느라 수행한 작업에 대해 결과 문서로 정리를 하지 않아서 그런거 같기도 하고.. 열심히 해온만큼 인정 받을만한 좋은 결과를 내고싶다. 언제였는지 기억은 잘 안나지만 1등 할거라고 했었는데 그 생각이 지금도 유효하다. 마무리만 잘하면.. 가능하지 않을까?라는 생각이 든다.

지금 이번주에 내가 쓴 TIL을 전체적으로 쭉 보는데 좀 내용이 중구난방인거 같다. 뭔가 이런저런 생각이 많아서 그런거 같다. 암튼 이제 정말 며칠 안남았으니까 더 힘내서 끝까지 완주할 수 있도록 노력 해보겠다. 이번주 TIL은 여기서 마치도록 하겠다. 이번주도 고생 많으셨습니다!

0개의 댓글