利用python分析access日誌的方法_node.js

來源:互聯網
上載者:User

前言

WAF上線之後,處理最多的是誤判消除。

產生誤判有多種原因,比如web應用源碼編寫時允許用戶端提交過多的cookie;比如單個參數提交的數值太大。

把誤判降低到了可接受的範圍後,還要關注漏報。WAF不是神,任何WAF都可能被繞過。所以還需要定位漏過的攻擊,明確漏報的原因,才能update WAF的策略。

要定位漏報,就必須分析Web應用的訪問日誌了。一個網站,每天產生的access日誌大概接近1GB,顯然靠肉眼看是不現實的。這就需要用python協助自動分析。

實現思路

拿我司某Web系統舉例:

     apache開啟了access日誌記錄

     日誌規則是每小時產生一個記錄檔,以網站名稱為檔案名稱,以日期+時間為尾碼。例如:special.XXXXXX.com.cn.2016101001

要分析這些散碎的記錄檔,我的思路如下:

     1、根據使用者命令列輸入擷取記錄檔所在目錄;

     2、遍曆目錄下所有檔案,合并到一個檔案;

     3、定義web攻擊常見payload的字串:

          SQLi的:select、union、+–+;

          Struts的:ognl、java

          webshell常見的:base64、eval、excute

使用正則逐行匹配,將命中的日誌複製到單獨的檔案。

實現代碼

代碼如下:

# -*-coding: utf-8 -*-import os,re,sysif len(sys.argv) != 2 :  print 'Usage : python logaudit.py <path>'  sys.exit()logpath = sys.argv[1]#擷取輸入參數的檔案路徑'merge = re.compile(r'.*(\d[10])')for root , dirs , files in os.walk(logpath):  for line in files:    #遍曆記錄檔夾,合并所有內容到一個檔案    pipei = merge.match(line)    if pipei != None:      tmppath = root + '\\' +line      logread1 = open(tmppath,'r')      logread = logread1.read()      log2txt = open('.\\log.txt','a')      log2txt.write(logread)      log2txt.close()      logread1.close()    else:      exitlog = open('.//log.txt','r')logread = log.readlines()auditString = re.compile(r'.*[^_][sS][eE][lL][eE][cC][tT][^.].*|.*[uU][nN][iI][Oo][nN].*|.*[bB][aA][sS][eE][^.].*|.*[oO][gG][nN][lL].*|.*[eE][vV][aA][lL][(].*|.*[eE][xX][cC][uU][tT][eE].*')writelog = open('.//result.txt','a')for lines in logread:  auditResult = auditString.match(lines)  if auditResult != None:    writelog.write(auditResult.group())    writelog.write('\n')  else:    exitwritelog.close()log.close()

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.