一種嵌入式主程序的啟動檢測與保護的方法及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明主要涉及嵌入式系統(tǒng)技術領域,尤其是指一種嵌入式主程序的啟動檢測與保護的方法及系統(tǒng)。
【背景技術】
[0002]隨著硬件處理器技術的發(fā)展,嵌入式設備及系統(tǒng)有性能和應用范圍上都獲得了極大的發(fā)展,可通過固定電纜和移動網(wǎng)絡將嵌入式系統(tǒng)連接到外部通信裝置,進而可實現(xiàn)對嵌入式系統(tǒng)的遠程操控,更方便及智能,但嵌入式系統(tǒng)控制程序容易被惡意替換修改,系統(tǒng)的安全性能得不到保障,特別是涉及會引起人身財產(chǎn)安全的裝置程序對系統(tǒng)的安全性能要求較高,例如基于Iinux的無人機嵌入式系統(tǒng)控制程序若受到外部信號的侵入而使得嵌入式主程序被更改甚至替換,會引發(fā)無人機安全事故,后果嚴重。
【發(fā)明內容】
[0003]為克服上述現(xiàn)有技術中存有的缺陷,本發(fā)明的目的在于提供一種嵌入式主程序的啟動檢測與保護的方法,該方法可實現(xiàn)對嵌入式主程序的監(jiān)測及保護,避免嵌入式系統(tǒng)程序被惡意替換或修改,保證嵌入式系統(tǒng)的安全。
[0004]為達到上述目的,本發(fā)明所采用的技術方案為:
[0005]一種嵌入式主程序的啟動檢測與保護的方法,所述方法包括以下步驟:
[0006]A、遍歷訪問嵌入式系統(tǒng)中所有運行中的進程;
[0007]B、判斷所檢測的進程的名字是否與注冊表中定義需要系統(tǒng)安全啟動的程序的文件名相匹配,若是,進入步驟C,若否,進入步驟F ;
[0008]C、判斷注冊表中定義需要系統(tǒng)安全啟動的程序的文件名是否被均包含在所檢測到的進程的名字內,若是,進入步驟D,若否,進入步驟F ;
[0009]D、獲取所檢測的進程的程序文件路徑,并從所檢測的進程的程序文件路徑中讀取所檢測的進程的程序文件,計算所檢測的進程的程序文件的MD5(MesSage-DigeStAlgorithm 5,消息摘要算法第五版)值;
[0010]E、判斷計算得到的所檢測的進程的程序文件的MD5值與注冊表中定義需要系統(tǒng)安全啟動的程序的MD5值是否匹配,若是,進入步驟G,若否,進入步驟F ;
[0011]F、關閉嵌入式系統(tǒng)并發(fā)出報警信號;
[0012]G、維持嵌入式系統(tǒng)的進程正常運行。
[0013]由上述可知,該方法可對嵌入式系統(tǒng)中運行的程序進行監(jiān)測,若需要系統(tǒng)安全啟動的程序未啟動或者所啟動的程序不是需要系統(tǒng)安全啟動的程序時,會關閉系統(tǒng)并報警;另外,還會對啟動的程序文件進行MD5信息檢驗,若程序被惡意修改或者替換,計算得到的所檢測的進程的程序文件的MD5值與注冊表中定義需要系統(tǒng)安全啟動的程序的MD5值會不相匹配,此時關閉系統(tǒng)并發(fā)出報警信號,進而可防止程序的惡意修改或者替換。因而,可實現(xiàn)對嵌入式主程序的監(jiān)測及保護,保證嵌入式系統(tǒng)的安全。
[0014]該方法還包括:對所述注冊表的儲存位置信息進行加密,該注冊表的儲存位置信息的密鑰僅存儲在內核中。因而僅僅允許存儲有密鑰的內核對注冊表進行修改,使得嵌入式系統(tǒng)的安全性能更高。
[0015]一種嵌入式主程序的啟動檢測與保護的系統(tǒng),該系統(tǒng)包括:
[0016]檢測單元,用于遍歷訪問嵌入式系統(tǒng)中所有運行中的進程;
[0017]注冊表單元,用于儲存該嵌入式系統(tǒng)中定義需要系統(tǒng)安全啟動的程序的文件名和MD5 值;
[0018]判斷單元,用于判斷所檢測的進程的名字是否與注冊表單元中定義需要系統(tǒng)安全啟動的程序的文件名相匹配、注冊表單元中定義需要系統(tǒng)安全啟動的程序的文件名是否被均包含在所檢測到的進程的名字內、計算得到的所檢測的進程的程序文件的MD5值與注冊表單元中定義需要系統(tǒng)安全啟動的程序的MD5值是否匹配;
[0019]控制單元,用于控制關閉嵌入式系統(tǒng)、發(fā)出報警信號、維持嵌入式系統(tǒng)中的進程正常運行。
[0020]利用該系統(tǒng)可對嵌入式系統(tǒng)中運行的程序進行監(jiān)測,檢測單元遍歷訪問嵌入式系統(tǒng)中所有運行中的進程,判斷單元判斷檢測到的進程的名字是不是注冊表單元中需要系統(tǒng)安全啟動的程序的文件名,若不是,控制單元控制關閉嵌入式系統(tǒng)并發(fā)出報警信號,若是,判斷單元進一步判斷注冊表單元中定義需要系統(tǒng)安全啟動的程序的文件名是否被均包含在所檢測到的進程的名字內,若不是,控制單元控制關閉嵌入式系統(tǒng)并發(fā)出報警信號,若是,判斷單元進一步判斷計算得到的檢測單元所檢測的進程的程序文件的MD5值與注冊表單元中定義需要系統(tǒng)安全啟動的程序的MD5值是否匹配,若是,控制單元控制維持嵌入式系統(tǒng)的進程正常運行,若否,控制單元控制關閉嵌入式系統(tǒng)并發(fā)出報警信號。因而,可實現(xiàn)對嵌入式主程序的監(jiān)測及保護,防止程序的惡意修改或者替換,保證嵌入式系統(tǒng)的安全。
[0021]該系統(tǒng)還包括指定內核單元,用于存儲注冊表單元的儲存位置信息的密鑰。僅僅允許指定內核單元對注冊表進行修改,保證嵌入式系統(tǒng)的安全性能。
[0022]與以往技術相比,本發(fā)明所帶來的有益效果為:
[0023]可實現(xiàn)對嵌入式主程序的監(jiān)測及保護,可避免需要系統(tǒng)安全啟動的程序未正常啟動,也可避免不屬于需要系統(tǒng)安全啟動的程序被啟動,還可防止程序的惡意修改或者替換,保證嵌入式系統(tǒng)的安全。
【附圖說明】
[0024]圖1為本發(fā)明方法的流程圖;
[0025]圖2為本發(fā)明實施例中嵌入式系統(tǒng)的分區(qū)示意框圖;
[0026]圖3為本發(fā)明實施例中啟動進程監(jiān)測注冊表示意框圖;
[0027]圖4為本發(fā)明實施例在系統(tǒng)中應用本方法的流程圖。
【具體實施方式】
[0028]如圖1所示,一種嵌入式主程序的啟動檢測與保護的方法,所述方法包括以下步驟:
[0029]A、遍歷訪問嵌入式系統(tǒng)中所有運行中的進程;
[0030]B、判斷所檢測的進程的名字是否與注冊表中定義需要系統(tǒng)安全啟動的程序的文件名相匹配,若是,進入步驟C,若否,進入步驟F ;
[0031]C、判斷注冊表中定義需要系統(tǒng)安全啟動的程序的文件名是否被均包含在所檢測到的進程的名字內,若是,進入步驟D,若否,進入步驟F ;
[0032]D、獲取所檢測的進程的程序文件路徑,并從所檢測的進程的程序文件路徑中讀取所檢測的進程的程序文件,計算所檢測的進程的程序文件的MD5(MesSage-DigeStAlgorithm 5,消息摘要算法第五版)值;
[0033]E、判斷計算得到的所檢測的進程的程序文件的MD5值與注冊表中定義需要系統(tǒng)安全啟動的程序的MD5值是否匹配,若是,進入步驟G,若否,進入步驟F ;
[0034]F、關閉嵌入式系統(tǒng)并發(fā)出報警信號;
[0035]G、維持嵌入式系統(tǒng)的進程正常運行。
[0036]由上述可知,該方法可對嵌入式系統(tǒng)中運行的程序進行監(jiān)測,若需要系統(tǒng)安全啟動的程序未啟動或者所啟動的程序不是需要系統(tǒng)安全啟動的程序時,會關閉系統(tǒng)并報警;另外,還會對啟動的程序文件進行MD5信息檢驗,若程序被惡意修改或者替換,計算得到的所檢測的進程的程序文件的