行業(yè)動態(tài)

中小企業(yè)運維中容易被低估的日志

來源:聚銘網絡    發(fā)布時間:2019-11-18    瀏覽次數:
 

信息來源:FreeBuf

前言

如果把運維看做是醫(yī)生給病人看病,日志則是病人對自己的陳述,很多時候醫(yī)生需要通過對病人的描述從中得出病人狀況,是否嚴重,需要什么計量的藥,該用什么類型的藥。所以古人有句話叫做對癥下藥,這個“癥”就是病人的描述加醫(yī)生的判斷,在重一點的病在加上很多的化驗。在醫(yī)生看病時,病人描述的病情和化驗單上的數據對醫(yī)生的判斷是非常重要的。

同理日志在運維中的作用也是非常類似的,但很不幸,日志在很多中小企業(yè)運維中被嚴重低估,直到磁盤空間不足的時候才想到,磁盤里有個大的日志文件要把他刪了,這樣可以節(jié)省空間。

運維的內容

從上面圖可以看出,運維中關注的點還是非常多的,任何一個點都有可能引起運維中的問題。所以大多數運維人員的工作狀態(tài)都是消防員救火的角色,哪里有問題哪里去,時常被問題牽著走。

下面我們來看一下常用的監(jiān)控系統(tǒng),界面做的很漂亮,功能也很多,但是有個疑問就是你會天天盯著這個界面看嗎?

我感覺絕大多數人不會,很多人關注的是異常點,就是當系統(tǒng)有問題的時候,你告訴我哪里有問題,然后我在根據問題去分析,去處理,當然做處理的時候,這個系統(tǒng)就會用上了。

那上面這些內容和日志有什么關系呢?

日志本身是沒有價值的,只有對日志進行分析加以利用的時候才會有價值。日志中包含非常多的有用的信息,不光包括運維層面,還包括業(yè)務層面,安全層面。很多時候運維除了需要日志監(jiān)控,更需要一個統(tǒng)一的告警平臺,但很多故障告警需要依據對日志進行自動化的分析得出結論,所以說日志是很重要的。

什么是日志

簡單地說,日志就是計算機系統(tǒng)、設備、軟件等在某種情況下記錄的信息。具體的內容取決于日志的來源。例如,Unix操作系統(tǒng)會記錄用戶登錄和注銷的消息,防火墻將記錄ACL通過和拒絕的消息,磁盤存儲系統(tǒng)在故障發(fā)生或者在某些系統(tǒng)認為將會發(fā)生故障的情況下生成日志信息。

日志中有大量信息,這些信息告訴你為什么需要生成日志,系統(tǒng)已經發(fā)生了什么。例如,Web服務器一般會在有人訪問Web頁面請求資源(圖片、文件等等)的時候記錄日志。如果用戶訪問的頁面需要通過認證,日志消息將會包含用戶名。

這就是日志數據的一個例子:可以使用用戶名來判斷誰訪問過一個資源。通過日志,IT管理人員可以了解系統(tǒng)的運行狀況,安全狀況,甚至是運營的狀況。

日志能做什么

在一個完整的信息系統(tǒng)里面,日志系統(tǒng)是一個非常重要的功能組成部分。它可以記錄下系統(tǒng)所產生的所有行為,并按照某種規(guī)范表達出來。我們可以使用日志系統(tǒng)所記錄的信息為系統(tǒng)進行排錯,優(yōu)化系統(tǒng)的性能,或者根據這些信息調整系統(tǒng)的行為。

在安全領域,日志可以反應出很多的安全攻擊行為,比如登錄錯誤,異常訪問等。日志還能告訴你很多關于網絡中所發(fā)生事件的信息,包括性能信息、故障檢測和入侵檢測。日志會成為在事故發(fā)生后查明“發(fā)生了什么”的一個很好的“取證”信息來源。日志可以為審計進行審計跟蹤。

從“一條日志”說起,日志能給我們帶來什么?

1. 用戶數分析

111.88.155.166- - [17/Dec/2015:13:06:05+0800]"POST /login HTTP/1.1"2000"http://secilog.abc.com/login?langType=zh""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"

這是一條很普通的nginx中記錄的日志,日志的詳細內容可查閱相關文檔。這里簡單說明一下主要的內容。從日志中可以得到訪問者的IP,訪問的時間,時區(qū),請求的方式,請求頁面,返回狀態(tài),來源等等信息。中小企業(yè)運維中容易被低估的日志仔細一看請求的頁面/login就可以猜到只是一個登錄請求頁面。這條日志的重要含義是登錄成功。

從這條日志怎么和我們關注的指標對應的,我們下面接著分析。

活躍用戶數,活躍用戶數一般是指同一天有多少老用戶登錄過系統(tǒng)。這個時候就會發(fā)現,剛才的登錄日志中如果放到一天的統(tǒng)計中就可以知道,一天內有多少次成功等登錄的次數了。

但細心的朋友可以發(fā)現,不準確,因為用戶可以重復登陸,這就會造成重復,說的很對,那我們在細化一下,我們換個角度分析,一天內登錄成功的不重復ip的數量。是不是更接近真實的結果呢,我感覺從量級和趨勢上已經能說明問題了。

刷單用戶這個沒有標準的說法,我的理解是是同一個人為了某種目的大量注冊了很多賬號后,然后進行某種操作比如刷單等。這種行為很難100%杜絕,但從這條日志中可以得出一些有意思的發(fā)現。

如果同一個ip一天登錄成功次數過多,比如一天登錄了一百次,每次間隔的時間都差不多,說明這個人有刷單嫌疑,可以先找出來然后再進一步的分析。

