2017년 6월 25일 일요일

Elasticsearch 활용(DNS Event Log 분석 - 2nd)

데이터 정리가 문제지, 정리된 데이터의 분석은 쉽다
- 데이터 분석이 쉬워지는 정규표현식(459페이지)

엘라스틱도 마찬가지. 3006, 5156 이벤트 로그를 분석에 편리한 형태로 정리해주는 Logstash 설정은 다음과 같다.
input { 
 beats { 
  port => 5044 
  } 
 }

filter {
 if [event_id] == 3006 {
  if [event_data][QueryName] in ["localhost","wpad","isatap","lg","LG"] or [event_data][QueryType] == "28" {
   drop { }
  }

Elasticsearch 활용(DNS Event Log 분석)

엘라스틱으로 DNS 이벤트를 분석해보자. 프로세스 ID와 URL 정보를 기록하는 3006 이벤트, 그리고 'Windows Event Log 분석(DNS Request)'에서 언급했던, 프로세스 이름과 네트워크 연결 정보를 기록하는 5156 이벤트를 조합하면 뭐 좀 나오지 않을까? 다음은 winlogbeat로 전송한 3006, 5156 이벤트를 키바나에서 조회한 결과.


2017년 6월 18일 일요일

Logstash 필터 grok

데이터를 원본 상태 그대로 분석할 수만 있다면 참 좋겠지만 안타깝게도 그런 경우는 거의 없다. - 데이터 분석이 쉬워지는 정규표현식 (40페이지)

그래서 엘라스틱은 분석에 유용한 형태로 로그를 가공할 수 있는 정말 다양한 필터 플러그인을 제공한다. 그중 가장 빈번하게 사용되는 필터가 grok. 해당 필터는 정규표현식을 이용해서 원하는 데이터 영역만을 추출하는 기능을 제공한다.

가령 '출발지 IP는 1.2.3.4입니다'란 정보로 채워진 'message' 필드에서 IP 정보만을 추출하고 싶다면 다음과 같은 필터식을 작성하면 됨.
filter {
  grok {
    match => { "message" => ".+%{IP:client}.+" }
  }
}

grok 필터는 미리 정의된 다양한 정규표현식 패턴을 제공한다. 아래 구문은 'IP' grok 패턴과 일치하는 문자열을 추출한 후, 'client'란 필드로 저장한다는 의미.

2017년 6월 17일 토요일

2017년 6월 16일 금요일

Windows Event Log 분석(feat. Elasticsearch)

파워쉘 삽질은 그만하고 엘라스틱서치를 이용해서 이벤트 로그를 분석해보기로 했다. 그런데 홈페이지에서 한글 서비스를 제공하네? 글로벌 벤더들 대부분 아시아 상대로는 중국, 일본어 정도만 제공하는데, 한국 시장을 남다르게 보는 듯. 물론 세부적인 매뉴얼은 다 영어.


2017년 6월 13일 화요일

Windows Event Log 분석(Dns Request - 5th)

DNS 관련 이벤트 로그를 조회 시도 프로세스명과 함께 기록해보려 했으나 잘 안 되는 중. 정확히 얘기하면 같은 시간대에 여러 개의 DNS 조회가 발생해도 마지막 조회만 기록 중. 스크립트를 좀 바꿔봤다. 작업 스케줄 설정(3006 이벤트 발생 시 실행)은 동일.
$TIMESTAMP = Get-WinEvent Microsoft-Windows-DNS-Client/Operational -FilterXpath {*[System/EventID=3006]} -MaxEvents 1 | Select-Object -ExpandProperty timecreated
$LOG_LIST = Get-WinEvent -FilterHashtable @{ LogName='microsoft-windows-dns-client/operational'; StartTime=$TIMESTAMP; ID=3006 }

foreach($LOG in $LOG_LIST) {
    $TIMESTAMP_SPLIT = $TIMESTAMP -split " "
    $LOG_DATE = $TIMESTAMP_SPLIT[0]
    $LOG_TIME = $TIMESTAMP_SPLIT[1]
    $PROC_ID = $LOG | Select-Object -ExpandProperty processid
    $PROC_NAME = Get-Process -id $PROC_ID | Select-Object -ExpandProperty processname

2017년 6월 11일 일요일

클라우드 로그 분석 서비스 logz.io

어떤 분의 소개로 ELK 기반 로그 분석 서비스를 제공하는 logz.io란 사이트를 알게 됐다.


2017년 6월 5일 월요일

사피엔스

참신한 발상의 전환이 돋보이는 유발 하라리의 인류 역사서.

저자는 호모 사피엔스가 '인지', '농업', '과학' 혁명을 거쳐 만물의 영장이 되었으며, 이제 신 비슷한 존재가 되려는 시도를 하고 있다고 얘기한다.

'총균쇠'가 인류 역사를 조목조목 정리해준다면, '사피엔스'는 신선한 해석, 특히 인지 및 농업혁명에 대한 해석이 인상적이다.

인지혁명의 핵심은 상상력

팩트 기반의 말과 글만으로 조직할 수 있는 집단의 자연적 규모는 고작 150명 수준이지만 인간은 상상, 즉 허구를 공유함으로써 그 한계를 무너트렸다고.

2017년 6월 3일 토요일

색다른 보안 서비스 plura

해킹을 실시간으로 분석해준다는 plura무슨 뜻이지? 다음은 처음 접했을 당시의 기사 한 토막.

시조새급 보안 기술인 '패턴매칭'을 사용하지만 '난 달라'라는 흔한 컨셉. 인공지능이 유행인 세상이지만 '패턴매칭'은 못버리는구나 하고 말았는데, 우연히 웹서핑하다 다시 접하게 됐다. 그런데 '무료 체험' 서비스를 하네?

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