2023년 12월 27일 수요일

2023년에 있었던 일

연말에 이제 늘어지면 되나 싶었는데 곰팡이 핀 귤 먹었다가 근 1주일을 장염에 시달렸다. 귤 사놓으면 항상 한두 개는 곰팡이가 폈지만 매번 그 부분 걷어내고 먹어도 탈이 없었는데 이번엔 좀 덜 걷어냈나?

정신 차리고 보니 23년 나흘 남았네. 올해는 어떻게 보냈을까? 일단 코로나 종식으로 강의 시장 조금씩 살아나나 싶어 반가왔던 한 해.

그동안 시큰둥해하던 신규 과정도 드디어 내년 오픈 확정. 출강 기관 요청으로 이상징후 분석/패턴매칭을 분리한 원안 대신 결합 과정이 포함된 수정안으로 바뀌긴 했지만. Snort 수요가 꾸준히 있기는 한가 보다.

2023년 12월 6일 수요일

엑셀 피벗 차트의 Y축 추가 외

웹로그 발생량과 접속자 고유개수, 두 지표의 스케일 차이가 커서 비교가 어렵다.


2023년 12월 4일 월요일

Stop deploying web application firewalls

제목이 도발적이다. 정규표현식 떡칠로 성능도 구리고 오탐률도 높은 웹방화벽 쓰지 말자는 내용인데, 글쓴이는 무슨 사연이 있길래 이런 독설을 쏟아낼까? (정상 서비스 차단해놓고 영업 기밀이라 원인 규명 못한다고 뻗대던 모업체 떠오르네) 

그런데 보안 종사자들에게 별로 도움되는 글은 아닌 듯. 그렇게 따지면 사실상 모든 네트워크 보안장비 쓰지 말자는 얘기인데(..) 서툰 목수가 연장 탓한다는 말처럼 도구는 그저 쓰기 나름. 오히려 재미있는 건 댓글 반응. 몇 개만 추려보면,
People will stop deploying WAFs when the compliance standards are rewritten to not require them. Honestly AWS WAF is perfect for this. It's not a great WAF but it is ideal if you need "pretend to have a WAF" as a service so you can tick the box. 

2023년 11월 27일 월요일

Elasticsearch 8.11의 변화

엘라스틱이 8.11 버전에서 ES|QL 기능을 추가했다. 간단히 얘기하면 'Unix + SQL' 컨셉의 스플렁크 SPL과 같은 기능.


2023년 11월 6일 월요일

Logstash 필터 dns

IP의 도메인 주소를 질의해주는 dns 필터.
filter {
 mutate { 
  remove_field => ["@timestamp", "@version", "path", "host"] 
  strip => "message"
 }

 dns {
  reverse => "message"
 }
}

2023년 10월 29일 일요일

평균의 함정 - 2nd

IP별 평균 URL 접속 추이. stats와 eventstats의 집계 결과가 다르다.

2023년 10월 23일 월요일

데이터 시각화 별거 아니다 - 2nd

로그스태시는 에러 발생 시 상당히 고약한 트러블슈팅 환경을 제공한다. 물론 원인 파악이 쉬울 때도 있음. remove_field 오타 발생.
filter {
 mutate {
  remove_fiel => ["@version", "@timestamp", "path", "host"]
 }
}

2023년 10월 21일 토요일

Filebeat 경로 - 2nd

ZIP 파일 설치 환경 

모듈 전역 설정은 modules.d, 세부 설정은 module 경로에서.


2023년 10월 15일 일요일

2023년 10월 10일 화요일

Splunk의 geostats 맵

키바나 맵은 tooltip 기능을 이용해서 위경도 포인트에 원하는 정보를 표시할 수 있다.


2023년 9월 26일 화요일

convert ip to decimal

