今天就跟大家聊聊有關(guān)如何實(shí)現(xiàn)Web日志分析,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、涼城網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為涼城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
Web訪問日志記錄了Web服務(wù)器接收處理請求及運(yùn)行時錯誤等各種原始信息。通過對WEB日志進(jìn)行的安全分析,不僅可以幫助我們定位攻擊者,還可以幫助我們還原攻擊路徑,找到網(wǎng)站存在的安全漏洞并進(jìn)行修復(fù)。
我們來看一條Apache的訪問日志:
127.0.0.1 - - [11/Jun/2018:12:47:22 +0800] "GET /login.html HTTP/1.1" 200 786 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
通過這條Web訪問日志,我們可以清楚的得知用戶在什么IP、什么時間、用什么操作系統(tǒng)、什么瀏覽器的情況下訪問了你網(wǎng)站的哪個頁面,是否訪問成功。
本文通過介紹Web日志安全分析時的思路和常用的一些技巧。
在對WEB日志進(jìn)行安全分析時,一般可以按照兩種思路展開,逐步深入,還原整個攻擊過程。
第一種:確定入侵的時間范圍,以此為線索,查找這個時間范圍內(nèi)可疑的日志,進(jìn)一步排查,最終確定攻擊者,還原攻擊過程。
第二種:攻擊者在入侵網(wǎng)站后,通常會留下后門維持權(quán)限,以方便再次訪問,我們可以找到該文件,并以此為線索來展開分析。
常用分析工具:
Window下,推薦用 EmEditor 進(jìn)行日志分析,支持大文本,搜索效率還不錯。
Linux下,使用Shell命令組合查詢分析。
Shell+Linux命令實(shí)現(xiàn)日志分析,一般結(jié)合grep、awk等命令等實(shí)現(xiàn)了幾個常用的日志分析統(tǒng)計技巧。
Apache日志分析技巧:
1、列出當(dāng)天訪問次數(shù)最多的IP命令: cut -d- -f 1 log_file|uniq -c | sort -rn | head -20 2、查看當(dāng)天有多少個IP訪問: awk '{print $1}' log_file|sort|uniq|wc -l 3、查看某一個頁面被訪問的次數(shù): grep "/index.php" log_file | wc -l 4、查看每一個IP訪問了多少個頁面: awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file 5、將每個IP訪問的頁面數(shù)進(jìn)行從小到大排序: awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n 6、查看某一個IP訪問了哪些頁面: grep ^111.111.111.111 log_file| awk '{print $1,$7}' 7、去掉搜索引擎統(tǒng)計當(dāng)天的頁面: awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l 8、查看2018年6月21日14時這一個小時內(nèi)有多少IP訪問: awk '{print $4,$1}' log_file | grep 21/Jun/2018:14 | awk '{print $2}'| sort | uniq | wc -l
Web日志分析實(shí)例:通過nginx代理轉(zhuǎn)發(fā)到內(nèi)網(wǎng)某服務(wù)器,內(nèi)網(wǎng)服務(wù)器某站點(diǎn)目錄下被上傳了多個圖片木馬,雖然II7下不能解析,但還是想找出誰通過什么路徑上傳的。
在這里,我們遇到了一個問題:由于設(shè)置了代理轉(zhuǎn)發(fā),只記錄了代理服務(wù)器的ip,并沒有記錄訪問者IP?這時候,如何去識別不同的訪問者和攻擊源呢?
這是管理員日志配置不當(dāng)?shù)膯栴},但好在我們可以通過瀏覽器指紋來定位不同的訪問來源,還原攻擊路徑。
1、定位攻擊源
首先訪問圖片木馬的記錄,只找到了一條,由于所有訪問日志只記錄了代理IP,并不能通過IP來還原攻擊路徑,這時候,可以利用瀏覽器指紋來定位。
瀏覽器指紋:
Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/7.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E)
2、搜索相關(guān)日志記錄
通過篩選與該瀏覽器指紋有關(guān)的日志記錄,可以清晰地看到攻擊者的攻擊路徑。
3、對找到的訪問日志進(jìn)行解讀,攻擊者大致的訪問路徑如下:
A、攻擊者訪問首頁和登錄頁 B、攻擊者訪問MsgSjlb.aspx和MsgSebd.aspx C、攻擊者訪問Xzuser.aspx D、攻擊者多次POST(懷疑通過這個頁面上傳模塊缺陷) E、攻擊者訪問了圖片木馬
打開網(wǎng)站,訪問Xzuser.aspx,確認(rèn)攻擊者通過該頁面的進(jìn)行文件上傳了圖片木馬,同時,發(fā)現(xiàn)網(wǎng)站了存在越權(quán)訪問漏洞,攻擊者訪問特定URL,無需登錄即可進(jìn)入后臺界面。通過日志分析找到網(wǎng)站的漏洞位置并進(jìn)行修復(fù)。
統(tǒng)計爬蟲:
grep -E 'Googlebot|Baiduspider' /www/logs/access.2019-02-23.log | awk '{ print $1 }' | sort | uniq
統(tǒng)計瀏覽器:
cat /www/logs/access.2019-02-23.log | grep -v -E 'MSIE|Firefox|Chrome|Opera|Safari|Gecko|Maxthon' | sort | uniq -c | sort -r -n | head -n 100
IP 統(tǒng)計:
grep '23/May/2019' /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -r -n | head -n 10 2206 219.136.134.13 1497 182.34.15.248 1431 211.140.143.100 1431 119.145.149.106 1427 61.183.15.179 1427 218.6.8.189 1422 124.232.150.171 1421 106.187.47.224 1420 61.160.220.252 1418 114.80.201.18
統(tǒng)計網(wǎng)段:
cat /www/logs/access.2019-02-23.log | awk '{print $1}' | awk -F'.' '{print $1"."$2"."$3".0"}' | sort | uniq -c | sort -r -n | head -n 200
統(tǒng)計域名:
cat /www/logs/access.2019-02-23.log |awk '{print $2}'|sort|uniq -c|sort -rn|more
HTTP Status:
cat /www/logs/access.2019-02-23.log |awk '{print $9}'|sort|uniq -c|sort -rn|more 5056585 304 1125579 200 7602 400 5 301
URL 統(tǒng)計:
cat /www/logs/access.2019-02-23.log |awk '{print $7}'|sort|uniq -c|sort -rn|more
文件流量統(tǒng)計:
cat /www/logs/access.2019-02-23.log |awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}'|sort -rn|more grep ' 200 ' /www/logs/access.2019-02-23.log |awk '{sum[$7]+=$10}END{for(i in sum){print sum[i],i}}'|sort -rn|more
URL訪問量統(tǒng)計:
cat /www/logs/access.2019-02-23.log | awk '{print $7}' | egrep '\?|&' | sort | uniq -c | sort -rn | more
腳本運(yùn)行速度:
查出運(yùn)行速度最慢的腳本
grep -v 0$ /www/logs/access.2019-02-23.log | awk -F '\" ' '{print $4" " $1}' web.log | awk '{print $1" "$8}' | sort -n -k 1 -r | uniq > /tmp/slow_url.txt
IP, URL 抽?。?/p>
# tail -f /www/logs/access.2019-02-23.log | grep '/test.html' | awk '{print $1" "$7}'
看完上述內(nèi)容,你們對如何實(shí)現(xiàn)Web日志分析有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。