新增用戶數的含義是一天內有多少注冊成功的用戶,這個時候可以類比登錄日志,只要把登錄日志的url換成注冊日志的url就可以發(fā)現一天新增的用戶數是多少。

同理惡意注冊用戶數也是類似的,一天同一個ip下注冊成功的次數非常多。此ip惡意注冊的可能性就很大。當然還需要進一步的分析,比如ip是否是一個大樓里面的出口ip,注冊后此用戶做了什么來判斷。

從上面的分析可以看出舉一反三,可從日志中可以看出運營中的很多內容,比如瀏覽商品的排行,用戶訪問時間,用戶來源等等。

2. 安全行為分析

下面我們還從這條日志中分析一下安全的行為:

111.88.155.166- - [17/Dec/2015:13:06:05+0800]"POST /login HTTP/1.1"3020"http://secilog.abc.com/login?langType=zh""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"

這還是一條登錄日志,唯一和上面登錄日志不一樣的地方是服務器返回值。一個是302,一個是200。有什么區(qū)別呢?302的意思是服務器進行過頁面跳轉,200還是正常返回頁面,從中就可以理解,這是一條登錄失敗的記錄。很好,有這條記錄就可以發(fā)現很多的安全行為。

惡意密碼猜測,可以理解為在一段時間內,用戶大量的登錄失敗,返回了很多登錄失敗記錄。通過從這條定義就可以到日志中發(fā)現規(guī)律,我們把時間放大到5分鐘,當5分鐘內,同一個ip有超過20次以上的登錄失敗行為,基本上可以斷定在進行密碼猜測。

當然密碼猜測有自動的也有手動的,如果區(qū)分呢。我們看一下這個內容”http://secilog.abc.com/login?langType=zh“,這個含義是post提交的來源是”http://secilog.abc.com/login?langType=zh“這個網頁,也就是從這個網頁發(fā)起的。如果這個地址不對,極有可能是用工具來進行暴力破解。

同理cc攻擊就更容易理解了,同一個ip在很短的時間內訪問并產生了大量的請求,基本上可以認為是cc攻擊。其他的webshell,sql注入等也可以從日志中分析出部分來,但不是太準確,因為日志中指記錄get請求的參數,post參數正常是不記錄的。

從上面的分析中可以得知,日志中還是有很多寶貴的東西在里面,只是我們沒有發(fā)現。

如何分析日志

收集日志

一般日志分析中主要包括以下幾個層面,首先是收集日志,然后對日志進行格式化分析,然后進行過濾或者歸并,然后對日志進行告警分析,然后入庫。

收集主要就是對各種協(xié)議的支持,例如syslog,sftp等。

格式化分析是重點,畢竟每種日志的格式不一樣。舉個例子:下圖是一個pix防火墻和ids的日志,通過這對原始日志雜亂無序的內容分析出有意義的維度。通過這些維度后我們得出很多有價值的信息,比如操作系統(tǒng),協(xié)議等等。

 

分析日志

日志分析中有關鍵字分析,統(tǒng)計分析和關聯(lián)分析。

1、關鍵字分析就是針對日志中的關鍵字進行分析。

2、統(tǒng)計分析是根據一段時間根據某種規(guī)律進行分析。

3、關聯(lián)分析是用于在海量審計信息中找出異構異源事件信息之間的關系分析

關聯(lián)分析方法(對于存在關聯(lián)關系信息的上下文制定合理的審計策略,通過組合判斷多個異構事件判斷操作行為性質,發(fā)掘隱藏的相關性,發(fā)現可能存在的違規(guī)行為。)

日志分析工具推薦

這些東西本身很復雜,如果都要從頭做工作量很大。當然市場上也有很多比較好的產品支持此功能。比如HP ArcSight,IBM Security QRadar SIEM 等等。

但是這些產品都是非常昂貴的產品,有沒有可以免費使用的產品呢?

有:比如國外的elk,ossim。這幾個產品都各有優(yōu)缺點,看大家自己選擇了。elk是一個半成品,自己要使用需要做大量的工作,ossim,相對是成品,但是漢化還是不是太好,這兩個國外產品對國內使用者的習慣還不是太好。

另外國產日志監(jiān)控工具還有Secilog,Secilog它相對平衡一點。Secilog的特點是支持syslog、snmp、jdbc、ftp/sftp等協(xié)議收集或者采集日志。對日志進行分析,格式化處理,產生告警,同時對原始日志和格式化后的日志進行全文搜索索引的存儲,支持采集橫向擴展集群,支持海量日志的分析和查詢。

可以分析用于linux日志、windows日志、防火墻日志ids日志、業(yè)務日志等日志,支持所有文本類型的日志存儲和查詢。

除此以外它還內置16種告警:密碼猜測攻擊,非上班時間登錄,非上班地點登錄,賬號猜測攻擊,密碼猜測攻擊成功,敏感文件操作,高危命令操作,主機掃描,端口掃描,非法外聯(lián),sql注入,Xss攻擊,非法訪問,敏感文件訪問,WebShell攻擊,CC攻擊。

通過告警規(guī)則的設定,很容易的增加其他告警。同時系統(tǒng)通過告警規(guī)則配置可以支持業(yè)務告警,接口請求異常,惡意刷單,大單告警等。


 
 

上一篇:Apache Flink 上傳漏洞所導致的命令執(zhí)行

下一篇:企業(yè)端安全如何防護?面對Coinbase交易所被攻破,值得所有安全廠商沉思