【信息科學與控制工程】
基于人在環的指控系統驗證信息采集系統研究
張文閣,李中山,崔偉寧
(裝甲兵工程學院 信息工程系,北京100072)
摘要:針對指控系統驗證過程中因信息采集難而導致試驗分析難于量化的問題,在對基于人在環指控系統驗證試驗過程產生的數據進行分析、抽象基礎上,提出了基于外掛的信息采集方法,具體描述了采集系統的體系結構、支撐技術和實現方法;開發出一種不干擾原系統正常運行的試驗信息自動采集系統,為指控系統驗證定量分析提供了重要支撐;系統測試表明:所研究的信息采集系統達到預期目的。
關鍵詞:指控系統;人在環;驗證;信息采集
收稿日期:2015-03-11
作者簡介:張文閣(1970—),男,副教授,主要從事軍事信息系統研究。
doi:10.11809/scbgxb2015.09.026
中圖分類號:TP393.0
文章編號:1006-0707(2015)09-0102-04
本文引用格式:張文閣,李中山,崔偉寧.基于人在環的指控系統驗證信息采集系統研究[J].四川兵工學報,2015(9):102-105.
Citationformat:ZHANGWen-ge,LIZhong-shan,CUIWei-ning.OnInformationCollectionSystemofCommandandControlSystemVerificationBasedonMan-in-Loop[J].JournalofSichuanOrdnance,2015(9):102-105.
OnInformationCollectionSystemofCommandand
ControlSystemVerificationBasedonMan-in-Loop
ZHANGWen-ge,LIZhong-shan,CUIWei-ning
(DepartmentofInformationEngineering,AcademyofArmoredForceEngineering,Beijing100072,China)
Abstract:Aiming at the problem that the information collection of the experiment is so hard that quantitative analysis is difficult in the command and control verification process. First, we analyzed the data which produced in the experiment process and abstracting it. And then a plug-in technique used to collect information was presented, and the architecture and key techniques was described. A new information collection system was developed, which is the base of the quantitative analysis of command and control system verification. Testing shows: the system is worked.
Keywords:commandandcontrolsystem;man-in-loop;verification;informationcollection
信息系統是基于信息系統的體系作戰的最基本、最重要的依托,指揮控制系統作為信息系統的核心,在作戰指揮過程中發揮效能的程度決定了信息系統的效能[1]。為避免指控系統在實際作戰過程中存在不適用的問題,在系統投入使用前有必要在試驗環境下進行驗證。以驗證支持系統的實兵參與程度為標準,目前的系統驗證方法歸納起來主要有3種:實兵、實裝驗證法,人在環、模擬環境、實裝驗證法,虛擬環境、實裝驗證法[2]。其中第2種方法由于具有人和部分實裝在環,通常也稱為半實物仿真或系統試驗床[3],本信息采集就是在這種驗證環境下進行。
1驗證環境構建
試驗主要是在計算機模擬戰場環境的基礎上,通過一定的作戰想定,驅動指揮員通過指控系統指揮部隊操作實際裝備進行近似于實兵的對抗,以保證指控系統在接近實戰的戰場環境中得到驗證[4]。其驗證環境包括硬件設備、軟件、人員三部分,其中硬件包括計算機、網絡、顯示設備、作業環境、各種作戰和保障裝備,軟件包括操作系統、仿真系統、指控系統、武器裝備信息系統、數據庫管理系統,人員包括導調人員、作戰指揮人員、裝備操作人員、保障人員等。
2系統體系結構
2.1數據體系
試驗時有兩類數據是需要采集的,一類是對指控系統及其相關裝備操作的數據,主要指人員通過指控系統輸入和處理的交互信息;另一類是通過網絡傳遞的系統間的交互信息。將兩類信息進行抽象,操作數據可分為底層數據和應用數據,其中底層數據指來自操作系統的原始的數據,包括鍵盤輸入的數據和鼠標移動、點擊的數據等;應用數據指由應用程序接收的數據,例如文本框的文本內容。網絡數據則全部抽象為數據包。其數據體系如圖1所示。
從以上分析可以看出,指控系統驗證過程中要采集的數據實質是軟件運行過程中產生的后臺信息,它不同于軟件運行過程中主動輸出的信息,一般需要通過一定的黑客技術進行竊取[5]。外掛的本意是外部調用程序的通俗稱法,接近于WINDOWS的API(應用接口函數),一般是指在計算機中一個程序通過某種事件觸發而得以掛接到另外一個程序的空間里(常用的觸發事件有鍵盤觸發,鼠標觸發,消息觸發),通常通過截取、利用原軟件運行時產生的數據,以達到一定目的(分析或修改被掛接程序)的程序[6]?;谌嗽诃h進行指控系統驗證時,各種信息系統構成網絡化的運行環境,如果借鑒程序外掛技術,就能在不受具體的軟件限制、不干擾原系統運行的情況下采集試驗信息。
2.2技術體系
為了實現底層數據的采集,本系統研究了兩種方式來實現外掛技術:一是基于設備驅動程序直接讀取I/O端口的技術,從鍵盤和鼠標端口上直接截獲輸入;二是利用消息鉤子方式,研究了鍵盤和鼠標的消息的截獲和處理。而應用數據的采集則可以通過編程語句直接實現采集,將采集的底層數據和應用數據進行融合,就會得到完整的操作數據。為了實現網絡數據采集,主要采用了網絡嗅探技術,用于監聽、分析系統之間以網絡數據包形式傳遞的各種消息,將符合一定規則的數據包抓取后保存到日志即可。信息采集系統的技術體系架構如圖1所示。
驅動技術層包括設備訪問驅動、鍵盤鼠標鉤子和網絡嗅探器,用于安裝在系統底層,采集交互信息和網絡信息使用,通過動態庫實現。采集技術層包括鍵盤鼠標信息采集器、網絡信息采集器,用于信息的采集并記錄。分析技術層包括鍵盤鼠標信息分析器和網絡信息分析器,用于采集信息的分析。
2.3數據處理體系
操作數據和網絡交互數據的采集都是在用戶單機上完成,并記錄在日志中,需要在單機上存儲為一定格式的文檔備份。在網絡數據中選取事件作為主關鍵字,將同一事件的網絡數據和操作數據進行關聯處理,形成一個事件在該單機的完整記錄,所有的事件形成一個單機席位事件記錄群文檔,存儲在信息采集數據席位終端庫。當一次試驗完畢后,將該終端數據庫上報到管理服務器數據庫。
在服務器數據庫端,同樣利用事件為主關鍵字,將與同一事件相關的各個單機所采集的數據記錄列為事件全網數據記錄表,按席位(單機)進行數據的歸類整理,格式統一、集中、關聯性強,便于后繼進行試驗分析。其數據處理體系如圖1所示。
3系統設計與實現
3.1系統模塊設計
系統共分3大構件,如圖2所示。

