李源
摘要:
關鍵詞:蜜罐原理 開源軟件 網(wǎng)絡攻擊源
中圖分類號: TP393.08文獻標識碼:A 文章編號:1672-3791(2016) 04(c)-0000-00
一、引言
近年來隨著社會的進步,計算機網(wǎng)絡變得發(fā)達,人們之間的溝通變得方便了許多。而隨之而來的就是網(wǎng)絡安全的問題,其影響足以引發(fā)每個人的關注。本文將圍繞網(wǎng)絡安全問題對網(wǎng)絡攻擊源進行有針對性的信息搜集和監(jiān)測。
本文針對網(wǎng)路攻擊源主要對其攻擊行為進行搜集和監(jiān)測工作,包括仿冒低安全性的主機并搜集監(jiān)測攻擊者的登錄信息(攻擊時間,攻擊者IP,攻擊者輸入的用戶名、密碼等)和攻擊行為[1]。
二、監(jiān)測發(fā)布系統(tǒng)原理
本系統(tǒng)根據(jù)攻擊者的攻擊行為在Linux系統(tǒng)上制定了一系列的監(jiān)測防御措施,采用Linux Shell,php,curl,python等腳本語言對總系統(tǒng)進行編寫。
此系統(tǒng)總共分為兩部分:監(jiān)測搜集信息部分和信息處理發(fā)布部分。監(jiān)測搜集信息部分旨在將含有攻擊行為的舉動進行搜集,并能夠實時監(jiān)測其舉動,達到未受到攻擊先進行預防的目的。信息處理發(fā)布部分將會對搜集的攻擊信息進行實時分析處理,錄入數(shù)據(jù)庫,并能夠對數(shù)據(jù)庫進行分組排序,實時統(tǒng)計,最終呈現(xiàn)在客戶端, 清晰明了,簡單實用[2]。
三、監(jiān)測發(fā)布系統(tǒng)應用范圍
此監(jiān)測發(fā)布系統(tǒng)可以對有攻擊行為的攻擊源進行搜集和監(jiān)測。其功能能夠搜集攻擊源的攻擊時間,攻擊IP,記錄攻擊者輸入的用戶名,密碼,最終能夠對這些搜集的信息以某種媒體的方式呈現(xiàn)出來。
四、系統(tǒng)流程
下面是監(jiān)測發(fā)布系統(tǒng)總的流程:
搜集攻擊源信息-遠程上傳至中心服務器-分析攻擊源信息-中心數(shù)據(jù)庫進行處理-中心數(shù)據(jù)庫數(shù)據(jù)統(tǒng)計-攻擊源監(jiān)測發(fā)布客戶端呈現(xiàn)。
五、信息搜集服務器工作原理
信息搜集服務器為分散在各地的子服務器,專門用來搜集具有攻擊行為的攻擊源。
其中中心處理服務器將負責收集由各地子服務器上傳上來的攻擊信息,進行選取實時錄入數(shù)據(jù)庫。
六、基于蜜罐原理的信息搜集系統(tǒng)的設計
1.蜜罐技術的發(fā)展背景
網(wǎng)絡與信息安全技術的核心問題是對計算機系統(tǒng)和網(wǎng)絡進行有效的防護,而蜜罐技術可以采取主動的方式來進行防護。顧名思義,就是用特有的特征吸引攻擊者,同時對攻擊者的各種攻擊行為進行分析并找到有效的對付辦法 [3]。
2.kojoney開源軟件介紹
Kojoney是一套仿SSH 服務器的低階互動式誘補系統(tǒng)。本軟件是以Python 所寫的daemon,使用Twisted Conch 函數(shù)庫。
3.文件上傳部分的設計
上傳部分代碼主要分為兩部分:upload.sh和upload.php。
upload.sh負責在子服務器上將含有攻擊信息的文本文件attacklist.txt上傳到中心處理服務器,upload.php負責將上傳上來的文件轉移到其他的目錄下,等待中心服務器來進行處理。
以下為upload.sh主要代碼:
#To upload file to remote service
curl -F userfile=@attacklist.txt -F username=$usr -F password=$pass $URL
下面介紹upload.php主要流程和代碼:
upload.php流程分兩部分:數(shù)據(jù)庫驗證部分和文件轉移部分。
下面是upload.php的主要代碼:
//put the file where we like it
$upfile ='/uploads/'.$_FILES['userfile']['name'];
4.數(shù)據(jù)處理和統(tǒng)計部分的設計
將攻擊信息錄入數(shù)據(jù)庫,通過shell腳本將attacklist.txt中的攻擊信息錄入到MySQL數(shù)據(jù)庫中,其關鍵代碼為:
INSERT INTO info(datetime,ip,user,pass) VALUES('$J','$K','$L','$M')
以下為mysql_in.sh中主要循環(huán)遍歷的代碼:
for J in ${datetime[@]}
do
mysql -uroot -proot -e "INSERT INTO info(datetime,ip,user,pass) VALUES('$J','$K','$L','$M')" attack[18]
done
5.數(shù)據(jù)庫實時統(tǒng)計
需要有一定的MySQL數(shù)據(jù)庫命令經(jīng)驗,選取相對數(shù)據(jù)信息進行分組并降序排序,取前10位記錄量最多的元素進行顯示,其中主要MySQL代碼為:
select pass,count(pass) as count from info group by pass order by count desc limit 0,10
select user,count(user) as count from info group by user order by count desc limit 0,10
以下為mysql_count.sh的主要代碼:
mysql -uroot -proot -e "select pass,count(pass) as count from info group by pass order by count desc limit 0,10;" attack | grep -v count > pass
mysql_in.sh負責將上傳上來的攻擊信息逐條錄入數(shù)據(jù)庫,mysql_count.sh負責將數(shù)據(jù)庫中錄入的攻擊信息進行分組排序,實時匯總。
七、信息發(fā)布部分的設計
發(fā)布平臺是以Javascript+flash結合,通過對含有攻擊信息的xml文件或文本文件進行讀取,將信息以餅狀圖或云圖的形式實時顯示出來。本人通過編寫腳本將密碼,用戶名,攻擊IP記錄量最多的前10位的記錄載入發(fā)布平臺的攻擊信息記錄文本文件中,最后形成了數(shù)據(jù)庫信息與發(fā)布平臺的交互過程。
以下是數(shù)據(jù)庫中攻擊信息傳遞給餅狀圖過程的主要代碼:
echo "