[리뷰] 엘라스틱서치로 알아보는 이상징후 분석



개요

본 리뷰는 이지데이터 출판사 "엘라스틱서치로 알아보는 이상징후 분석(강명훈 저)"을 읽고 얻은 지식을 정리한 글입니다.

시간이 많지 않은 독자분들을 위하여


본 도서는 제목이 말해주듯 이상징후 분석이라는 주제를 다루기에 보안분야에 대한 도메인 지식이 부족한 분이라면 책의 난이도에 선입견이 들 수 있다.

하지만 1장(데이터분석)을 보면 알 수 있듯이 생전 처음 데이터 분석을 접하는 사람도 이해할 수 있도록 매우 쉽게 데이터 분석 방법을 다룬다. 소재가 보안분야일 뿐이다. 제목에서 선입견이 생길까 우려되어 본 메시지부터 전달하였다.

책은 크게 두 파트로 구성된다. 하나는 데이터 분석의 기초, 다른 하나는 ELK 스택을 활용한 이상징후 분석이다. 대상 독자는 보안 분야에 관심이 있는 사람은 물론 AI, 빅데이터, 머신러닝에 관심이 있는 사람도 포함된다. 그만큼 보안 도메인 지식 이전에 데이터 분석이 주를 이룬다.

필자와 같이 AI에 관심이 있는 분이라면 반드시 일독을 권하고 싶다. 대다수의 AI 초보자들은 Keras API로 딥러닝을 구현하다가 막상 본인의 과제는 구현하지 못하는 경우가 흔하다. 기본 내공이 약한것을 깨닫고 밑바닥 구현 원리에 집중한다. 손실함수에 대한 정확한 개념을 다시잡고, 최적의 W(가중치)를 학습하기 위해 손실함수의 미분 방법을 배운다. 경사하강법의 원리를 배우고 미분의 체인룰을 활용하여 오차역전파법도 익힌다.

물론 이 또한 중요한 과정이다. 그런데 문제는 그런 기초를 익히고도 현업에서 맞닥뜨린 데이터를 마주하면 다시 좌절하기 십상이다. 무엇이 문제일까? 본 도서는 그 해답을 얻기 위한 인사이트를 제공한다. 보다 관심이 있으시다면 아래 챕터를 계속 읽어주시기 바란다.

EDA, 데이터의 질감을 느낄 수 있는 기회!


앞의 챕터에서 소개한 본 도서에서 얻을 수 있는 인사이트를 가장 잘 표현하는 문장을 소개해볼까 한다. 데이터 분석과 관련된 컬럼에서 발췌한 일부이다.

“아주 똑똑한 학생이나 엔지니어도 자신이 만지는 데이터에 대해 놀라울 정도로 호기심을 보이지 않는 경우가 많다. 대부분 뭘 궁금해해야 하는지를 모른다. 데이터를 그냥 가로 세로 줄 맞춘 다음 블랙박스 모델에 집어넣으면 첨단 알고리즘이 알아서해줄 거라 기대한다. 당연히 실패한다. 그래서 필자는 프로젝트에서 데이터의 공간 변환, 공간 탐색 등의 전문적 단계에 진입하기 전에 학생들에게 데이터를 가지고 온갖 자질구레한 관찰을 해보도록 강제한다. 데이터의 질감을 느끼는 단계다. 이 과정에서 통찰과 관점이 생긴다. 이 단계를 충분히거치지 않은 문제의 모델링은 문제를 쓸데없이 어렵게 만들거나 왜곡시킬수도 있다.” - 문병로 서울대 컴퓨터공학부 교수 (출처)

책의 머리글에서 저자가 소개한 모 교수님의 컬럼으로 머신러닝, 딥러닝에 앞서 무엇이 중요한지 그리고 EDA의 중요성을 현실과 결부하여 알기쉽게 전달한다. EDA의 중요성을 알기쉽게 표현한 또 다른 인용구를 소개해본다.

“봤던 서류를 계속 다시 본다. 보고 또 본다. 혹 놓치는 게 있을까봐 뒤부터 보기도 한다. 익숙해져서 놓치는 부분이 있을까봐 계속 낯설게 하기 작업을 하는 것이다. ”
- 미생 84 수

데이터 분석은 크게 두가지로 나뉜다. 탐색적 데이터 분석(Exploratory Data Analysis)은 집계(Metrics), 시각화 등을 이용한 데이터 구조 및 의미를 파악하는 과정이다. 나머지 하나는 확증적 데이터 분석 (Confirmatory Data Analysis)으로 파악된 데이터 구조를 바탕으로 의미 기반의 정형화된 모델링을 분석하는 과정이다.

저자는 1장(데이터분석)에서 시종일관 독자로 하여금 데이터 질감을 느끼도록 강제한다. 도구 선택부터 독특하다. 요즘 유행하는 Python, Julia, R, Swift, Spark 등을 사용하지 않고 누구나 접해본 Excel로 분석을 시작한다.