圖2 信息采集系統組成
3.1.1操作數據采集構件
預處理:用于在操作數據采集之前,事先標記指揮信息系統的界面元素,為后續采集提供基礎。
HOOK和注冊:主要實現采集構件向操作系統的注冊,和對需要處理的鍵盤、鼠標等消息的HOOK。消息監聽和日志記錄:采取一定的監聽策略,過濾掉不需要的和重復的消息事件,針對有代表性和特定意義的進行處理。日志記錄則通過寫入本地文件及寫入網絡數據庫的方式記錄消息事件。
分析處理:采集到的信息是操作人員的對指控系統業務操作序列,通過分析處理,把這些序列組成容易理解的信息。
特定命令響應:能夠接收來自網絡的特殊命令序列,執行動作。例如采集的開始、結束,采集內容的變化等。
3.1.2網絡數據采集構件
網絡數據采集構件主要流程:通過更換網絡庫、網絡抓包等手段對數據包進行抓取,通過重新組包、協議解析進行內容的理解,通過日志記錄進行內容的存儲。
抓包工具:對進出系統的數據進行抓取。
組包工具:用于把采集到的TCP/IP數據包按照協議規范進行正確組包,形成完整的待分析數據包。
協議解析:把待分析數據包按照相關的協議進行解析處理,實現不同專業兵種報文格式解析。
日志記錄: 把解析的報文進行記錄,方便后續的分析、評估處理。
3.1.3網絡數據采集構件
C端數據處理:對單機(客戶端)所采集的操作數據和網絡數據進行融合、存儲并上報到服務器端數據庫。所上報的數據為單機的事件為主關鍵字的數據表。
S端數據處理:對各單機采集的數據以事件為關鍵字進行分類、關聯處理。
3.2系統技術實現
3.2.1操作數據采集的實現
1) 基于設備驅動程序的信息采集。本構件利用設備驅動程序直接從鍵盤緩沖區和鼠標緩沖區讀取底層數據。根據Windows驅動程序創建要求,需要實現DriverEntry()函數,用于生成控制設備,并進行必要的初始化。通過DDK和編譯腳本配置,把驅動程序編譯成.sys格式,就可以進行調用了,編寫了動態庫,用于封裝對驅動程序的調用。其中動態庫實現把驅動程序安裝為系統服務,并實現了表1的函數。

