、或其他 與應(yīng)用程序APP的原始碼相關(guān)的編譯碼,本發(fā)明并不對(duì)此作限制(步驟S220)。
[0035] 值得注意的是,此時(shí)編譯碼為分布式的編譯碼,也即編譯碼中的各項(xiàng)功能件彼此 之間并無關(guān)聯(lián)。因此,運(yùn)算處理單元120遂利用一關(guān)聯(lián)分析(AssociationAnalysis)以找 出編譯碼中的各項(xiàng)功能元件彼此之間的關(guān)聯(lián),并據(jù)此建立多個(gè)編譯路徑。而所屬技術(shù)領(lǐng)域 的普通技術(shù)人員應(yīng)知關(guān)聯(lián)分析的實(shí)施與運(yùn)用方式,故不再贅述。此時(shí),多個(gè)編譯路徑為分別 對(duì)應(yīng)到應(yīng)用程序APP中的多個(gè)指令路徑,而應(yīng)用程序APP中的多個(gè)指令路徑表示應(yīng)用程序 APP會(huì)執(zhí)行的路徑。故由上述可知,運(yùn)算處理單元120將可通過反譯應(yīng)用程序APP及關(guān)聯(lián)分 析產(chǎn)生多個(gè)編譯路徑,以預(yù)測(cè)應(yīng)用程序APP會(huì)執(zhí)行的路徑(步驟S230)。
[0036] 接下來,運(yùn)算處理單元120將進(jìn)一步預(yù)測(cè)每一編譯路徑具有安全性弱點(diǎn)或惡意行 為的風(fēng)險(xiǎn)程度及風(fēng)險(xiǎn)檢測(cè)時(shí)間,以據(jù)此將多個(gè)編譯路徑分類為多個(gè)風(fēng)險(xiǎn)測(cè)試項(xiàng)目(步驟 S240)。在本實(shí)施例中,每一編譯路徑的風(fēng)險(xiǎn)程度及風(fēng)險(xiǎn)檢測(cè)時(shí)間可根據(jù)開放網(wǎng)絡(luò)應(yīng)用安 全計(jì)劃(OpenWebApplicationSecurityProject, 0WASP)及電腦安全風(fēng)險(xiǎn)管理(NIST securityguideline)其中之一或其組合作預(yù)測(cè),也可通過使用者自行定義的方式來制作, 本發(fā)明并不對(duì)此作限制。舉例來說,如表1所示,編譯路徑PT1~PT6共有六條。其中,編 譯路徑PT1、PT3、及PT5被運(yùn)算處理單元120預(yù)測(cè)為高風(fēng)險(xiǎn)程度且風(fēng)險(xiǎn)檢測(cè)時(shí)間分別為20 分、5分、及10分。編譯路徑PT2、PT4、及PT6被運(yùn)算處理單元120預(yù)測(cè)為低風(fēng)險(xiǎn)程度且風(fēng) 險(xiǎn)檢測(cè)時(shí)間分別為10分、15分、及5分。此時(shí),運(yùn)算處理單元120遂將編譯路徑PT1~PT6 分類為2個(gè)風(fēng)險(xiǎn)測(cè)試項(xiàng)目,8卩"高"風(fēng)險(xiǎn)測(cè)試項(xiàng)目及"低"風(fēng)險(xiǎn)測(cè)試項(xiàng)目。而風(fēng)險(xiǎn)測(cè)試項(xiàng)目 也可依據(jù)編譯路徑PT1~PT6實(shí)際的情況來定義風(fēng)險(xiǎn)測(cè)試項(xiàng)目。舉例來說,風(fēng)險(xiǎn)測(cè)試項(xiàng)目 分類為"安全性弱點(diǎn)"風(fēng)險(xiǎn)測(cè)試項(xiàng)目(如網(wǎng)絡(luò)風(fēng)險(xiǎn)、個(gè)資風(fēng)險(xiǎn)等)及"惡意行為"風(fēng)險(xiǎn)測(cè)試 項(xiàng)目(如綁架系統(tǒng)、傳送病毒等),本發(fā)明并不對(duì)此作限制。
[0037]〈表1>
[0038]
[0039] 接下來,運(yùn)算處理單元120接收一測(cè)試命令,以據(jù)此選擇至少一風(fēng)險(xiǎn)測(cè)試項(xiàng)目及 可檢測(cè)時(shí)間(步驟S250)。在本實(shí)施例中,測(cè)試命令是通過操控顯示單元110的檢測(cè)界面所 產(chǎn)生,也即使用者以觸控方式操控顯示單元110的檢測(cè)界面,使得檢測(cè)界面產(chǎn)生測(cè)試命令 至運(yùn)算處理單元120。而測(cè)試命令也可通過其他操控裝置所產(chǎn)生,如電連接在運(yùn)算處理單元 120上的鍵盤,本發(fā)明對(duì)此不作限制。再來,運(yùn)算處理單元120將根據(jù)風(fēng)險(xiǎn)測(cè)試項(xiàng)目及可檢 測(cè)時(shí)間的選擇,選取對(duì)應(yīng)的多個(gè)編譯路徑。而運(yùn)算處理單元120將進(jìn)一步執(zhí)行多個(gè)編譯路 徑對(duì)應(yīng)到應(yīng)用程序APP的多個(gè)指令路徑。且運(yùn)算處理單元120在執(zhí)行可檢測(cè)時(shí)間后,產(chǎn)生 應(yīng)用程式APP是否具有安全性弱點(diǎn)或惡意行為的測(cè)試結(jié)果,以進(jìn)一步告知使用者上述應(yīng)用 程序?qū)儆趷阂獬绦虻臋C(jī)率(步驟S260)。
[0040] 承接上述例子,當(dāng)運(yùn)算處理單元120接收到的測(cè)試命令為選擇"高"風(fēng)險(xiǎn)測(cè)試項(xiàng)目 以及可檢測(cè)時(shí)間為25分時(shí),運(yùn)算處理單元120將進(jìn)一步執(zhí)行編譯路徑PT1、PT3、及PT5對(duì) 應(yīng)到應(yīng)用程序APP的多個(gè)指令路徑。由于運(yùn)算處理單元120預(yù)測(cè)編譯路徑PT1、PT3、及PT5 的風(fēng)險(xiǎn)檢測(cè)時(shí)間最高為20分,即運(yùn)算處理單元120執(zhí)行"高"風(fēng)險(xiǎn)測(cè)試項(xiàng)目,以完整評(píng)估應(yīng) 用程序APP是否具有安全性弱點(diǎn)或惡意行為需20分。因此,運(yùn)算處理單元120將在執(zhí)行20 分鐘后,產(chǎn)生應(yīng)用程序APP是否具有安全性弱點(diǎn)或惡意行為的測(cè)試結(jié)果,而不會(huì)執(zhí)行到25 分鐘才產(chǎn)生應(yīng)用程序APP是否具有安全性弱點(diǎn)或惡意行為的測(cè)試結(jié)果。而測(cè)試結(jié)果將顯示 在顯示單元110的檢測(cè)界面中。此時(shí),使用者遂可根據(jù)測(cè)試結(jié)果對(duì)應(yīng)用程序APP作進(jìn)一步 的處理。如刪除應(yīng)用程序APP或開啟應(yīng)用程序APP。
[0041] 又例如,當(dāng)運(yùn)算處理單元120接收到的測(cè)試命令為選擇"低"風(fēng)險(xiǎn)測(cè)試項(xiàng)目以及可 檢測(cè)時(shí)間為10分時(shí),運(yùn)算處理單元120將進(jìn)一步執(zhí)行編譯路徑PT2、PT4、及PT6對(duì)應(yīng)到應(yīng) 用程序APP的多個(gè)指令路徑。由于運(yùn)算處理單元120預(yù)測(cè)編譯路徑PT2、PT4、及PT6的風(fēng)險(xiǎn) 檢測(cè)時(shí)間最高為15分,即運(yùn)算處理單元120執(zhí)行"低"風(fēng)險(xiǎn)測(cè)試項(xiàng)目,以完整評(píng)估應(yīng)用程序 APP是否具有安全性弱點(diǎn)或惡意行為需15分。然而,可檢測(cè)時(shí)間僅為10分鐘。因此,運(yùn)算 處理單元120將在執(zhí)行10分后,根據(jù)執(zhí)行完成的指令路徑(即對(duì)應(yīng)到編譯路徑PT2及PT6 的指令路徑)及未執(zhí)行完成的指令路徑(即對(duì)應(yīng)到編譯路徑PT4的指令路徑)的狀況產(chǎn)生 應(yīng)用程序APP是否具有安全性弱點(diǎn)或惡意行為的測(cè)試結(jié)果。運(yùn)算處理單元120將不會(huì)執(zhí)行 到15分鐘才產(chǎn)生應(yīng)用程序APP是否具有安全性弱點(diǎn)或惡意行為的測(cè)試結(jié)果。而測(cè)試結(jié)果 將顯示在顯示單元110的檢測(cè)界面中。此時(shí),使用者遂可根據(jù)測(cè)試結(jié)果對(duì)應(yīng)用程序APP作 進(jìn)一步的處理。如刪除應(yīng)用程序APP或開啟應(yīng)用程序APP。
[0042] 接下來,請(qǐng)同時(shí)參考圖3,圖3是本發(fā)明另一實(shí)施例的隨選檢測(cè)惡意程序的方法的 流程圖。首先,運(yùn)算處理單元120接收儲(chǔ)存在儲(chǔ)存單元130的應(yīng)用程序APP(步驟S310)。 接下來,運(yùn)算處理單元120將反譯應(yīng)用程序APP,以產(chǎn)生與應(yīng)用程序APP的原始碼相關(guān)的編 譯碼(步驟S320)。再來運(yùn)算處理單元120將利用關(guān)聯(lián)分析以找出編譯碼中的各項(xiàng)功能件 彼此之間的關(guān)聯(lián),并據(jù)此建立多個(gè)編譯路徑。此時(shí),多個(gè)編譯路徑分別對(duì)應(yīng)到應(yīng)用程序APP 中的多個(gè)指令路徑,而應(yīng)用程序APP中的多個(gè)指令路徑代表應(yīng)用程序APP會(huì)執(zhí)行的路徑。有 關(guān)圖3的步驟S310~S330與圖2的步驟S210~230類似,故在此不再贅述。
[0043] 不同的地方在于,本實(shí)施例的每一編譯路徑具有至少一元件指令及至少一程序代 碼指令其中之一或其組合,且同一編譯路徑上的所有指令(即,至少一元件指令及至少一 程序碼指令其中之一或其組合)具有關(guān)聯(lián)性。舉例來說,如圖4所示,編譯路徑PATH1~ PATH6上分別具有多個(gè)元件指令及多個(gè)程序碼指令其中之一或其組合。也即編譯路徑 PATH1具有彼此相關(guān)的元件指令2~3與程序碼指令4 ;編譯路徑PATH2具有彼此相關(guān)的元 件指令2~3及5 ;編譯路徑PATH3具有彼此相關(guān)的元件指令2與程序碼指令3~4 ;編譯 路徑PATH4具有彼此相關(guān)的元件指令2及5與程序碼指令3及5 ;編譯路徑PATH5具有彼 此相關(guān)的元件指令2與程序碼指令1~2 ;以及編譯路徑PATH6具有彼此相關(guān)的元件指令5 與程序碼指令1~2及5。
[0044] 接下來,運(yùn)算處理單元120將根據(jù)元件風(fēng)險(xiǎn)數(shù)據(jù)及程序碼風(fēng)險(xiǎn)數(shù)據(jù)進(jìn)一步預(yù)測(cè)每 一編譯路徑具有安全性弱點(diǎn)或惡意行為的風(fēng)險(xiǎn)程度及風(fēng)險(xiǎn)檢測(cè)時(shí)間,以據(jù)此將多個(gè)編譯路 徑分類為多個(gè)風(fēng)險(xiǎn)測(cè)試項(xiàng)目(步驟S340)。在本實(shí)施例中,元件風(fēng)險(xiǎn)數(shù)據(jù)及程序碼風(fēng)險(xiǎn)數(shù) 據(jù)儲(chǔ)存在儲(chǔ)存單元130之中,以據(jù)此提供運(yùn)算處理單元120預(yù)測(cè)每一編譯路徑具有安全性 弱點(diǎn)或惡意行為的風(fēng)險(xiǎn)程度及風(fēng)險(xiǎn)檢測(cè)時(shí)間。在此,元件風(fēng)險(xiǎn)數(shù)據(jù)根據(jù)開放網(wǎng)絡(luò)應(yīng)用安 全計(jì)劃(OpenWebApplicationSecurityProject,OWASP)及電腦安全風(fēng)險(xiǎn)管理(NIST securityguideline)其中之一或其組合來制作。同樣地,程序碼風(fēng)險(xiǎn)數(shù)據(jù)也為根據(jù)開放網(wǎng) 絡(luò)應(yīng)用安全計(jì)劃及電腦安全風(fēng)險(xiǎn)管理其中之一或其組合來制作。在本實(shí)施例中,元件風(fēng)險(xiǎn) 數(shù)據(jù)包含每一元件指令的行為描述、預(yù)測(cè)風(fēng)險(xiǎn)值、及預(yù)測(cè)執(zhí)行時(shí)間,以據(jù)此編輯元件指令的 元件風(fēng)險(xiǎn)值及元件執(zhí)行時(shí)間。程序碼風(fēng)險(xiǎn)數(shù)據(jù)包含每一程序碼指令的行為描述、預(yù)測(cè)風(fēng)險(xiǎn) 值、及預(yù)測(cè)執(zhí)行時(shí)間,以據(jù)此編輯程序碼指令的程序碼風(fēng)險(xiǎn)值及程序碼執(zhí)行時(shí)間。當(dāng)然,元 件風(fēng)險(xiǎn)數(shù)據(jù)及程序碼風(fēng)險(xiǎn)數(shù)據(jù)也可通過使用者自行定義的方式來制作,本發(fā)明并不對(duì)此作 限制。
[0045] 承接上述例子,請(qǐng)同時(shí)參考圖4~5及表2A~2B。如表2A所示,元件風(fēng)險(xiǎn)數(shù)據(jù)具 有元件指令1~5。元件指令1~5分別對(duì)應(yīng)到元件風(fēng)險(xiǎn)值及元件執(zhí)行時(shí)間,且元件風(fēng)險(xiǎn)值 越高代表對(duì)應(yīng)的元件指令具有安全性弱點(diǎn)或惡意行為的風(fēng)險(xiǎn)程度越大。
[0046]〈表 2A>
[0047]
[0048] 如表2B所示,程序碼風(fēng)險(xiǎn)數(shù)據(jù)具有程序碼指令1~5及程序碼執(zhí)行時(shí)間〇程序碼 指令1~5分別對(duì)應(yīng)到程序碼風(fēng)險(xiǎn)值及程序碼執(zhí)行時(shí)間,且程序碼風(fēng)險(xiǎn)值越高代表對(duì)應(yīng)的 程序碼指令具有安全性弱點(diǎn)或惡意行為的風(fēng)險(xiǎn)程度越大。
[0049]〈表 2B>
[0050]
[0051] 因此,若在編譯路徑中出現(xiàn)元件指令1,運(yùn)算處理單元120將記錄元件指令1的元 件風(fēng)險(xiǎn)值為1及其元件執(zhí)行時(shí)間為1分。同樣地,若在編譯路徑中出現(xiàn)程序碼指令5,運(yùn)算 處理單元120將記錄程序碼指令5的程序碼風(fēng)險(xiǎn)值為5及其程序碼執(zhí)行時(shí)間為5分。而運(yùn) 算處理單元120亦依照同樣的方式來判斷元件指令2~5及程序碼指令1~4,以記錄對(duì)應(yīng) 的元件風(fēng)險(xiǎn)值、元件執(zhí)行時(shí)間、程序碼風(fēng)險(xiǎn)值、及程序碼執(zhí)行時(shí)間。
[0052] 為了方便說明,以下運(yùn)算處理單元120將利用圖4的編譯路徑PATH1~PATH6來 記錄元件指令及程序碼指令的元件風(fēng)險(xiǎn)值、元件執(zhí)行時(shí)間、程序碼風(fēng)險(xiǎn)值、及程序碼執(zhí)行時(shí) 間,以據(jù)此預(yù)測(cè)編譯路