日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

運維利器:WEB日志分析場景介紹

作者簡介
朱林 資深開發(fā)人員,《Elasticsearch技術(shù)解析與實戰(zhàn)》作者。有接近20年的開發(fā)經(jīng)驗,15年安全產(chǎn)品開發(fā)經(jīng)驗,對安全技術(shù)、數(shù)據(jù)分析有較深的研究。現(xiàn)任安全派技術(shù)總監(jiān),研究業(yè)務(wù)安全。

 

為什么要對 Web日志進行分析

隨著 Web 技術(shù)不斷發(fā)展,Web 被應(yīng)用得越來越廣泛,現(xiàn)在很多企業(yè)對外就一個網(wǎng)站來提供服務(wù),所以網(wǎng)站的業(yè)務(wù)行為,安全性顯得非常重要。正如安全行業(yè)的一句話:“世界上只有兩種人,一種是知道自己被黑了的,另外一種是被黑了還不知道的”。

對網(wǎng)站的業(yè)務(wù)行為分析,網(wǎng)站的安全性分析一個很重要的途徑就是通過日志。通過WEB日志分析最直接明顯的幾個目的:

  • 一為網(wǎng)站安全自檢查,了解服務(wù)器上正在發(fā)生的安全事件;

  • 二為應(yīng)急事件中的分析取證;

  • 三是可根據(jù)日志分析一些常用的業(yè)務(wù)行為。

 

如何進行日志分析?

在進行日志分析之前,我們先來了解一下 Web服務(wù)器中產(chǎn)生的日志是什么樣子。我們來看一條 Apache 的訪問日志為例:

114.221.137.87 - - [10/Sep/2019:14:52:28 +0800] "GET /login HTTP/1.1" 200 1068 https://secilog.secisland.com/ Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/73.0.3683.105 Safari/537.36 Vivaldi/2.4.1488.40

通過以上信息,我們可以得知服務(wù)器會記錄來自客戶端的每一個請求,其中有大量來自正常用戶的請求,當然也包括來自惡意攻擊者的請求,那么我們?nèi)绾螀^(qū)分正常請求和惡意攻擊請求呢?

站在攻擊者的角度,攻擊者對網(wǎng)站進行滲透時,其中包含大量的掃描請求執(zhí)行惡意操作的請求,而這兩者在日志中都有各自的特征,如掃描請求會訪問大量不存在的地址,在日志中體現(xiàn)則為大量的響應(yīng)狀態(tài)碼為404,而不同的惡意請求都有各自相應(yīng)的特征。

如當有人對服務(wù)器進行SQL注入漏洞探測時會有類似:/login?attack=test';select/* */1/**/from/**/1等內(nèi)容。通過關(guān)鍵字分析可以分析哪些 IP 在進行攻擊,可以進一步的進行處置,比如封ip等。

 

日志分析場景介紹

一般可以按照兩種思路展開,逐步深入,還原整個攻擊過程。

  • 第一種:確定入侵的時間范圍,以此為線索,查找這個時間范圍內(nèi)可疑的日志,進一步排查,最終確定攻擊者,還原攻擊過程。

  • 第二種:攻擊者在入侵網(wǎng)站后,通常會留下后門權(quán)限,以方便再次訪問,我們可以找到該文件,并以此為線索來展開分析。

曾經(jīng)有人問過運維的人員的大神,該如何分析日志?大神回答了三個字:“用命令”。

因為站在腳本操作經(jīng)驗豐富的人角度來看,的確用命令足矣,可是對于一般的人員來說用linux的shell命令還是稍顯復(fù)雜。還是需要借助一些工具來提高效率。這里用了secisland 新推出的免費工具 secsoso 來作為示例:

spl 完整語法:secsoso ‘file=("文件名"," ") 過濾|統(tǒng)計…’簡化語法:secsoso ‘文件名 過濾|統(tǒng)計…’

 

業(yè)務(wù)行為統(tǒng)計

列出文件中訪問次數(shù)最多的10個IP

