Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- bandit level
- Dreamhack
- bandit 비밀번호
- 공부기록
- 포인터와 배열
- web hacking
- 네트워크이론정리
- 취약점진단
- 혼자공부하는네트워크
- overthewire bandit 문제풀이
- 네트워크문제
- sk루키즈
- 보안
- 데이터와 로직
- 티스토리챌린지
- 혼공네트
- AWS
- 객체지향
- kbdinteractiveauthentication
- overthewire bandit level 0
- overthewire 문제
- 해킹
- 함수와 디버깅
- overthewire bandit 문제
- 정보보안
- 네트워크정리
- 오블완
- sk shieldus rookies 23기
- bandit 문제풀이
- bandit level 11 -> level 12 문제풀이
Archives
- Today
- Total
아임노드
Splunk_검색 #5 본문
비교 분석
eval
- 이 명령어에 사용하는 함수는 검색 결과 값의 변환, 검증을 수행하며 함수 실행 결과 값을 반환하는 형식
- ...| eval [반환값_저장변수] = 함수(인자1,인자2..)
- eval 함수는 문자열을 인자로 취하고 연산 결과를 반환
- 문자열은 " "로 감싸서 표시
- 사용
- Splunk가 수집하는 모든 로그에서 완벽한 필드 추출은 매우 어려움
- 그렇기에 때로는 원하는 값을 추출하려고 필드 값을 다시 조작해야 하는 상황 종종 발생
- 이때 eval 명령어 함수가 요긴하게 사용됨 (많이 연습하도록!)
case(X,"Y",...)
- 여러 개의 조건을 검증할 때 사용
- 첫 번째 인자가 참인 경우 두 번째 인자의 내용 반환
세 번째 인자가 참이면 네 번째 인자가 실행 - 월 이름을 기반으로 분기(quarter)를 반환하는 코드
- index="book" sourcetype="access_combined_wcookie"
| eval description=case(error=404, "Not found", error=500, "Internal Server Error", error=200, "OK")
- index="book" sourcetype="access_combined_wcookie"
| eval quarter=case(date_month="january","1Q", date_month="february","1Q",date_month="march","1Q",date_month="april","2Q", ...)
뭐가 바뀐 건지 코드를 잘못 쓴건지..?
일단 명령어가 이런 역할을 한다만 알아보고 뒤로 가면서 실제 적용할 때 활용해봐야겠다.
cidrmatch("X",Y)
- IP 주소 Y가 네트워크 범위 X에 존재하는지 확인
- 반환 값은 참 또는 거짓
if(X,Y,Z)
- X가 참이면 Y를 실행하고
X가 거짓이면 세 번째 인자인 Z를 실행 - *
| eval ip1="10.10.0.100", ip2="100.10.0.100"
| eval network1=if(cidrmatch("10.10.0.0/24", ip1), "local", "external"), network2=if(cidrmatch("10.10.0.0/24", ip2), "local", "external")
| table ip1, network1, ip2, network2
like(X,"Y")
- X 필드에서 일부 문자열인 Y를 찾는다.
- X에서 Y를 찾을 수 있으면 참을 반환
- Splunk에서 like 함수의 와일드카드 문자열은 * 이 아닌 -> % 사용 (like만 이 와일드카드를 사용한다.)
match(X,"Y")
- like 함수가 일부라도 맞는 값을 찾는다면 match 함수는 함수명과 같이 정확한 일치 여부를 비교한다.
- 문자열 비교에 대소문자는 구분하지 않는다.
다중 문자열과 시간
mvindex(X,Y,Z)
- 필드 X에 있는 Y번째 값을 반환
- Y는 인덱스 번호이며 0이 첫 번째 값을 의미
- 세 번째 인자 Z는 선택적으로 사용
- Z값 지정시 함수는 Y부터 Z까지의 값 반환
split(X,"Y")
- 구분자 Y를 이용해서 X를 분할해 다중값 형식으로 반환
substr(X,Y,Z)
- 이 함수에서 세 번째 인자 Z가 없다면
필드 X의 Y(1부터 시작)부터 시작해서 문자열 끝까지를 반환한다.
- Z가 주어지면 Y부터 Z까지의 문자열 반환
round(X,Y)
- X를 Y자리 수 기준으로 반올림
- round(2.555, 2)는 결과로서 2.56을 얻을 수 있다.
- 나누기 계산을 할 경우 소수점 자리가 급격히 늘어나는 것을 방지
urldecode(X)
- URL 인코딩이 돼 있는 X를 디코딩해 반환
- 이 함수를 사용하면 인코딩 문자열을 디코딩해서 한글이 있는 경우라도 바로 확인할 수 있다.
시간함수
strftime(X,Y)
- 유닉스 시간 X를 지정한 Y형식으로 출력
strptime(X,Y)
- Y 형식으로 된 X시간 문자열을 입력받아서 유닉스 시간을 반환 (strftime의 반대)
now()
- 검색어를 실행시킨 시간을 유닉스 시간 형식으로 반환
- 사용 사례
- 침입 탐지 시스템이 공격을 탐지했다고 가정하는 경우 최초 탐지 후
오늘까지 얼마나 시간이 흘렀는지를 계산할 때 기준점을 제공한다.
- 침입 탐지 시스템이 공격을 탐지했다고 가정하는 경우 최초 탐지 후
'[SK shieldus Rookies 23기] 공부 노트 > For security Monitoring(보안 관제)' 카테고리의 다른 글
Splunk 지식 관리_태그와 별칭 (0) | 2025.01.14 |
---|---|
Splunk 지식 관리_이벤트 타입/ 룩업 (0) | 2025.01.10 |
정보보안 관제 자동화 솔루션이란? (SOAR) (0) | 2025.01.09 |
Splunk_검색 #4 (0) | 2025.01.08 |
Splunk_검색 #3 (0) | 2025.01.07 |