2018년 3월 28일 수요일

Elasticsearch가 쉬웠던 이유

제목이 너무 도발적인가? 지금 이순간에도 대규모, 대용량 환경에서 성능 등의 문제로 골머리를 썩이는 분들에겐 죄송(..) 하지만 엘라스틱서치를 로그 분석 관점으로만 활용하는 입장에서는 쉬우니 쉽다고 할 수 밖에.


처음 엘라스틱서치를 접한 건 작년 여름, 엘라스틱서치를 이용해서 로그 분석 서비스를 제공하는 logz.io란 웹사이트를 알게된 후였다.

사실 로그 분석 분야에서 엘라스틱서치라는 오픈소스가 유행하고 있다는 얘기는 전부터 들어왔지만, IDS 등 사실관계가 '해킹'이라는 맥락으로 필터링된, 한마디로 부정확한 로그를 분석하는 입장에서는 별로 관심이 없었다.

장비 구축이 전부인 분위기 속에서 '통합'으로 한번 홀리고, 현란한 '비주얼'로 한번 더 홀리는 SIEM류의 툴이 득세하는 바람에 보안관제 분야가 발전하지 못하고 있다는 생각을 오랫동안 해왔기 때문에 일부러 무시한 측면도 좀 있고. 하지만 실체를 보고나서는 생각이 바뀌었다.

(특정 행동을 의미하는 상태의 개수를 세는) 이상징후 분석을 목적으로 사실관계가 그대로 기록된, 한마디로 정확한 로그를 분석하는 입장에서는 매우 매력적이라는 생각을 하게 된 것.

마침 웹로그나, 시스템로그 등을 정규표현식으로 처리한 후, 엑셀로 시각화하는 교육 과정을 진행하고 있던터라, 엑셀 대신 엘라스틱서치를 쓰면 사람 홀리기 좋겠다는 교육 효과를 높일 수 있겠다는 생각도 들었고.

게다가 설치가 쉽더라

이건 정말 어마어마한 장점이다. 시작이 반이라고, 설치만 했을 뿐인데 엘라스틱서치 전문가(?)가 된 기분을 느낄 수 있다. 설치하다가 기 다 빨리는 snort랑은 하늘과 땅 차이.

실제 설치해보면 알 수 있지만 정말 쉽다. 검색 엔진인 엘라스틱서치와 데이터 시각화 툴인 키바나 모두 설치라고 할 것도 없이 압축 풀고 실행하면 끝.

엘라스틱서치 저장 전에 반드시 거쳐야 하는, 수집된 로그를 가공해주는 Logstash는 약간의 설정이 필요하지만 역시 별로 어렵지 않았다.


Logstash는 '가져올 로그를 지정해주는 input', '가져온 로그를 가공하는 filter', '가공이 끝난 로그를 저장하는 output' 구조를 가지고 있는데, 딱 보기에도 직관적일 뿐더러, 결정적으로 정규표현식 기반 grok 필터가 'filter' 영역의 핵심이기 때문.


물론 Logstash에서 사용할 수 있는 필터의 종류는 정말 다양하지만, grok 필터는 정규표현식을 이용한 패턴매칭을 통해 원시로그를 테이블 구조로 만들어주는, 한마디로 가장 기본적인 데이터 분석 환경을 만들어주는 필수 필터라고 할 수 있다.


원시로그에서 특정 행동을 의미하는 상태 구분 및 필드 분류를 하지 않으면, 날짜별 로그 개수 세는 것 말고는 할 수 있는 게 없기 때문.

문제는 정규표현식이 어렵다-_-

사실 별로 어렵지 않다. 정규표현식에서 주로 사용되는 메타문자 10여 개만 외우면 끝. 진짜 문제는 메타문자의 활용 및 응용이 가능할 때까지 반복 수업이 필요하다는 것.

어렸을 때 'ㄱ, ㄴ, ㄷ'이나 'ㅏ, ㅑ, ㅓ'를 자유롭게 사용하기까지 읽고 쓰기를 얼마나 반복했을까? 백 번? 천 번? 정규표현식도 그정도만 반복하면 충분히 숙달될 수 있다. 그런데 사람 구실 하려면 반드시 배워야 하는 말과 글만큼의 필요성을 정보보안 현장에서 요구하지 않는다.


웬만한 의지 없이는 정규표현식 반복 활용이 어려운, 정규표현식에 익숙해지기 어려운 환경(아웃소싱 위주, 장비 위주)이라는 얘기. 영어 교육 10년 받아도 쓸 일 없으면, 외국인과 대화 한마디 어려운 게 현실이다. 결국 정규표현식은 점점 더 관심밖으로(..)

이런 현실은 강의 중에도 쉽게 느낄 수 있다. 정규표현식과 엘라스틱서치의 강의 참여도가 다름. 당연히 엘라스틱서치의 완승. 정규표현식(을 이용한 데이터 전처리가) 빠진 엘라스틱서치가 제 구실하기란 하늘의 별따기지만, 관심은 엘라스틱서치가 독점. 이유는 뭐 트렌드이기도 하고, 결정적으로 내가 봐도 참 예쁘다.

예쁘면 강도도 팬카페가 생김(..)

물론 내가 쉽게 설명하지 못한 탓도 크다. 요즘 짬짬이 '스틱'이란 책을 읽고 있는데, '지식의 저주'란 단어가 등장하더라. 개구리 올챙이적 생각 못한다고, 일단 무언가를 알고 나면 알지 못한다는 것이 어떤 느낌인지 상상할 수 없게 되는 현상을 의미한다고.

이제 좀 안다고 정규표현식을 낯설어하는 이들의 심정을 이해하지 못하는 걸까? 아니면 혹시 아직도 정규표현식을 잘 모르고 있는 건 아닐까? 왜 이렇게 설명이 어렵지?-_- 정규표현식과 엘라스틱서치 강의 비중이 반반인데, 정규표현식 비중을 줄여야 되나 고민이다.

최선은 실무자급은 반반, 관리자급은 엘라스틱서치에 좀더 치우치는 식으로, 강의를 차별화 하는 건데, 아무래도 아웃소싱을 많이 하다보니 일반 기업체는 실무자급이 그리 많지 않다. 있어도 관리 업무 비중이 높을 때가 많고.

실무자급은 보안업체에 많을텐데, 몇 년 간 강의하면서 보안업체에서 오는 경우는 두 번? 사실 데이터 분석이 대세로 보이지만 아직은 장비 위주의 트렌드고, 업무 성격이 바뀔려면 글쎄? 아무튼 시간이 많이 필요해 보인다.

글을 쓰다보니 결론이 나온 듯. 역시 정규표현식 비중은 줄이는 걸로(..)

댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스