IP 주소를 십진수로 바꿔주는 런타임 필드 쿼리.
GET testindex/_search
{
  "runtime_mappings": {
    "ip_pow": {
      "type": "long",
      "script": """
        def result = 0;
        def pow = 3;
        for (i in doc['message.keyword'].value.splitOnToken('.')) {
          result += Integer.parseInt(i) * Math.pow(256, pow);
          pow -= 1;
        }

2023년 9월 10일 일요일

2023년 9월 5일 화요일

2023년 9월 3일 일요일

TA-linux_secure - 2nd

TA-linux_secure의 transforms.conf 설정 중 다음 네 번째 캡쳐그룹은 사용자 ID 정보를 추출해서 user 필드에 저장한다.


그런데 ID 입력이 없는 접속이 발생하면 검사 실패. 수량자 +는 최소 검사 범위 제한(1개)이 있기 때문에 검사 위치에 문자열이 없으면 당연한 결과.

2023년 8월 26일 토요일

데이터는 어떻게 인생의 무기가 되는가

모두 거짓말을 한다의 저자 세스 스티븐스 다비도위츠의 두 번째 저서. 

전작과 비교하면 데이터 분석 과정에 대한 자세한 설명은 여전히 없고, 내용은 좀 더 가벼워졌다. 부담 없이 읽기에 좋음. 

두 번째라 그런지 짜임새도 더 탄탄해졌다. 전작은 좀 어수선한 느낌이라 읽다가 살짝 짜증났음.

다양한 데이터 연구를 바탕으로 인생의 해법을 찾는 과정을 보여주는데, 저자가 개그 본능이 있어서 유머 코드가 맞으면 훨씬 재미있게 읽을 수 있다.

흥미 있게 읽은 대목은 부자가 되기 위한 3가지 조건.

1. 회사를 가지고 있는가?

2023년 8월 24일 목요일

multiline modifier with wireshark

get으로 시작, zip으로 끝나는 문자열을 포함한 라인이 없기 때문에 검사 실패.


2023년 8월 20일 일요일

말을 하는 법

알 수 없는 유튜브 알고리즘이 보여준 영상. 내용은 강연을 잘 하는 법.


2023년 8월 7일 월요일

TA-linux_secure

스플렁크에 기본 내장된 linux_secure 소스타입의 데이터 전처리 기능은 많이 부실한 편.


2023년 8월 6일 일요일

2023년 8월 3일 목요일

Filebeat system 모듈

filebeat는 system 모듈을 이용해서 리눅스 계열의 데이터 전처리 자동화를 지원한다. 다음은 secure 로그의 사용자 고유개수 발생 추이.


2023년 7월 30일 일요일

Splunk의 chart 정렬

SPL은 SQL과 똑같은 정렬 옵션을 사용한다. asc(ending)가 디폴트(입력하지 않으면 asc 자동 적용)인 것도 동일.


2023년 7월 25일 화요일

워드 책갈피

워드 작업 시 외부 링크가 아닌 현재 문서의 특정 위치를 링크하고 싶을 때가 있다.


2023년 7월 20일 목요일

엘라스틱 Runtime field - 7th

로그스태시를 이용한 데이터 연동 시 문자열 데이터는 형태소 단위로 인덱싱하는 text 타입과 집계 정렬 목적으로 인덱싱을 하지 않는 keyword 타입, 2개의 필드에 저장된다.


2023년 7월 18일 화요일

엘라스틱 Runtime field - 6th

user-agent 필드를 카피하는 런타임 필드. user-agent는 필수 발생 정보가 아니기 때문에 필드 검사 조건을 줬다.


2023년 7월 17일 월요일

2023년 7월 7일 금요일

데이터 노가다 실수담 - 5th

url은 사용자의 접속 위치 정보를 의미하며, 크게 파일 정보를 포함한 url과 그렇지 않은 url로 나눌 수 있는데, 이때 경로 접속을 제외한 url 발생 추이와


2023년 7월 2일 일요일

데이터 시인성 - 6th

다음은 키바나 Lens를 이용한 누적 세로 막대 차트. 이벤트별 발생량을 확인할 수 있다. 


2023년 6월 26일 월요일

2023년 6월 23일 금요일

Splunk DB Connect - 3rd

다음은 로그스태시 jdbc 인풋 연동 결과. unhex 함수를 이용한 쿼리문이 정상 동작함을 알 수 있다.
[2023-06-23T13:19:13,487][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]} [2023-06-23T13:20:00,593][INFO ][logstash.inputs.jdbc     ][main][02f2fe91bcdc2cef22f19291d544a8551a0d1ce4c1b2aabf7a101153deed4fe1] (0.002507s) select a.timestamp, a.cid, b.sig_name, unhex(c.data_payload) from event a, signature b, data c where a.signature = b.sig_id and a.sid = c.sid and a.cid = c.cid and a.cid > 0

2023년 6월 22일 목요일

Splunk DB Connect - 2nd

로그스태시는 jdbc 인풋 플러그인을 이용해서 RDB 연동을 지원한다. 이때 schedule 옵션은 연동 쿼리문의 실행 간격을 조정하는 역할. 

schedule

  • Value type is string
  • There is no default value for this setting.

Schedule of when to periodically run statement, in Cron format for example: "* * * * *" (execute query every minute, on the minute)

There is no schedule by default. If no schedule is given, then the statement is run exactly once.

2023년 6월 15일 목요일

VIM 꼼수의 발견 - 10th

후방탐색 기능은 다른 정규표현식과 달리 왼쪽과 오른쪽을 왕복하는 검사 방식 때문에 자원 소모가 많다.

데이터 분석이 쉬워지는 정규표현식(195p)

2023년 6월 8일 목요일

apache log to iis format

아파치든 IIS든 요청과 응답이 조합된 웹로그 성격은 똑같다. 필드 구성만 다를뿐.

apache log

2023년 6월 6일 화요일

VIM 백업과 히스토리 남기기

윈도우용 gvim은 파일 편집 시 원본 파일의 백업과 undo 및 redo 작업을 가능하게 해주는 히스토리 파일을 남긴다. log~는 백업, log.un~는 히스토리 파일.


2023년 6월 3일 토요일

Common vs Combined

아파치 로그는 Common과
147.229.9.14 - - [28/May/2022:16:52:07 +0000] "GET /images/jordan-80.png HTTP/1.1" 304 45

Combined 포맷의 로그로 나뉜다.
147.229.9.14 - - [28/May/2022:16:52:07 +0000] "GET /images/jordan-80.png HTTP/1.1" 304 45 "http://www.semicomplete.com/articles/dynamic-dns-with-dhcp/" "Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0"

2023년 5월 28일 일요일

source command in shell script

다음은 /root/.bashrc 내역.
  1 # .bashrc
  2
  3 # User specific aliases and functions
  4
  5 alias rm='rm -i'
  6 alias cp='cp -i'
  7 alias mv='mv -i'
  8 alias vi=vim
  9

2023년 5월 27일 토요일

SplunkForwarder v9

포워더 버전 8 설치.
[root@Centos7 ~]# rpm -ivh splunkforwarder-8.2.5-77015bc7a462-linux-2.6-x86_64.rpm
warning: splunkforwarder-8.2.5-77015bc7a462-linux-2.6-x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID b3cd4420: NOKEY
Preparing...                          ################################# [100%]
useradd: cannot create directory /opt/splunkforwarder
Updating / installing...
   1:splunkforwarder-8.2.5-77015bc7a46################################# [100%]
complete

2023년 5월 21일 일요일

Snort unified2 problem

Snort는 크게 두 가지 방식의 탐지로그 출력을 지원한다. A 옵션을 이용한 경고와 패킷 로그 분리,
[root@Centos7 ~]# snort --help

   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.20 GRE (Build 82)
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
           Copyright (C) 2014-2022 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.5.3
           Using PCRE version: 8.32 2012-11-30
           Using ZLIB version: 1.2.7

2023년 4월 30일 일요일

JSON 구문 해석기 jq

컴퓨터 읽기 좋으라고 만든 JSON 포맷.
[root@Centos7 ~]# cat eve.json
{"timestamp":"2023-04-30T13:06:46.255425+0900","flow_id":868785597342197,"in_iface":"eth0","event_type":"alert","src_ip":"192.168.31.177","src_port":0,"dest_ip":"192.168.31.247","dest_port":0,"proto":"ICMP","icmp_type":8,"icmp_code":0,"alert":{"action":"allowed","gid":1,"signature_id":1000000,"rev":0,"signature":"ping-request","category":"","severity":3},"flow":{"pkts_toserver":108,"pkts_toclient":107,"bytes_toserver":7992,"bytes_toclient":7918,"start":"2023-04-30T13:04:58.025077+0900"},"payload_printable":"abcdefghijklmnopqrstuvwabcdefghi","stream":0}
{"timestamp":"2023-04-30T13:06:46.255457+0900","flow_id":868785597342197,"in_iface":"eth0","event_type":"alert","src_ip":"192.168.31.247","src_port":0,"dest_ip":"192.168.31.177","dest_port":0,"proto":"ICMP","icmp_type":0,"icmp_code":0,"alert":{"action":"allowed","gid":1,"signature_id":1000001,"rev":0,"signature":"ping-response","category":"","severity":3},"flow":{"pkts_toserver":108,"pkts_toclient":108,"bytes_toserver":7992,"bytes_toclient":7992,"start":"2023-04-30T13:04:58.025077+0900"},"payload_printable":"abcdefghijklmnopqrstuvwabcdefghi","stream":0}

이때 jq라는 툴을 사용하면 사람도 편하게 읽을 수 있다.

2023년 4월 25일 화요일

Splunk DB Connect

스플렁크와 DB 연동을 도와주는 앱.


2023년 4월 23일 일요일

정규표현식 몰라도 된다?

ChatGPT야 사용자 ID 문자열 검사하는 정규표현식 만들어줘.

make regex to match user id forms from 'Thu Feb 03 2022 00:15:01 www1 sshd[4633]: Failed password for jira from 194.215.205.19 port 2329 ssh2'

2023년 4월 20일 목요일

2023년 4월 16일 일요일

installing Python for Scientific

스플렁크 MLTK(Machine Learning Tool Kit) 앱을 사용하려면 사전에 Python for Scientific 앱을 설치해야 한다.


2023년 4월 9일 일요일

Filebeat의 processors - 2nd

로그스태시에서 원본 데이터 발생 시간을 기록하려면
filter {
 mutate {
  remove_field => ["host", "path", "@version"]
 }

 dissect {
  mapping => { "message" => '%{} [%{timestamp}] %{}' }
 }
}

2023년 2월 6일 월요일

스플렁크의 윈도우 이벤트 계정 정보

Windows(시스템 실행 프로세스)

다음은 부모 프로세스 svchost가 자식 프로세스 g2mupdate를 실행한 내역이 기록된 이벤트 4688.


2023년 2월 5일 일요일

엘라스틱의 윈도우 이벤트 계정 정보

Windows(시스템 실행 프로세스)

다음은 부모 프로세스 svchost가 자식 프로세스 g2mupdate를 실행한 내역. 이벤트 4688 문서를 보면 subject는 프로세스 실행 계정인데, target은 뭔지 모르겠다. 사용자 권한으로 설치된 프로세스가 최종 실행됐다는 뜻인가?


2023년 1월 29일 일요일

어떻게 공부할 것인가

두 명의 심리학자 헨리 뢰디거, 마크 맥다니얼과 작가 피터 브라운이 같이 쓴 2014년작. 공부를 잘하고 싶다면?
주기적으로 복습하면 그 주제를 더 잘 기억할 수 있다 - 5페이지
머릿말에서 비법예습, 복습 철저을 다 알려주는 책. 결국 알고만 있어서는 소용 없고 실천이 중요하다(..)
  
 [목차]
 1. 우리는 잘못된 방식으로 배우고 있다
 2. 배우려면 먼저 인출하라
 3. 뒤섞어서 연습하라
 4. 어렵게 배워야 오래 남는다
 5. 안다는 착각에서 벗어나라
 6. 학습 유형이라는 신화
 7. 꾸준한 노력은 뇌를 변화시킨다
 8. 어떻게 공부할 것인가

2023년 1월 15일 일요일

2023년 1월 8일 일요일

2022년에 있었던 일

작년에 뭘 했나? 일단 강의가 부업처럼 느껴진 첫해가 아닌가 싶다. 상반기엔 지인들 들볶아서 열심히 프로젝트 알바를 뜀. 대부분 문서 작업이었지만 오랫만에 방화벽도 만져보고, 네트워크 작업 구경하다가 새벽 퇴근도 해보고 나름 바쁘게 지낸 듯.

하반기엔 짬이 좀 나서 엘라스틱 시리즈 마지막인 윈도우 이벤트 로그편을 출간했다. 처음 계획 세운 시점으로부터 2년 걸렸네(..) 스플렁크 시리즈는 손도 못 댄 게 아쉽지만, 그래도 하나는 끝을 봐서 다행.

올해 목표는 당연히 스플렁크 시리즈 완성이지만 엘라스틱처럼 잘 안 되겠지? 사실 같은 주제로 분석툴만 바꾸는 거라 마음 먹으면 그리 어려운 작업은 아닌데, 항상 시작이 어렵다. 한 권이라도 완성을 목표로 가볍게 시작해봐야지.

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