secsoso 'file=("/export/home/20190613/access.log"," ")|stats count($1) by $1|sort 10 -count_$1'

說明:其中/export/home/20190613/access.log為文件路徑,“ ”為字段分割符。文件名可以是絕對路徑(/export/home/20190613/access.log) 也可以是相對路徑(access.log)。默認列名為$1,$2..., count($1)后的默認名稱為count_$1。

結(jié)果如下:

 $1 count_$1
101.226.68.137 972
163.177.71.12 972
183.195.232.138 971
111.192.165.229 377
114.252.89.91 374
66.249.66.84 246
222.70.152.149 226
220.181.89.174 172
111.194.118.58 160
60.247.77.253 146

你也可以給字段重命名以友好方式顯示,這個是簡化語法:結(jié)果同上。

secsoso ‘access.log|rename $1 as ip |stats count(ip) by ip|sort 10 -count_ip’

 

查看文件中有多少個不同的IP訪問

secsoso 'access.log|rename $1 as ip |stats dc(ip) '

結(jié)果如下:

dc_ip
1050

 

查看某一個頁面被訪問的次數(shù)

比如 /nodejs-underscore/?cf_action=sync_comments為訪問頁面

secsoso 'access.log "/nodejs-underscore/?cf_action=sync_comments"|eventcount'

紅色字是過濾的含義,結(jié)果如下:

event_count
14

 

查看每一個IP訪問了多少個頁面

secsoso 'access.log $7="*.html*" |stats $1 as ip,count($1) as count by $1'

stats $1 as ip,count($1) as count by $1 和 stats count($1) by $1 結(jié)果一樣,只是前者可以從新命名,命名也可以放在后面做:

stats count($1) by $1|rename $1 as ip,結(jié)果如下:

 ip count
10.70.101.89 3
10.70.101.90 3
10.70.141.32 3
10.70.142.18 5
10.70.146.115 2
10.70.146.120 5
10.70.147.28 2
10.70.149.233 2

 

查看每一個IP訪問了多少個頁面按從大到小排序

secsoso 'access.log $7="*.html*" |stats $1 as ip,count($1) as count by $1|sort -count'

結(jié)果如下:

 ip count
10.74.52.51 21
10.80.189.69 12
10.71.37.20 9
10.77.6.9 9
10.71.48.20 9
10.80.6.121 8
10.77.7.244 8

 

查看某一個IP訪問了哪些頁面

secsoso 'access.log "10.74.52.51" $7="*.html*" |fields $1,$7'

$7="*.html*"也支持正則表達式需要用//包起來,比如”access.log” “10.74.52.51” $7=”/.html./“ |fields 7,這個是查詢,選擇第一列和第7列。

結(jié)果如下:

 $1 $7
10.74.52.51 /zmccwps/welcome/qiyewenh.html
10.74.52.51 /zmccwps/welcome/gzsl.html
10.74.52.51 /zmccwps/welcome/gsry.html
10.74.52.51 /zmccwps/welcome/cylj.html
10.74.52.51 /zmccwps/welcome/yewu.html
10.74.52.51 /zmccwps/welcome/gzsl.html
10.74.52.51 /zmccwps/welcome/gsry.html
10.74.52.51 /zmccwps/welcome/yewu.html
10.74.52.51 /zmccwps/welcome/qiyewenh.html
10.74.52.51 /zmccwps/welcome/gzsl.html

 

統(tǒng)計每個小時的訪問次數(shù)

secsoso 'access.log|eval date=$4.to_date("[dd/MMM/yyyy:HH:mm:ss")|stats count(date) by tspan(date,"1h")'

結(jié)果如下:

date count_date
2013-09-18 06:00:00 123
2013-09-18 07:00:00 1075
2013-09-18 08:00:00 2167
2013-09-18 09:00:00 1424
2013-09-18 10:00:00 621
2013-09-18 11:00:00 607
2013-09-18 12:00:00 652
2013-09-18 13:00:00 570

 

根據(jù)瀏覽器指紋定位記錄

secsoso 'access.log "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9) Gecko Minefield/3.0" $7!="*.js*" $7!="*.css*"|fields $1,$4,$7'

