ELK如何幫助安全工程師對抗網站攻擊,安然入睡

我們的網絡防禦中心負責客戶網絡基礎設施的安全,並抵禦對客戶站點的攻擊。 為了防止攻擊,我們使用 FortiWeb Web 應用程序防火牆 (WAF)。 但即使是最酷的 WAF 也不是靈丹妙藥,也不能“開箱即用”地保護免受有針對性的攻擊。 

因此,除了WAF,我們還使用 麋鹿. 它有助於將所有事件收集在一個地方,積累統計數據,將其可視化,並讓我們及時看到有針對性的攻擊。

今天,我將更詳細地告訴您我們如何使用 WAF 跨越聖誕樹以及它的結果。

ELK如何幫助安全工程師對抗網站攻擊,安然入睡

一次攻擊的故事:在切換到 ELK 之前一切如何運作

在我們的雲中,客戶已經在我們的 WAF 後面部署了應用程序。 從每天10到000個用戶連接到該站點,每天的連接數達到100萬。 其中,000-20 名用戶是入侵者並試圖入侵該網站。 

來自一個 IP 地址的通常形式的暴力破解很容易被 FortiWeb 阻止。 每分鐘對該網站的點擊次數高於合法用戶。 我們只需從一個地址設置活動閾值並擊退攻擊。

當攻擊者行動緩慢並將自己偽裝成普通客戶端時,應對“慢速攻擊”要困難得多。 他們使用許多唯一的 IP 地址。 這樣的活動對於 WAF 來說並不像是大規模的暴力破解,自動跟踪它更加困難。 並且還存在阻止普通用戶的風險。 我們尋找其他攻擊跡象,並根據此跡象制定自動阻止 IP 地址的策略。 例如,許多非法會話在 http 請求標頭中具有公共字段。 您通常不得不在 FortiWeb 事件日誌中手動查找此類字段。 

它變得漫長而不舒服。 在 FortiWeb 的標準功能中,事件以文本形式記錄在 3 種不同的日誌中:檢測到的攻擊、有關請求的信息和有關 WAF 操作的系統消息。 一分鐘內可能會發生數十個甚至數百個攻擊事件。

沒那麼多,但你必須手動爬過幾個日誌並遍歷許多行: 

ELK如何幫助安全工程師對抗網站攻擊,安然入睡
在攻擊日誌中,我們可以看到用戶地址和活動的性質。 
 
僅僅掃描日誌表是不夠的。 要找到有關攻擊性質的最有趣和最有用的信息,您需要深入了解特定事件:

ELK如何幫助安全工程師對抗網站攻擊,安然入睡
突出顯示的字段有助於檢測“慢速攻擊”。 來源:截圖自 飛塔網站

好吧,主要問題是只有 FortiWeb 專家才能弄明白。 如果在工作時間內我們仍然可以實時跟踪可疑活動,那麼夜間事件的調查可能會延遲。 當 FortiWeb 策略由於某種原因不起作用時,值班的夜班工程師無法訪問 WAF 無法評估情況,並喚醒了 FortiWeb 專家。 我們查看了幾個小時的日誌,找到了攻擊的時刻。 

如此龐大的信息量,很難一目了然,主動採取行動。 然後我們決定將數據收集在一個地方,以便以可視化的形式分析一切,找到攻擊的開始,確定其方向和攔截方法。 

你選擇了什麼

首先,我們研究了已經在使用的解決方案,以免不必要地增加實體。

第一個選擇是 Nagios的我們用來監控 工程基礎設施, 網絡基礎設施,緊急警報。 保安人員還用它在出現可疑流量時通知服務員,但它不知道如何收集分散的日誌,因此消失了。 

有一個選項可以聚合所有內容 MySQL 和 PostgreSQL 或其他關係數據庫。 但為了提取數據,有必要塑造您的應用程序。 

作為我們公司的日誌收集器,他們還使用 強化分析儀 來自飛塔。 但在這種情況下,他同樣放不下。 首先,使用防火牆更加敏銳 堡壘之門. 其次,缺少許多設置,與它交互需要對 SQL 查詢有很好的了解。 第三,它的使用會增加客戶的服務成本。   

這就是我們面對開源的方式 麋鹿

為什麼選擇ELK 

ELK 是一組開源程序:

  • Elasticsearch - 時間序列數據庫,剛剛創建用於處理大量文本;
  • Logstash – 可以將日誌轉換為所需格式的數據收集機制; 
  • Kibana - 一個很好的可視化工具,以及一個相當友好的管理 Elasticsearch 的界面。 您可以使用它來製定可由值班工程師在夜間監控的時間表。 

ELK入門門檻低。 所有基本功能都是免費的。 幸福還需要什麼。

您是如何將所有這些整合到一個系統中的?

創建索引並只留下必要的信息. 我們將所有三個 FortiWEB 日誌加載到 ELK 中——輸出是索引。 這些文件包含一段時間內(例如一天)收集的所有日誌。 如果我們立即將它們可視化,我們只會看到攻擊的動態。 有關詳細信息,您需要“陷入”每個攻擊並查看特定字段。

ELK如何幫助安全工程師對抗網站攻擊,安然入睡

