本發(fā)明涉及sftp數(shù)據(jù)采集審計領(lǐng)域,特別涉及一種sftp數(shù)據(jù)采集及審計的方法及系統(tǒng)。
背景技術(shù):
sftp(securefiletransferprotocol,安全文件傳送協(xié)議)可以為傳輸文件提供一種安全的加密方法。sftp為ssh的一部分,是一種傳輸檔案至blogger伺服器的安全方式。在ssh軟件包中,包含了一個sftp的安全文件傳輸子系統(tǒng),sftp本身沒有單獨的守護進程,它必須使用sshd守護進程(端口號默認是22)來完成相應(yīng)的連接操作。sftp同樣是使用加密傳輸認證信息和傳輸?shù)臄?shù)據(jù),所以,使用sftp是非常安全的。sftp與ftp有著幾乎一樣的語法和功能,sftp使用了加密/解密技術(shù),傳輸效率比普通的ftp要低,但網(wǎng)絡(luò)安全得到了極大的保證。
審計系統(tǒng)可以幫助記錄發(fā)生在重要信息系統(tǒng)中各種各樣的會話和事件,包括網(wǎng)絡(luò)中的、主機操作系統(tǒng)中,也包括應(yīng)用系統(tǒng)中的。這些審計信息反映了信息系統(tǒng)運行的基本軌跡。一方面,它可以幫助管理層和審計者審核信息系統(tǒng)的運行是否符合法律法規(guī)的要求和組織的安全策略;另一方面,這些寶貴的審計信息在信息系統(tǒng)出現(xiàn)故障和安全事故時,就像航空器“黑盒子”一樣,幫助調(diào)查者深入挖掘事件背后的情報,重建事件過程,直至完整的分析定位事件的本源,并部署進一步的措施來避免損失的再次發(fā)生。
作為當(dāng)前網(wǎng)絡(luò)信息安全業(yè)界一個逐漸得到公認的事實:在安全事件造成的損失中,有75%以上來自內(nèi)部,其中包括內(nèi)部人員的越權(quán)訪問、濫用、以及誤操作等。分析這些內(nèi)部安全威脅沒有得到有效控制的根源,可以發(fā)現(xiàn)下列主要因素:審計體系沒有有效工作或者根本沒有、不具備完整的訪問授權(quán)機制,不具備完善的職責(zé)分離機制,人員安全意識和技能方面的不足等。其中,缺少可信的、完備的審計系統(tǒng)是目前普遍存在最重要的根源因素。
目前,sftp協(xié)議中的審計過程只提取了操作碼,沒有將操作碼還原為操作命令,這樣就不能建立操作命令黑名單,對一些操作命令以及命令的操作對象進行禁止操作,并且所做的回放系統(tǒng)只是對操作碼進行回放,不能啟到實時審計的作用。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服目前sftp協(xié)議中審計方法存在的上述缺陷,提出了一種sftp數(shù)據(jù)采集及審計的方法,該方法能夠?qū)τ脩暨M行sftp登陸操作的行為進行審計,在不影響用戶操作的情況下,監(jiān)控用戶登陸操作行為;針對用戶的操作,能夠通過sftp日志復(fù)現(xiàn);同時,通過命令黑名單的設(shè)置,預(yù)防用戶的非法操作。
為實現(xiàn)上述目的,本發(fā)明提供了一種sftp數(shù)據(jù)采集及審計的方法,所述方法包括:
步驟1)采集ssh協(xié)議密文傳輸階段的數(shù)據(jù)包,針對ssh協(xié)議握手階段的數(shù)據(jù)包,推導(dǎo)出ssh密鑰協(xié)商后的傳輸密鑰;利用密鑰將數(shù)據(jù)包中的密文數(shù)據(jù)轉(zhuǎn)換成明文數(shù)據(jù);
步驟2)從ssh明文數(shù)據(jù)中提取sftp數(shù)據(jù),并從sftp數(shù)據(jù)中采集會話信息;提取sftp數(shù)據(jù)的關(guān)鍵操作碼,并采集傳輸文件信息;將提取的sftp關(guān)鍵操作碼還原為關(guān)鍵操作命令,并采集關(guān)鍵操作命令信息;
步驟3)對所有關(guān)鍵操作命令進行黑名單匹配,對于匹配成功的關(guān)鍵操作命令,構(gòu)造禁止該關(guān)鍵操作命令的ssh消息發(fā)送給客戶端;并將所有匹配不成功的關(guān)鍵操作命令對應(yīng)的ssh明文數(shù)據(jù)進行封裝和加密,然后傳輸給服務(wù)端;
步驟4)根據(jù)步驟2)中采集的會話信息、關(guān)鍵操作命令信息和傳輸文件信息生成sftp審計日志。
上述技術(shù)方案中,所述步驟2)具體包括:
步驟201)從ssh明文數(shù)據(jù)中提取sftp數(shù)據(jù),并從sftp數(shù)據(jù)中采集會話信息;
步驟202)提取sftp數(shù)據(jù)的關(guān)鍵操作碼,其中過濾掉索取文件屬性的關(guān)鍵操作碼;并采集每一個傳輸文件信息;
步驟203)將提取的sftp關(guān)鍵操作碼還原為關(guān)鍵操作命令,提取出操作目標信息,采集關(guān)鍵操作命令信息。
上述技術(shù)方案中,所述審計日志包括會話日志、操作日志和文件日志;
所述會話日志記錄一個完整的sftp會話信息,包括源mac、目的地mac、ip、ip端口、用戶名、用戶登錄時間和用戶退出時間;
所述操作日志記錄每一條關(guān)鍵操作命令信息,包括操作命令、操作返回數(shù)據(jù)、操作起始時間和操作結(jié)束時間;
所述文件日志記錄每一個完整的傳輸文件信息,包括文件路徑、文件名稱、文件內(nèi)容和文件傳輸方向。
一種sftp數(shù)據(jù)采集及審計系統(tǒng),所述系統(tǒng)包括:ssh數(shù)據(jù)采集及解密模塊、sftp解析模塊、關(guān)鍵操作命令處理模塊和生成setp審計日志模塊;其特征在于;
所述ssh數(shù)據(jù)采集及解密模塊,用于采集ssh協(xié)議密文傳輸階段的數(shù)據(jù)包,針對ssh協(xié)議握手階段的數(shù)據(jù)包,推導(dǎo)出ssh密鑰協(xié)商后的傳輸密鑰;利用密鑰將數(shù)據(jù)包中的密文數(shù)據(jù)轉(zhuǎn)換成ssh明文數(shù)據(jù);將ssh明文數(shù)據(jù)傳輸給sftp解析模塊;
所述sftp解析模塊,用于從ssh明文數(shù)據(jù)中提取sftp數(shù)據(jù),提取sftp數(shù)據(jù)的關(guān)鍵操作碼,將提取的sftp關(guān)鍵操作碼還原為關(guān)鍵操作命令;將所有關(guān)鍵操作命令發(fā)送到所述關(guān)鍵操作命令處理模塊,將從sftp提取的所有信息發(fā)送到所述生成sftp審計日志模塊,
所述關(guān)鍵操作命令處理模塊,用于對所有關(guān)鍵操作命令進行黑名單匹配,對于匹配成功的關(guān)鍵操作命令,構(gòu)造禁止該關(guān)鍵操作命令的ssh消息發(fā)送給客戶端;并將所有匹配不成功的關(guān)鍵操作命令對應(yīng)的ssh明文數(shù)據(jù)進行封裝和加密,然后傳輸給服務(wù)端;
所述生成sftp審計日志模塊,用于根據(jù)所述sftp解析模塊發(fā)送的所有信息,生成sftp審計日志。
本發(fā)明的優(yōu)點在于:
1、本發(fā)明的方法能將用戶的sftp操作準確地還原出來,并通過生成的sftp日志幫助管理層和審計者審核用戶進行的sftp登錄和操作是否符合法律法規(guī)的要求和組織的安全策略;在出現(xiàn)故障和安全事故時,通過生成的sftp日志能夠幫助調(diào)查者深入挖掘,重建事件過程,直至完整的分析和定位事件,并部署進一步的防范措施;
2、本發(fā)明的方法能設(shè)置sftp的命令黑名單,當(dāng)用戶進行操作時,會對操作命令進行黑名單匹配,出現(xiàn)黑名單命令時,能及時禁止用戶的該操作命令。
附圖說明
圖1為本發(fā)明的sftp數(shù)據(jù)采集及審計的方法的流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明進行詳細的說明。
如圖1所示,一種sftp數(shù)據(jù)采集及審計方法,所述方法包括:
步驟1)采集ssh協(xié)議密文傳輸階段的數(shù)據(jù)包,針對ssh協(xié)議握手階段的數(shù)據(jù)包,推導(dǎo)出ssh密鑰協(xié)商后的傳輸密鑰;利用密鑰將數(shù)據(jù)包中的密文數(shù)據(jù)轉(zhuǎn)換成明 文數(shù)據(jù);
步驟2)從ssh明文數(shù)據(jù)中提取sftp數(shù)據(jù),并從sftp數(shù)據(jù)中采集會話信息;提取sftp數(shù)據(jù)的關(guān)鍵操作碼,并采集傳輸文件信息;將提取的sftp關(guān)鍵操作碼還原為關(guān)鍵操作命令,并采集關(guān)鍵操作命令信息;具體包括:
步驟201)從ssh明文數(shù)據(jù)中提取sftp數(shù)據(jù),并從sftp數(shù)據(jù)中采集會話信息;
ssh明文數(shù)據(jù)包括:ssh1數(shù)據(jù)和ssh2數(shù)據(jù);從ssh明文數(shù)據(jù)中提取sftp數(shù)據(jù)包括從ssh2數(shù)據(jù)中提取通道數(shù)據(jù)和從ssh1數(shù)據(jù)中提取標準輸入輸出數(shù)據(jù);提取出來的sftp數(shù)據(jù)不包含ssh的頭部信息、ssh2的通道頭部信息、hmac的校驗信息和ssh的填充位。
步驟202)提取sftp數(shù)據(jù)的關(guān)鍵操作碼,其中過濾掉索取文件屬性的關(guān)鍵操作碼;并采集每一個傳輸文件信息;
步驟203)將提取的sftp關(guān)鍵操作碼還原為關(guān)鍵操作命令,提取出操作目標信息,采集關(guān)鍵操作命令信息;
需要還原的關(guān)鍵操作命令包括:ls、cd、mkdir、rmdir、get、put、ln、symlink、rm、rename、chgrp、chmod和chown;每個命令對應(yīng)的關(guān)鍵操作碼見表1:
表1
從上表可以看出,有的操作命令直接對應(yīng)一條關(guān)鍵操作碼,而有的操作命令對應(yīng)多條關(guān)鍵操作碼,此時需要將多條關(guān)鍵操作碼整合成一條關(guān)鍵操作碼,然后還原為對應(yīng)的關(guān)鍵操作命令;該命令與用戶輸入的命令一致;
對于操作命令直接對應(yīng)一條關(guān)鍵操作碼的情況,當(dāng)出現(xiàn)其對應(yīng)的關(guān)鍵操作碼時,就對該操作碼消息進行解析,還原出操作命令和操作目標;
對于操作命令對應(yīng)多條從操作碼的情況,根據(jù)第一條出現(xiàn)的關(guān)鍵操作碼,對該操作碼消息進行解析,能夠還原出操作命令和操作目標,中間操作碼表示該操作正在讀或者寫,根據(jù)生成審計日志的需要,提取其讀或者寫的內(nèi)容,最后一條操作碼表示該操作結(jié)束。
步驟3)對所有關(guān)鍵操作命令進行黑名單匹配,對于匹配成功的關(guān)鍵操作命令,構(gòu)造禁止該關(guān)鍵操作命令的ssh消息發(fā)送給客戶端;并將所有匹配不成功的關(guān)鍵操作命令對應(yīng)的ssh明文數(shù)據(jù)進行封裝和加密,然后傳輸給服務(wù)端;
步驟4)根據(jù)步驟2)中采集的會話信息、關(guān)鍵操作命令信息和傳輸文件信息生成sftp審計日志;所述審計日志包括會話日志、操作日志和文件日志;
所述會話日志記錄一個完整的sftp會話信息,包括源mac、目的地mac、ip、ip端口、用戶名、用戶登錄時間和用戶退出時間;
所述操作日志記錄每一條關(guān)鍵操作命令信息,包括操作命令、操作返回數(shù)據(jù)、操作起始時間和操作結(jié)束時間;
所述文件日志記錄每一個完整的傳輸文件信息,包括文件路徑、文件名稱、文件內(nèi)容和文件傳輸方向。
基于上述sftp數(shù)據(jù)采集及審計方法,本發(fā)明還提供了一種sftp數(shù)據(jù)采集及審計系統(tǒng),所述系統(tǒng)包括:ssh數(shù)據(jù)采集及解密模塊、sftp解析模塊、關(guān)鍵操作命令處理模塊和生成setp審計日志模塊;
所述ssh數(shù)據(jù)采集及解密模塊,用于采集ssh協(xié)議密文傳輸階段的數(shù)據(jù)包,針對ssh協(xié)議握手階段的數(shù)據(jù)包,推導(dǎo)出ssh密鑰協(xié)商后的傳輸密鑰;利用密鑰將數(shù)據(jù)包中的密文數(shù)據(jù)轉(zhuǎn)換成ssh明文數(shù)據(jù);將ssh明文數(shù)據(jù)傳輸給sftp解析模塊;
所述sftp解析模塊,用于從ssh明文數(shù)據(jù)中提取sftp數(shù)據(jù),提取sftp數(shù)據(jù)的關(guān)鍵操作碼,將提取的sftp關(guān)鍵操作碼還原為關(guān)鍵操作命令;將所有關(guān)鍵操作命 令發(fā)送到所述關(guān)鍵操作命令處理模塊,將從sftp提取的所有信息發(fā)送到所述生成setp審計日志模塊,包括:
提取sftp數(shù)據(jù)單元:用于從ssh明文數(shù)據(jù)中提取sftp數(shù)據(jù),并從sftp數(shù)據(jù)中采集會話信息,發(fā)送到所述生成setp審計日志模塊;
提取sftp關(guān)鍵操作碼單元,用于提取sftp數(shù)據(jù)的關(guān)鍵操作碼,其中過濾掉索取文件屬性的關(guān)鍵操作碼;提取傳輸文件信息發(fā)送到所述生成setp審計日志模塊;
還原關(guān)鍵操作命令單元,用于將提取的sftp關(guān)鍵操作碼還原為關(guān)鍵操作命令,將所有關(guān)鍵操作命令發(fā)送到所述關(guān)鍵操作命令處理模塊和生成setp審計日志模塊;
所述關(guān)鍵操作命令處理模塊,用于對所有關(guān)鍵操作命令進行黑名單匹配,對于匹配成功的關(guān)鍵操作命令,構(gòu)造禁止該關(guān)鍵操作命令的ssh消息發(fā)送給客戶端;并將所有匹配不成功的關(guān)鍵操作命令對應(yīng)的ssh明文數(shù)據(jù)進行封裝和加密,然后傳輸給服務(wù)端;
所述生成sftp審計日志模塊,用于根據(jù)所述sftp解析模塊發(fā)送的所有信息,生成sftp會話日志、sftp操作日志以及sftp文件日志;包括:
生成sftp會話日志單元;用于記錄一個完整的sftp會話信息,包括源mac、目的地mac、ip、ip端口、用戶名、用戶登錄時間和用戶退出時間,
生成操作日志記錄單元,用于記錄每一條關(guān)鍵操作命令,包括操作命令、操作返回數(shù)據(jù)、操作起始時間和操作結(jié)束時間;
生成文件日志單元,用于記錄每一個完整的傳輸文件,包括文件路徑、文件名稱、文件內(nèi)容和文件傳輸方向。
最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方案進行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。