혹 실망하셨는지? 필자도 책을 읽으며 5초 정도(?) 실망했다. 하지만 데이터 분석의 본연을 위해 이만한 장치가 없었다. 도구는 도구일 뿐 본질이 아닌데 자칫 도구에 집착하여 데이터 분석을 뒷전으로 미루거나 도구의 기능에 빠져들어 엉뚱한 부분에 시간과 노력을 낭비하는 일을 방지할 수 있다. 그래도 위로가 안되신다면 2장부터 ELK라는 멋진 도구를 이용한 분석을 시작하니 실망하지 않으셨으면 한다. Keras API에 집중하느라 분석과 모델링의 감을 잃었던 경험이 있다면 더욱 좋다. 엑셀로 충분히 느낀 감을 통해 ELK로 구축하며 Keras API를 사용하는 동안 무엇이 문제였는지 확실히 깨닫게 될 것이다.

다음은 책의 서두 중 일부이다.

① [그림 1-2]는 인구라는 상태의 수를 센 것, ② [그림 1-3]은 인구라는 상태를 남자와 여자라는 두 개의 상태로 쪼개서 수를 센 것, ③ [그림 1-4]는 남자, 여자, 그리고 나이라는 세 개의 상태로 쪼개서 수를 센 것이다. 이중 인구라는 상태를 이해하는 데 가장 도움이 되는 통계는 무엇일까?

쪼개면 쪼갤수록 그 상태에 대해 더욱 잘 알 수 있다는 통계의 기본을 시각화 된 도표를 활용하여 흥미롭게 전달한다. 이 책에는 평소의 얕은 상식에서 출발하여 데이터 분석으로 항해하기 까지의 일반인들의 어려움과 고민을 함께 다루며 나아간다. 따라서 본인이 통알못, 수알못, 데알못일지라도 읽는데 전혀 부담이 없다.

이 정도면 책의 백미는 거의 다 소개한 것 같다. 아쉬워 할 분들을 위해 추가로 얻을 수 있는 지식들을 아래 챕터에서 간단히 요약해본다.

데이터 전처리


전처리

책에서는 아래 문구와 같이 전처리의 필요성을 알기 쉽게 설명한다.

서버의 로그를 분석하기 위해서 1 초에 한 줄씩 읽는다고 해도 사람이 (밥도 안 먹고, 잠도 안 자고, 화장실까지 포기하면서) 하루에 읽을 수 있는 로그양은 86,400 개일 뿐이다.

과거 데이터 파싱(Parsing)이나 ETL(Extract, Transform, Load) 등의 용어로 많이 불린, 빅데이터가 유행하면서부터는 거의 ‘데이터 전처리’란 용어로 굳어진 ‘처리’ 과정을 밑바닥부터 엑셀을 활용하여 심도 있게 다룬다.

예를 들어 실습을 따라하다보면 SQL Injection 취약점 스캔 시도가 변수 고유 개수 증가 원인임을 알 수 있고 고유한 변수라는 상태의 개수, 숫자의 변화를 추적함으로써 해킹 패턴을 검색하지 않고도 해킹 징후를 발견할 수 있게된다.

그 과정에서 아래 그림과 같이 보안 분야의 도메인 지식을 얻을 수 있다는 장점도 있다. 전처리

데이터 시각화


시각화의 중요성은 이미 위에서 탐색적 데이터 분석을 소개하면서 언급하였다. 문제는 시각화를 어떻게 구현하고 활용할 것인지가 핵심이라 할 수 있는데 책을 읽다보면 시각화 과정에서 자주 맞닥드리게 되는 실전에서의 해결방법이 아래와 같이 다양하게 등장한다.

200, 304 응답 코드 발생량이 너무 커서 나머지는 보이지도 않는다. 요청 대부분 정상 처리 되고 있다는 얘기. 대부분의 사용자는 정상일테니 당연한 결과. 우리는 보안 관점의 분석을 하고 있으니 [그림 1-63]처럼 정상 응답을 제외시켜 보자. 시각화1

점을 표시하지 않아서 발생한 결과. 데이터 분석은 데이터만 잘 알아서는 곤란하며, 분석 도구의 특징도 잘 알아둘 필요가 있다. [그림 1-64]처럼 차트 종류를 ‘표식이 있는 꺾은 선형’으로 바꾸니 보이지 않던 500 응답 코드 상태가 보인다.

500 응답 코드는 서버 설정이나 개발 과정의 오류에 의해서도 발생하지만, ‘어떤 요청을 했길래 서버에서 에러가 발생했을까?’란 호기심을 갖게 해주는, 보안 관점에서도 가치가 있는 통계 지표다.

404 역시 서버측 실수에 의해 발생할 수 있는 응답 코드. 하지만 ‘왜 없는 페이지를 요청했을까?’란 의문을 품을 수 있는, 역시 가치가 있는 보안 지표다.

ELK 스택과 머신러닝


ELK

ELK를 다루는 파트는 앞서 설명한 바와 같이 본 도서를 구성하는 큰 축을 담당하고 있다. 하지만 저자는 책의 말미에서 데이터 분석 강의의 지루함을 상쇄하기 위한 은총알(silver bullet)으로 ELK 스택을 활용했다고 소개한다. 그만큼 저자가 전달하고 싶었던 본연의 스킬은 데이터 분석이라는 것이다.

