從無到有的日誌分析演變過程

2021-09-25 23:33:55 字數 1924 閱讀 3255

總結作為乙個萌新的我,雖然在學校開始自學網路安全知識,安全乙方公司實習了2年多,做了2年多份安全開發工作,漸漸的對網路安全有了深入的了解,2年間主要是負責安全工具開發和日誌系統開發,後面由於自身問題跳到了甲方公司,開始對甲方公司的網路安全進行從無到有的開發,由於之前開發過日誌分析平台,因此,我開始了從無到有的日誌開發工作,也是公司的日誌開發的演變。

我們對日誌分析系統做了初代的思路並將其實現,在這種結構中只有簡單的logstash、elasticsearch。logstash通過輸入外掛程式直接讀取檔案獲取資料,過濾外掛程式自動根據已經寫好的切分規則進行切分,然後把已經切分好的字段傳輸給elasticsearch。然而當最簡單的架構出來後,我們又發現了新的問題,logstash agent的維護不是很理想,logstash是基於ruby的,啟動它就要有幾十兆記憶體被jvm吃掉,我們想避免在每個機器上都要起乙個logstash。並且在我們使用過程中logstash非常不穩定,莫名其妙就死掉了,還需要乙個守護程序守護它。

這種架構解決了logstash在各伺服器節點上占用系統資源高的問題。相比logstash,filebeats所佔系統的cpu和記憶體幾乎可以忽略不計。另外,filebeats和logstash之間支援ssl/tls加密傳輸,客戶端和伺服器雙向認證,保證了通訊安全。因此這種架構適合對資料安全性要求較高,同時各伺服器效能比較敏感的場景。但是對於這種架構也是存在著不少問題,就是在一開始匯入日誌的時候,或一次性讀取所有日誌檔案,全量輸出給logstash,這樣的話吞吐量大會出現記憶體不夠用,導致系統奔潰。為了解決這一種情況,我們採用了kafka,logstash從kafka裡消費這些日誌,寫到elasticsearch裡面去,然而當我們業務量資料達到上億的時候,伺服器再一次沒有扛得住壓力了,而且這只是做了簡單的儲存,還沒有用到檢測規則和告警服務。

為了解決二代目日誌平台遺留下來的問題,對架構logstash做了重新的規劃,改用storm作為日誌切分,對資料進行預處理,白名單過濾等預處理,新增正則引擎對nginx上get請求做檢測判斷,判斷攻擊的打上攻擊標籤,但是由於檢測效能消耗過大,因此把檢測和本身儲存日誌分開儲存到elasticsearch,業務監控也只是對一些特殊介面做了檢測。但是這隨著引發出了另外乙個問題,那就是當資料量短時間內高吞吐量多的時候,出現了日誌延時的問題,高峰時間越長,吞吐效能越低,而且監控是採用python指令碼去查elasticsearch定時跑任務,統計並發出告警,在設計上無法實現想要的效果。檢測效能也需要優化。

為了更好的解決三代目日誌分析平台的問題,我們又重新處理了一下,改用了效能更好,吞吐量高的flink,也支援和storm一樣的資料流處理,視窗支援較為完善,自帶一些視窗聚合方法,並且會自動管理視窗狀態。同時又在flink上做了監控統計告警,通過對每一次的資料量進行統計,獲取到實時的資料流狀態,充分考慮到上下游的關係,在檢測效能上也得到了很大的提公升,也解決了在監控上是採用python指令碼去查elasticsearch定時跑任務,統計並發出告警的問題,更加方便快捷。

在上面經過一年間的不斷實驗,最終得到了這樣乙個相對穩定的日誌分析版本,但是其中還有很多優化的空間,比如檢測到的攻擊行為如何定義為乙個事件,比如掃瞄器事件、撞庫事件、掃號事件等,還有聯動waf實現封禁的問題,都需要後面慢慢對規則進行優化,還有一點是褥羊毛的行為,這需要很強的使用者訪問路徑,大量資料來統計,做機器學習模型來判斷乙個使用者的乙個訪問路徑,上下文關係是否正常。還有登入和註冊介面可以利用資料探勘和機器學習等方法,刻畫使用者畫像,並找到異常/惡意帳號。

從無到有的創造事物

1.創造商品的一般流程 2.創造產品的過程包含幾個要點 1 綜合 將不同大的部件 子系統及技術集成為乙個整體。2 分析 運用數學 科學 工程技術和經濟學知識將不同方案的效能進行量化。3 交流 繪製見圖 建立數學模型或實體模型 撰寫書面報告 進行口頭陳述,讓管理部門理解並支援你的方案 構思及設計。4 ...

OPENAI GYM 從無到有的tutorial

我的目標是用openai的gym 虛擬機器跑一下超級mario並且分析gym運用在csgobot上的可行性。gym裡面包含了很多很小很精簡的定製小遊戲用來測試神經網路 至於網路和邏輯可以從tensorflow中匯入。openai gym 是乙個增強學習 reinforcement learning,...

虛擬機器從無到有,伺服器從無到有的歷程(在更)

安裝虛擬機器之後做什麼?修改ip位址,方便訪問,在安裝作業系統前後都可以 修改ip位址之後,安裝php伺服器後先通過虛擬機器裡面的ie瀏覽器訪問,看能不能用,能用就代表配置好了,再去折騰用本機訪問 找vmare tools工具 莫名其妙安裝成無圖形化介面的os 莫名其妙再安裝一次是圖形化介面的 安裝...