我們意識到,首先我們需要設置非結構化信息的解析。 我們將長字段作為字符串,例如“Message”和“URL”,並對其進行解析以獲取更多信息以供決策使用。 

比如使用解析,我們單獨取出了用戶所在的位置。 這有助於立即突出來自國外對俄羅斯用戶網站的攻擊。 通過阻止來自其他國家的所有連接,我們將攻擊次數減少了 2 倍,並且可以輕鬆應對俄羅斯境內的攻擊。 

解析後,他們開始尋找要存儲和可視化的信息。 將所有內容都留在日誌中是不合適的:一個索引的大小很大——7 GB。 ELK 花了很長時間來處理文件。 然而,並非所有信息都是有用的。 有些東西被複製並佔用了額外的空間 - 有必要進行優化。 

起初,我們只是簡單地查看索引並刪除不必要的事件。 事實證明,這比在 FortiWeb 本身上處理日誌更不方便,時間也更長。 這個階段“聖誕樹”的唯一好處是我們能夠在一個屏幕上想像很長一段時間。 

我們並沒有絕望,繼續吃著仙人掌,研究著 ELK,相信一定能夠提取出必要的信息。 清理索引後,我們開始可視化是什麼。 所以我們來到了大儀錶盤。 我們戳了小部件 - 視覺和優雅,一個真正的 ЁLKa! 

ELK如何幫助安全工程師對抗網站攻擊,安然入睡

拍下襲擊的瞬間。 現在有必要了解攻擊開始時在圖表上的樣子。 為了檢測它,我們查看了服務器對用戶的響應(返回代碼)。 我們對具有此類代碼(rc)的服務器響應感興趣: 

代號 (rc)

名稱

描述

0

下降

對服務器的請求被阻止

200

Ok

請求處理成功

400

錯誤的請求

錯誤的請求

403

被禁止

授權被拒絕

500

內部服務器錯誤

服務不可用

如果有人開始攻擊該站點,則代碼比例會發生變化: 

  • 如果有更多代碼為 400 的錯誤請求,以及相同數量的代碼為 200 的正常請求,則表明有人試圖入侵該站點。 
  • 如果與此同時代碼為 0 的請求也有所增加,那麼 FortiWeb 政客們也會“看到”攻擊並對其應用阻止。 
  • 如果帶有代碼 500 的消息數量增加,則該站點對這些 IP 地址不可用 - 也是一種阻塞。 

到第三個月時,我們已經設置了一個儀表板來跟踪此活動。

ELK如何幫助安全工程師對抗網站攻擊,安然入睡

為了不手動監控一切,我們設置了與 Nagios 的集成,Nagios 以一定的時間間隔輪詢 ELK。 如果它通過代碼記錄了達到閾值的情況,就會向值班人員發送有關可疑活動的通知。 

結合監控系統中的4張圖表. 現在重要的是在圖表上看到攻擊未被阻止並且需要工程師干預的時刻。 在 4 個不同的圖表上,我們的眼睛是模糊的。 因此,我們結合圖表開始在一個屏幕上觀察所有內容。

在監控中,我們觀察了不同顏色的圖表如何變化。 紅色的爆發表明攻擊已經開始,而橙色和藍色的圖表顯示了 FortiWeb 的反應:

ELK如何幫助安全工程師對抗網站攻擊,安然入睡
這裡一切都很好:“紅色”活動激增,但 FortiWeb 應付了過來,攻擊計劃化為烏有。

我們還為自己繪製了一個需要干預的圖表示例:

ELK如何幫助安全工程師對抗網站攻擊,安然入睡
在這裡我們可以看到 FortiWeb 的活動有所增加,但紅色攻擊圖並沒有減少。 您需要更改 WAF 設置。

調查夜間事件也變得更加容易。 該圖立即顯示了需要保衛該地點的時刻。 

ELK如何幫助安全工程師對抗網站攻擊,安然入睡
這就是有時在晚上發生的事情。 紅色圖 - 攻擊已經開始。 藍色 - FortiWeb 活動。 攻擊沒有完全被阻止,我們不得不介入。

我們去哪

現在我們正在培訓值班管理員與 ELK 一起工作。 服務員學會評估儀表板上的情況並做出決定:是時候升級到 FortiWeb 專家,或者 WAF 上的策略足以自動擊退攻擊。 所以我們減少信息安全工程師晚上的負擔,在系統層面劃分支持的角色。 只有網絡防禦中心才能訪問 FortiWeb,並且只有在緊急需要時他們才會更改 WAF 設置。

我們還致力於為客戶提供報告。 我們計劃在客戶的個人帳戶中提供有關 WAF 工作動態的數據。 ELK 將使情況更加清晰,而無需參考 WAF 本身。

如果客戶想要實時監控自己的防護,ELK也會派上用場。 我們不能放棄對 WAF 的訪問,因為客戶對工作的干預可能會影響其餘部分。 但是你可以拿起一個單獨的 ELK 並讓它“玩耍”。 

這些是我們最近積累的使用聖誕樹的場景。 分享您對此的想法,不要忘記 正確設置一切以避免數據庫洩漏。 

來源: www.habr.com