1.一種SSH協(xié)議多層通道內(nèi)的明文數(shù)據(jù)采集系統(tǒng),其特征在于,包括:
SSH會話管理模塊、SSH安全封裝模塊、SSH通道處理模塊、SSH數(shù)據(jù)采集模塊;其中,
SSH會話管理模塊用于接收和發(fā)送網(wǎng)絡數(shù)據(jù)包,并維護TCP/IP連接與SSH會話的關系數(shù)據(jù);
SSH安全封裝模塊用于建立SSH會話,維護SSH密鑰信息;將輸入的數(shù)據(jù)解密解封裝得到明文SSH消息,或將明文SSH消息封裝加密后輸出;
SSH通道處理模塊用于識別SSH會話中的SSH通道,并根據(jù)通道類型判斷該通道中是否包含內(nèi)層SSH會話數(shù)據(jù),維護SSH會話數(shù)據(jù)與SSH通道的對應關系;
SSH數(shù)據(jù)采集模塊用于從明文SSH消息中提取和采集有用的數(shù)據(jù)。
2.基于權利要求1所述的SSH協(xié)議多層通道內(nèi)的明文數(shù)據(jù)采集系統(tǒng)所實現(xiàn)的明文數(shù)據(jù)采集方法,包括:
步驟1)、將明文數(shù)據(jù)采集系統(tǒng)部署在客戶端與跳板機之間,明文數(shù)據(jù)采集系統(tǒng)介入SSH通道的建立,獲得并維護SSH會話的傳輸密鑰和屬性參數(shù);
步驟2)、對SSH消息做通道剝離,每次剝離一層SSH通道,直到不再包含SSH通道為止;
步驟3)、將每層SSH通道內(nèi)的明文數(shù)據(jù)交給審計數(shù)據(jù)采集,攔截非法消息;
步驟4)、對SSH消息做通道重建,每次重建一層SSH通道,直到恢復到原先的通道層數(shù)為止。
3.根據(jù)權利要求2所述的明文數(shù)據(jù)采集方法,其特征在于,所述步驟2)進一步包括:
步驟2-1)、利用SSH會話的傳輸密鑰和屬性參數(shù)解密SSH消息;
步驟2-2)、判斷當前被解密的SSH消息是否為包含內(nèi)層SSH會話的通道消息,如果不是,則當前被解密的SSH消息為最內(nèi)層SSH會話,執(zhí)行步驟3),如果是,執(zhí)行步驟2-3);
步驟2-3)、去除通道封裝結構,取出數(shù)據(jù)載荷,得到內(nèi)層SSH會話,并獲取該層SSH會話的傳輸密鑰和屬性參數(shù),然后重新執(zhí)行步驟2-1)。
4.根據(jù)權利要求2所述的明文數(shù)據(jù)采集方法,其特征在于,在步驟3)中,攔截非法消息的手段包括:丟棄非法消息、替換非法消息、發(fā)出告警和斷開連接。
5.根據(jù)權利要求2所述的明文數(shù)據(jù)采集方法,其特征在于,所述步驟4)進一步包括:
步驟4-1)、根據(jù)當前SSH消息所在的SSH會話,獲取傳輸密鑰和屬性參數(shù);
步驟4-2)、利用SSH會話的傳輸密鑰和屬性參數(shù)加密SSH消息;
步驟4-3)、判斷當前被加密的SSH消息是否隸屬于外層會話的SSH通道,如果不是,則當前被加密的SSH消息為最外層SSH會話,結束操作,如果是,執(zhí)行步驟4-4);
步驟4-4)、把當前被加密的SSH消息作為通道消息中的數(shù)據(jù)載荷,封裝成隸屬于外層SSH會話的新SSH消息,然后重新執(zhí)行步驟4-1)。
6.根據(jù)權利要求2所述的明文數(shù)據(jù)采集方法,其特征在于,所述多層為從0開始的任意正整數(shù)層。
7.根據(jù)權利要求2所述的明文數(shù)據(jù)采集方法,其特征在于,所述SSH通道為RFC 4254中的SSH Channel;所述SSH會話為RFC 4253中的SSH Connection。