TWI557594B - 電子裝置的自我修復方法、系統及伺服器 - Google Patents

電子裝置的自我修復方法、系統及伺服器 Download PDF

Info

Publication number
TWI557594B
TWI557594B TW104117810A TW104117810A TWI557594B TW I557594 B TWI557594 B TW I557594B TW 104117810 A TW104117810 A TW 104117810A TW 104117810 A TW104117810 A TW 104117810A TW I557594 B TWI557594 B TW I557594B
Authority
TW
Taiwan
Prior art keywords
electronic device
component
update
policy
module
Prior art date
Application number
TW104117810A
Other languages
English (en)
Other versions
TW201643766A (zh
Inventor
陳志明
Original Assignee
緯創資通股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 緯創資通股份有限公司 filed Critical 緯創資通股份有限公司
Priority to TW104117810A priority Critical patent/TWI557594B/zh
Priority to CN201510332937.3A priority patent/CN106293798B/zh
Priority to US14/924,722 priority patent/US10075477B2/en
Application granted granted Critical
Publication of TWI557594B publication Critical patent/TWI557594B/zh
Publication of TW201643766A publication Critical patent/TW201643766A/zh
Priority to US16/049,820 priority patent/US10397281B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

電子裝置的自我修復方法、系統及伺服器
本發明是有關於一種更新方法及系統,且特別是有關於一種在電子裝置更新時執行自我修復的方法、系統及伺服器。
為了滿足企業員工或用戶的使用需求,企業內部的電腦數量會隨著企業規模的成長不斷地增加。而面對日新月異的惡意軟體,企業的網管人員為了確保資訊安全及服務品質,必須適時地修改或更新電腦系統。受惠於先進的網路技術,網管人員在對企業內部電腦執行更新時,已不再需要親自前往,只需透過網路即可在遠端控制每一台電腦,並進行更新。
然而,每台電腦的規格及運行環境均不相同,若執行完更新後發生問題,由於電腦並無智慧可以自動排除問題,此時只能仰賴網管人員修復錯誤。而對為數眾多的電腦進行更新及修復將成為網管人員沈重的負擔。
本發明提供一種電子裝置的自我修復方法、系統及伺服器,藉由遠端伺服器分析電子裝置執行更新後所產生的缺陷(bug)或安全漏洞(security hole),據以制定修復政策提供給電子裝置,可實現電子裝置的自我修復。
本發明的電子裝置的自我修復方法,適於在更新於電子裝置中的至少一個元件時執行自我修復。此方法依序呼叫並檢查這些元件,以對各個元件執行更新,接著對更新後的電子裝置執行自我診斷以產生診斷結果,並將診斷結果傳送至伺服器。由伺服器分析診斷結果,據以制定用以修復電子裝置的至少一項政策(policy),並將政策回傳至電子裝置。電子裝置即可將此政策轉換為其適用的至少一個規則,並據以執行自我修復。
在本發明的一實施例中,上述依序呼叫並檢查元件,以對各個元件執行更新的步驟包括取得電子裝置所安裝之元件的複製(clone),依序呼叫複製中的元件,以檢查各個元件是否具有更新。若具有更新,將此元件的上下文(context)推送至堆疊,對此元件執行更新,自此堆疊提取並修改上下文,使用此複製對更新後的元件及修改後的上下文進行模擬,以確認修改後的元件及上下文的健全性(sanity)。若修改後的元件及上下文具有健全性,使用此複製更新電子裝置中對應的元件。最後,繼續呼叫下一個元件以進行更新,直到所有元件均更新完畢為止。
在本發明的一實施例中,上述對元件執行更新的步驟包 括修改元件的檔案標頭(header)、程序標頭、檔案內容的相對偏移量(offset)或程序內容的絕對偏移量。
在本發明的一實施例中,上述依序呼叫複製中的元件的步驟包括依照各個元件的參數排序這些元件,以依序呼叫這些元件,所述參數包括風險層級(risk level)、嚴重性(severity)或優先級(priority)。
在本發明的一實施例中,上述自堆疊提取修改後的上下文的步驟更包括比較修改前後的上下文,以轉換修改後之上下文的暫存器、堆積變數(heap variables)、驅動程式介面(driver interface)、函式庫相依(library dependencies)、環境變數(environment variables)其中之一或其組合。
在本發明的一實施例中,上述由伺服器分析診斷結果,據以制定用以修復電子裝置的政策的步驟包括由伺服器對診斷結果執行異常偵測,以找出多個異常(outlier),接著摘取(extract)這些異常中的多個特徵以產生特徵向量,然後以樣本(sample)跟分類(label)的特徵向量做為聯合特徵函數(joint feature function)的輸入執行結構預測(structured prediction)演算法,以預測用以修復電子裝置的政策。
在本發明的一實施例中,上述以特徵向量做為輸入執行結構預測演算法,以預測用以修復電子裝置的政策的步驟包括使用半監督式學習法建立機器學習模型,將樣本跟分類的特徵向量輸入此機器學習模型,以獲得多個預測輸出的特徵向量。然後, 將所輸入的特徵向量及所獲得的預測輸出的特徵向量結合以產生聯合特徵函數。最後,將聯合特徵函數回饋至機器學習模型,以訓練機器學習模型,並預測用以修復電子裝置的政策。
在本發明的一實施例中,上述將政策轉換為電子裝置適用的規則,並據以執行自我修復的步驟包括將這些規則融合於對應元件的函數(function)、將這些規則覆蓋於對應元件的函數,或是將對應元件的函數移除後加入這些規則。
本發明的電子裝置的自我修復系統包括電子裝置及伺服器。此電子裝置包括第一通訊模組、元件更新模組、自我診斷模組及自我修復模組。其中,第一通訊模組是用以連接網路;元件更新模組是用以依序呼叫並檢查安裝於電子裝置中的至少一個元件,以對各個元件執行更新;自我診斷模組是用以對更新後的電子裝置執行自我診斷以產生診斷結果,並透過第一通訊模組傳送診斷結果。伺服器包括第二通訊模組及政策制定模組。其中,第二通訊模組是用以連接網路並透過網路接收第一通訊模組傳送的診斷結果;政策制定模組則用以分析診斷結果,據以制定用以修復電子裝置的至少一項政策,並透過第二通訊模組將此政策回傳至電子裝置。其中,電子裝置的自我修復模組會將此政策轉換為電子裝置適用的規則,並據以執行電子裝置的自我修復。
在本發明的一實施例中,上述的元件更新模組包括取得電子裝置所安裝之元件的複製,依序呼叫複製中的元件,以檢查各個元件是否具有更新,將具有更新之元件的上下文推送至堆 疊,對此元件執行更新,自堆疊提取並修改上下文,然後使用複製對更新後的元件及修改後的上下文進行模擬,以確認修改後的元件及上下文的健全性。在修改後的元件及上下文具有健全性時,使用複製更新電子裝置中對應的元件,並繼續呼叫下一個元件以進行更新,直到所有元件均更新完畢為止。
在本發明的一實施例中,上述的元件更新模組包括修改元件的檔案標頭、程序標頭、檔案內容的相對偏移量或程序內容的絕對偏移量。
在本發明的一實施例中,上述的元件更新模組包括依照各個元件的參數排序元件,以依序呼叫元件,所述參數包括風險層級、嚴重性或優先級。
在本發明的一實施例中,上述的元件更新模組包括在自堆疊提取上下文時,比較修改前後的上下文,以轉換修改後之上下文的暫存器、堆積變數(heap variables)、驅動程式介面(driver interface)、函式庫相依(library dependencies)、環境變數(environment variables)其中之一或其組合。
在本發明的一實施例中,上述的政策制定模組包括異常偵測模組、特徵摘取模組及結構預測模組。其中,異常偵測模組是用以對診斷結果執行異常偵測,以找出多個異常;特徵摘取模組是用以摘取異常中的多個特徵以產生特徵向量;結構預測模組則是用以以樣本跟分類的特徵向量做為聯合特徵函數的輸入執行結構預測演算法,以預測用以修復電子裝置的政策。
在本發明的一實施例中,上述的結構預測模組包括使用半監督式學習法建立機器學習模型,將樣本跟分類的特徵向量輸入此機器學習模型,獲得多個預測輸出的特徵向量,將所輸入的特徵向量及所獲得的預測輸出的特徵向量結合以產生聯合特徵函數,以及將此聯合特徵函數回饋至機器學習模型,以訓練機器學習模型,並預測用以修復電子裝置的政策。
在本發明的一實施例中,上述的自我修復模組包括將規則融合於對應元件的函數、將規則覆蓋於對應元件的函數,或是將對應元件的函數移除後加入規則。
本發明的伺服器包括通訊模組及政策制定模組。其中,通訊模組是用以連接網路並透過網路接收電子裝置上傳的診斷結果,此診斷結果是由電子裝置對所安裝之元件執行更新後執行自我診斷所產生的;政策制定模組是用以分析診斷結果,據以制定用以修復電子裝置的至少一項政策,並透過通訊模組將政策回傳至電子裝置,使得電子裝置可據以執行自我修復。
基於上述,本發明的電子裝置的自我修復方法、系統及伺服器,藉由電子裝置在執行更新後進行自我維護,若無法自行維護元件良好地運行,則將自我診斷的結果傳送至伺服器上,由伺服器利用機器學習模型制定自我修復的政策並提供給電子裝置,而由電子裝置據此進行自我修復。藉此,可減輕網管人員維護的負擔,並可提供穩定的服務品質。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉 實施例,並配合所附圖式作詳細說明如下。
10、20‧‧‧自我修復系統
12、14、22‧‧‧電子裝置
16‧‧‧更新伺服器
18‧‧‧雲端伺服器
222、242‧‧‧通訊模組
224‧‧‧元件更新模組
226‧‧‧自我診斷模組
228‧‧‧自我修復模組
24‧‧‧伺服器
244‧‧‧政策制定模組
2442‧‧‧異常偵測模組
2444‧‧‧特徵摘取模組
2446‧‧‧結構預測模組
S302~S308、S402~S420、S602~S606、S702~S708‧‧‧步驟
圖1是依照本發明一實施例所繪示之電子裝置的自我修復系統的示意圖。
圖2是依照本發明一實施例所繪示之電子裝置的自我修復系統的方塊圖。
圖3是依據本發明一實施例所繪示的電子裝置的自我修復方法的流程圖。
圖4是依照本發明一實施例所繪示之元件更新方法的流程圖。
圖5是依照本發明一實施例所繪示之政策制定模組的方塊圖。
圖6是依照本發明一實施例所繪示之政策制定方法的流程圖。
圖7是依照本發明一實施例所繪示之結構預測方法的流程圖。
參考服務層級協議(Service Level Agreement,SLA)的規定,為了在電腦更新元件時保持服務品質(Quality of Service,QoS),本發明係採用漸近式(incremental)更新的方式,依序更新元件,避免更新影響服務的運行。若在更新後發現無法自行維護,則由雲端伺服器利用機器學習模型(machine learning model,MLM)分析電子裝置的自我診斷資訊並制定可供電子裝置自我修 復的政策,交由電子裝置轉化為本身適用的規則後據以實施。藉此,可在不影響電子裝置服務運行的情況下,確保服務的良好運行。
圖1是依照本發明一實施例所繪示之電子裝置的自我修復系統的示意圖。請參照圖1,本實施例的自我修復系統10包括透過網路連接的電子裝置12、14、更新伺服器16及雲端伺服器18。電子裝置12、14例如是位於企業內部的電腦、工作站或伺服器,其可服務企業員工或用戶。
以電子裝置12為例,其中安裝有類似人體自律神經的管理程式,其可呼叫電子裝置12中的元件,並透過網路連線至更新伺服器16,以檢查其中的更新倉儲(respiratory)是否有新版的元件。若有,則進行更新。其中,電子裝置12例如是採用應用攔截(application hook)或預設時間或預設條件等主動式更新的方式進行更新;電子裝置12亦可採用例外處理(exception handler)等被動式更新的方式進行更新,本實施例並不限制更新方式。
管理程式例如是採用漸近式更新的方式,只下載元件的新增部分並附加到現有的元件檔案上,不需要下載整個元件檔案,藉此可降低更新元件所需的頻寬。此更新只會約略延遲電子裝置12的服務,並不會造成服務中斷,也無需重新啟動電子裝置12。
在更新完成後,管理程式會進一步檢查更新後的軟體是否有缺陷(bug)或安全漏洞(security hole),並嘗試自我維護 (self-maintain)。若無法自行維護元件良好地運行,管理程式就會發揮自我診斷的功能,發出一個健康失調的診斷結果給雲端伺服器18。雲端伺服器18將會使用機器學習模型分析電子裝置12提供的診斷結果,並產生用以修復電子裝置12的政策,下達給電子裝置12的代理人程序(agent)。此代理人程序會將政策轉換為電子裝置12適用的多個規則,並套用在原本的函式(function)上,最終實現電子裝置12的自體修復。
詳細來說,圖2是依照本發明一實施例所繪示之電子裝置的自我修復系統的方塊圖。請參照圖2,本實施例的自我修復系統20包括電子裝置22及伺服器24。其中,電子裝置22例如是具有運算能力的伺服器、工作站或個人電腦等計算機裝置,或是手機、平板電腦等行動裝置;伺服器24例如是具有強大運算能力的工作群組級伺服器,部門級伺服器或企業級伺服器,其可用以管理資源並透過網路對外部用戶提供服務,但本實施例不限於此。
電子裝置22包括通訊模組222、元件更新模組224、自我診斷模組226與自我修復模組228。伺服器24包括通訊模組242與政策制定模組244。在本實施例中,這些模組例如是儲存在電子裝置22或伺服器24的儲存裝置(未繪示)中的程式或軟體,其可載入電子裝置22或伺服器24的處理器(未繪示),而由處理器執行,以實現本發明實施例的自我修復方法。另一方面,在另一實施例中,這些模組亦可以實做為具有這些模組的功能的實體電路或是軟硬體的組合,而可實現本發明實施例的自我修復方法。
所述的儲存裝置例如是任何型態的固定或可移動隨機存取記憶體(Random Access Memory,RAM)、唯讀記憶體(Read-Only Memory,ROM)、快閃記憶體(Flash Memory)或類似元件或上述元件的組合。需說明的是,本實施例中所述儲存單元並未限制是單一記憶體元件,上述模組亦可以分開儲存在兩個或兩個以上相同或不同型態之記憶體元件中。
所述的處理器連接儲存裝置,其例如是具有單核心或多核心的中央處理單元(Central Processing Unit,CPU),或是其他可程式化之一般用途或特殊用途的微處理器(Microprocessor)、數位信號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)或其他類似元件或上述元件的組合。在本實施例中,處理器用以存取並執行儲存裝置中記錄的模組,從而實現本發明實施例的自我修復方法。本實施例中所述處理單元並未限制是單一處理元件,也可以是由兩個或兩個以上之處理元件共同執行。
圖3是依據本發明一實施例所繪示的電子裝置的自我修復方法的流程圖。請同時參照圖2與圖3,本實施例的方法適用於圖2的自我修復系統20。以下即搭配自我修復系統20中的各項元件,說明本實施例自我修復方法的詳細流程。
首先,由電子裝置22的元件更新模組224依序呼叫並檢查安裝於電子裝置22中的元件,以對各個元件執行更新(步驟S302)。所述的元件包括電子裝置22的應用程式、核心(kernel)、 驅動程式、基本輸入輸出系統(Basic Input and Output System,BIOS)中的所有二進制資料(binaries),例如程序(process)、執行檔(executable)和韌體(firmware),但本實施例不限於此。
詳言之,圖4是依照本發明一實施例所繪示之元件更新方法的流程圖。請同時參照圖2及圖4,在電子裝置執行元件更新時,元件更新模組224例如會先取得電子裝置所安裝之元件的複製(clone)(步驟S402)。此複製例如是電子裝置中與該元件相關之資料的可讀寫快照(snapshot),其可提供元件更新模組224對所更新的元件預先進行模擬及測試,待確認無誤後,再把結果生效到電子裝置上,藉此可避免直接更新所可能造成的錯誤。
接著,元件更新模組224會依序呼叫此複製中的元件,並判斷是否還有其他元件未呼叫(步驟S404)。其中,元件更新模組224例如會依照各個元件的風險層級(risk level)、嚴重性(severity)、優先級(priority)或其他參數對這些元件進行排序,並依照順序呼叫這些元件,而逐一進行更新。
若元件更新模組224判斷仍有元件未呼叫,則在呼叫此元件後,會檢查此元件是否具有更新(步驟S406)。其中,元件更新模組224例如會透過通訊模組222連結至網路上的更新伺服器,檢查是否有新版的元件可供更新。其中,若此元件不具有更新,則會回到步驟S404,繼續由元件更新模組224依序呼叫下一個元件;反之,若此元件具有更新,則元件更新模組224會先將複製中的元件的上下文(context)推送至堆疊(步驟S408),並對 此元件執行更新(步驟S410)。其中,元件更新模組224例如會修改元件的檔案標頭(header)、程序標頭、檔案內容的相對偏移量(offset)或程序內容的絕對偏移量,但本實施例不限於此。
然後,元件更新模組224自此堆疊提取並修改上下文(步驟S412)。其中,若採用上下文感知(context aware)的做法,提取回來的上下文可以在新版的元件中繼續使用;然而,若上下文在更新中有所改變,則需要做進一步的轉換。此時,元件更新模組224在自堆疊提取上下文之後,會比較修改前後的上下文,例如會檢查上下文中使用的暫存器是否改變,而據以轉換修改後之上下文的暫存器、堆積變數(heap variables)、驅動程式介面(driver interface)、函式庫相依(library dependencies)、環境變數(environment variables)其中之一或其組合。
在修改完成後,元件更新模組224會使用複製對更新後之元件及修改後的上下文進行模擬(步驟S414),以確認更新後之元件及上下文是否具有健全性(sanity)(步驟S416)。其中,若元件更新模組224在進行模擬時發現更新後之元件及上下文具有缺陷(bug)或安全漏洞(security hole),即認定此更新後之元件及上下文不具有健全性,而結束更新(步驟S420)。
若元件更新模組224確認更新後之元件及其上下文具有健全性,則會使用複製更新電子裝置中對應的元件(步驟S418),並回到步驟S404,繼續呼叫下一個元件以進行更新。其中,元件更新模組224在使用複製更新元件時,例如會先暫停(suspend) 電子裝置運行中的程序,待更新元件後,再回復正常運作,藉此避免更新過程所可能造成的資料錯誤。直到所有元件均更新完畢時,意即,在步驟S404中,元件更新模組224判斷沒有元件未被呼叫時,元件更新模組224將會結束更新(步驟S420)。
本實施例藉由上述依序更新元件的漸近式修補(incremental patch)方式,取代完整修補(full patch)方式,因此更新只會約略延遲電子裝置22的服務,不會造成服務中斷。藉此,電子裝置22在更新的過程中仍可維持服務的運行。此外,電子裝置22還可利用計時器定時觸發元件更新模組224檢查電子裝置22中的元件是否具有更新,並據以執行元件更新及本實施例的自我修復方法。藉此,可確保電子裝置22的服務品質(Quality of Service,QoS)。
需說明的是,在上述實施例中,對於所更新元件的模擬及測試均是在電子裝置22的內部執行。然而,在其他實施例中,在網路頻寬允許的情況下,亦可由網路上的其他電子裝置(例如圖1中的電子裝置14)或是雲端伺服器(例如圖1中的雲端伺服器18)代為執行。意即,由其他裝置或是雲端伺服器取得複製並進行更新及模擬,待模擬結束後,再將修改後的複製回傳電子裝置22,以更新電子裝置22中對應的元件,同樣可達到元件更新的效果。
回到圖3的流程,在元件更新模組224完成元件的更新後,電子裝置22的自我診斷模組226即會對更新後的電子裝置22 執行自我診斷以產生診斷結果,並透過通訊模組222將此診斷結果傳送至伺服器24(步驟S304)。其中,自我診斷模組226例如是安裝在電子裝置22上類似防毒軟體的管理程式,其會檢查更新後的電子裝置22是否存在缺陷或安全漏洞,若發現有缺陷或安全漏洞,則會先嘗試自我維護。若無法自我維護,則自我診斷模組226即會發揮自我診斷(self-diagnose)的功能,將所發現的問題、症狀(syndrome)連同電子裝置22的環境參數做為診斷結果發送至伺服器24。
伺服器24係由通訊模組242接收電子裝置22傳送的診斷結果,而由政策制定模組244對此診斷結果進行分析,並據以制定用以修復電子裝置22的政策,然後再透過通訊模組242將此政策回傳至電子裝置22(步驟S306)。其中,政策制定模組244例如是藉由訓練一個使用半監督式學習法(semi-supervised learning)所建立的機器學習模型來產生可用以修復電子裝置22的政策。
詳言之,圖5是依照本發明一實施例所繪示之政策制定模組的方塊圖。圖6是依照本發明一實施例所繪示之政策制定方法的流程圖。請同時參照圖5及圖6,本實施例說明圖2中政策制定模組244的細部構件及其功能。其中,政策制定模組244包括異常偵測模組2442、特徵摘取模組2444及結構預測模組2446。以下即搭配上述元件,說明本實施例政策制定方法的詳細流程。
首先,由異常偵測模組2442對所接收的診斷結果執行異 常偵測,以找出多個異常(outlier)(步驟S602)。此異常例如包括在診斷結果中與其他資料集合有顯著不同的總體異常(global outlier)、根據資料的特定上下文所得到的內容異常(contextual outlier),以及發生在特定子集合上的集合異常(collective outlier)。
接著,由特徵摘取模組2444摘取所偵測之異常中的多個特徵以產生特徵向量(步驟S604)。此特徵摘取是特徵選取的延伸,其是將資料集合由高維度的空間投影到低維度的空間,其與特徵選取最大的不同在於挑選出的集合可以由原本的特徵經過線性或非線性的運算組合而成。其中,若將每一筆資料的每一個特徵視為是這筆資料的座標,則全部的資料即可視為是一群分佈在高維度空間中的點,而每筆資料的特徵數目即為此筆資料的維度。
最後,由結構預測模組2446以樣本(sample)跟分類(label)的特徵向量做為聯合特徵函數(joint feature function)的輸入執行結構預測演算法,以預測用以修復電子裝置的政策(步驟S606)。其中,結構預測模組2446係藉由訓練一個使用半監督式學習法所建立的機器學習模型來產生可用以修復電子裝置22的政策。
詳言之,圖7是依照本發明一實施例所繪示之結構預測方法的流程圖。請同時參照圖5、圖6及圖7,本實施例係進一步說明圖6中步驟S606的詳細步驟。
首先,結構預測模組2446會使用半監督式學習法建立一 個機器學習模型(步驟S702)。此半監督式學習法是同時使用少量的已標記資料(labeled)及大量的未標記(unlabeled)資料來訓練機器學習模型(例如是一個函數),並根據此模型預測新的資料。由於半監督式學習法不需要花費太多時間去標記資料,而且可以得到更高的分類正確性。因此,藉由採用半監督式學習法,本實施例僅需提供少量樣本,即可得到較佳的預測結果。
接著,結構預測模組2446會將特徵摘取模組2444所摘取的樣本跟分類的特徵向量輸入上述的機器學習模型,以獲得多個預測輸出的特徵向量(步驟S704)。其中,結構預測模組2446例如會觀察一些訓練資料(包括輸入物件和預期輸出)後,去預測這個模型(函數)對任何可能出現的輸入值的輸出。機器學習模型的準確度與輸入的物件如何表示有很大的關聯,本實施例係將輸入的物件轉化成一個特徵向量,其中包含了許多關於描述物件的特徵。
然後,結構預測模組2446會將所輸入的特徵向量及所獲得的預測輸出的特徵向量結合以產生聯合特徵函數(步驟S706)。其中,結構預測模組2446例如是將訓練樣本(即特徵向量)x與候選預測(candidate prediction)y映射到長度為n的向量上,此x、y可以採用任何結構,n則是依問題而定,但對於每個模型而言是固定的。
最後,結構預測模組2446會將此聯合特徵函數做為訓練資料回饋至機器學習模型,藉此訓練機器學習模型,最終並可預 測用以修復電子裝置22的政策(步驟S708)。上述政策中例如包含多個線索(hint),這些線索定義裝置中的特定物件應執行的動作,而可供電子裝置22據以實施。
藉由上述的半監督式學習法,本實施例僅需藉由少量的訓練資料來預測機器學習模型,並使用大量的未標記資料來訓練機器學習模型。藉此,本實施例僅需提供少量樣本(即上述的特徵向量),即可得到較佳的預測結果。
回到圖3的流程,最後,當電子裝置22經由通訊模組222接收到伺服器21回傳的政策時,自我修復模組228即會將此政策轉換為電子裝置22適用的規則,並據以執行自我修復(步驟S308)。其中,電子裝置22轉換規則的方式可區分兩種:一種是將上述的規則融合於對應元件的函數(function);另一種則是先將對應元件的函數移除後再加入所述規則,本實施例並不限於此。
詳言之,自我修復模組228例如是將原始的函數與套用規則來修改的函數並排(side by side)在一起比較,若差異不大,則自我修復模組228會將此差異部分融合於原始函數;反之,若差異較大,則可以直接以所述規則覆蓋對應元件的函數,或是將對應元件的函數移除後再加入所述規則。
藉由上述的自我修復方法,電子裝置可避免元件的更新影響到服務的運行,而藉由伺服器協助分析更新結果並制定修復政策,電子裝置即可自我修復更新後的缺陷或安全漏洞,從而提供較佳且安全的服務。
以下以電腦更新核心/驅動程式為例,說明上述的自我修復方法。本實施例的電腦係採用Linux作業系統,此作業系統具有一個更新服務程式(update daemon),其會定時到更新伺服器上的更新倉儲檢查更新。當此服務程式發現有更新但卻無法確保更新後系統的健全性時,就會尋求雲端伺服器的協助,而將電腦的自我診斷資料傳送至雲端伺服器,由雲端伺服器上的機器學習模型進行分析。此診斷資料包括電腦的環境參數、問題、症狀等資料,但不限於此。
雲端伺服器將會利用機器學習模型分析診斷資料,而制定用以修復電腦的政策,並傳送至電腦。此政策中例如包括核心/驅動程式的相依關係(dependencies)、硬體相容表列(hardware compatibility list)等資訊。此時,電腦上的代理人程序(agent)會將此政策轉換為函數符號表(function symbol table)、檔案異動(file diff)等規則,並嘗試將此規則融入核心/驅動程式的二進制資料(例如ELF執行檔)的函數中,或是將原始函數移除後再加入套用此規則的函數。藉此,本實施例的電腦即可在更新的同時修復更新所可能造成的程式缺陷或安全漏洞。
綜上所述,本發明之電子裝置的自我修復方法、系統及伺服器採用漸近式修補的方式主動或被動地對安裝在電子裝置上的元件進行更新,而不影響電子裝置服務的運行。電子裝置在執行完更新後若無法自行維護元件良好運行,則會自動將自我診斷的結果傳送至伺服器上,由伺服器利用機器學習模型產生自我修 復的政策並提供給電子裝置。最後,電子裝置只需將此政策轉換為本身適用的規則,即可實現自我修復。藉此,可減輕網管人員維護的負擔,並可提供穩定的服務品質。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S302~S308‧‧‧步驟

