前言
如果把運(yùn)維看做是醫(yī)生給病人看病,日志則是病人對(duì)自己的陳述,很多時(shí)候醫(yī)生需要通過對(duì)病人的描述得出病人狀況,是否嚴(yán)重,需要什么計(jì)量的藥,該用什么類型的藥。
所以古人有句話叫做對(duì)癥下藥,這個(gè)“癥”就是病人的描述加醫(yī)生的判斷,對(duì)于重一點(diǎn)的病再加上很多的化驗(yàn)。在醫(yī)生看病時(shí),病人描述的病情和化驗(yàn)單上的數(shù)據(jù)對(duì)醫(yī)生的判斷是非常重要的。
同理,日志在運(yùn)維中的作用也是非常類似的,但很不幸,日志在很多中小企業(yè)運(yùn)維中被嚴(yán)重低估,直到磁盤空間不足的時(shí)候才想到,磁盤里有個(gè)大的日志文件要把他刪了,這樣可以節(jié)省空間。
運(yùn)維的內(nèi)容
從上面圖可以看出,運(yùn)維中關(guān)注的點(diǎn)還是非常多的,任何一個(gè)點(diǎn)都有可能引起運(yùn)維中的問題。所以大多數(shù)運(yùn)維人員的工作狀態(tài)都是消防員救火的角色,哪里有問題哪里去,時(shí)常被問題牽著走。
下面,我們來看一下常用的監(jiān)控系統(tǒng),界面做的很漂亮,功能也很多,但是有個(gè)疑問就是你會(huì)天天盯著這個(gè)界面看嗎?
我感覺絕大多數(shù)人不會(huì),很多人關(guān)注的是異常點(diǎn),就是當(dāng)系統(tǒng)有問題的時(shí)候,你告訴我哪里有問題,然后,我在根據(jù)問題去分析,去處理,當(dāng)然做處理的時(shí)候,這個(gè)系統(tǒng)就會(huì)用上了。
那上面這些內(nèi)容和日志有什么關(guān)系呢?
日志本身是沒有價(jià)值的,只有對(duì)日志進(jìn)行分析加以利用的時(shí)候才會(huì)有價(jià)值。日志中包含非常多的有用信息,不光包括運(yùn)維層面,還包括業(yè)務(wù)層面,安全層面。很多時(shí)候,運(yùn)維除了需要日志監(jiān)控,更需要一個(gè)統(tǒng)一的告警平臺(tái),但很多故障告警需要依據(jù)對(duì)日志進(jìn)行自動(dòng)化的分析得出結(jié)論,所以說日志是很重要的。
什么是日志
簡(jiǎn)單地說,日志就是計(jì)算機(jī)系統(tǒng)、設(shè)備、軟件等在某種情況下記錄的信息。具體的內(nèi)容取決于日志的來源。例如,Unix操作系統(tǒng)會(huì)記錄用戶登錄和注銷的消息,防火墻將記錄ACL通過和拒絕的消息,磁盤存儲(chǔ)系統(tǒng)在故障發(fā)生或者在某些系統(tǒng)認(rèn)為將會(huì)發(fā)生故障的情況下,生成日志信息。
日志中有大量信息,這些信息告訴你為什么需要生成日志,系統(tǒng)已經(jīng)發(fā)生了什么。例如,Web服務(wù)器一般會(huì)在有人訪問Web頁(yè)面請(qǐng)求資源(圖片、文件等等)的時(shí)候記錄日志。如果用戶訪問的頁(yè)面需要通過認(rèn)證,日志消息將會(huì)包含用戶名。
這就是日志數(shù)據(jù)的一個(gè)例子:可以使用用戶名來判斷誰訪問過一個(gè)資源。通過日志,IT管理人員可以了解系統(tǒng)的運(yùn)行狀況,安全狀況,甚至是運(yùn)營(yíng)的狀況。
日志能做什么
在一個(gè)完整的信息系統(tǒng)里面,日志系統(tǒng)是一個(gè)非常重要的功能組成部分。它可以記錄下系統(tǒng)所產(chǎn)生的所有行為,并按照某種規(guī)范表達(dá)出來。我們可以使用日志系統(tǒng)所記錄的信息為系統(tǒng)進(jìn)行排錯(cuò),優(yōu)化系統(tǒng)的性能,或者根據(jù)這些信息調(diào)整系統(tǒng)的行為。
在安全領(lǐng)域,日志可以反映出很多的安全攻擊行為,比如登錄錯(cuò)誤,異常訪問等。日志還能告訴你很多關(guān)于網(wǎng)絡(luò)中所發(fā)生事件的信息,包括性能信息、故障檢測(cè)和入侵檢測(cè)。日志會(huì)成為在事故發(fā)生后,查明“發(fā)生了什么”的一個(gè)很好的“取證”信息來源。日志可以為審計(jì)進(jìn)行審計(jì)跟蹤。
從“一條日志”說起,日志能給我們帶來什么?
1.用戶數(shù)分析
這是一條很普通的nginx中記錄的日志,日志的詳細(xì)內(nèi)容可查閱相關(guān)文檔。這里簡(jiǎn)單說明一下主要的內(nèi)容。從日志中可以得到訪問者的IP,訪問的時(shí)間,時(shí)區(qū),請(qǐng)求的方式,請(qǐng)求頁(yè)面,返回狀態(tài),來源等等信息。仔細(xì)一看請(qǐng)求的頁(yè)面/login就可以猜到只是一個(gè)登錄請(qǐng)求頁(yè)面。這條日志的重要含義是登錄成功。
這條日志是怎么和我們關(guān)注的指標(biāo)對(duì)應(yīng)的,我們下面接著分析。
活躍用戶數(shù),一般是指同一天有多少老用戶登錄過系統(tǒng)。這個(gè)時(shí)候就會(huì)發(fā)現(xiàn),剛才的登錄日志中如果放到一天的統(tǒng)計(jì)中就可以知道,一天內(nèi)有多少次成功登錄的次數(shù)了。
但細(xì)心的朋友可以發(fā)現(xiàn),不準(zhǔn)確,因?yàn)橛脩艨梢灾貜?fù)登陸,這就會(huì)造成重復(fù),說的很對(duì),那我們?cè)诩?xì)化一下,我們換個(gè)角度分析,一天內(nèi)登錄成功的不重復(fù)IP的數(shù)量。是不是更接近真實(shí)的結(jié)果呢,我感覺從量級(jí)和趨勢(shì)上已經(jīng)能說明問題了。
刷單用戶這個(gè)沒有標(biāo)準(zhǔn)的說法,我的理解是同一個(gè)人為了某種目的大量注冊(cè)了很多賬號(hào)后,然后進(jìn)行某種操作比如刷單等。這種行為很難100%杜絕,但從這條日志中可以得出一些有意思的發(fā)現(xiàn)。
如果同一個(gè)IP一天登錄成功次數(shù)過多,比如一天登錄了一百次,每次間隔的時(shí)間都差不多,說明這個(gè)人有刷單嫌疑,可以先找出來,然后再進(jìn)一步的分析。
新增用戶數(shù)的含義是一天內(nèi),有多少注冊(cè)成功的用戶,這個(gè)時(shí)候可以類比登錄日志,只要把登錄日志的url換成注冊(cè)日志的url就可以發(fā)現(xiàn)一天新增的用戶數(shù)是多少。
同理,惡意注冊(cè)用戶數(shù)也是類似的,一天同一個(gè)IP下注冊(cè)成功的次數(shù)非常多。此IP惡意注冊(cè)的可能性就很大。當(dāng)然,還需要進(jìn)一步的分析,比如IP是否是一個(gè)大樓里面的出口IP,注冊(cè)后此用戶做了什么來判斷。
從上面的分析可以看出舉一反三,可從日志中可以看出運(yùn)營(yíng)中的很多內(nèi)容,比如瀏覽商品的排行,用戶訪問時(shí)間,用戶來源等等。
2.安全行為分析
下面,我們還從這條日志中分析一下安全的行為:
這還是一條登錄日志,唯一和上面登錄日志不一樣的地方是服務(wù)器返回值。一個(gè)是302,一個(gè)是200。有什么區(qū)別呢?302的意思是服務(wù)器進(jìn)行過頁(yè)面跳轉(zhuǎn),200還是正常返回頁(yè)面,從中就可以理解,這是一條登錄失敗的記錄。很好,有這條記錄就可以發(fā)現(xiàn)很多的安全行為。
惡意密碼猜測(cè),可以理解為在一段時(shí)間內(nèi),用戶大量的登錄失敗,返回了很多登錄失敗記錄。從這條定義就可以到日志中發(fā)現(xiàn)規(guī)律,我們把時(shí)間放大到5分鐘,當(dāng)5分鐘內(nèi),同一個(gè)IP有超過20次以上的登錄失敗行為,基本上可以斷定在進(jìn)行密碼猜測(cè)。
當(dāng)然,密碼猜測(cè)有自動(dòng)的也有手動(dòng)的,如果區(qū)分呢。我們看一下這個(gè)內(nèi)容"http://secilog.abc.com/login?langType=zh",這個(gè)含義是post提交的來源是"http://secilog.abc.com/login?langType=zh"這個(gè)網(wǎng)頁(yè),也就是從這個(gè)網(wǎng)頁(yè)發(fā)起的。如果這個(gè)地址不對(duì),極有可能是用工具來進(jìn)行暴力破解。
同理cc攻擊就更容易理解了,同一個(gè)IP在很短的時(shí)間內(nèi)訪問并產(chǎn)生了大量的請(qǐng)求,基本上可以認(rèn)為是cc攻擊。其他的webshell,sql注入等也可以從日志中分析出部分來,但不是太準(zhǔn)確,因?yàn)槿罩局兄赣涗沢et請(qǐng)求的參數(shù),post參數(shù)正常是不記錄的。
從上面的分析中可以得知,日志中還是有很多寶貴的東西在里面,只是我們沒有發(fā)現(xiàn)。
如何分析日志
收集日志
一般日志分析中主要包括以下幾個(gè)層面,首先是收集日志,然后對(duì)日志進(jìn)行格式化分析,然后進(jìn)行過濾或者歸并,然后對(duì)日志進(jìn)行告警分析,然后入庫(kù)。
收集主要就是對(duì)各種協(xié)議的支持,例如syslog,sftp等。
格式化分析是重點(diǎn),畢竟每種日志的格式不一樣。舉個(gè)例子:下圖是一個(gè)pix防火墻和ids的日志,通過對(duì)原始日志雜亂無序的內(nèi)容分析出有意義的維度。通過這些維度后,我們得出很多有價(jià)值的信息,比如操作系統(tǒng),協(xié)議等等。
分析日志
日志分析中有關(guān)鍵字分析,統(tǒng)計(jì)分析和關(guān)聯(lián)分析。
◆ 關(guān)鍵字分析就是針對(duì)日志中的關(guān)鍵字進(jìn)行分析。
◆ 統(tǒng)計(jì)分析是根據(jù)一段時(shí)間根據(jù)某種規(guī)律進(jìn)行分析。
◆ 關(guān)聯(lián)分析是用于在海量審計(jì)信息中找出異構(gòu)異源事件信息之間的關(guān)系分析。
關(guān)聯(lián)分析方法(對(duì)于存在關(guān)聯(lián)關(guān)系信息的上下文制定合理的審計(jì)策略,通過組合判斷多個(gè)異構(gòu)事件判斷操作行為性質(zhì),發(fā)掘隱藏的相關(guān)性,發(fā)現(xiàn)可能存在的違規(guī)行為。)
日志分析工具推薦
這些東西本身很復(fù)雜,如果都要從頭做工作量很大。當(dāng)然,市場(chǎng)上也有很多比較好的產(chǎn)品支持此功能。比如HP ArcSight,IBM Security QRadar SIEM 等等。
但是這些產(chǎn)品都是非常昂貴的產(chǎn)品,有沒有可以免費(fèi)使用的產(chǎn)品呢?
有,比如國(guó)外的elk,ossim。這幾個(gè)產(chǎn)品都各有優(yōu)缺點(diǎn),看大家自己選擇了。elk是一個(gè)半成品,自己要使用需要做大量的工作;ossim,相對(duì)是成品,但是漢化還是不是太好,這兩個(gè)國(guó)外產(chǎn)品對(duì)國(guó)內(nèi)使用者的習(xí)慣還不是太好。
另外,國(guó)產(chǎn)日志監(jiān)控工具還有Secilog,Secilog它相對(duì)平衡一點(diǎn)。Secilog的特點(diǎn)是支持syslog、snmp、jdbc、ftp/sftp等協(xié)議收集或者采集日志。對(duì)日志進(jìn)行分析,格式化處理,產(chǎn)生告警,同時(shí)對(duì)原始日志和格式化后的日志進(jìn)行全文搜索索引的存儲(chǔ),支持采集橫向擴(kuò)展集群,支持海量日志的分析和查詢。
可以分析用于Linux日志、Windows日志、防火墻日志ids日志、業(yè)務(wù)日志等日志,支持所有文本類型的日志存儲(chǔ)和查詢。
除此以外,它還內(nèi)置16種告警:密碼猜測(cè)攻擊,非上班時(shí)間登錄,非上班地點(diǎn)登錄,賬號(hào)猜測(cè)攻擊,密碼猜測(cè)攻擊成功,敏感文件操作,高危命令操作,主機(jī)掃描,端口掃描,非法外聯(lián),sql注入,Xss攻擊,非法訪問,敏感文件訪問,WebShell攻擊,CC攻擊。
通過告警規(guī)則的設(shè)定,很容易的增加其他告警。同時(shí),系統(tǒng)通過告警規(guī)則配置可以支持業(yè)務(wù)告警,接口請(qǐng)求異常,惡意刷單,大單告警等。
很高興你能看完,希望對(duì)你有用。
作者介紹:朱林,一個(gè)開發(fā)了16年程序的老程序員,熱愛開發(fā),有11年的安全開發(fā)經(jīng)驗(yàn),現(xiàn)任賽克藍(lán)德公司技術(shù)總監(jiān)。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:中小企業(yè)運(yùn)維需要重視日志分析
本文網(wǎng)址:http://www.ezxoed.cn/html/support/11121519111.html