運維中被低估的日誌

2021-12-29 19:45:56 字數 4211 閱讀 6504

如果把運維看做是醫生給病人看病,則日誌就是病人對自己的陳述,很多時候醫生需要通過對病人的描述中得出病人狀況,是否嚴重,需要什麼計量的藥,什麼型別的藥。所以古人有句話叫對症下藥,這個症就是病人的描述加醫生的判斷,在重一點的病在加上很多的化驗。在醫生看病時病人的描述和化驗單上的資料對醫生是非常重要的。同理日誌在運維中的作用也是類似的,但非常不幸,日誌在很多運維中被嚴重低估,直到磁碟空間不足的時候才想到,這有個大的日誌檔案把他刪了,這樣可以節省空間。

從上面圖可以看出,運維中關注的點還是非常多的,任何乙個點都有可能引起運維中的問題。所以大多數的運維人員狀態都是消防員救火的角色,**有問題**去。

下面我們來看一下常用的監控系統,介面做的很漂亮,功能也很多,但是有個疑問就是你會天天盯著這個介面看嗎?我感覺絕大多數人不會,很多人關注的是異常點,就是當系統有問題的時候,你告訴我**有問題,然後我在根據問題去分析,去處理,當然做處理的時候,這個系統就會用上了。

那上面這些內容和日誌有什麼關係呢?

日誌本身是沒有價值的,只有對日誌進行分析加以利用的時候才會有價值,日誌中包含非常多的有用的資訊,不光包括運維層面,還包括業務層面,安全層面。很多時候運維需要的是乙個統一告警平台,但告警的依據絕大多少是對日誌等進行自動化的分析得出的結論,所以說日誌是很重要的。

簡單地說,日誌就是計算機系統、裝置、軟體等在某種情況下記錄的資訊。具體的內容取決於日誌的**。例如,unix作業系統會記錄使用者登入和登出的訊息,防火牆將記錄acl通過和拒絕的訊息,磁碟儲存系統在故障發生或者在某些系統認為將會發生故障的情況下生成日誌資訊。日誌中有大量資訊,這些資訊告訴你為什麼需要生成日誌,系統已經發生了什麼。例如,web伺服器一般會在有人訪問web頁面請求資源(、檔案等等)的時候記錄日誌。如果使用者訪問的頁面需要通過認證,日誌訊息將會包含使用者名稱。這就是日誌資料的乙個例子:可以使用使用者名稱來判斷誰訪問過乙個資源。通過日誌,it管理人員可以了解系統的執行狀況,安全狀況,甚至是運營的狀況。

在乙個完整的資訊系統裡面,日誌系統是乙個非常重要的功能組成部分。它可以記錄下系統所產生的所有行為,並按照某種規範表達出來。我們可以使用日誌系統所記錄的資訊為系統進行排錯,優化系統的效能,或者根據這些資訊調整系統的行為。在安全領域,日誌可以反應出很多的安全攻擊行為,比如登入錯誤,異常訪問等。日誌還能告訴你很多關於網路中所發生事件的資訊,包括效能資訊、故障檢測和入侵檢測。日誌會成為在事故發生後查明「發生了什麼」的乙個很好的「取證」資訊**。日誌可以為審計進行審計跟蹤。

這是一條很普通的nginx中記錄的日誌,日誌的詳細內容可查閱相關文件。這裡簡單說明一下主要的內容。從日誌中可以得到訪問者的ip,訪問的時間,時區,請求的方式,請求頁面,返回狀態,**等等資訊。仔細一看請求的頁面/login就可以猜到只是乙個登入請求頁面。這條日誌的重要含義是登入成功。

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

活躍使用者數,活躍使用者說一般是指同一天有多少老使用者登入過系統。這個時候就會發現,剛才的登入日誌中如果放到一天的統計中就可以知道,一天內有多少次成功等登入的次數了,但細心的使用者可以發現,不準確,因為使用者可以重複登陸,這就會造成重複,說的很對,那我們在細化一下,我們換個角度分析,一天內登入成功的不重複ip的數量。是不是更接近真實的結果呢,我感覺從量級和趨勢上已經能說明問題了。

刷單使用者這個沒有標準的說法,我的理解是是同乙個人為了某種目的大量註冊了很多賬號後,然後進行某種操作比如刷單等。這種行為很難100%杜絕,但從這條日誌中可以得出一些有意思的發現。如果同乙個ip一天登入成功次數過多,比如一天登入了一百次,每次間隔的時間都差不多,說明這個人有刷單嫌疑,可以先找出來然後再進一步的分析。

新增使用者數的含義是一天內有多少註冊成功的使用者,這個時候可以模擬登入日誌,只要把登入日誌的url換成註冊日誌的url就可以發現一天新增的使用者數是多少。