Claims (19)

  1. 一種電子裝置的自我修復方法,適於在更新於一電子裝置中的至少一元件時執行自我修復,該方法包括下列步驟:依序呼叫並檢查所述元件,以對各所述元件執行更新;執行自我診斷於更新後的該電子裝置以產生一診斷結果,並傳送該診斷結果至一伺服器;由該伺服器分析該診斷結果,據以制定用以修復該電子裝置的至少一政策(policy),並回傳該至少一政策至該電子裝置;以及轉換該至少一政策為該電子裝置適用的至少一規則,並據以執行自我修復。
  2. 如申請專利範圍第1項所述的方法,其中依序呼叫並檢查所述元件,以對各所述元件執行更新的步驟包括:取得該電子裝置所安裝之所述元件的一複製(clone);依序呼叫該複製中的所述元件,以檢查各所述元件是否具有一更新;若具有該更新,推送該元件的上下文(context)至一堆疊,對該元件執行該更新,自該堆疊提取並修改該上下文;使用該複製對修改後的該上下文及該更新進行模擬,以確認該上下文及該更新的健全性(sanity);若該上下文及該更新具有該健全性,使用該複製更新該電子裝置中對應的該元件;以及 繼續呼叫下一所述元件以進行更新,直到所述元件均更新完畢為止。
  3. 如申請專利範圍第2項所述的方法,其中對該元件執行該更新的步驟包括:修改該元件的檔案標頭(header)、程序標頭、檔案內容的相對偏移量(offset)或程序內容的絕對偏移量。
  4. 如申請專利範圍第2項所述的方法,其中依序呼叫該複製中的所述元件的步驟包括:依照各所述元件的至少一參數排序所述元件,以依序呼叫所述元件,所述參數包括風險層級(risk level)、嚴重性(severity)或優先級(priority)。
  5. 如申請專利範圍第2項所述的方法,其中自該堆疊提取修改後的該上下文的步驟更包括:比較修改前後的該上下文,轉換修改後之該上下文的至少一暫存器、堆積變數(heap variables)、驅動程式介面(driver interface)、函式庫相依(library dependencies)、環境變數(environment variables)其中之一或其組合。
  6. 如申請專利範圍第1項所述的方法,其中由該伺服器分析該診斷結果,據以制定用以修復該電子裝置的該至少一政策的步驟包括:該伺服器對該診斷結果執行異常偵測,以找出多個異常(outlier); 摘取(extract)所述異常中的多個特徵以產生特徵向量;以及以樣本(sample)跟分類(label)的該特徵向量做為一聯合特徵函數(joint feature function)的輸入執行一結構預測(structured prediction)演算法,以預測用以修復該電子裝置的該至少一政策。
  7. 如申請專利範圍第6項所述的方法,其中以樣本跟分類的該特徵向量做為該聯合特徵函數的輸入執行該結構預測演算法,以預測用以修復該電子裝置的該至少一政策的步驟包括:使用半監督式學習法建立一機器學習模型;輸入樣本跟分類的該特徵向量於該機器學習模型,獲得多個預測輸出的特徵向量;結合所輸入的該特徵向量及所獲得的所述預測輸出的特徵向量以產生該聯合特徵函數;以及回饋該聯合特徵函數至該機器學習模型,以訓練該機器學習模型,並預測用以修復該電子裝置的該至少一政策。
  8. 如申請專利範圍第1項所述的方法,其中轉換該至少一政策為該電子裝置適用的所述規則,並據以執行自我修復的步驟包括:融合所述規則於對應之該元件的函數(function)、覆蓋所述規則於對應之該元件的函數,或是移除對應之該元件的函數後加入所述規則。
  9. 一種電子裝置的自我修復系統,包括: 一電子裝置,包括:一第一通訊模組,連接網路;一元件更新模組,依序呼叫於該電子裝置中的至少一元件,以對各所述元件執行更新;一自我診斷模組,執行自我診斷於更新後的該電子裝置以產生一診斷結果,並透過該第一通訊模組傳送該診斷結果;以及一自我修復模組;以及一伺服器,包括:一第二通訊模組,連接該網路,並透過該網路接收該第一通訊模組傳送的該診斷結果;以及一政策制定模組,分析該診斷結果,據以制定用以修復該電子裝置的至少一政策,並透過該第二通訊模組回傳該至少一政策至該電子裝置,其中該電子裝置的該自我修復模組轉換該至少一政策為該電子裝置適用的至少一規則,並據以執行該電子裝置的自我修復。
  10. 如申請專利範圍第9項所述的系統,其中該元件更新模組包括取得該電子裝置所安裝之所述元件的一複製,依序呼叫該複製中的所述元件,以檢查各所述元件是否具有一更新,推送具有該更新之該元件的上下文至一堆疊,對該元件執行該更新,自該堆疊提取並修改上下文,使用該複製對修改後的該上下文及該更新進行模擬,以確認該上下文及該更新的健全性,並在該上下文及該更新具有該健全性時,使用該複製更新該電子裝置中對應 的該元件,並繼續呼叫下一所述元件以進行更新,直到所述元件均更新完畢為止。
  11. 如申請專利範圍第10項所述的系統,其中該元件更新模組包括修改該元件的檔案標頭、程序標頭、檔案內容的相對偏移量或程序內容的絕對偏移量。
  12. 如申請專利範圍第10項所述的系統,其中該元件更新模組包括依照各所述元件的至少一參數排序所述元件,以依序呼叫所述元件,所述參數包括風險層級、嚴重性或優先級。
  13. 如申請專利範圍第10項所述的系統,其中該元件更新模組包括在自該堆疊提取修改後的該上下文時,比較修改前後的該上下文,以轉換修改後之該上下文的至少一暫存器、堆積變數、驅動程式介面、函式庫相依、環境變數其中之一或其組合。
  14. 如申請專利範圍第9項所述的系統,其中該政策制定模組包括:一異常偵測模組,對該診斷結果執行異常偵測,以找出多個異常;一特徵摘取模組,摘取所述異常中的多個特徵以產生特徵向量;以及一結構預測模組,以樣本跟分類的該特徵向量做為一聯合特徵函數的輸入執行一結構預測演算法,以預測用以修復該電子裝置的該至少一政策。
  15. 如申請專利範圍第14項所述的系統,其中該結構預測模 組包括使用半監督式學習法建立一機器學習模型,將樣本跟分類的該特徵向量輸入該機器學習模型,獲得多個預測輸出的特徵向量,結合所輸入的該特徵向量及所獲得的所述預測輸出的特徵向量以產生該聯合特徵函數,以及將該聯合特徵函數回饋至該機器學習模型,以訓練該機器學習模型,並預測用以修復該電子裝置的該至少一政策。
  16. 如申請專利範圍第9項所述的系統,其中該自我修復模組包括融合所述規則於對應之該元件的函數、覆蓋所述規則於對應之該元件的函數,或是移除對應之該元件的函數後加入所述規則。
  17. 一伺服器,包括:一通訊模組,連接網路並透過該網路接收一電子裝置上傳的一診斷結果,其中該診斷結果是由該電子裝置對所安裝之至少一元件執行更新後執行自我診斷所產生的;以及一政策制定模組,分析該診斷結果,據以制定用以修復該電子裝置的至少一政策,並透過該通訊模組回傳該至少一政策至該電子裝置,使得該電子裝置據以執行自我修復。
  18. 如申請專利範圍第17項所述的伺服器,其中該政策制定模組包括:一異常偵測模組,對該診斷結果執行異常偵測,以找出多個異常;一特徵摘取模組,摘取所述異常中的多個特徵以產生特徵向 量;以及一結構預測模組,以樣本跟分類的該特徵向量做為一聯合特徵函數的輸入執行一結構預測演算法,以預測用以修復該電子裝置的該至少一政策。
  19. 如申請專利範圍第18項所述的伺服器,其中該結構預測模組包括使用半監督式學習法建立一機器學習模型,將樣本跟分類的該特徵向量輸入該機器學習模型,獲得多個預測輸出的特徵向量,結合所輸入的該特徵向量及所獲得的所述預測輸出的特徵向量以產生該聯合特徵函數,以及將該聯合特徵函數回饋至該機器學習模型,以訓練該機器學習模型,並預測用以修復該電子裝置的該至少一政策。
