專利名稱:攻擊監(jiān)控方法及具有攻擊監(jiān)控功能的裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)安全技術(shù)領(lǐng)域,尤其涉及攻擊監(jiān)控方法及具有攻擊監(jiān)控功能的裝置。
背景技術(shù):
目前,針對程序運(yùn)行期間的攻擊日趨多樣化,干擾攻擊就是其中的一種,干擾攻擊 通過改變IC的正常行為以制造一個(gè)可以利用的錯(cuò)誤,通過干擾源包括電壓脈沖、時(shí)鐘脈 沖、復(fù)位信號脈沖、環(huán)境溫度、光脈沖、電磁場脈沖、大范圍光照等等來造成程序流程混亂, 從而對正在運(yùn)行的程序進(jìn)行攻擊。為了避免上述情況的發(fā)生,需要一套機(jī)制來監(jiān)控程序運(yùn)行期間是否受到攻擊。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,提供攻擊監(jiān)控方法和具有攻擊監(jiān)控功能的裝置, 能夠監(jiān)控?cái)?shù)據(jù)處理裝置是否受到攻擊。有鑒于此,本發(fā)明提供了一種攻擊監(jiān)控方法,用于監(jiān)控?cái)?shù)據(jù)處理設(shè)備是否受到攻 擊,包括在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序時(shí),監(jiān)控所述程序中的關(guān)鍵程序序列,獲取所述關(guān) 鍵程序序列的已運(yùn)行的指令數(shù)目;將所述已運(yùn)行的指令數(shù)目與預(yù)設(shè)的指令的數(shù)目范圍進(jìn)行 比較;如果所述已運(yùn)行的指令數(shù)目在所述預(yù)設(shè)的指令的數(shù)目范圍之外,則判斷所述數(shù)據(jù)處 理設(shè)備受到攻擊;反之,則判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊。通過上述技術(shù)方案,能夠監(jiān)控?cái)?shù)據(jù)處理裝置是否受到攻擊,保證程序?qū)γ舾袛?shù)據(jù) 的操作是在授權(quán)下進(jìn)行的,從而避免對敏感數(shù)據(jù)非授權(quán)的訪問。在上述技術(shù)方案中,優(yōu)選地,所述將所述已運(yùn)行的指令數(shù)目與預(yù)設(shè)的指令的數(shù)目 范圍進(jìn)行比較,包括在所述程序執(zhí)行完畢后,將所述程序的所有關(guān)鍵程序序列的已運(yùn)行的 指令數(shù)目的總和與預(yù)設(shè)的所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍進(jìn)行比 較;和/或在所述程序中的每個(gè)關(guān)鍵程序序列執(zhí)行完畢后,將所述每個(gè)關(guān)鍵程序序列的已 運(yùn)行的指令數(shù)目與預(yù)設(shè)的該關(guān)鍵程序序列的指令的數(shù)目范圍進(jìn)行比較。在上述技術(shù)方案中,優(yōu)選地,所述獲取所述關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目,包 括初始化已運(yùn)行指令數(shù),運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程序序列的指令, 按預(yù)設(shè)規(guī)則處理所述已運(yùn)行指令數(shù);初始化已運(yùn)行指令數(shù),可以將所述已運(yùn)行指令數(shù)置為 零,也可以是其他數(shù)值等,所述預(yù)設(shè)規(guī)則可以是已運(yùn)行指令數(shù)加1或者減1,或者其他規(guī)則。 或者,初始化硬件指令統(tǒng)計(jì)器,運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程序序列的指 令,所述硬件指令統(tǒng)計(jì)器按預(yù)設(shè)規(guī)則動(dòng)作。初始化硬件指令統(tǒng)計(jì)器,可以將所述硬件指令統(tǒng) 計(jì)器置為零,也可以是其他數(shù)值等,所述預(yù)設(shè)規(guī)則可以是已運(yùn)行指令數(shù)加1或者減1,或者 其他規(guī)則。在上述技術(shù)方案中,優(yōu)選地,該攻擊監(jiān)控方法還包括在所述數(shù)據(jù)處理設(shè)備運(yùn)行程 序之前,
獲取并在所述程序中設(shè)置所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范 圍;和/ 或獲取并在所述程序中設(shè)置所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍。在上述技術(shù)方案中,優(yōu)選地,所述獲取并在所述程序中設(shè)置所述程序的所有關(guān)鍵 程序序列的指令的總和的數(shù)目范圍,具體為對所述程序進(jìn)行分析,提取所有至少一個(gè)關(guān)鍵 程序序列;對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確定所述每一個(gè)關(guān)鍵程序序列中的指令的極 大值與極小值;對所有關(guān)鍵程序序列的極大值求和獲得最大值,對所有關(guān)鍵程序序列的極 小值求和獲得最小值,從而確定所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍; 在所述程序中設(shè)置所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍;所述獲取并在 所述程序中設(shè)置所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍,具體為對所述程序進(jìn) 行分析,提取所有關(guān)鍵程序序列;對每一關(guān)鍵程序序列進(jìn)行分析,確定所述每一個(gè)關(guān)鍵程序 序列中的指令的極大值與極小值,從而確定所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范 圍;在所述程序中設(shè)置所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍。在上述技術(shù)方案中,優(yōu)選地,對所述關(guān)鍵程序序列的分析的過程具體為執(zhí)行所述 關(guān)鍵程序序列;計(jì)算所述關(guān)鍵程序序列的極大均值與極小均值;將所述極大均值與所述極 小均值增加到程序統(tǒng)計(jì)器的真值中。在上述技術(shù)方案中,優(yōu)選地,對所述關(guān)鍵程序序列的分析的過程具體為啟動(dòng)硬件 機(jī)器指令記數(shù)器;執(zhí)行所述關(guān)鍵程序序列;獲取已執(zhí)行的指令數(shù)目,并將所述已執(zhí)行的指 令數(shù)目增加到程序統(tǒng)計(jì)器的真值中。在上述技術(shù)方案中,優(yōu)選地,將計(jì)數(shù)結(jié)果與所述關(guān)鍵程序序列中的指令的數(shù)目范 圍進(jìn)行比較的過程具體為獲取所述程序統(tǒng)計(jì)器的真值;判斷所述真值是否在所述極小值 和所述極大值的區(qū)間內(nèi);如果判斷結(jié)果為是,則設(shè)置程序執(zhí)行正常;如果判斷結(jié)果為否,則 設(shè)置程序執(zhí)行異常。在上述技術(shù)方案中,優(yōu)選地,在判斷所述數(shù)據(jù)處理設(shè)備受到攻擊的情況下,使所述 數(shù)據(jù)處理設(shè)備停止運(yùn)行所述程序,在判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊的情況下,使所述 數(shù)據(jù)處理設(shè)備繼續(xù)運(yùn)行所述程序。在上述技術(shù)方案中,優(yōu)選地,所述數(shù)據(jù)處理設(shè)備為智能卡。本發(fā)明還提供了一種具有攻擊監(jiān)控功能的裝置,包括計(jì)數(shù)模塊,用于在所述數(shù)據(jù) 處理設(shè)備運(yùn)行程序時(shí),監(jiān)控所述程序中的關(guān)鍵程序序列,獲取所述關(guān)鍵程序序列的已運(yùn)行 的指令數(shù)目;比較模塊,將所述已運(yùn)行的指令數(shù)目與預(yù)設(shè)的指令的數(shù)目范圍進(jìn)行比較;判 斷模塊,如果所述已運(yùn)行的指令數(shù)目在所述預(yù)設(shè)的指令的數(shù)目范圍之外,則判斷所述數(shù)據(jù) 處理設(shè)備受到攻擊;反之,則判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊。通過上述技術(shù)方案,能夠監(jiān)控?cái)?shù)據(jù)處理裝置是否受到攻擊,保證程序?qū)γ舾袛?shù)據(jù) 的操作是在授權(quán)下進(jìn)行的,從而避免對敏感數(shù)據(jù)非授權(quán)的訪問。
在上述技術(shù)方案中,優(yōu)選地,所述比較模塊用于在所述程序執(zhí)行完畢后,將所述程 序的所有關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目的總和與預(yù)設(shè)的所述程序的所有關(guān)鍵程序序 列的指令的總和的數(shù)目范圍進(jìn)行比較;和/或用于在所述程序中的每個(gè)關(guān)鍵程序序列執(zhí)行 完畢后,將所述每個(gè)關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目與預(yù)設(shè)的該關(guān)鍵程序序列的指令的數(shù)目范圍進(jìn)行比較。在上述技術(shù)方案中,優(yōu)選地,所述計(jì)數(shù)模塊包括指令數(shù)初始化單元,初始化已運(yùn) 行指令數(shù),運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程序序列的指令,按預(yù)設(shè)規(guī)則處理 所述已運(yùn)行指令數(shù);初始化已運(yùn)行指令數(shù),可以將所述已運(yùn)行指令數(shù)置為零,也可以是其他 數(shù)值等,所述預(yù)設(shè)規(guī)則可以是已運(yùn)行指令數(shù)加1或者減1,或者其他規(guī)則?;蛘?,硬件指令統(tǒng) 計(jì)器初始化單元,初始化硬件指令統(tǒng)計(jì)器,運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程 序序列的指令,所述硬件指令統(tǒng)計(jì)器按預(yù)設(shè)規(guī)則動(dòng)作。初始化硬件指令統(tǒng)計(jì)器,可以將所述 硬件指令統(tǒng)計(jì)器置為零,也可以是其他數(shù)值等,所述預(yù)設(shè)規(guī)則可以是已運(yùn)行指令數(shù)加1或 者減1,或者其他規(guī)則。在上述技術(shù)方案中,優(yōu)選地,分析模塊還用于在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序之前 獲取所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍;和/或,用于在所述數(shù)據(jù)處 理設(shè)備運(yùn)行程序之前獲取所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍。在上述技術(shù)方案中,優(yōu)選地,分析模塊在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序之前對所述 程序進(jìn)行分析,提取所有至少一個(gè)關(guān)鍵程序序列,對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確定所 述每一個(gè)關(guān)鍵程序序列中的指令的極大值與極小值,對所有關(guān)鍵程序序列的極大值求和獲 得最大值,對所有關(guān)鍵程序序列的極小值求和獲得最小值,從而確定所述程序的所有關(guān)鍵 程序序列的指令的總和的數(shù)目范圍;分析模塊在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序之前對所述程 序進(jìn)行分析,提取所有關(guān)鍵程序序列;對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確定所述每一個(gè)關(guān) 鍵程序序列中的指令的極大值與極小值,從而確定所述程序的每個(gè)關(guān)鍵程序序列的指令的 數(shù)目范圍。在上述技術(shù)方案中,優(yōu)選地,所述數(shù)據(jù)處理設(shè)備為智能卡。在上述技術(shù)方案中,優(yōu)選地,所述具有攻擊監(jiān)控功能的系統(tǒng)是智能卡。在上述技術(shù)方案中,優(yōu)選地,在判斷所述數(shù)據(jù)處理設(shè)備受到攻擊的情況下,使所述 數(shù)據(jù)處理設(shè)備停止運(yùn)行所述程序,在判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊的情況下,使所述 數(shù)據(jù)處理設(shè)備繼續(xù)運(yùn)行所述程序。根據(jù)上述技術(shù)方案,可有效保護(hù)保存在智能卡中的關(guān)鍵數(shù)據(jù),提高智能卡的安全 性。保證在智能卡使用過程中,一些必須的程序流程得以執(zhí)行,避免出現(xiàn)對命令的處理未按 照設(shè)計(jì)的預(yù)定順序執(zhí)行,完成對程序關(guān)鍵流程進(jìn)行監(jiān)控,確保在程序運(yùn)行期間某些必須的 流程按預(yù)定的順序執(zhí)行,從而有效防止針對程序執(zhí)行流程進(jìn)行的攻擊,繞過某些必要的安 全檢查訪問智能卡中的關(guān)鍵數(shù)據(jù)的情況。
圖1示出了根據(jù)本發(fā)明的實(shí)施例的攻擊監(jiān)控方法的流程圖;圖2示出了根據(jù)本發(fā)明的實(shí)施例的對程序進(jìn)行分析的過程的流程圖;圖3A示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的對關(guān)鍵程序序列進(jìn)行分析的過程的流程 圖;圖;3B示出了根據(jù)本發(fā)明的另一實(shí)施例的對關(guān)鍵程序序列進(jìn)行分析的過程的流程 圖;圖4示出了根據(jù)本發(fā)明的另一實(shí)施例的攻擊監(jiān)控方法的流程圖5示出了根據(jù)本發(fā)明的實(shí)施例的具有攻擊監(jiān)控功能的裝置的結(jié)構(gòu)框圖;圖6A示出了圖5中示出的攻擊監(jiān)控系統(tǒng)中作為一個(gè)實(shí)例的分析模塊的結(jié)構(gòu)框 圖;圖6B示出了圖5中示出的攻擊監(jiān)控系統(tǒng)中作為另一實(shí)例的分析模塊的結(jié)構(gòu)框 圖;圖7示出了圖5中示出的攻擊監(jiān)控系統(tǒng)中的比較模塊的結(jié)構(gòu)框圖;圖8示出了采用本發(fā)明的方法對程序分析整理后的結(jié)構(gòu)的示意圖;圖9示出了采用本發(fā)明的方法對程序分析整理后需要記錄的數(shù)據(jù)的結(jié)構(gòu)的示意 圖;圖10示出了采用本發(fā)明的方法進(jìn)行初始化程序流程統(tǒng)計(jì)器的過程的流程圖;圖IlA示出了采用本發(fā)明的方法進(jìn)行程序關(guān)鍵序列記錄的一個(gè)實(shí)施例的具體過 程的流程圖;圖IlB示出了采用本發(fā)明的方法進(jìn)行程序關(guān)鍵序列記錄的另一個(gè)實(shí)施例的具體 過程的流程圖;圖12示出了采用本發(fā)明的方法進(jìn)行程序統(tǒng)計(jì)分析的具體過程的流程圖;圖13示出了采用本發(fā)明的方法得到的程序的最終結(jié)構(gòu)的示意圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用不同于在此所描述內(nèi)容的其他方式來實(shí)施,因此,本發(fā)明并不限于下面公開的具體 實(shí)施例的限制。圖1示出了根據(jù)本發(fā)明的實(shí)施例的攻擊監(jiān)控方法的流程圖。根據(jù)本發(fā)明的攻擊監(jiān)控方法,用于監(jiān)控?cái)?shù)據(jù)處理設(shè)備是否受到攻擊,包括步驟 S10,在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序時(shí),監(jiān)控所述程序中的關(guān)鍵程序序列,獲取所述關(guān)鍵程 序序列的已運(yùn)行的指令數(shù)目;步驟S20,將所述已運(yùn)行的指令數(shù)目與預(yù)設(shè)的指令的數(shù)目范 圍進(jìn)行比較;步驟S30,判斷所述已運(yùn)行的指令數(shù)目是否在所述預(yù)設(shè)的指令的數(shù)目范圍之 外,如果判斷結(jié)果為否,則進(jìn)入步驟S40,如果判斷結(jié)果為是,則進(jìn)入步驟S50 ;步驟S40,確 定該數(shù)據(jù)處理設(shè)備未受到攻擊;步驟S50,確定該數(shù)據(jù)處理設(shè)備受到攻擊。通過上述技術(shù)方案,能夠監(jiān)控?cái)?shù)據(jù)處理裝置是否受到攻擊,保證程序?qū)γ舾袛?shù)據(jù) 的操作是在授權(quán)下進(jìn)行的,從而避免對敏感數(shù)據(jù)非授權(quán)的訪問。在上述技術(shù)方案中,優(yōu)選地,所述將所述已運(yùn)行的指令數(shù)目與預(yù)設(shè)的指令的數(shù)目 范圍進(jìn)行比較,包括在所述程序執(zhí)行完畢后,將所述程序的所有關(guān)鍵程序序列的已運(yùn)行的 指令數(shù)目的總和與預(yù)設(shè)的所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍進(jìn)行比 較;和/或在所述程序中的每個(gè)關(guān)鍵程序序列執(zhí)行完畢后,將所述每個(gè)關(guān)鍵程序序列的已 運(yùn)行的指令數(shù)目與預(yù)設(shè)的該關(guān)鍵程序序列的指令的數(shù)目范圍進(jìn)行比較。
在上述技術(shù)方案中,優(yōu)選地,所述獲取所述關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目,包 括初始化已運(yùn)行指令數(shù),運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程序序列的指令, 按預(yù)設(shè)規(guī)則處理所述已運(yùn)行指令數(shù);初始化已運(yùn)行指令數(shù),可以將所述已運(yùn)行指令數(shù)置為零,也可以是其他數(shù)值等,所述預(yù)設(shè)規(guī)則可以是已運(yùn)行指令數(shù)加1或者減1,或者其他規(guī)則。 或者,初始化硬件指令統(tǒng)計(jì)器,運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程序序列的指 令,所述硬件指令統(tǒng)計(jì)器按預(yù)設(shè)規(guī)則動(dòng)作。初始化硬件指令統(tǒng)計(jì)器,可以將所述硬件指令統(tǒng) 計(jì)器置為零,也可以是其他數(shù)值等,所述預(yù)設(shè)規(guī)則可以是已運(yùn)行指令數(shù)加1或者減1,或者 其他規(guī)則。在上述技術(shù)方案中,優(yōu)選地,根據(jù)本發(fā)明的攻擊監(jiān)控方法還包括在所述數(shù)據(jù)處理 設(shè)備運(yùn)行程序之前,獲取并在所述程序中設(shè)置所述程序的所有關(guān)鍵程序序列的指令的總和 的數(shù)目范圍;和/或,獲取并在所述程序中設(shè)置所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù) 目范圍。在上述技術(shù)方案中,優(yōu)選地,所述獲取并在所述程序中設(shè)置所述程序的所有關(guān)鍵 程序序列的指令的總和的數(shù)目范圍,具體為對所述程序進(jìn)行分析,提取所有至少一個(gè)關(guān)鍵 程序序列;對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確定所述每一個(gè)關(guān)鍵程序序列中的指令的極 大值與極小值;對所有關(guān)鍵程序序列的極大值求和獲得最大值,對所有關(guān)鍵程序序列的極 小值求和獲得最小值,從而確定所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍; 在所述程序中設(shè)置所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍。所述獲取并在 所述程序中設(shè)置所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍,具體為對所述程序進(jìn) 行分析,提取所有關(guān)鍵程序序列;對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確定所述每一個(gè)關(guān)鍵程 序序列中的指令的極大值與極小值,從而確定所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目 范圍;在所述程序中設(shè)置所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍。在上述技術(shù)方案中,優(yōu)選地,對關(guān)鍵程序序列的分析的過程可以具體為執(zhí)行關(guān)鍵 程序序列;計(jì)算關(guān)鍵程序序列的極大均值與極小均值;將所述極大均值與所述極小均值增 加到程序統(tǒng)計(jì)器的真值中。在上述技術(shù)方案中,優(yōu)選地,對關(guān)鍵程序序列的分析的過程可以具體為啟動(dòng)硬件 機(jī)器指令記數(shù)器;執(zhí)行所述關(guān)鍵程序序列;獲取已執(zhí)行的指令數(shù)目,并將所述已執(zhí)行的指 令數(shù)目增加到程序統(tǒng)計(jì)器的真值中。在上述技術(shù)方案中,優(yōu)選地,該數(shù)據(jù)處理設(shè)備可以為智能卡。本領(lǐng)域技術(shù)人員應(yīng) 當(dāng)理解,該數(shù)據(jù)處理設(shè)備可以是任何具有數(shù)據(jù)處理能力的設(shè)備,例如,計(jì)算機(jī)、傳感器節(jié)點(diǎn)、 PDA等等。在上述技術(shù)方案中,優(yōu)選地,在判斷所述數(shù)據(jù)處理設(shè)備受到攻擊的情況下,使所述 數(shù)據(jù)處理設(shè)備停止運(yùn)行所述程序,在判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊的情況下,使所述 數(shù)據(jù)處理設(shè)備繼續(xù)運(yùn)行所述程序。圖2示出了根據(jù)本發(fā)明的實(shí)施例的對程序進(jìn)行分析的過程的流程圖。對程序進(jìn)行分析的過程具體為步驟S102,對程序進(jìn)行分析,提取關(guān)鍵程序序列; 步驟S104,對關(guān)鍵程序序列進(jìn)行編號,并獲取第一個(gè)程序序列;步驟S106,對關(guān)鍵程序序列 進(jìn)行分析,提取極大值與極小值;步驟S108,判斷關(guān)鍵程序序列是否是最后一個(gè)程序序列, 如果判斷結(jié)果為是,則進(jìn)入步驟S110,如果判斷結(jié)果為否,則進(jìn)入步驟S114;步驟110,對 所有程序序列的極大值求和獲得最大值,對所有程序序列的極小值求和獲得最小值;步驟 S112,啟動(dòng)程序統(tǒng)計(jì)器,初始化所述程序統(tǒng)計(jì)器的真值,結(jié)束;步驟S114,獲取下一個(gè)程序 序列,并返回步驟S106。
在上述技術(shù)方案中,優(yōu)選地,如圖3A所示,對關(guān)鍵程序序列進(jìn)行分析的過程具體 為步驟S202,執(zhí)行原程序序列;步驟S204,計(jì)算原程序序列的極大均值與極小均值;步驟 S206,將極大均值與極小均值增加到程序統(tǒng)計(jì)器的真值中。在上述技術(shù)方案中,優(yōu)選地,如圖IBB所示,作為選擇,對關(guān)鍵程序序列進(jìn)行分析的 過程可以具體為步驟S202’,啟動(dòng)硬件機(jī)器指令記數(shù)器;步驟S204’,執(zhí)行原程序序列;步 驟S206’,獲取已執(zhí)行機(jī)器指令數(shù)目,并將所述已執(zhí)行機(jī)器指令數(shù)目增加到所述程序統(tǒng)計(jì)器 的真值中。在上述技術(shù)方案中,優(yōu)選地,在判斷所述數(shù)據(jù)處理設(shè)備受到攻擊的情況下,使所述 數(shù)據(jù)處理設(shè)備停止運(yùn)行所述程序,在判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊的情況下,使所述 數(shù)據(jù)處理設(shè)備繼續(xù)運(yùn)行所述程序。圖4示出了根據(jù)本發(fā)明的另一實(shí)施例的攻擊監(jiān)控方法的流程圖。該攻擊監(jiān)控方法 用于監(jiān)控?cái)?shù)據(jù)處理設(shè)備是否受到攻擊,具體包括步驟S302,獲取程序統(tǒng)計(jì)器的真值;步驟 S304,判斷真值是否在極小值和極大值的區(qū)間內(nèi),如果判斷結(jié)果為是,則進(jìn)入步驟S306,如 果判斷結(jié)果為否,則進(jìn)入步驟S308 ;步驟S306,設(shè)置程序執(zhí)行正常;步驟S308,設(shè)置程序執(zhí) 行異常。在上述技術(shù)方案中,優(yōu)選地,所述關(guān)鍵程序序列是一個(gè)程序整體。通過上述方法,能夠有效地防止數(shù)據(jù)處理設(shè)備受到攻擊,從而保證了數(shù)據(jù)安全。圖5示出了根據(jù)本發(fā)明的實(shí)施例的具有攻擊監(jiān)控功能的裝置的結(jié)構(gòu)框圖。根據(jù)本發(fā)明的攻擊監(jiān)控系統(tǒng)500包括計(jì)數(shù)模塊502,用于在數(shù)據(jù)處理設(shè)備運(yùn)行程 序時(shí),監(jiān)控程序中的關(guān)鍵程序序列,獲取所述關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目;比較模塊 504,將所述已運(yùn)行的指令數(shù)目與預(yù)設(shè)的指令的數(shù)目范圍進(jìn)行比較;判斷模塊506,如果所 述已運(yùn)行的指令數(shù)目在所述預(yù)設(shè)的指令的數(shù)目范圍之外,則判斷所述數(shù)據(jù)處理設(shè)備受到攻 擊;反之,則判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊。在上述技術(shù)方案中,優(yōu)選地,所述比較模塊用于在所述程序執(zhí)行完畢后,將所述程 序的所有關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目的總和與預(yù)設(shè)的所述程序的所有關(guān)鍵程序序 列的指令的總和的數(shù)目范圍進(jìn)行比較;和/或用于在所述程序中的每個(gè)關(guān)鍵程序序列執(zhí)行 完畢后,將所述每個(gè)關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目與預(yù)設(shè)的該關(guān)鍵程序序列的指令的 數(shù)目范圍進(jìn)行比較。在上述技術(shù)方案中,優(yōu)選地,所述計(jì)數(shù)模塊502還用于初始化已運(yùn)行指令數(shù),運(yùn)行 所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程序序列的指令,按預(yù)設(shè)規(guī)則處理所述已運(yùn)行指 令數(shù);初始化已運(yùn)行指令數(shù),可以將所述已運(yùn)行指令數(shù)置為零,也可以是其他數(shù)值等,所述 預(yù)設(shè)規(guī)則可以是已運(yùn)行指令數(shù)加1或者減1,或者其他規(guī)則?;蛘撸糜诔跏蓟布噶罱y(tǒng) 計(jì)器,運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程序序列的指令,所述硬件指令統(tǒng)計(jì)器 按預(yù)設(shè)規(guī)則動(dòng)作。初始化硬件指令統(tǒng)計(jì)器,可以將所述硬件指令統(tǒng)計(jì)器置為零,也可以是其 他數(shù)值等,所述預(yù)設(shè)規(guī)則可以是已運(yùn)行指令數(shù)加1或者減1,或者其他規(guī)則。在上述技術(shù)方案中,優(yōu)選地,進(jìn)一步包括分析模塊508,用于在所述數(shù)據(jù)處理設(shè) 備運(yùn)行程序之前獲取所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍;和/或,在 所述數(shù)據(jù)處理設(shè)備運(yùn)行程序之前用于獲取所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范 圍。
在上述技術(shù)方案中,優(yōu)選地,所述分析模塊在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序之前對 所述程序進(jìn)行分析,提取所有至少一個(gè)關(guān)鍵程序序列,對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確 定所述每一個(gè)關(guān)鍵程序序列中的指令的極大值與極小值,對所有關(guān)鍵程序序列的極大值求 和獲得最大值,對所有關(guān)鍵程序序列的極小值求和獲得最小值,從而確定所述程序的所有 關(guān)鍵程序序列的指令的總和的數(shù)目范圍;所述分析模塊在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序之前 對所述程序進(jìn)行分析,提取所有關(guān)鍵程序序列;對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確定所述 每一個(gè)關(guān)鍵程序序列中的指令的極大值與極小值,從而確定所述程序的每個(gè)關(guān)鍵程序序列 的指令的數(shù)目范圍。在在上述技術(shù)方案中,優(yōu)選地,如圖6A所示,作為一個(gè)實(shí)例,分析模塊508包括執(zhí)行 模塊5082,執(zhí)行關(guān)鍵程序序列;計(jì)算模塊5084,計(jì)算關(guān)鍵程序序列的極大均值與極小均值; 增加模塊5086,將極大均值與極小均值增加到程序統(tǒng)計(jì)器的真值中。在上述技術(shù)方案中,優(yōu)選地,如圖6B所示,作為另一個(gè)實(shí)例,分析模塊508包括 啟動(dòng)模塊5082’,啟動(dòng)硬件機(jī)器指令記數(shù)器;執(zhí)行模塊5084’,執(zhí)行關(guān)鍵程序序列;增加模塊 5086’,獲取已執(zhí)行機(jī)器指令數(shù)目,并將已執(zhí)行機(jī)器指令數(shù)目增加到程序統(tǒng)計(jì)器的真值中。在上述技術(shù)方案中,優(yōu)選地,如圖7所示,比較模塊504包括真值獲取模塊5042, 獲取程序統(tǒng)計(jì)器的真值;真值判斷模塊5044,判斷所述真值是否在極小值和極大值的區(qū)間 內(nèi);狀態(tài)設(shè)置模塊5046,如果真值判斷模塊5044的判斷結(jié)果為是,則設(shè)置程序執(zhí)行正常,如 果真值判斷模塊5044的判斷結(jié)果為否,則設(shè)置程序執(zhí)行異常。在上述技術(shù)方案中,優(yōu)選地,所述數(shù)據(jù)處理設(shè)備可以為智能卡。在上述技術(shù)方案中,優(yōu)選地,所述具有攻擊監(jiān)控功能的裝置可以為智能卡。在上述技術(shù)方案中,優(yōu)選地,所述關(guān)鍵程序序列是一個(gè)程序整體。在上述技術(shù)方案中,優(yōu)選地,在判斷所述數(shù)據(jù)處理設(shè)備受到攻擊的情況下,使所述 數(shù)據(jù)處理設(shè)備停止運(yùn)行所述程序,在判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊的情況下,使所述 數(shù)據(jù)處理設(shè)備繼續(xù)運(yùn)行所述程序。根據(jù)上述技術(shù)方案,可有效保護(hù)保存在智能卡中的關(guān)鍵數(shù)據(jù),提高智能卡的安全 性。保證在智能卡使用過程中,必須的程序流程得以執(zhí)行,避免出現(xiàn)對命令的處理未按照設(shè) 計(jì)的預(yù)定順序執(zhí)行的情況,從而完成對程序關(guān)鍵流程進(jìn)行監(jiān)控,確保在程序運(yùn)行期間必須 的流程按預(yù)定的順序執(zhí)行,有效防止針對程序執(zhí)行流程進(jìn)行的攻擊,繞過必要的安全檢查 訪問智能卡中的關(guān)鍵數(shù)據(jù)的情況發(fā)生。根據(jù)本發(fā)明的方法可以理解為通過對要保護(hù)的程序序列的執(zhí)行情況加以記錄, 在整個(gè)處理流程的關(guān)鍵位置加以校驗(yàn),來達(dá)到對程序的管理及流程上的監(jiān)控,有效防止一 些特定的攻擊手段,有效保護(hù)保存在智能卡中的關(guān)鍵數(shù)據(jù),提高智能卡的安全性。具體實(shí)現(xiàn) 如下設(shè)置程序關(guān)鍵流程統(tǒng)計(jì)器,關(guān)鍵流程一旦執(zhí)行就會刷新這個(gè)統(tǒng)計(jì)器,在特定時(shí)間點(diǎn), 對統(tǒng)計(jì)器進(jìn)行分析,若其值在預(yù)先設(shè)定的范圍內(nèi),那么則認(rèn)為關(guān)鍵流程已執(zhí)行,若不在范圍 內(nèi),則認(rèn)為關(guān)鍵流程未被執(zhí)行,以此來達(dá)到對程序關(guān)鍵流程的監(jiān)控目的,并且通過設(shè)計(jì)這個(gè) 范圍可以做到對安全級別的控制。共分3個(gè)部分來實(shí)現(xiàn)以上功能1.初始化程序流程統(tǒng)計(jì)器這部分主要是對程序統(tǒng)計(jì)器的輸入?yún)?shù)進(jìn)行設(shè)置。
2.程序關(guān)鍵序列記錄這部分完成對程序序列的統(tǒng)計(jì)工作。3.程序統(tǒng)計(jì)分析這部分完成對統(tǒng)計(jì)結(jié)果的分析工作,分析本次運(yùn)行期間程序的執(zhí)行情況。下面參照圖8至圖14進(jìn)行具體說明。首先是初始化程序流程統(tǒng)計(jì)器,對程序進(jìn)行分析,分析整理關(guān)鍵的程序序列。程序分析整理后的結(jié)構(gòu)如圖8所示。統(tǒng)計(jì)出每個(gè)關(guān)鍵程序序列的機(jī)器指令數(shù)目,那么每個(gè)關(guān)鍵的程序序列就會存在一 個(gè)機(jī)器指令數(shù)目的極大值;統(tǒng)計(jì)每個(gè)程序序列的關(guān)鍵機(jī)器指令數(shù)目,那么每個(gè)關(guān)鍵的程序 序列就會存在一個(gè)機(jī)器指令數(shù)目的極小值。任何程序最后都會被編譯器編譯成機(jī)器代碼,那么一個(gè)程序序列最終也是由一系 列的機(jī)器指令組成的,那么每個(gè)程序序列的機(jī)器代碼數(shù)量就是一個(gè)度量,統(tǒng)計(jì)出其值就是 這個(gè)程序序列的極大值;而程序序列可能存在條件分支,那么在程序正常運(yùn)行時(shí)必然有個(gè) 主分支,那么只統(tǒng)計(jì)這些主分支上的機(jī)器指令數(shù)目就可以得出另外一個(gè)度量,因?yàn)榇肆鞒?為其主流程,那么程序正常運(yùn)行期間這些機(jī)器指令是一定會執(zhí)行的,因此其值就可以作為 此程序序列的極小值。整理后需要記錄的數(shù)據(jù)如圖9所示。那么將所有關(guān)鍵程序序列的極小值相加得到一個(gè)值minValue,將所有關(guān)鍵程序的 極大值相加得到一個(gè)值maxValue。將minValue、maxValue作為輸入?yún)?shù)來啟動(dòng)程序統(tǒng)計(jì)器。程序統(tǒng)計(jì)器會統(tǒng)計(jì)程序運(yùn)行期間的機(jī)器指令執(zhí)行情況,那么將會使用一個(gè)程序計(jì) 數(shù)器記錄機(jī)器指令的處理數(shù)目,為了方便記憶設(shè)計(jì)TrueValue記錄,因此在程序統(tǒng)計(jì)器啟 動(dòng)的時(shí)候需要清OTrueValue。可參考圖10示出的流程圖,初始化程序流程統(tǒng)計(jì)器的過程包括步驟S1202,對 程序進(jìn)行分析,提取重要程序序列;步驟S1204,對程序序列進(jìn)行編號并獲取第一個(gè)程序序 列;步驟S1206,對程序序列進(jìn)行分析,提取極大值與極小值;步驟S1208,判斷是否是最后 一個(gè)程序序列,在判斷結(jié)果為否的情況下,進(jìn)入步驟S1210,在判斷結(jié)果為是的情況下,進(jìn)入 步驟S1212 ;步驟S1210,獲取下一個(gè)程序序列,進(jìn)入步驟S1206 ;步驟S1212,對所有程序序 列的極大值求和獲得maxValue,對極小值求和獲得minValue ;步驟S1214,啟動(dòng)程序統(tǒng)計(jì) 器,初始化統(tǒng)計(jì)計(jì)數(shù)器TrueValue。其次是,程序關(guān)鍵序列記錄本發(fā)明提供兩種實(shí)現(xiàn)方法方法1簡單實(shí)現(xiàn)容易,方法2實(shí)現(xiàn)復(fù)雜需要一些硬件的支持,下面參考圖1IA和圖 IlB分別就以上兩種方法進(jìn)行說明方法1:數(shù)據(jù)結(jié)構(gòu)定義如下Typedef struct {Private Int minValue ;
Int maxValue ;Int TrueValue ;Public int Initializition(int minValue, int maxValue);int AddRecord(int IncValue);int StatAnalyse(void);}將每個(gè)關(guān)鍵程序序列獨(dú)立成單獨(dú)的函數(shù),在函數(shù)處理返回前,一次性的完成程序 序列記錄,即將統(tǒng)計(jì)器TrueValue增加本序列的極大值與極小值的均值。如圖IlA所示,該過程包括步驟S1302,序列開始;步驟S1304,原程序序列;步驟 S1306,計(jì)算本序列極大均值與極小均值的hcValue ;步驟S1308,調(diào)用函數(shù)AddRecord將 TrueValue增加hcValue ;步驟S1310,序列結(jié)束。方法2:數(shù)據(jù)結(jié)構(gòu)定義如下Typedef struct {Private Int minValue ;Int maxValue ;Int TrueValue ;Public int Initializition(int minValue, int maxValue);int NoteStart (void);int NoteEnd (void);int StatAnalyse (void);}若機(jī)器硬件本身設(shè)計(jì)對機(jī)器指令的統(tǒng)計(jì)模塊,那么可以用此模塊完成對程序序列 的統(tǒng)計(jì)工作在進(jìn)入此程序序列時(shí),啟動(dòng)硬件統(tǒng)計(jì)模塊。程序序列執(zhí)行,硬件統(tǒng)計(jì)模塊完成機(jī)器指令的統(tǒng)計(jì)工作。程序序列結(jié)束時(shí),讀取硬件統(tǒng)計(jì)模塊的統(tǒng)計(jì)數(shù)據(jù),將其加到統(tǒng)計(jì)器TrueValue中, 完成程序序列記錄。若機(jī)器硬件本身無機(jī)器指令的統(tǒng)計(jì)模塊,可以利用程序計(jì)數(shù)器達(dá)到上述目的。如圖IlB所示,該過程包括步驟S1302’,序列開始;步驟S1304’,調(diào)用 NoteMart,啟動(dòng)硬件機(jī)器指令計(jì)數(shù)器;步驟S1306’,原程序序列;步驟S1308’,調(diào)用 NoteEnd獲取已執(zhí)行機(jī)器指令數(shù)目hcValue,將TrueValue增加hcValue ;步驟S1310,,序 列結(jié)束。最后是程序統(tǒng)計(jì)分析。通過對程序統(tǒng)計(jì)器的分析,完成對程序流程的監(jiān)控目的。要求TrueValue在 minValue與maxValue區(qū)間之內(nèi),那么就判斷為程序按照預(yù)定的流程進(jìn)行,一些關(guān)鍵的程序序列已被覆蓋,那么則認(rèn)可本次處理。當(dāng)受到攻擊時(shí),會影響一些程序的執(zhí)行,有些程序序列沒有被執(zhí)行,比如程序序列 2的極大值為50,極小值為45,那么設(shè)置minValue = 45、maxValue = 50,那么當(dāng)程序序列 2受到外界的攻擊導(dǎo)致程序執(zhí)行異常,導(dǎo)致程序序列2有一些程序未被執(zhí)行到,這樣統(tǒng)計(jì)器 就會統(tǒng)計(jì)出本序列執(zhí)行的機(jī)器指令數(shù)目,假設(shè)統(tǒng)計(jì)出的數(shù)目為10即TrueValue = 10,這 樣通過 TrueValue 與 minValue、maxValue 的比較就可以發(fā)現(xiàn) TrueValue 不在[minValue, maxValue]區(qū)間內(nèi),即發(fā)現(xiàn)此攻擊。如圖12所示,具體過程包括步驟S1402,統(tǒng)計(jì)分析開始;步驟S1404,獲取 TureValue ;步驟 S1406,判斷 iTrueValue 是否在[minValue,maxValue]區(qū)間內(nèi),如果判斷結(jié) 果為是,則進(jìn)入步驟S1408,如果判斷結(jié)果為否,則進(jìn)入步驟S1410 ;步驟S1408,設(shè)置程序執(zhí) 行正常;步驟S1410,設(shè)置程序執(zhí)行異常;步驟S1412,統(tǒng)計(jì)分析結(jié)束。程序的最終結(jié)構(gòu)如圖13所示,首先是統(tǒng)計(jì)器統(tǒng)計(jì)啟動(dòng),然后是程序基本序列1和 程序關(guān)鍵序列1,直至程序基本序列η和程序關(guān)鍵序列η,最后是統(tǒng)計(jì)器統(tǒng)計(jì)分析。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,可以根據(jù)實(shí)際情況,可以將一個(gè)程序整體當(dāng)成一個(gè)關(guān) 鍵的程序序列,也可以單獨(dú)對一個(gè)程序序列啟動(dòng)統(tǒng)計(jì)器的統(tǒng)計(jì)和分析功能。根據(jù)上述技術(shù)方案,可有效保護(hù)保存在于諸如智能卡的數(shù)據(jù)處理裝置中的關(guān)鍵數(shù) 據(jù),提高可智能卡的安全性。保證在智能卡使用過程中,一些必須的程序流程得以執(zhí)行,避 免出現(xiàn)對命令的處理未按照設(shè)計(jì)的預(yù)定順序執(zhí)行的情況,完成對程序關(guān)鍵流程進(jìn)行監(jiān)控, 從而確保在程序運(yùn)行期間某些必須的流程按預(yù)定的順序執(zhí)行,有效防止一些針對程序執(zhí)行 流程進(jìn)行的攻擊,繞過某些必要的安全檢查訪問智能卡中的關(guān)鍵數(shù)據(jù)的情況的發(fā)生。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種攻擊監(jiān)控方法,用于監(jiān)控?cái)?shù)據(jù)處理設(shè)備是否受到攻擊,其特征在于,包括 在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序時(shí),監(jiān)控所述程序中的關(guān)鍵程序序列,獲取所述關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目;將所述已運(yùn)行的指令數(shù)目與預(yù)設(shè)的指令的數(shù)目范圍進(jìn)行比較; 如果所述已運(yùn)行的指令數(shù)目在所述預(yù)設(shè)的指令的數(shù)目范圍之外,則判斷所述數(shù)據(jù)處理 設(shè)備受到攻擊;反之,則判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊。
2.根據(jù)權(quán)利要求1所述的攻擊監(jiān)控方法,其特征在于,所述將所述已運(yùn)行的指令數(shù)目 與預(yù)設(shè)的指令的數(shù)目范圍進(jìn)行比較,包括在所述程序執(zhí)行完畢后,將所述程序的所有關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目的總和 與預(yù)設(shè)的所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍進(jìn)行比較;和/或在所述程序中的每個(gè)關(guān)鍵程序序列執(zhí)行完畢后,將所述每個(gè)關(guān)鍵程序序列的已運(yùn)行的 指令數(shù)目與預(yù)設(shè)的該關(guān)鍵程序序列的指令的數(shù)目范圍進(jìn)行比較。
3.根據(jù)權(quán)利要求1所述的攻擊監(jiān)控方法,其特征在于,所述獲取所述關(guān)鍵程序序列的 已運(yùn)行的指令數(shù)目,包括初始化已運(yùn)行指令數(shù),運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程序序列的指令, 按預(yù)設(shè)規(guī)則處理所述已運(yùn)行指令數(shù);或者,初始化硬件指令統(tǒng)計(jì)器,運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程序序列的指 令,所述硬件指令統(tǒng)計(jì)器按預(yù)設(shè)規(guī)則動(dòng)作。
4.根據(jù)權(quán)利要求1至3任一所述的攻擊監(jiān)控方法,其特征在于,在所述數(shù)據(jù)處理設(shè)備運(yùn) 行程序之前,還包括獲取并在所述程序中設(shè)置所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍; 和/或獲取并在所述程序中設(shè)置所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍。
5.根據(jù)權(quán)利要求4所述的攻擊監(jiān)控方法,其特征在于,所述獲取并在所述程序中設(shè)置所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范 圍,具體為對所述程序進(jìn)行分析,提取所有至少一個(gè)關(guān)鍵程序序列;對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確定所述每一個(gè)關(guān)鍵程序序列中的指令的極大值與 極小值;對所有關(guān)鍵程序序列的極大值求和獲得最大值,對所有關(guān)鍵程序序列的極小值求和獲 得最小值,從而確定所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍; 在所述程序中設(shè)置所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù)目范圍; 所述獲取并在所述程序中設(shè)置所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍,具體為對所述程序進(jìn)行分析,提取所有關(guān)鍵程序序列;對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確定所述每一個(gè)關(guān)鍵程序序列中的指令的極大值與 極小值,從而確定所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍;在所述程序中設(shè)置所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍。
6.根據(jù)權(quán)利要求1至3任一所述的所述的攻擊監(jiān)控方法,其特征在于,在判斷所述數(shù)據(jù) 處理設(shè)備受到攻擊的情況下,使所述數(shù)據(jù)處理設(shè)備停止運(yùn)行所述程序,在判斷所述數(shù)據(jù)處 理設(shè)備未受到攻擊的情況下,使所述數(shù)據(jù)處理設(shè)備繼續(xù)運(yùn)行所述程序。
7.一種具有攻擊監(jiān)控功能的裝置,其特征在于,包括計(jì)數(shù)模塊,用于在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序時(shí),監(jiān)控所述程序中的關(guān)鍵程序序列,獲 取所述關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目;比較模塊,將所述已運(yùn)行的指令數(shù)目與預(yù)設(shè)的指令的數(shù)目范圍進(jìn)行比較;判斷模塊,如果所述已運(yùn)行的指令數(shù)目在所述預(yù)設(shè)的指令的數(shù)目范圍之外,則判斷所 述數(shù)據(jù)處理設(shè)備受到攻擊;反之,則判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述比較模塊用于在所述程序執(zhí)行完畢 后,將所述程序的所有關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目的總和與預(yù)設(shè)的所述程序的所有 關(guān)鍵程序序列的指令的總和的數(shù)目范圍進(jìn)行比較;和/或用于在所述程序中的每個(gè)關(guān)鍵程 序序列執(zhí)行完畢后,將所述每個(gè)關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目與預(yù)設(shè)的該關(guān)鍵程序序 列的指令的數(shù)目范圍進(jìn)行比較。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述計(jì)數(shù)模塊還用于初始化已運(yùn)行指令 數(shù),運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述關(guān)鍵程序序列的指令,按預(yù)設(shè)規(guī)則處理所述已 運(yùn)行指令數(shù);或者,用于初始化硬件指令統(tǒng)計(jì)器,運(yùn)行所述關(guān)鍵程序序列,每運(yùn)行一條所述 關(guān)鍵程序序列的指令,所述硬件指令統(tǒng)計(jì)器按預(yù)設(shè)規(guī)則動(dòng)作。
10.根據(jù)權(quán)利要求7至9中任一項(xiàng)所述的裝置,其特征在于,還包括分析模塊,用于在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序之前獲取所述程序的所有關(guān)鍵程序序列 的指令的總和的數(shù)目范圍;和/或,在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序之前用于獲取所述程序 的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述分析模塊在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序之前對所述程序進(jìn)行分析,提取所有至少 一個(gè)關(guān)鍵程序序列,對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確定所述每一個(gè)關(guān)鍵程序序列中的 指令的極大值與極小值,對所有關(guān)鍵程序序列的極大值求和獲得最大值,對所有關(guān)鍵程序 序列的極小值求和獲得最小值,從而確定所述程序的所有關(guān)鍵程序序列的指令的總和的數(shù) 目范圍;所述分析模塊在所述數(shù)據(jù)處理設(shè)備運(yùn)行程序之前對所述程序進(jìn)行分析,提取所有關(guān)鍵 程序序列;對每一個(gè)關(guān)鍵程序序列進(jìn)行分析,確定所述每一個(gè)關(guān)鍵程序序列中的指令的極 大值與極小值,從而確定所述程序的每個(gè)關(guān)鍵程序序列的指令的數(shù)目范圍。
12.根據(jù)權(quán)利要求7至9任一所述的裝置,其特征在于,在判斷所述數(shù)據(jù)處理設(shè)備受到 攻擊的情況下,使所述數(shù)據(jù)處理設(shè)備停止運(yùn)行所述程序,在判斷所述數(shù)據(jù)處理設(shè)備未受到 攻擊的情況下,使所述數(shù)據(jù)處理設(shè)備繼續(xù)運(yùn)行所述程序。
全文摘要
本發(fā)明提供了一種攻擊監(jiān)控方法,用于監(jiān)控?cái)?shù)據(jù)處理設(shè)備是否受到攻擊,包括在數(shù)據(jù)處理設(shè)備運(yùn)行程序時(shí),監(jiān)控程序中的關(guān)鍵程序序列,獲取所述關(guān)鍵程序序列的已運(yùn)行的指令數(shù)目;將所述已運(yùn)行的指令數(shù)目與預(yù)設(shè)的指令的數(shù)目范圍進(jìn)行比較;如果所述已運(yùn)行的指令數(shù)目在所述預(yù)設(shè)的指令的數(shù)目范圍之外,則判斷所述數(shù)據(jù)處理設(shè)備受到攻擊;反之,則判斷所述數(shù)據(jù)處理設(shè)備未受到攻擊。通過上述技術(shù)方案,能夠監(jiān)控?cái)?shù)據(jù)處理裝置是否受到攻擊,保證程序?qū)γ舾袛?shù)據(jù)的操作是在授權(quán)下進(jìn)行的,從而避免對敏感數(shù)據(jù)非授權(quán)的訪問。本發(fā)明還提供了攻擊監(jiān)控裝置和智能卡。
文檔編號G06F12/14GK102053927SQ201010612608
公開日2011年5月11日 申請日期2010年12月29日 優(yōu)先權(quán)日2010年12月29日
發(fā)明者于付真 申請人:北京握奇數(shù)據(jù)系統(tǒng)有限公司