企業安全建設之搭建開源SIEM平台(下)
*本文原創作者:兜哥,轉載請註明來自FreeBuf.COM
前言
SIEM(security information and event management),顧名思義就是針對安全信息和事件的管理系統,針對大多數企業是不便宜的安全系統,本文結合作者的經驗介紹如何使用開源軟體離線分析數據,使用演算法挖掘未知攻擊行為。
回顧系統架構
以WEB伺服器日誌為例,通過logstash搜集WEB伺服器的查詢日誌,近實時備份到hdfs集群上,通過hadoop腳本離線分析攻擊行為。
自定義日誌格式
開啟httpd自定義日誌格式,記錄User-Agen以及Referer
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio
CustomLog "logs/access_log" combined
日誌舉例
180.76.152.166 - - [26/Feb/2017:13:12:37 +0800] "GET /wordpress/ HTTP/1.1" 200 17443 "http://180.76.190.79:80/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21"
180.76.152.166 - - [26/Feb/2017:13:12:37 +0800] "GET /wordpress/wp-json/ HTTP/1.1" 200 51789 "-" "print `env`"
180.76.152.166
- - [26/Feb/2017:13:12:38 +0800] "GET
/wordpress/wp-admin/load-styles.php?c=0&dir=ltr&load[]=dashicons,buttons,forms,l10n,login&ver=Li4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vZXRjL3Bhc3N3ZAAucG5n
HTTP/1.1" 200 35841 "http://180.76.190.79:80/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21"
180.76.152.166 - - [26/Feb/2017:13:12:38 +0800] "GET /wordpress/ HTTP/1.1" 200 17442 "http://180.76.190.79:80/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.21 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.21"
測試環境
在wordpress目錄下添加測試代碼1.php,內容為phpinfo
針對1.php的訪問日誌
hadoop離線處理
hadoop是基於map,reduce模型
map腳本
reducer腳本
生成結果示例為:
- -> http://180.76.190.79/wordpress/wp-admin/1.php- -> http://180.76.190.79/wordpress/wp-admin/admin-ajax.php- -> http://180.76.190.79/wordpress/wp-admin/customize.phphttp://180.76.190.79/wordpress/ -> http://180.76.190.79/wordpress/wp-admin/edit-comments.phphttp://180.76.190.79/wordpress/ -> http://180.76.190.79/wordpress/wp-admin/profile.phphttp://180.76.190.79/wordpress/ -> http://180.76.190.79/wordpress/wp-login.phphttp://180.76.190.79/wordpress/ -> http://180.76.190.79/wordpress/xmlrpc.php
圖演算法
講生成數據導入圖資料庫neo4j,滿足webshell特徵的為:
入度出度均為0
入度出度均為1且自己指向自己
neo4j
neo4j是一個高性能的,NOSQL圖形資料庫,它將結構化數據存儲在網路上而不是表中,因其嵌入式、高性能、輕量級等優勢,越來越受到關注。
neo4j安裝
https://neo4j.com/ 上下載安裝包安裝,默認配置即可
ne04j啟動
以我的mac為例子,通過gui啟動即可,默認密碼為ne04j/ne04j,第一次登錄會要求更改密碼
GUI管理界面
python api庫安裝
sudo pip install neo4j-driver
下載JPype
https://pypi.python.org/pypi/JPype1
安裝JPype
tar -zxvf JPype1-0.6.2.tar.gz cd JPype1-0.6.2sudo python setup.py install
將數據導入圖資料庫代碼點擊閱讀原文查看。
生成有向圖如下
查詢入度為1出度均為0的結點或者查詢入度出度均為1且指向自己的結點,由於把ref為空的情況也識別為」-」結點,所以入度為1出度均為0。
優化點
生產環境實際使用中,我們遇到誤報分為以下幾種:
主頁,各種index頁面(第一個誤報就是這種)
phpmyadmin、zabbix等運維管理後台
hadoop、elk等開源軟體的控制台
API介面
這些通過短期加白可以有效解決,比較麻煩的是掃描器對結果的影響(第二個誤報就是這種),這部分需要通過掃描器指紋或者使用高大上的人機演算法來去掉干擾。
後記
使用演算法來挖掘未知攻擊行為是目前非常流行的一個研究方向,本文只是介紹了其中比較好理解和實現的一種演算法,該演算法並非我首創,不少安全公司也都或多或少有過實踐。
篇幅有限,我將陸續在企業安全建設專題其他文章中由淺入深介紹其他演算法。
演算法或者說機器學習本質是科學規律在大數據集集合上趨勢體現,所以很難做到精準報警,目前階段還是需要通過各種規則和模型來輔助,不過對於挖掘未知攻擊行為確實是一支奇兵。
*本文原創作者:兜哥,轉載請註明來自FreeBuf.COM
※低成本安全硬體(二) | RFID on PN532
※擔心投票系統被黑,詳解荷蘭政府為何決定在大選中使用手工計票
※電商篇——移動 APP 安全行業報告
TAG:FreeBuf |
※安全建設之平台搭建
※LAMP環境搭建
※HDP大數據平台搭建
※AMD YES ! ITX神教之高顏值AMD主機搭建
※AMD YES!ITX神教之高顏值AMD主機搭建
※眾安科技CFO鄧銳民:眾安正在搭建區塊鏈平台
※用KPPW搭建一個BIM眾包網,打造BIM技術眾包領域的王牌!
※EOS錢包開發:EOS開發環境搭建
※在IIS里搭建FTP伺服器
※用KPPW搭建一個沐風眾包平台,領先機械技術服務業!
※XAMPP搭建本地虛擬域名
※用KPPW搭建一個蟲築網,開啟設計領域互聯網新時代
※利用KPPW搭建一個碼易眾包平台,開啟科技眾包新時代
※ITX 神教之高顏值 AMD 主機搭建
※用KPPW搭建一個魅客空間,開啟設計眾包新征程!
※中國基建NO.1中國玩家在《ATLAS》搭建城堡老外看了都服
※虛擬化技術KVM的搭建
※SDVOE方案的搭建與評測
※中國基建果然NO.1 中國玩家在《ATLAS》里搭建城堡老外看了都服
※搭建大眾點評 CAT 監控平台