TW104117810A 2015-06-02 2015-06-02 電子裝置的自我修復方法、系統及伺服器 TWI557594B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
TW104117810A TWI557594B (zh) 2015-06-02 2015-06-02 電子裝置的自我修復方法、系統及伺服器
CN201510332937.3A CN106293798B (zh) 2015-06-02 2015-06-16 电子装置的自我修复方法、系统及服务器
US14/924,722 US10075477B2 (en) 2015-06-02 2015-10-28 Method, system and server for self-healing of electronic apparatus
US16/049,820 US10397281B2 (en) 2015-06-02 2018-07-31 Method, system and server for self-healing of electronic apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104117810A TWI557594B (zh) 2015-06-02 2015-06-02 電子裝置的自我修復方法、系統及伺服器

Publications (2)

Publication Number Publication Date
TWI557594B true TWI557594B (zh) 2016-11-11
TW201643766A TW201643766A (zh) 2016-12-16

Family

ID=57452440

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104117810A TWI557594B (zh) 2015-06-02 2015-06-02 電子裝置的自我修復方法、系統及伺服器

Country Status (3)

Country Link
US (2) US10075477B2 (zh)
CN (1) CN106293798B (zh)
TW (1) TWI557594B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI578262B (zh) * 2015-08-07 2017-04-11 緯創資通股份有限公司 風險評估系統及資料處理方法
US9906551B2 (en) * 2016-02-09 2018-02-27 International Business Machines Corporation Forecasting and classifying cyber-attacks using crossover neural embeddings
KR102617992B1 (ko) * 2016-12-27 2023-12-26 한화비전 주식회사 예측 진단 장치 및 감시 시스템
TWI705387B (zh) * 2018-12-25 2020-09-21 翁慶昌 強化學習系統及其伺服裝置與強化學習方法
CN111367781B (zh) * 2020-05-26 2020-11-27 浙江大学 一种实例处理方法及其装置
US11735447B2 (en) * 2020-10-20 2023-08-22 Applied Materials, Inc. Enhanced process and hardware architecture to detect and correct realtime product substrates
TWI763169B (zh) * 2020-12-10 2022-05-01 中華電信股份有限公司 雲端資料中心的事件種類的預測系統和預測方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1391677A (zh) * 1999-11-24 2003-01-15 雅劲科技公司 带有诊断功能的自含式网络浏览器
TW200405202A (en) * 2002-09-20 2004-04-01 Ibm Method and apparatus for automatic updating and testing of software
US20110167249A1 (en) * 2010-01-06 2011-07-07 Samsung Electronics Co., Ltd. Computer system and method capable of remotely restoring operating system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2290890B (en) 1994-06-29 1999-03-24 Mitsubishi Electric Corp Information processing system
US7225245B2 (en) * 2001-08-09 2007-05-29 Intel Corporation Remote diagnostics system
US7580994B1 (en) * 2004-01-21 2009-08-25 Nortel Networks Limited Method and apparatus for enabling dynamic self-healing of multi-media services
US20060112061A1 (en) * 2004-06-24 2006-05-25 Masurkar Vijay B Rule based engines for diagnosing grid-based computing systems
US7899760B2 (en) * 2004-12-07 2011-03-01 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Systems, methods and apparatus for quiesence of autonomic systems with self action
US7523340B2 (en) * 2006-05-31 2009-04-21 Microsoft Corporation Support self-heal tool
US20070288405A1 (en) * 2006-06-07 2007-12-13 Motorola, Inc. Problem solving mechanism selection facilitation apparatus and method
US7739207B2 (en) * 2006-07-11 2010-06-15 International Business Machines Corporation Network autonomous learning system that allows computers to share learned knowledge such that errors and potential problems are identified and resolved
US20090037496A1 (en) * 2007-08-01 2009-02-05 Chong Benedict T Diagnostic Virtual Appliance
TWI443507B (zh) * 2011-12-05 2014-07-01 Giga Byte Tech Co Ltd 自動修復系統及其自動修復方法
CN103365645B (zh) * 2012-03-30 2018-03-13 伊姆西公司 用于维护软件系统的方法和设备
US8904162B2 (en) 2012-08-01 2014-12-02 Intel Corporation Methods and apparatus for performing secure BIOS upgrade
CN102855160B (zh) * 2012-08-22 2015-04-29 北京奇虎科技有限公司 软件修复方法、装置及系统
JP6111757B2 (ja) * 2013-03-14 2017-04-12 株式会社リコー 通信システム、通信端末、および端末プログラム
US9292402B2 (en) * 2013-04-15 2016-03-22 Century Link Intellectual Property LLC Autonomous service management
US10102082B2 (en) * 2014-07-31 2018-10-16 Intuit Inc. Method and system for providing automated self-healing virtual assets
US10303538B2 (en) * 2015-03-16 2019-05-28 Microsoft Technology Licensing, Llc Computing system issue detection and resolution

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1391677A (zh) * 1999-11-24 2003-01-15 雅劲科技公司 带有诊断功能的自含式网络浏览器
TW200405202A (en) * 2002-09-20 2004-04-01 Ibm Method and apparatus for automatic updating and testing of software
US20110167249A1 (en) * 2010-01-06 2011-07-07 Samsung Electronics Co., Ltd. Computer system and method capable of remotely restoring operating system

