本發明涉及計算機網絡,具體地涉及一種數據接入方法、一種數據接入裝置、一種機器可讀存儲介質及一種電子設備。
背景技術:
1、隨著企業數字化轉型進程的持續深化,數據源類型呈現出高度多樣化的趨勢。目前,數據集成所涉及的數據源不僅包括甲骨文公司關系型數據庫(oracle?database,oracle)、mysql數據庫、微軟結構化查詢語言服務器(microsoft?sql?server,sql?server)等傳統關系型數據庫,還涵蓋了文檔數據庫(mongodb)、遠程字典服務(remote?dictionaryserver,redis)等非關系型數據庫,數據倉庫工具(hive)、分布式消息系統(kafka)等大數據組件,以及大量采用私有協議的遺留系統。在此背景下,如何高效、安全地接入各類異構數據源,已成為數據集成、災備復制及安全審計等應用場景中亟待解決的關鍵問題。
2、傳統的數據源接入方式依賴人工確認協議類型、互聯網協議地址(internetprotocol?address,ip地址)、端口號及認證參數等信息。在大規模集群或動態互聯網協議(internet?protocol,ip)環境下,該方式不僅維護成本高,且極易因人為配置錯誤導致連接失敗。現有工具多基于靜態規則庫(如默認端口匹配)。一旦目標系統使用非標準端口(如oracle運行在非1521端口)或經過nat轉換,靜態規則即失效,導致接入中斷。
3、綜上所述,現有數據接入方法對非標準協議和私有協議的支持能力有限,難以滿足多樣化場景下的接入需求。
技術實現思路
1、本發明實施例的目的是提供一種數據接入方法、一種數據接入裝置、一種機器可讀存儲介質及一種電子設備。該方法可以有效識別出運行在非標準端口、經過網絡地址轉換甚至經過部分混淆或改造的私有協議,突破了傳統靜態規則庫僅能識別標準端口與公開協議的局限,顯著提升了對私有協議及非標部署環境的適應能力。
2、為了實現上述目的,本技術第一方面提供一種數據接入方法,包括:
3、獲取原始報文數據,所述原始報文數據為在業務端與目標數據源握手階段的報文數據;
4、基于所述原始報文數據,采用預置的協議指紋識別模型對所述目標數據源對應的協議類型進行識別,得到各個候選協議的初始置信度概率;
5、基于所述各個候選協議的初始置信度概率,判斷所述目標數據源對應的協議類型是否為候選協議;
6、在確定所述目標數據源對應的協議類型為非候選協議的情況下,以識別協議類型為目標,對所述目標數據源的協議類型進行探測,得到探測結果,并基于所述探測結果和所述各個候選協議的初始置信度概率,確定得到預測協議類型;
7、基于所述預測協議類型,接入所述目標數據源。
8、在本技術實施例中,所述基于所述原始報文數據,采用預置的協議指紋識別模型對所述目標數據源對應的協議類型進行識別,得到各個候選協議的初始置信度概率,包括:
9、基于所述原始報文數據,確定得到特征向量;
10、基于所述特征向量,采用預置的協議指紋識別模型對所述目標數據源對應的協議類型進行識別,得到各個候選協議的初始置信度概率,所述預置的協議指紋識別模型是基于貝葉斯推斷算法構建得到。
11、在本技術實施例中,所述基于所述原始報文數據,確定得到特征向量,包括:
12、從所述原始報文數據中提取出多個字節,得到分析樣本;
13、計算得到所述分析樣本中的各個字節的概率分布;
14、基于所述分析樣本中的各個字節的概率分布,計算所述分析樣本的香農熵值,得到特征向量,其中,不同的香農熵值有對應的標準協議。
15、在本技術實施例中,所述基于所述各個候選協議的初始置信度概率,判斷所述目標數據源對應的協議類型是否為候選協議,包括:
16、基于所述各個候選協議的初始置信度概率,得到最大置信度概率值;
17、判斷所述最大置信度概率值是否低于預置的置信度閾值;
18、在確定所述最大置信度概率值低于預置的置信度閾值的情況下,確定所述目標數據源對應的協議類型為非候選協議。
19、在本技術實施例中,所述以識別協議類型為目標,對所述目標數據源的協議類型進行探測,得到探測結果,包括:
20、以識別協議類型為目標,分別基于各個候選協議的特征碼構建對應的探測包,并向所述目標數據源發送探測包;
21、獲取各個探測包對應的響應包,得到探測結果。
22、在本技術實施例中,所述基于所述探測結果和所述各個候選協議的初始置信度概率,確定得到預測協議類型,包括:
23、基于所述各個探測包對應的響應包和候選協議的初始置信度概率,更新所述各個探測包對應的候選協議的置信度概率;
24、基于所述各個候選協議的置信度概率,確定得到預測協議類型。
25、在本技術實施例中,所述基于所述各個探測包對應的響應包和候選協議的初始置信度概率,更新所述各個探測包對應的候選協議的置信度概率,包括:
26、a1:基于探測包對應的響應包和候選協議的初始置信度概率,更新所述探測包對應的候選協議的置信度概率;
27、a2:判斷所述各個候選協議的置信度概率是否滿足預置的收斂條件,所述預置的收斂條件為所述各個候選協議的置信度概率中有且只有一個置信度概率滿足預設的閾值;
28、a3:在確定所述各個候選協議的置信度概率不滿足預置的收斂條件的情況下,選擇下一探測包,并跳轉執行a1,直至所述各個候選協議的置信度概率滿足預置的收斂條件。
29、在本技術實施例中,所述基于探測包對應的響應包和候選協議的初始置信度概率,更新所述探測包對應的候選協議的置信度概率,包括:
30、基于探測包對應的響應包和預置的似然度函數,計算得到似然值;
31、基于所述似然值和所述探測包對應的候選協議的初始置信度概率,計算得到所述探測包對應的候選協議的后驗置信度概率,以更新所述探測包對應的候選協議的置信度概率。
32、在本技術實施例中,所述基于所述各個候選協議的置信度概率,確定得到預測協議類型,包括:
33、在所述各個候選協議中確定出置信度概率滿足預設的閾值的候選協議,得到目標協議;
34、基于所述目標協議對應的探測包,確定出預測協議類型。
35、在本技術實施例中,所述基于所述預測協議類型,接入所述目標數據源,包括:
36、基于所述預測協議類型,構建接入通道和接入參數;
37、基于所述接入通道和所述接入參數,接入所述目標數據源。
38、在本技術實施例中,基于所述預測協議類型,構建接入參數,包括:
39、獲取開放端口集合;
40、基于所述預測協議類型,在所述開放端口集合中確定出待選端口;
41、基于預設的可變參數和所述待選端口,生成多組參數組合;
42、基于所述多組參數組合,生成多個接入指令并將所述多個接入指令發送至所述目標數據源;
43、獲取各個接入指令對應的接入響應數據;
44、基于所述各個接入指令對應的接入響應數據,在所述多組參數組合中確定出接入參數。
45、本技術第二方面提供一種數據接入裝置,包括:
46、獲取模塊,用于獲取原始報文數據,所述原始報文數據為在業務端與目標數據源握手階段的報文數據;
47、預測模塊,用于基于所述原始報文數據,采用預置的協議指紋識別模型對所述目標數據源對應的協議類型進行識別,得到各個候選協議的初始置信度概率;
48、判斷模塊,用于基于所述各個候選協議的初始置信度概率,判斷所述目標數據源對應的協議類型是否為候選協議;
49、確定模塊,用于在確定所述目標數據源對應的協議類型為非候選協議的情況下,以識別協議類型為目標,對所述目標數據源的協議類型進行探測,得到探測結果,并基于所述探測結果和所述各個候選協議的初始置信度概率,確定得到預測協議類型;
50、接入模塊,用于基于所述預測協議類型,接入所述目標數據源。
51、本技術第三方面提供一種電子設備,該電子設備包括:
52、至少一個處理器;
53、存儲器,與所述至少一個處理器連接;
54、其中,所述存儲器存儲有能被所述至少一個處理器執行的指令,所述至少一個處理器通過執行所述存儲器存儲的指令實現上述的數據接入方法。
55、本技術第四方面提供一種機器可讀存儲介質,該機器可讀存儲介質上存儲有指令,該指令在被處理器執行時使得所述處理器被配置成執行上述的數據接入方法。
56、通過上述技術方案,通過獲取原始報文數據,所述原始報文數據為在業務端與目標數據源握手階段的報文數據;基于所述原始報文數據,采用預置的協議指紋識別模型對所述目標數據源對應的協議類型進行識別,得到各個候選協議的初始置信度概率;基于所述各個候選協議的初始置信度概率,判斷所述目標數據源對應的協議類型是否為候選協議;在確定所述目標數據源對應的協議類型為非候選協議的情況下,以識別協議類型為目標,對所述目標數據源的協議類型進行探測,得到探測結果,并基于所述探測結果和所述各個候選協議的初始置信度概率,確定得到預測協議類型;基于所述預測協議類型,接入所述目標數據源。通過協議指紋識別模型,能夠對目標數據源的通信協議進行快速、準確的初步判斷,尤其是在目標運行標準協議且配置規范的情況下,可高效完成協議匹配與接入準備。對于不屬于預置候選協議范圍或運行環境復雜的目標,本方案通過對目標數據源的協議類型進行探測,可以有效識別出運行在非標準端口、經過網絡地址轉換甚至經過部分混淆或改造的私有協議。該機制突破了傳統靜態規則庫僅能識別標準端口與公開協議的局限,顯著提升了對私有協議及非標部署環境的適應能力。基于此,本方案能夠廣泛適用于各類復雜的實際生產環境,包括遺留系統接入、跨網絡域數據同步以及安全隔離場景下的協議穿透,充分滿足多樣化數據集成、災備復制及安全審計場景下的接入需求,具備良好的普適性與擴展性。
57、本發明實施例的其它特征和優點將在隨后的具體實施方式部分予以詳細說明。