그렇다고 ELK 파트를 무시하면 안된다. 1장에서 데이터 분석에 대한 질감을 느끼며 익혔던 인사이트를 ELK라는 훌륭한 도구로 구현하는 과정이다. 설치부터 데이터 연동은 물론 키바나를 활용한 대시보드 구현까지 ELK도 수준높게 다룰 수 있다. 대시보드

더불어 엘라스틱 머신러닝까지 체험할 수 있다. 30일 간 무료로 활용할 수 있는 플래티넘 라이센스를 통해서 말이다. 머신러닝

정규표현식


프로그래밍은 물론 데이터 전처리에 있어 알아두면 생산성을 수십배까지 끌어올리고 주위 사람들에게 고수의 냄새를 풍길 수 있는 정규표현식! 본 도서는 정규표현식을 위한 도서는 아니지만 EDA 및 ELK를 활용하는 과정에서 약간이나마 맛을 볼 수 있다. PCRE 웹 사이트를 활용해서 보다 쉽게 실습하는 방법을 알려준다. 정규표현식1 정규표현식2

번외로 사실 저자는 보안분야는 물론 정규표현식 또한 초고수이다. 3년 전 즈음 대한민국 최대 서점 교보문고 광화문점에서 정규표현식을 가장 쉽게 저술한 책을 몇시간 동안 찾아 헤맨적이 있다. 그때 압도적으로 훌륭한 책을 고를 수 있었는데 그 책의 저자가 바로 본 도서의 저자이다. 데이터 분석이 쉬워지는 정규표현식라는 책인데 정규표현식에 관심있는 분들은 꼭 한번 읽어보시기 바란다.

누가 읽어야 하는가?


  • AI, 머신러닝, 딥러닝 및 데이터 분석에 관심이 있는 분(특히, 초보자).

  • ELK 스택을 실무에 활용하고 싶은 분.

  • 로그 분석을 통한 이상징후를 분석하고 싶은 분.

책의 구성 및 요약


이 책은 크게 두부분으로 구성되며, 각 파트에서 다루는 내용을 아래와 같이 요약해 보았다.

  • 1. 데이터 분석 (1장)
    • 통계 분석 및 데이터 전처리
    • 탐색적 데이터 분석
    • 데이터 해상도
  • 2. ELK 스택을 활용한 이상징후 분석 (2장 ~ 4장)
    • 엘라스틱 스택 설치 및 데이터 연동
    • 시계열 차트 분석 및 이상징후 대시보드 구현
    • 이상징후 분석환경 구축 및 정규표현식의 활용

요약하며…


제목에서 선입견이 생길까 본 메시지부터 전달한다. 본 도서는 제목이 말해주듯 이상징후 분석이라는 주제를 다루기에 보안분야 도메인 지식이 부족한 분이라면 책의 난이도에 선입견이 생길 수 있다. 하지만 1장(데이터분석)을 보면 알 수 있듯이 생전 처음 데이터 분석을 접하는 사람도 이해할 수 있도록 매우 쉽게 데이터 분석 방법을 다룬다. 다루는 데이터 소재가 보안분야일 뿐이다.

책은 크게 두 파트로 구성된다. 하나는 데이터 분석의 기초, 다른 하나는 ELK 스택을 활용한 이상징후 분석이다. 대상 독자는 보안 분야에 관심이 있는 사람은 물론 AI, 빅데이터, 머신러닝에 관심이 있는 사람도 포함된다. 그만큼 보안 도메인 지식 이전에 데이터 분석이 주를 이룬다.

필자와 같이 AI에 관심이 있는 분이라면 반드시 일독을 권하고 싶다. 대다수의 AI 초보자들은 Keras API로 딥러닝을 구현하다가 막상 본인의 과제는 구현하지 못하는 경우가 흔하다. 기본 내공이 약한것을 깨닫고 밑바닥 구현 원리에 집중한다. 손실함수에 대한 정확한 개념을 다시잡고, 최적의 W(가중치)를 학습하기 위해 손실함수의 미분 방법을 배운다. 경사하강법의 원리를 배우고 미분의 체인룰을 활용하여 오차역전파법도 익힌다.

물론 이 또한 중요한 과정이다. 그런데 문제는 그런 기초를 익히고도 현업에서 맞닥뜨린 데이터를 마주하면 다시 좌절하기 십상이다. 무엇이 문제일까? 본 도서는 그 해답을 얻기 위한 인사이트를 제공한다.

더불어 본 도서는 내용의 가독성과 전달력이 뛰어나고 어려운 지식에 대한 포장없이 예제를 통해 진솔하게 독자에게 다가가는 저자의 기술 방식이 일품이다. 반면 아쉬운 점은 고르기 어렵다. 굳이 필자의 취향으로 하나 꼽으라면 E-book만 존재하고 종이책이 없다는 사실 정도이다.

데이터 분석의 기초가 부족해 좌절했던 분께 특히 추천드리고 싶다. 그 외 보안 이상징후 분석, ELK, 정규표현식, EDA, 전처리 실무 등에 관심이 많은 분이라면 일독을 권하는 바이다.






© 2019.04. by theorydb

Powered by theorydb