本發(fā)明涉及一種連接源追蹤方法及裝置,屬于信息安全技術(shù)領(lǐng)域,具體是涉及一種多級跳轉(zhuǎn)后的ssh連接源追蹤方法及裝置。
背景技術(shù):
使用ssh連接進行多級跳轉(zhuǎn)的操作通常并不局限于二次跳轉(zhuǎn),多次跳轉(zhuǎn)操作可能執(zhí)行3,4,5或更多次的跳轉(zhuǎn)操作以達成操作員的目的。目前,對于ssh連接相關(guān)監(jiān)視方法并不能有效的分辨出屬于同一次操作的的多級跳轉(zhuǎn)ssh連接操作而是將多級跳轉(zhuǎn)中的每一次ssh連接視為一次獨立的操作無視了其中的相互關(guān)系,沒有針對多級跳轉(zhuǎn)的ssh連接鏈路進行關(guān)聯(lián)性審計的功能。
技術(shù)實現(xiàn)要素:
本發(fā)明主要是解決現(xiàn)有技術(shù)所存在的等的上述的技術(shù)問題,提供了一種多級跳轉(zhuǎn)后的ssh連接源追蹤方法及裝置。該方法和裝置分析得出每條ssh多級跳轉(zhuǎn)連接的鏈路信息并存入數(shù)據(jù)存儲設(shè)備中,將收集到的遠程操作信息與ssh連接審計分析后得出的數(shù)據(jù)進行查詢比對得到執(zhí)行遠程操作的ssh連接信息,再通過該ssh連接信息得到其所在的ssh多級跳轉(zhuǎn)鏈路信息,由此得到包含從第一次ssh連接到最后執(zhí)行的遠程操作信息的完整的ssh多級跳轉(zhuǎn)鏈路和其執(zhí)行的所有操作。
本發(fā)明的上述技術(shù)問題主要是通過下述技術(shù)方案得以解決的:
一種多級跳轉(zhuǎn)后的ssh連接源追蹤方法,包括:
步驟1,獲取所有連接鏈路中ssh客戶端的基礎(chǔ)信息;
步驟2,獲取連接進程在源設(shè)備上所屬控制臺的進程及其父進程;
步驟3,判斷所述父進程是否為ssh遠程連接,若是則執(zhí)行步驟4,否則將所述客戶端連接視為初始連接;
步驟4,將所述父進程確定為所述客戶端連接的父連接,獲取該父連接的源ip端口,遍歷當(dāng)前時間內(nèi)存在的所有ssh連接的ssh客戶端信息,將源ip端口與父連接的源ip端口相同的連接的標識id視為所述客戶端連接的父連接id;
步驟5,重復(fù)步驟2-4直至獲取包括全部ssh客戶端基礎(chǔ)信息和各連接父連接信息的ssh服務(wù)端完整信息;
步驟6,將ssh服務(wù)端完整信息中的父連接相關(guān)數(shù)據(jù)同步到sshd服務(wù)端信息中;
步驟7,在最終端設(shè)備上收集遠程操作信息s,在判定為操作是遠程操作后,利用遠程操作基礎(chǔ)信息在sshd服務(wù)端信息中進行匹配,匹配到的連接信息即為執(zhí)行該操作的連接。
其中,所述步驟1中獲取的基礎(chǔ)信息包括以下信息中的一中或多種:源設(shè)備ip地址與端口、目標設(shè)備ip地址與端口、連接發(fā)起用戶、連接開始時間、連接結(jié)束時間、連接進程在源設(shè)備上的進程號、連接進程在源設(shè)備上所屬的控制臺id。
其中,所述步驟4中,判斷當(dāng)前時間內(nèi)存在的所有ssh連接的過程為遍歷當(dāng)前時間內(nèi)存在的所有ssh客戶端信息,將連接結(jié)束時間為空的連接視為現(xiàn)存連接。
其中,所述步驟6的同步過程中,如連接屬于初始連接則生成一個絕對唯一的連接標識符,如連接存在父連接,則繼承父連接的連接標識符。
其中,所述步驟7中,分析最終端設(shè)備的接受端信息與操作信息s,當(dāng)操作源設(shè)備ip為0時,將操作判定為本地操作;當(dāng)操作源設(shè)備ip不為0時,將操作判定為遠程操作。
一種多級跳轉(zhuǎn)后的ssh連接源追蹤系統(tǒng),包括:
基礎(chǔ)信息獲取模塊,用于獲取所有連接鏈路中ssh客戶端的基礎(chǔ)信息;
父連接獲取模塊,獲各取連接進程在源設(shè)備上所屬控制臺的進程及其父進程;判斷所述父進程是否為ssh遠程連接,否則將所述客戶端連接視為初始連接;若是則將所述父進程確定為所述客戶端連接的父連接,獲取該父連接的源ip端口,遍歷當(dāng)前時間內(nèi)存在的所有ssh連接的ssh客戶端信息,將源ip端口與父連接的源ip端口相同的連接的標識id視為所述客戶端連接的父連接id;重復(fù)前述過程直至獲取包括全部ssh客戶端基礎(chǔ)信息和各連接父連接信息的ssh服務(wù)端完整信息;
操作信息獲取模塊,將ssh服務(wù)端完整信息中的父連接相關(guān)數(shù)據(jù)同步到sshd服務(wù)端信息中;在最終端設(shè)備上收集遠程操作信息s,在判定為操作是遠程操作后,利用遠程操作基礎(chǔ)信息在sshd服務(wù)端信息中進行匹配,匹配到的連接信息即為執(zhí)行該操作的連接。
其中,所述基礎(chǔ)信息獲取模塊中獲取的基礎(chǔ)信息包括以下信息中的一中或多種:源設(shè)備ip地址與端口、目標設(shè)備ip地址與端口、連接發(fā)起用戶、連接開始時間、連接結(jié)束時間、連接進程在源設(shè)備上的進程號、連接進程在源設(shè)備上所屬的控制臺id。
其中,所述父連接獲取模塊中判斷當(dāng)前時間內(nèi)存在的所有ssh連接的過程為遍歷當(dāng)前時間內(nèi)存在的所有ssh客戶端信息,將連接結(jié)束時間為空的連接視為現(xiàn)存連接。
其中,所述操作信息獲取模塊的同步過程中,如連接屬于初始連接則生成一個絕對唯一的連接標識符,如連接存在父連接,則繼承父連接的連接標識符。
其中,所述操作信息獲取模塊中,分析最終端設(shè)備的接受端信息與操作信息s,當(dāng)操作源設(shè)備ip為0時,將操作判定為本地操作;當(dāng)操作源設(shè)備ip不為0時,將操作判定為遠程操作。
因此,本發(fā)明具有如下優(yōu)點:針對多級跳轉(zhuǎn)的ssh連接鏈路進行關(guān)聯(lián)性審計,提高了信息審計的全面性和安全性。
附圖說明
附圖1是多級跳轉(zhuǎn)的ssh連接示例圖。
具體實施方式
下面通過實施例,并結(jié)合附圖,對本發(fā)明的技術(shù)方案作進一步具體的說明。
實施例:
本發(fā)明涉及對網(wǎng)絡(luò)系統(tǒng)內(nèi)ssh連接與遠程操作的信息進行綜合分析,以得出其中的關(guān)聯(lián)關(guān)系供后續(xù)審計系統(tǒng)審計。本發(fā)明包含ssh連接信息審計分析,與ssh遠程操作關(guān)聯(lián)分析。其中所述ssh連接信息審計分析通過下述步驟收集ssh連接信息并對收到的信息進行整合,分析得出每條ssh多級跳轉(zhuǎn)連接的鏈路信息并存入數(shù)據(jù)存儲設(shè)備中。所述遠程操作的信息分析將收集到的遠程操作信息與ssh連接審計分析后得出的數(shù)據(jù)進行查詢比對后得到執(zhí)行遠程操作的ssh連接信息,如該操作通過ssh連接的多次跳轉(zhuǎn)執(zhí)行,再通過該ssh連接信息得到其所在的ssh多級跳轉(zhuǎn)鏈路信息,由此得到包含從第一次ssh連接到最后執(zhí)行的遠程操作信息的完整的ssh多級跳轉(zhuǎn)鏈路和其執(zhí)行的所有操作。
如圖1所示,圖示鏈路為從設(shè)備1ssh連接至設(shè)備2,再以設(shè)備2為客戶端連至設(shè)備3,經(jīng)過設(shè)備3ssh連接到設(shè)備4,以此類推直到設(shè)備n;最后在設(shè)備n上進行命令行操作s。
本發(fā)明所述ssh連接信息分為兩個部分:ssh客戶端信息與sshd服務(wù)端信息。其中ssh客戶端信息為ssh連接中連接發(fā)起設(shè)備(源設(shè)備)上的ssh連接信息,sshd服務(wù)端信息為ssh連接中連接接收設(shè)備(目標設(shè)備)上的ssh連接信息。
在圖1所示連接鏈路中ssh客戶端的基礎(chǔ)信息為連接a連接b連接c直至連接n的發(fā)起端信息:a1,b1,c1;該信息包含:1.源設(shè)備ip地址與端口,2.目標設(shè)備ip地址與端口,3.連接發(fā)起用戶,4.連接開始時間,5.連接結(jié)束時間(如未結(jié)束則為空),6.連接進程在源設(shè)備上的進程號,7.連接進程在源設(shè)備上所屬的控制臺id(ptsid)。
在ssh客戶端上獲取了相關(guān)基礎(chǔ)信息之后,還需通過監(jiān)控程序進一步獲取連接的上一級信息,用來實現(xiàn)相關(guān)的鏈路追溯功能。1.利用ssh客戶端基礎(chǔ)信息7(連接進程在源設(shè)備上所屬的控制臺id)獲取該控制臺的進程號pid,通過ps命令獲取該pid的父進程id。2.如該父進程是一個ssh遠程連接則確定為所述客戶端連接的父連接,通過netstat等命令獲取該父連接的源ip端口;如該父進程不是ssh遠程連接則將所述客戶端連接視為初始連接。3.如所述客戶端連接存在父連接,遍歷當(dāng)前時間內(nèi)存在的所有ssh客戶端信息(連接結(jié)束時間為空,則連接未結(jié)束,視為現(xiàn)存連接),應(yīng)有源ip端口與步驟2中所獲取的父連接的源ip端口相同的連接存在,獲取該連接的唯一標識id視為所述客戶端連接的父連接id。至此已經(jīng)獲取了ssh客戶端的完整信息,包含ssh客戶端基礎(chǔ)信息和其父連接信息。
在圖1所示連接鏈路中sshd服務(wù)端基礎(chǔ)信息為連接a連接b連接c直至連接n的接受端信息:a2,b2,c2與n2;該信息包含:1.源設(shè)備ip地址與端口,2.目標設(shè)備ip地址與端口,3.連接使用的用戶,4.連接開始時間,5.連接結(jié)束時間(如未結(jié)束則為空),6.連接進程在目標設(shè)備上的進程號,7.連接在目標設(shè)備上開啟的控制臺id(ptsid)8.控制臺進程的進程號。
由于一條連接的ssh客戶端信息與sshd服務(wù)端信息一致,所以通過將ssh客戶端完整信息與sshd服務(wù)端基礎(chǔ)信息比對后進行同步,將ssh服務(wù)端完整信息中的父連接相關(guān)數(shù)據(jù)同步到sshd服務(wù)端信息中。同時在同步過程中,如連接屬于初始連接則生成一個絕對唯一的連接標識符,如連接存在父連接,則繼承父連接的連接標識符。因此同一條連接鏈路上的連接的連接標識符也相同。至此sshd服務(wù)端信息包含ssh服務(wù)端基礎(chǔ)信息,父連接信息和連接標識符。
在圖1所示示例中,以連接a至連接b為例,本方法通過對連接a的接收端信息a2與連接b的發(fā)起端信息b1進行分析,得到連接a與連接b的鏈路關(guān)系,即連接b由連接a發(fā)起;再通過分析連接b發(fā)起端信息b1與連接b接收端信息b2,得到連接b的完整信息,由此得出連接a和連接b的完整信息并將連接a,b歸為統(tǒng)一鏈路。以此類推至連接n。
在設(shè)備n上收集遠程操作信息s,其包含:1.操作源設(shè)備ip地址,2.操作目標設(shè)備(被操作設(shè)備)ip地址,3.操作命令執(zhí)行時間,4.執(zhí)行操作的用戶,5.用戶登入時間,6.執(zhí)行操作的控制臺id(ptsid),7.控制臺進程號,8.操作命令內(nèi)容。
對連接n的接受端信息n2與操作信息s進行分析:當(dāng)操作源設(shè)備ip為0時,該操作為本地操作;當(dāng)操作源設(shè)備ip不為0時,該操作為通過遠程連接執(zhí)行的遠程操作。利用遠程操作基礎(chǔ)信息s中的1.操作源設(shè)備ip地址,2.操作目標設(shè)備ip地址,3.操作命令執(zhí)行時間,6.執(zhí)行操作的控制臺id(ptsid),7.控制臺進程號,在sshd服務(wù)端信息n2中進行匹配,匹配到的連接信息即為執(zhí)行該操作的連接。
至此,從操作到連接源頭的鏈路已經(jīng)清晰判明,示例中連接鏈路由設(shè)備1發(fā)起經(jīng)過連接a,b,c至連接n,最后在設(shè)備n上執(zhí)行操作s。
本文中所描述的具體實施例僅僅是對本發(fā)明精神作舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對所描述的具體實施例做各種各樣的修改或補充或采用類似的方式替代,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。