表1 接口函數
2) 基于HOOK技術的信息采集。HOOK本質是一段用以處理系統消息的程序,通過系統調用,將其掛入到系統,HOOK機制允許應用程序截獲并處理發往指定窗口的消息或特定事件。任何一個HOOK都由系統來維護一個指針列表(鉤子鏈表),其指針指向HOOK的各個處理函數,HOOK處理函數必須是一個回調函數。在使用時可以根據其監視范圍的不同將其分為全局和線程兩大HOOK類,本構件研究了全局HOOK的實現。為了設置HOOK,只需將回調函數放置于鏈首即可,操作系統會使其首先被調用。具體實現時由函數SetWindowsHookEx()負責將回調函數放置于HOOK鏈表的開始位置。如果被監視的事件發生,系統馬上會調用位于相應鏈表開始處的HOOK處理函數進行處理,如果需要把事件傳遞給下一個處理函數,就通過函數CallNestHookEx()來實現。在過程的最后再調用一次CallNextHookEx( )函數,否則將會引起一些無法預知的系統行為或是系統鎖定。最后在使用完畢后應利用函數UnhookWindowsHookEx(),及時將其卸載以釋放其所占資源。
3.2.2網絡數據采集的實現
本系統使用網絡嗅探技術實現網絡數據的采集,網絡嗅探即SNIFF,工作在網絡的底層,在網絡上監聽數據包來獲取敏感信息。其系統調用層級如圖3所示。

圖3 系統調用層級
本構件采用Wincap庫。首先要獲取網卡信息,通過函數pcap_findalldevs()返回的pcap_if結構,可以得到探測到的網卡設備的更詳盡信息。調用pcap_open_live()打開網卡,使之開始捕獲數據,采用回調函數pcap_loop()捕獲數據包。利用函數pcap_compile()編譯一個包過濾器,過濾需要的包。函數pcap_setfilter() 在核心驅動中將過濾器和捕獲過程結合在一起,從這一時刻起,所有網絡的數據包都要經過過濾,過濾后的數據包將被傳入應用程序。
接著解析數據包,調用的pcap_loop()(或者pcap_dispatch())函數可以進行數據包的捕獲,而每一個數據包到達時該函數會調用pcap_handler()函數進行數據包處理,返回一個指向捕獲器頭部和一個指向幀數據的指針(包含協議頭)。
3.2.3數據管理模塊的實現
本構件采用C/S兩層結構模式的網絡數據庫,數據庫采用SQL,可以方便的對采集的數據進行存儲、查詢、檢索、顯示。
1) 數據結構設計。分為操作數據、網絡數據、席位數據、服務器端數據結構,以試驗的事件(指令或報文)為主關鍵字,通過席位數據表實現事件的網絡數據和操作數據的單機融合,服務器端數據表實現全網數據融合。其表間的關系如圖4所示。
2) 數據管理功能設計:在客戶端的子數據庫可實現對網絡數據、操作數據、席位數據3個記錄表的儲存功能,能自動完成席位數據表的統計功能并上報服務器端。服務器端能實現對各個席位終端對該事件的數據進行管理。

圖4 數據記錄架構表關系
4系統測試
在進行人在環的指控系統驗證時,在各指控終端部署完采集系統后,首先使用對象標識軟件進行界面對象的標識。采集開始后,操作日志和網絡數據同步采集,提取具有含義的操作記錄,經單機數據庫存儲并上報服務端,融合為全網數據記錄。如圖5~圖8。

圖5 操作日志原始記錄

圖6 操作日志解析結果記錄

圖7 原始網絡數據

圖8 解析后的網絡數據
5結束語
基于人在環的指控系統驗證信息采集技術是人在環試驗驗證的支撐技術。本文所研究的采集系統在不干擾指控系統運行和人員操作的條件下進行試驗信息采集,也可以用于其他信息系統的信息采集,能為信息系統分析評定提供可靠的數據源。下一步需要繼續對所采集的信息的分析處理進行深入研究及將本系統拓展應用于指控系統訓練成績評定的研究。
參考文獻:
[1]李興柱,李富榮,張暉.基于信息系統的體系作戰能力建設100問[M].北京:國防大學出版社,2011:4-7.
[2]夏永春,吳東亞,尹光洪.指控系統驗證相關問題研究[J].裝甲兵工程學院學報,2013,27(4):65-69.
[3]包衛東,于云程,沙基昌.C3I快速原型法與試驗床[J].小型微型計算機系統,1998,19(5):24-30.
[4]KassRA,AlbertsDS,HayesRE.作戰試驗及其邏輯[M].北京:國防工業出版社,2010:73-74.
[5]曹小平,程靜.基于微信的自助查詢系統的設計與實現[J].重慶工商大學學報:自然科學版,2014,31(2):66-69.
[6]王萬請,王德全,岳春生.信息采集技術在模擬訓練中的應用[J].指揮信息系統與技術,2012,3(2):67-70.
[7]EricColeNetworkSecurityBible,2ndEdition[M].北京:清華大學出版社,2010:99-111.
[8]倪步喜.Windows的鉤子技術及實現[J].計算機與現代化,2007,3(1):28-30.
(責任編輯楊繼森)