紅色是排除JS和CSS,結(jié)果如下:

 $1 $4 $7
123.125.71.103 [18/Sep/2013:07:13:23 /nodejs-bootstrap-select/
123.125.71.81 [19/Sep/2013:01:26:14 /r-package-faster/

 

統(tǒng)計爬蟲

secsoso 'access.log "googlebot|Baiduspider|Applebot|bingbot|YoudaoBot|Sosospider|MSNBot"|stats dc($1) as count'

結(jié)果如下:

count
63

 

統(tǒng)計每個網(wǎng)段的訪問次數(shù)

secsoso 'access.log| stats rex($1,"[0-3]+.[0-9]+.[0-9]+") as ipper,count(1) as count by ipper |sort -count'

結(jié)果如下:

 ipper count
101.226.68 972
3.177.71 972
3.195.232 971
111.192.165 377
2.89.91 374
222.70.152 226
1.135.216 185

 

統(tǒng)計狀態(tài)碼次數(shù)

secsoso 'access.log|stats $9 as stat ,count($9) as count by $9'

結(jié)果如下:

stat count
"-" 848
173 1
200 12340
301 94
302 152
304 949
400 13
403 3
404 201
408 1
499 8
500 1
502 8

 

統(tǒng)計每個 URL 的訪問次數(shù)

secsoso 'access.log|eval url=$7.substring(0,POSITION("?",$7))|stats count(url) by url'

結(jié)果如下:

運維利器:WEB日志分析場景介紹

 

文件流量統(tǒng)計

secsoso ‘access.log|fields $10|stats sum(casewhen($10=“”-””,0,$10)) as fluxcount’

紅色是函數(shù)嵌套,casewhen表示如果第10列等于”-“為零,否則是它自己,然后用sum累加,結(jié)果如下:

flowcount
218704890

 

統(tǒng)計單位時間內(nèi)訪問包含某個URI的IP排名

secsoso 'access.log $7="*/wp-content/themes*"|eval date=$4.to_date("[dd/MMM/yyyy:HH:mm:ss")|stats count(date) as count by tspan(date,"1h"),$1|rename tspan_date as time,$1 as ip|sort time,-count'access.log 4.to_date(“[dd/MMM/yyyy:HH:mm:ss”)|stats count(date) as count by tspan(date,”1h”),< src=" https:="" chart.googleapis.com="" chart?cht="tx&chl=1%7Crename%20tspan_date%20as%20time%2C"" class="js_catchremoteimageerror">1 as ip|sort time,-count
access.log 4.to_date(“[dd/MMM/yyyy:HH:mm:ss”)|stats count(date) as count by tspan(date,”1h”),<img src=" https:="" chart.googleapis.com="" chart?cht="tx&chl=1%7Crename%20tspan_date%20as%20time%2C"" class="js_catchremoteimageerror">1 as ip|sort time,-count

其中/wp-content/themes 為url關(guān)鍵字

結(jié)果如下:

 time ip count
2013-09-18 06:00:00 124.42.13.230 13
2013-09-18 06:00:00 71.96.108.116 13
2013-09-18 07:00:00 222.247.54.20 26
2013-09-18 07:00:00 111.193.224.9 13
2013-09-18 07:00:00 113.106.104.210 13
2013-09-18 07:00:00 116.226.35.135 13
2013-09-18 07:00:00 116.24.8.156 13
2013-09-18 07:00:00 118.194.195.205 13
2013-09-18 07:00:00 121.8.153.6 13

 

網(wǎng)站登錄趨勢

對后臺網(wǎng)站系統(tǒng)來說,一般會有登錄頁面,通過登錄頁面的狀態(tài)碼,可以判斷是登錄成功還是登錄失敗,比如/login,如果是post請求返回200,一般是登錄失敗,post請求返回302,一般表示登錄成功,可以通過這個做一些業(yè)務(wù)的行為分析。比如分鐘登錄趨勢:

114.221.137.86 - - [11/Sep/2019:13:44:59 +0800] "POST /login HTTP/1.1" 302 - https://secilog.secisland.com/login Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.105 Safari/537.36 Vivaldi/2.4.1488.40

secsoso 'access.log $6="*POST" $7="*/login" $9="302"| eval date=$4.to_date("[dd/MMM/yyyy:HH:mm:ss")|stats count($1) as count by tspan(date,"1m")'

結(jié)果如下:

 tspan_date count
2019-09-11 09:22:00 1
2019-09-11 09:40:00 1
2019-09-11 13:44:00 1

 

安全統(tǒng)計

統(tǒng)計具有cc攻擊的用戶IP(單位時間內(nèi)訪問次數(shù)超過閾值的用戶,不包括css 、js、png):

secsoso 'access.log $7!="/.*.js.*|.*.css.*|.*.png.*/" |eval date=$4.to_date("[dd/MMM/yyyy:HH:mm:ss")|stats $1 as ip,count(date) as count by tspan(date,"1h"),$1|search count>50'

其中 tspan (date,”1h”) 中的 “1h” 支持如下時間單位:

秒:s,分鐘:m,小時:h,天:d,星期:w,月:mon,年:year

count>50 表示訪問次數(shù)大于50。

$7!="/.*.js.*|.*.css.*|.*.png.*/" 表示不包含css,js,png

結(jié)果如下:

 tspan_date ip count
2013-09-18 08:00:00 114.252.89.91 65
2013-09-18 08:00:00 60.247.77.253 60
2013-09-18 11:00:00 178.24.29.69 79
2013-09-18 15:00:00 114.252.89.91 53
2013-09-18 17:00:00 208.43.225.84 62
2013-09-19 03:00:00 222.70.152.149 91
2013-09-19 04:00:00 59.60.115.180 72
2013-09-19 05:00:00 111.192.165.229 142

 

統(tǒng)計具有cc攻擊的用戶IP(單位時間內(nèi)訪問次數(shù)超過閾值的用戶,包括css 、js、png)

secsoso 'access.log|eval date=$4.to_date("[dd/MMM/yyyy:HH:mm:ss")|stats $1 as ip,count(date) as count by tspan(date,"1h"),$1|search count>100'

結(jié)果如下:

 tspan_date ip count
2013-09-18 08:00:00 114.252.89.91 79
2013-09-18 08:00:00 116.24.236.137 68
2013-09-18 08:00:00 202.84.17.41 84
2013-09-18 08:00:00 203.192.6.59 83
2013-09-18 08:00:00 221.122.104.115 72
2013-09-18 08:00:00 58.248.178.212 68
2013-09-18 08:00:00 58.56.155.203 83
2013-09-18 08:00:00 60.10.8.5 56
2013-09-18 08:00:00 60.247.77.253 146
2013-09-18 09:00:00 183.60.177.228 121

 

統(tǒng)計發(fā)起 SQL 注入的 IP及URI

secsoso 'access.log "%20select%20|%20and%201=1|%20and%201=2|%20exec|%27exec| information_schema.tables|%20information_schema.tables|%20where%20|%20union%20|%20SELECT%20|%2ctable_name%20|cmdshell|%20table_schema"|fields $1,$7'

結(jié)果如下:

運維利器:WEB日志分析場景介紹

 

統(tǒng)計發(fā)起SQL注入的IP并按IP攻擊次數(shù)排名

secsoso 'access.log "%20select%20|%20and%201=1|%20and%201=2|%20exec|%27exec| information_schema.tables|%20information_schema.tables|%20where%20|%20union%20|%20SELECT%20|%2ctable_name%20|cmdshell|%20table_schema"|fields $1,$7|stats $1 as ip,count(1) as count by $1|sort -count'

結(jié)果如下:

 ip count
66.249.66.84 4
111.192.165.229 2

 

敏感文件掃描

secsoso 'access.log ".zip|.rar|.mdb|.inc|.sql|.config|.bak|/login.inc.php|.svn|/MySQL/|config.inc.php|.bak|wwwroot|網(wǎng)站備份|/gf_admin/|/DataBackup/|/Web.config|/web.config|/1.txt|/test.txt" |fields $1,$7 '

結(jié)果如下:

運維利器:WEB日志分析場景介紹

 

漏洞利用

secsoso 'access.log "struts|jmx-console|ajax_membergroup.php|iis.txt|phpMyAdmin|getWriter|dirContext|phpmyadmin|acunetix.txt|/e/|/SouthidcEditor/|/DatePicker/" |fields $1,$7'

結(jié)果如下:

運維利器:WEB日志分析場景介紹

 

文件包含攻擊

secsoso 'access.log "/passwd|%00|/win.ini|/my.ini|/MetaBase.xml|/ServUDaemon.ini|cmd.exe" |fields $1,$7'

結(jié)果如下:

運維利器:WEB日志分析場景介紹

 

getshell的攻擊

secsoso 'access.log " eval|%eval|%execute|%3binsert|%20makewebtaski|/1.asp|/1.jsp|/1.php|/1.aspx|/xiaoma.jsp|/tom.jsp|/py.jsp|/k8cmd.jsp|/k8cmd|/ver007.jsp|/ver008.jsp|/ver007|/ver008|.aar|%if" |fields $1,$7'

iis可以換成:

%20exec|%27exec|%3bexec|%27%3Bexec|%eval|%20eval|%execute|%3Binsert|%20makewebtaski|%20disk%20|%3Balter|%3Bdeclare|dbo|hack523|sysname|/1.asp|/1.jsp|/1.php|/1.aspx|/xiaoma.asp|/yijuhua.asp|/yjh.asp|/hack.asp|/k8cmd.asp|/k8cmd|/ver007.asp|/ver008.asp|/ver007|/ver008|.asa|.cer|.ashx|asp;|asa;|cer;|aspx;|/1.asp/|/x.asp/|/a.asp/|/2.asp/

結(jié)果如下:

運維利器:WEB日志分析場景介紹

 

xss跨站腳本攻擊

secsoso 'access.log " (S)%3C(S+)%3E|(S)%3C(S+)%2F%3E|(S+)<(S+)>|(S+)<(S+)/>|onerror|onmouse|expression|alert|document.|prompt" |fields $1,$7'

結(jié)果如下:

 

網(wǎng)站登錄密碼猜測

比如5分鐘大于10次同一個IP登錄密碼錯誤,認為是密碼猜測,然后把所有IP找到。

114.221.137.86 - - [11/Sep/2019:10:25:39 +0800] "POST /login HTTP/1.1" 200 1111 https://secilog.secisland.com/login Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.105 Safari/537.36 Vivaldi/2.4.1488.40
secsoso 'access.log $6="*POST" $7="*/login" $9="200"| eval date=$4.to_date("[dd/MMM/yyyy:HH:mm:ss")|stats count($1) as count by tspan(date,"5m"),$1| search count>10|stats sum(count) by $1'

結(jié)果如下:

$1 sum_count
114.221.137.86 15

通過上面示例得知,日志中含有豐富的內(nèi)容,通過這些內(nèi)容可以分析出很多有價值的信息。但這些分析的前提就是要先保存這些日志,并記錄請求參數(shù),但默認的WEB中間件日志只記錄GET請求的參數(shù),沒有記錄POST請求的參數(shù),所以需要通過中間件配置才可以拿到POST的請求參數(shù)來進行更多的分析。

拿到參數(shù)后還可以繼續(xù)深入分析更具體的業(yè)務(wù)行為,操作記錄等,比如/asset(示例)表示訪問資產(chǎn)模塊,/asset/add(示例)表示資產(chǎn)添加模塊,/asset?id=1表示查詢id為1的資產(chǎn)記錄。

文本通過分析WEB中間件日志的示例起到拋磚引玉的目的,來說明日志分析的重要性和思路。希望能對大家的日志分析起到參考和幫助。

備注:內(nèi)容有部分數(shù)據(jù)來源于網(wǎng)絡(luò)。

分享到:
標簽:日志 WEB
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定