Also Published As

Publication number Publication date
TW201643766A (zh) 2016-12-16
CN106293798B (zh) 2020-02-11
US20180337959A1 (en) 2018-11-22
CN106293798A (zh) 2017-01-04
US20160359923A1 (en) 2016-12-08
US10075477B2 (en) 2018-09-11
US10397281B2 (en) 2019-08-27

Similar Documents

Publication Publication Date Title
TWI557594B (zh) 電子裝置的自我修復方法、系統及伺服器
US11467952B2 (en) API driven continuous testing systems for testing disparate software
US10635437B1 (en) Techniques to deploy an application as a cloud computing service
Ocariza et al. An empirical study of client-side JavaScript bugs
US10805171B1 (en) Understanding network entity relationships using emulation based continuous learning
EP3616066B1 (en) Human-readable, language-independent stack trace summary generation
US20130132956A1 (en) Virtual image overloading for solution deployment
US9928055B1 (en) Validating development software by comparing results from processing historic data sets
CN111108481B (zh) 故障分析方法及相关设备
EP3552107B1 (en) Device driver telemetry
US9256509B1 (en) Computing environment analyzer
Trivedi et al. A fully automated deep packet inspection verification system with machine learning
US20230305813A1 (en) Continuous integration and development of code in a secure environment
US20220244931A1 (en) Image file obtaining method and apparatus
US20150294250A1 (en) Building confidence of system administrator in productivity tools and incremental expansion of adoption
US20180123915A1 (en) Electronic apparatus for recording debugging information and control method thereof
CN112433953A (zh) 基于网络游戏客户端的嵌入式自动化测试方法、装置、设备及介质
CN115599683A (zh) 自动化测试方法、装置、设备及存储介质
CN114996955A (zh) 一种云原生混沌工程实验的靶场环境构建方法及装置
JP6818654B2 (ja) 試験自動化装置、試験方法、及びプログラム
US10467082B2 (en) Device driver verification
US11681609B1 (en) Identifying feature modification in software builds using baseline data
US11797388B1 (en) Systems and methods for lossless network restoration and syncing
US20240012833A1 (en) Systems and methods for seamlessly updating and optimizing a digital system
US20230275931A1 (en) Dynamic management of role-based access control systems