index=dnslog
: DNS 로그 저장소에서
sourcetype=dnslog
: sourcetype이 dns log인것 중에dpt=53
: port 53번domain!="*.arpa" domain!="-"
: 역방향 레코드, 정상적으로 쿼리 도메인 명이 명시되지 않은 것도 제외| top showperc=f src, ut_netloc
: top 명령어를 사용하여 'scr' 및 'ut_netloc' 필드를 기준으로 결과를 상위로 정렬하고 백분율을 표시하지 않도록 설정한다.
<역방향 DNS 레코드>
DNS 로그에서 sourcetype이 dnslog이고 포트 번호가 53번이며 역방향 레코드, 쿼리 도메인이 명시되지 않은 데이터를 제외하고 접속한 이들의 ip와 전체 도메인주소를 포함하여 어느 사이트에 가장 많이 접속하는지 상위 결과를 표시하는 로그
rcode_name="NXDomain"
: "NXDomain" 는 존재하지 않는 도메인을 나타내는 상태 코드
DNS 로그에서 sourcetype이 dnslog이고 쿼리 도메인이 명시되지 않은 데이터를 제외하고 존재하지 않은 도메인을 제외하고 client가 요청해서 응답한 데이터를 누가, 어느 도메인으로 접속했는지 상위로 정렬하는 로그
ut_parse(domain, list)
: "domain"과 "list" 필드를 입력으로 받아 처리| where NOT match(domain,"(microsoft.com|akamaized.net|amazonaws.com)$")
:특정 도메인 패턴이 일치하지 않는 경우를 선택 "microsoft.com", "akamaized.net", "amazonaws.com"으로 끝나는 도메인을 제외하도록 설정eval sub_len=len(ut_subdomain)
: "ut_subdomain" 필드의 길이를 계산하여 "sub_len" 필드를 생성search sub_len > 20
: sub_len이 20보다 큰 경우만 선택table ut_domain, ut_subdomain, sub_len, ut_netloc
: 최종결과를 해당 필드만 표시하여 테이블로 출력
DNS 로그에서 sourcetype이 dnslog이고 쿼리 도메인이 명시되지 않은 데이터를 제외하고 존재하지 않은 도메인을 제외하고 해당 3개의 도메인을 제외하고 서브 도메인의 길이가 20보다 큰 경우에 해당하는 결과를 테이블로 표시
(dst!="172.16.142.11" AND dst!="172.16.142.12") (src!="172.16.142.11" AND src!="172.16.142.12")
: 해당 IP와 일치하지 않는 이벤트만 설정stats count by dst
: "dst" 필드를 기준으로 이벤트를 집계하고, 각 "dst"에 대한 이벤트 수를 "count" 필드로 표시sort - count
: "count" 필드를 기준으로 내림차순으로 정렬합니다. 이렇게 하면 이벤트 수가 많은 순서대로 결과가 정렬
DNS 로그에서 sourcetype이 dnslog이고 지정된 서버가 아닌 다른곳으로 접속한 IP를 내림차순으로 정렬해서 보여줘
iplocation dst
: 목적지 IP 주소에 대한 지리적 위치 정보를 가져옴where NOT cidrmatch("0.0.0.0/0", domain)
: 도메인이 "0.0.0.0/0"에 속하지 않는 경우를 선택, 이 부분은 특정 IP 주소 범위에 속하는 도메인을 제외하는 용도로 사용됩stats sum(request_body_len) as "Outbound", sum(response_body_len) as "Inbound" by domain, Country
: 도메인과 국가에 따라 요청 및 응답 본문의 합계를 계산| eval Outbound=round(Outbound/(1024*1024),2) | eval Inbound=round(Inbound/(1024*1024),2)
: "Outbound", "Inbound" 필드를 MB 단위로 변환sort Outbound desc
: outbound 필드를 기준으로 내림차순으로 정렬head 10
: 상위 10개 결과만을 표시
http 로그에서 sourcetype이 httplog이고 도메인이 "(empty)"로 지정된 도메인을 제외하고 도메인과 국가에 따라 요청 및 응답 본문의 합계를 계산하고, MB 단위로 변환하여 "Outbound" 및 "Inbound" 필드로 표시합니다. 그런 다음 "Outbound" 필드를 기준으로 내림차순으로 정렬하고, 상위 10개 결과만을 선택하여 표시해줘
-
top method limit=10 showperc=f
: top 명령을 사용하여 "method" 필드를 기준으로 결과를 상위로 정렬하고, 가장 많이 사용된 상위 10개의 메서드를 표시, showperc=f는 결과에 백분율을 표시하지 않도록 설정
http 로그에서 sourcetype이 httplog이고 uri가 명시되지 않은 도메인을 제외하고 각 HTTP 메서드별로 통계를 계산하여 가장 많이 사용된 상위 10개의 메서드를 표시
index=httplog sourcetype=httplog uri!="-" uri!="/" (status_code >=400 AND status_code < 500)
: "httplog" 인덱스에서 "httplog" 소스 유형의 데이터를 검색하되, "-"로 표시된 URI와 "/"로 시작하는 URI를 제외하고, 상태 코드가 400 이상 500 미만인 이벤트를 선택top method limit=10 showperc=f
: top 명령을 사용하여 "domain, status_code" 필드를 기준으로 결과를 상위로 정렬하고, 가장 많이 사용된 상위 10개의 메서드를 표시, showperc=f는 결과에 백분율을 표시하지 않도록 설정
http 로그에서 sourcetype이 httplog이고 uri가 명시되지 않고 "/"로 시작하는 uri을 제외하고 도메인과 상태 코드가 400 이상 500 미만인 도메인중에 가장 많이 발생한 상위 10개의 도메인과 상태 코드를 표시
결과는 "domain"과 "status_code" 필드를 기준으로 정렬되고, 백분율은 표시되지 않는다
index=httplog sourcetype=httplog uri!="-" status_code >= 500
: "httplog" 인덱스에서 "httplog" 소스 유형의 데이터를 검색하되, "-"로 표시된 URI를 제외하고, 상태 코드가 500 이상인 이벤트를 선택top method limit=10 showperc=f
: top 명령을 사용하여 "domain, status_code" 필드를 기준으로 결과를 상위로 정렬하고, 가장 많이 사용된 상위 10개의 메서드를 표시, showperc=f는 결과에 백분율을 표시하지 않도록 설정
http 로그에서 sourcetype이 httplog이고 uri가 명시되지 않고 오류 코드가 500이상인 이벤트 중 domain과 status_code 필드기준으로 가장 많이 발생한 상위 10개 도메인과 상태코드를 표시한다. 백분율은 표시되지 않는다
index=httplog sourcetype=httplog uri!="-" status_code >= 500
: "httplog" 인덱스에서 "httplog" 소스 유형의 데이터를 검색하되, "-"로 표시된 URI를 제외하고, 상태 코드가 500 이상인 이벤트를 선택top method limit=10 showperc=f
: top 명령을 사용하여 "status" 필드를 기준으로 결과를 상위로 정렬하고, 가장 많이 사용된 상위 10개의 메서드를 표시, showperc=f는 결과에 백분율을 표시하지 않도록 설정
http 로그에서 sourcetype이 httplog이고 domain과 status_code가 명시되지 않은 데이터를 제외하고 status_code를 기준으로 가장 많이 발생한 상위 10개의 코드를 표시한다.백분율은 표시되지 않는다