同理惡意註冊使用者數也是類似的,一天同乙個ip***冊成功的次數非常多。此ip惡意註冊的可能性就很大。當然還需要進一步的分析,比如ip是否是乙個大樓裡面的出口ip,註冊後此使用者做了什麼來判斷。

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

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

這還是一條登入日誌,唯一和上面登入日誌不一樣的地方是伺服器返回值。乙個是302,乙個是200.有什麼區別的,302的意思是伺服器進行過頁面跳轉,200還是返回此頁面,從中就可以理解,這是一條登入失敗的記錄。很好,有這條記錄就可以發現很多的安全行為。

惡意密碼猜測,可以理解同一段時間,使用者大量的登入失敗,返回了很多登入失敗記錄。從這條定義中就可以發現規律,我們把時間放大到5分鐘,當5分鐘內,同乙個ip有超過20次以上的登入失敗行為,基本上可以斷定在進行密碼猜測。當密碼猜測有自動的也有手動的,如果區分呢。我們看一下這個內容"",這個含義是post提交的**是""這個網頁,也就是從這個網頁發起的。如果這個位址不對,極有可能是用工具來進行暴力破解。

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

從上面的分析中可以得知,日誌中還是有很多寶貴的東西在裡面,只是我們沒有發現。

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

收集主要就是對各種協議的支援,例如syslog,sftp等。

格式化分析是重點,畢竟每種日誌的格式不一樣。舉個例子:下圖是乙個pix防火牆和ids的日誌,通過這對原始日誌雜亂無序的內容分析出有意義的維度。通過這些維度後我們得出很多有價值的資訊,比如作業系統,協議等等。

日誌分析

日誌分析中有關鍵字分析,統計分析和關聯分析。

關鍵字分析就是針對日誌中的關鍵字進行分析。

統計分析是根據一段時間根據某種規律進行分析。

關聯分析用於在海量審計資訊中找出異構異源[異構是什麼意思]事件資訊之間的關係,對於存在關聯關係資訊的上下文制定合理的審計策略,通過組合判斷多個異構事件判斷操作行為性質,發掘隱藏的相關性,發現可能存在的違規行為。

這些東西本身很複雜,如果都要從頭做工作量很大。當然市場上也有很多比較好的產品支援此功能。比如hp arcsight,ibm security qradar siem 等等,但是這些產品都是非常昂貴的產品,有沒有可以免費使用的產品呢?有:比如國外的elk,ossim.國產的secilog。這幾個產品各有優缺點,看大家自己選擇了。elk是乙個半成品,自己要使用需要做大量的工作,ossim,相對是成品,但是漢化還是不是太好,這兩個國外產品對國內使用者的習慣還不是太好。secilog相對平衡一點。secilog的特點是支援syslog、snmp、jdbc、ftp/sftp等協議收集或者採集日誌。對日誌進行分析,格式化處理,產生告警,同時對原始日誌和格式化後的日誌進行全文搜尋索引的儲存,支援採集橫向擴充套件集群,支援海量日誌的分析和查詢。可以分析linux日誌、windows日誌、防火牆日誌ids日誌、業務日誌等日誌,支援所有文字型別的日誌儲存和查詢,內建16種告警:密碼猜測攻擊,非上班時間登入,非上班地點登入,賬號猜測攻擊,密碼猜測攻擊成功,敏感檔案操作,高危命令操作,主機掃瞄,埠掃瞄,非法外聯,sql注入,xss攻擊,非法訪問,敏感檔案訪問,webshell攻擊,cc攻擊。通過告警規則的設定,很容易的增加其他告警。同時系統通過告警規則配置可以支援業務告警,介面請求異常,惡意刷單,大單告警等。

很高興你能看完,希望對你有用。

kafka運維日誌一

隨著資料的增加每分鐘產生的資料量很大,對伺服器硬碟壓力也很大.可以從兩方面著手解決這個問題 1.增加伺服器集群 2.優化kafka服務配置 a.縮短日誌的備份時間log.retention.hours 72 b.縮短日誌的備份上限log.retention.bytes 5368709120 c.開啟...

Linux運維 運維日誌 CentOs7防火牆篇

啟動 systemctl start firewalld 關閉 systemctl stop firewalld 檢視狀態 systemctl status firewalld 開機禁用 systemctl disable firewalld 開機啟用 systemctl enable firewa...

安全運維之日誌追蹤

為了快速還原乙個易被攻擊以及攻擊性的多樣化的手機麻將外掛程式環境,這裡我使用了dvwa這個測試平台。這裡我使用了御劍麻將外掛程式軟體後台掃瞄工具 b.然後對掃瞄到的phpmyadmin進行暴力破解 c.測試簡單的暴力破解,這裡使用的星力捕魚程式刷分軟體工具是burp suite 這裡使用burp s...