TWI507912B - 輸出入重定向方法、輸出入指令虛擬化系統與方法以及其電腦程式產品 - Google Patents
輸出入重定向方法、輸出入指令虛擬化系統與方法以及其電腦程式產品 Download PDFInfo
- Publication number
- TWI507912B TWI507912B TW103112620A TW103112620A TWI507912B TW I507912 B TWI507912 B TW I507912B TW 103112620 A TW103112620 A TW 103112620A TW 103112620 A TW103112620 A TW 103112620A TW I507912 B TWI507912 B TW I507912B
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- input
- output
- virtual machine
- file
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Description
本發明係關於輸出入指令虛擬化,特別係關於在準虛擬化(para-virtualizaion)中重定向關聯於輸出入操作的超呼叫(hypercall)。
防毒軟體安裝於實體機上、自主更新並掃描該實體機乃業界行之有年的作法。然而在虛擬化環境中,僅僅將實體機的概念抽換為虛擬機並非全然可行。具體而言,一臺實體機上可運作多臺虛擬機;若每臺虛擬機皆安裝有防毒軟體,每份防毒軟體皆定期更新、掃描,底層實體機的運算負擔可想而知。若錯開各虛擬機的更新與掃描,雖可避免實體機上出現即時效能瓶頸,管理者卻得煞費心機決定諸虛擬機的順位,以及減輕不同步所帶來的衝擊。即使虛擬機上安裝的只是代理程式(agent),也意味著管理者對機器沒有百分百的控制,得在安全和穩定性上妥協。
本發明旨在揭露一種輸出入重定向方法與一種輸出
入指令虛擬化系統,後者包含對前者的實作。本發明亦提供用於部署(deploy)可執行所述方法的電腦程式產品,以及所述系統的對應方法。
本發明提供一種輸出入重定向方法,其步驟包含:接收虛擬機對第一程序的呼叫;選擇性地執行第一程序;依據外部配置,選擇性地呼叫第二程序,以取得執行結果。第一程序關聯於虛擬機上的輸出入操作。第二程序執行於虛擬機之外。當外部配置指示第二程序被呼叫時,第二程序被呼叫;當外部配置指示第二程序不被呼叫時,第一程序被執行。
本發明提供一種輸出入指令虛擬化系統,其用於處理虛擬機上的輸出入操作。所述系統包含前端模組與後端模組。前端模組設置於虛擬機的作業系統,用於依據輸出入操作呼叫第一程序。後端模組設置於超管理器,用於選擇性地執行第一程序,並用於依據外部配置選擇性地呼叫第二程序以取得執行結果。虛擬機係超管理器所管理。第二程序執行於該虛擬機之外。當外部配置指示第二程序被呼叫時,後端模組用於呼叫第二程序;當外部配置指示第二程序不被呼叫時,後端模組用於執行第一程序。
本發明亦提供一種輸出入指令虛擬化方法,其用於處理虛擬機上的輸出入操作且包含步驟如下:於虛擬機依據輸出入操作,呼叫第一程序;於超管理器選擇性地執行第一程序;於超管理器,依據外部配置,選擇性地呼叫第二程序,以取得執行結果。虛擬機係超管理器所管理。第二程序執行於該虛擬機之外。
當外部配置指示第二程序被呼叫時,第二程序被呼叫;當外部配置指示第二程序不被呼叫時,第一程序被執行。
本發明亦提供一種電腦程式產品,其用於部署一臺計算機,使之具有使之執行多道指令的程式碼。彼等指令包含:接收虛擬機對第一程序的呼叫;選擇性地執行第一程序;依據外部配置,選擇性地呼叫第二程序,以取得執行結果。第一程序關聯於虛擬機上的輸出入操作。第二程序執行於虛擬機之外。當外部配置指示第二程序被呼叫時,第二程序被呼叫;當外部配置指示第二程序不被呼叫時,第一程序被執行。
在一些實施例中,前述輸出入操作關聯於輸出入物件,前述第二程序包含判斷輸出入物件中有無惡意程式碼。由是,當對某輸出入操作有安全疑慮時,可在準虛擬化層呼叫第二程序,其存在與執行細節毋須為虛擬機所知。
以上關於本發明內容及以下關於實施方式之說明係用以示範與闡明本發明之精神與原理,並提供對本發明之申請專利範圍更進一步之解釋。
1‧‧‧輸出入虛擬化系統
120‧‧‧後端模組
130‧‧‧前端模組
14‧‧‧程序執行裝置
20‧‧‧超管理器
30‧‧‧虛擬機
第1圖係本發明一實施例中關於輸出入虛擬化系統的方塊圖。
第2A圖係本發明一實施例中輸出入重定向方法的流程圖。
第2B圖係本發明另一實施例中輸出入重定向方法的流程圖。
第3A圖係依據本發明一實施例,當第一程序關聯於開啟檔案時,
輸出入虛擬化方法的流程圖。
第3B圖係依據本發明一實施例,當第一程序關聯於關閉檔案時,輸出入虛擬化方法的流程圖。
第3C圖係依據本發明一實施例,當第一程序關聯於通知後端模組讀取緩衝器時,輸出入虛擬化方法的流程圖。
以下在實施方式中敘述本發明之詳細特徵,其內容足以使任何熟習相關技藝者瞭解本發明之技術內容並據以實施,且依據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。以下實施例係進一步說明本發明之諸面向,但非以任何面向限制本發明之範疇。
請參見第1圖,其係關於輸出入虛擬化系統1的方塊圖。如第1圖所示,輸出入虛擬化系統1包含前端模組130與後端模組120。前端模組130設置於虛擬機30的作業系統。後端模組120設置於管理虛擬機30的超管理器20,且耦接前端模組130。在此實施例中,輸出入虛擬化系統1更包含程序執行裝置14,其耦接後端模組120。
使用者在虛擬機30上會產生輸出入操作。輸出入操作可以關聯於開啟、執行或關閉某個檔案。通常這些操作都有對應的系統呼叫(system call),如Linux作業系統上所定義的open、close、execve等。在一實施例中,前端模組130是插入性的(hooked
或injected)一個核心模組(kernel module)或驅動程式,用於接收這些本應由作業系統內建的程式碼處理的系統呼叫。具體而言,前端模組130擴充或至少部份取代了作業系統中用來處理這些系統呼叫的目的碼(object code)、可執行檔(executable)或機器碼(machine code)。
插入前端模組130的一種方式是在作業系統的系統呼叫表(在Linux中可能是叫做syscall_table.S的檔案)中使指示這些系統呼叫如何處理的條目指向前端模組130所在的檔案路徑或記憶體位址。事實上,前端模組130可處理表中任何系統呼叫,無論其與輸出入有無直接關係。在沒有明顯系統呼叫表的作業系統中,插入前端模組130可能涉及直接以前端模組130覆蓋內建程式碼所在的輸出入區域(input/output area),並選擇性地事先備份內建程式碼。
輸出入操作不一定包含系統呼叫,也不一定關聯於檔案。舉例而言,在Linux虛擬機上使用者尚可透過procfs(process file system,意為行程檔案系統)或套口(socket)等就某輸出入操作「進入」核心空間(kernel space),調用前端模組130。在一實施例中,作為虛擬機30面向超管理器20的窗口,前端模組130可和後端模組120共用泛化的緩衝器,以串流(stream)的方式互相傳遞資料。同樣地,在此實施例中,前端模組130可以是核心模組或驅動程式。
後端模組120包含超管理器20對虛擬機30開放的
應用編程介面(application programming interface,簡稱API),也可能包含至少部分的更後端的函式庫(library)。前端模組130依據上述輸出入操作呼叫後端模組120所提供的一個函式,亦即第一程序。在一實施例中,第一程序對應輸出入操作所包含的系統呼叫;也就是說,假設前端模組130負責處理open系統呼叫,則應用編程介面上也會有對應的開啟函式。
請參見第2A圖,其係輸出入重定向方法的一種流程圖。在一實施例中,後端模組120於步驟S21接收前端模組130或虛擬機30對第一程序的呼叫後,依據外部設置(步驟S23),呼叫(步驟S25)或不呼叫執行於虛擬機30之外的第二程序。配合第1圖的實施例,第二程序係由程序執行裝置14所執行。前述輸出入操作關聯於一輸出入物件。以第二程序包含判斷該輸出入物件中有無惡意程式碼為例,程序執行裝置14可以包含第三方的掃毒服務,因此將防毒軟體的更新與運作切割於虛擬機30甚至是其所在的實體機之外。程序執行裝置14可以是實體或虛擬機;若其為虛擬機,亦可能與虛擬機30位於同一臺實體機。在另一實施例中,第二程序係由超管理器20執行。當外部設置指示第二程序不被呼叫時,後端模組120逕於步驟S29中執行第一程序。
依據第二程序的執行結果(步驟S27),後端模組120選擇性地執行前端模組130原先呼叫的第一程序。具體而言,承上文,以第二程序包含判斷輸出入物件中有無惡意程式碼為例,若執行結果指示輸出入物件中沒有惡意程式碼,則後端模組120
於步驟S29中執行第一程序,反之則執行第二程序者(如程序執行裝置14)採取相應措施,如刪除、隔離、忽略該輸出入物件,或嘗試清除惡意程式碼,而後端模組120不執行第一程序。
第2A圖的輸出入重定向方法適用於前端模組130接收到開啟或執行某檔案的系統呼叫的情形。增添若干細節後,假設外部設置指示第二程序被呼叫,由第2A圖可得到第3A圖,後者係輸出入虛擬化方法的一種流程圖。在一實施例中,因為預期到第一程序(關聯於開啟或執行該檔案,第3A圖以前者為例)或第二程序的執行,前端模組130在呼叫第一程序(步驟S31,對應步驟S21)前、中或後亦於步驟S30A中匯出(export)或曝露(expose)用於提供對該檔案的存取的檔案系統。此檔案系統不一定和虛擬機30內部的檔案系統格式相同;舉例而言,虛擬機30可能使用ext4,但前端模組130匯出的是相容Windows作業系統的NTFS或FAT32。在一實施例中,若第二程序係由程序執行裝置14所執行,則匯出的檔案系統可為程序執行裝置14所存取,如程序執行裝置14加載(mount)該檔案系統。在其他實施例中,係由超管理器20維護執行第二程序者(如程序執行裝置14)對該檔案的存取。步驟S30A的執行者,無論是超管理器20或前端模組130,有義務使虛擬機30所見的檔案系統和匯出的檔案系統同步,例如在虛擬機30實作兩造表態(two-phase commit)和不可分割交易(atomic transaction)。步驟S35、S37和S39分別與第2A圖的步驟S25、S27和S29類似。
第2B圖則描繪輸出入重定向方法的另一態樣。在此實施例中,後端模組120於步驟S22接收前端模組130或虛擬機30對第一程序的呼叫時即執行第一程序(步驟S24),隨後才依據外部設置(步驟S26),呼叫(步驟S28)或不呼叫執行於虛擬機30之外的第二程序。配合第1圖的實施例,第二程序係由程序執行裝置14所執行。前述輸出入操作關聯於一輸出入物件。以第二程序包含判斷該輸出入物件中有無惡意程式碼為例,程序執行裝置14可以包含第三方的掃毒服務,因此防毒軟體的更新與運作再度被切割於虛擬機30甚至是其所在的實體機之外。這裡的程序執行裝置14同樣可以是實體或虛擬機;若其為虛擬機,亦可能與虛擬機30位於同一臺實體機。在另一實施例中,第二程序係由超管理器20執行。若執行結果指示輸出入物件中有惡意程式碼,則執行第二程序者(如程序執行裝置14)採取相應措施。當外部設置指示第二程序不被呼叫時,後端模組120提供前端模組130第一程序的回傳值。
第2B圖的輸出入重定向方法適用於前端模組130接收到關閉檔案的系統呼叫的情形。增添若干細節後,假設外部設置指示第二程序被呼叫,由第2B圖可得到第3B圖,後者係輸出入虛擬化方法的一種流程圖。在一實施例中,因為預期到第一程序(關聯於關閉該檔案)或第二程序的執行,前端模組130或後端模組120在第一程序被呼叫(步驟S32B,對應步驟S22)前、中或後亦於步驟S30B中匯出或曝露用於提供對該檔案的存取的
檔案系統,詳如前文對第3A圖步驟S30A的描述。步驟S34B和S38B分別與第2B圖的步驟S24和S28類似。
Virtio是以相對應的位於虛擬機的前端和位於超管理器的後端實作準虛擬化的一個例子。Virtio支援Linux虛擬機和KVM、lguest等超管理器,但包括Xen的其他常見超管理器亦有相仿功能,如VMware的Guest Tools或VirtualBox的Guest Additions,因此本發明並不強制Virtio之使用。若將本發明套用於Virtio,則除了針對輸出入物件為檔案的情形插入前端模組130,亦需在超管理器20探入(probe)虛擬機30的應用編程介面(virtqueue_ops資料結構)中加入對應系統呼叫的開啟、關閉與執行函式。當輸出入操作非關檔案或系統呼叫時,則本發明可將virtio-blk、virtio-net等塊裝置(block device)或網路裝置驅動程式當作前端模組130,利用Virtio原生的緩衝器傳輸,配合後端模組120重定向虛擬機30關聯於輸出入操作的超呼叫。
第2B圖的輸出入重定向方法便適用於緩衝器傳輸的情形。具體而言,假設輸出入操作係關聯於寫入裝置且外部設置指示第二程序被呼叫,則增添若干細節後,由第2B圖可得到第3C圖,後者係輸出入虛擬化方法的一種流程圖。於步驟S30C中,前端模組130新增一個緩衝器並將欲寫入裝置的資料填於其中。在Virtio中,新增該緩衝器是以呼叫後端模組120提供的add_buf函式達成。於步驟S32C中,前端模組130呼叫第一程序通知並將緩衝器「踢」(kick)或同步給後端模組120,後端模組
120則於步驟S34C中讀取該緩衝器中的資料。由於緩衝器僅為前端模組130和後端模組120所共用,執行第二程序者(如程序執行裝置14)無從存取之,後端模組必須先執行步驟S34C才能呼叫第二程序(步驟S38C)並提供相關資料。
實務上,超管理器20往往管理多臺虛擬機。在一實施例中,超管理器20使用同樣的後端模組120應對不同虛擬機的前端模組。在一實施例中,超管理器20為每一臺所管理的虛擬機準備一個後端模組。在一實施例中,超管理器20可能將虛擬機分組,同組的虛擬機對應單一後端模組,而對應某後端模組的諸虛擬機同組。技術上而言,虛擬機30並非只能受一臺超管理器20管理,因此前端模組130也可能面對並得在應用編程介面上適應多臺超管理器的多個後端模組。
步驟S23和S26中所謂的外部設置有多種實作方式。舉例而言,後端模組120的函式庫可被超管理器20、程序執行裝置14或其他外部裝置抽換,以控制後端模組120是否呼叫第二程序;或者外部設置確為一個真偽值(truth value或Boolean)變數,而後端模組120於步驟S23或S26中判斷其指示。若後端模組120和前端模組是一對多關係,此真偽值可屬於一個陣列或一張表。外部設置的確立(assert)者(如程序執行裝置14)可依據規則或經驗選定待施以第二程序(如掃描惡意程式碼)的所轄虛擬機。理想上,一臺程序執行裝置14應能對應多臺虛擬機,甚至多臺實體機。當輸出入虛擬化系統1包含多臺程序執行裝置
時,它們之間亦可有負載平衡機制。
在一實施例中,程序執行裝置14(和其他可能存在者)受控於安全性智慧與分析(security intelligence and analytics,簡稱SIA)裝置。程序執行裝置14的更新、懷疑、掃描等資訊或事件可上達至SIA裝置,供後者進行巨量資料探勘。具體而言,SIA裝置可以某種即時分散式運算架構(如Apache Storm)執行線性分類器(linear classifier,如支援向量機〔support vector machine〕)等機器學習演算法,依據網路、使用者或虛擬機行為的異常,辨識可能受感染的虛擬機(群),指揮程序執行裝置14確立外部設置(以將虛擬機的超呼叫重定向至第二程序),並用於炮製並配發解藥。
本發明提供之內容遞送裝置用於部署實體機,特別是使之具有後端模組。具體而言,內容遞送裝置可以提供具超管理器的實體機下載後端模組的安裝或修補(patch)檔案,或內容遞送裝置可以將某種組態推送(push)至實體機。又者,內容遞送裝置可以單純是檔案伺服器,供輸出入虛擬化系統的管理端(如但不限於前述SIA裝置)下載實作輸出入重定向方法的程式碼,以配送給所(間接)管理的實體機。
綜上所述,藉由在準虛擬化中重定向虛擬機關聯於輸出入操作的超呼叫,以掃描惡意程式碼為例的第二程序毋須在虛擬機上執行,降低了底層實體機的運算負擔。由於第二程序集中於一處更新且僅在需要時執行,本發明避免了額外的管理成
本。對於虛擬機和其管理者而言,安裝前端模組本為準虛擬化所必須,更無控制權和穩定性的疑慮。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明。在不脫離本發明之精神和範圍內,所為之更動與潤飾,均屬本發明之專利保護範圍。關於本發明所界定之保護範圍請參考所附之申請專利範圍。
1‧‧‧輸出入虛擬化系統
120‧‧‧後端模組
130‧‧‧前端模組
14‧‧‧程序執行裝置
20‧‧‧超管理器
30‧‧‧虛擬機
Claims (36)
- 一種輸出入重定向方法,包含:接收一虛擬機對一第一程序的呼叫,該第一程序關聯於該虛擬機上的一輸出入操作;選擇性地執行該第一程序;以及依據一外部配置,選擇性地呼叫一第二程序,以取得一執行結果,該第二程序執行於該虛擬機之外;其中當該外部配置指示該第二程序被呼叫時,該第二程序被呼叫,而當該外部配置指示該第二程序不被呼叫時,該第一程序被執行。
- 如請求項1所述的輸出入重定向方法,其中選擇性地執行該第一程序係依據該執行結果。
- 如請求項2所述的輸出入重定向方法,其中該輸出入操作關聯於一輸出入物件,該第二程序包含判斷該輸出入物件中有無惡意程式碼,且當該第二程序被呼叫時,選擇性地執行該第一程序包含:若該執行結果指示該輸出入物件中無惡意程式碼,則執行該第一程序;以及若該執行結果指示該輸出入物件中有惡意程式碼,則不執行該第一程序。
- 如請求項3所述的輸出入重定向方法,其中該輸出入物件係一檔案,該輸出入操作與該第一程序關聯於開啟或執行該檔案。
- 如請求項1所述的輸出入重定向方法,其中執行該第一程序先於選擇性地呼叫該第二程序。
- 如請求項5所述的輸出入重定向方法,其中該輸出入操作關聯於一輸出入物件,該第二程序包含判斷該輸出入物件中有無惡意程式碼。
- 如請求項6所述的輸出入重定向方法,其中該輸出入物件係一檔案,該輸出入操作與該第一程序關聯於關閉該檔案。
- 如請求項6所述的輸出入重定向方法,其中該虛擬機係一超管理器所管理,該輸出入物件係該虛擬機與該超管理器共用的一緩衝器,該輸出入操作係透過該緩衝器進行,該第一程序關聯於通知該超管理器存取該緩衝器。
- 一種輸出入指令虛擬化系統,用於處理一虛擬機上的一輸出入操作,該輸出入指令虛擬化系統包含:一前端模組,設置於該虛擬機的一作業系統,用於依據該輸出入操作呼叫一第一程序;以及一後端模組,設置於一超管理器,用於選擇性地執行該第一程序,並用於依據一外部配置選擇性地呼叫一第二程序以取得一執行結果,該虛擬機係該超管理器所管理,該第二程序執行於該虛擬機之外; 其中當該外部配置指示該第二程序被呼叫時,該後端模組用於呼叫該第二程序,而當該外部配置指示該第二程序不被呼叫時,該後端模組用於執行該第一程序。
- 如請求項9所述的輸出入指令虛擬化系統,其中該後端模組選擇性地執行該第一程序係依據該執行結果。
- 如請求項10所述的輸出入指令虛擬化系統,其中該輸出入操作關聯於一輸出入物件,該第二程序包含判斷該輸出入物件中有無惡意程式碼,且當該第二程序被呼叫時,若該執行結果指示該輸出入物件中無惡意程式碼,則該後端模組執行該第一程序,而若該執行結果指示該輸出入物件中有惡意程式碼,則該後端模組不執行該第一程序。
- 如請求項9所述的輸出入指令虛擬化系統,其中該後端模組先於選擇性地呼叫該第二程序執行該第一程序。
- 如請求項12所述的輸出入指令虛擬化系統,其中該輸出入操作關聯於一輸出入物件,該第二程序包含判斷該輸出入物件中有無惡意程式碼。
- 如請求項9所述的輸出入指令虛擬化系統,其中該輸出入操作與該第一程序關聯於開啟、關閉或執行一檔案,該前端模組更用於匯出一檔案系統,並使匯出的該檔案系統與該虛擬機所見的另一檔案系統同步,匯出的該檔案系統用於提供對該檔案的存取。
- 如請求項14所述的輸出入指令虛擬化系統,更包含: 一程序執行裝置,用於加載匯出的該檔案系統,並用於執行該第二程序以產生該執行結果。
- 如請求項9所述的輸出入指令虛擬化系統,其中該輸出入操作係透過該前端模組與該後端模組共用的一緩衝器進行,該第一程序關聯於通知該後端模組存取該緩衝器。
- 如請求項9所述的輸出入指令虛擬化系統,更包含:一程序執行裝置,用於執行該第二程序以產生該執行結果。
- 如請求項17所述的輸出入指令虛擬化系統,其中該程序執行裝置更用於確立該外部配置。
- 如請求項9所述的輸出入指令虛擬化系統,其中該前端模組包含該作業系統中的一驅動程式。
- 如請求項9所述的輸出入指令虛擬化系統,其中該輸出入操作包含對該作業系統的一系統呼叫,該前端模組形成至少部分的該作業系統中用於處理該系統呼叫的程式碼。
- 如請求項20所述的輸出入指令虛擬化系統,其中該系統呼叫對應該第一程序。
- 一種輸出入指令虛擬化方法,用於處理一虛擬機上的一輸出入操作,該輸出入指令虛擬化方法包含:於該虛擬機,依據該輸出入操作,呼叫一第一程序;於一超管理器,選擇性地執行該第一程序,該虛擬機係該超管理器所管理;以及 於該超管理器,依據一外部配置,選擇性地呼叫一第二程序,以取得一執行結果,該第二程序執行於該虛擬機之外;其中當該外部配置指示該第二程序被呼叫時,該第二程序被呼叫,而當該外部配置指示該第二程序不被呼叫時,該第一程序被執行。
- 如請求項22所述的輸出入指令虛擬化方法,其中選擇性地執行該第一程序係依據該執行結果。
- 如請求項23所述的輸出入指令虛擬化方法,其中該輸出入操作關聯於一輸出入物件,該第二程序包含判斷該輸出入物件中有無惡意程式碼,且當該第二程序被呼叫時,選擇性地執行該第一程序包含:若該執行結果指示該輸出入物件中無惡意程式碼,則執行該第一程序;以及若該執行結果指示該輸出入物件中有惡意程式碼,則不執行該第一程序。
- 如請求項22所述的輸出入指令虛擬化方法,其中執行該第一程序先於選擇性地呼叫該第二程序。
- 如請求項25所述的輸出入指令虛擬化方法,其中該輸出入操作關聯於一輸出入物件,該第二程序包含判斷該輸出入物件中有無惡意程式碼。
- 如請求項22所述的輸出入指令虛擬化方法,其中該輸出入操作與該第一程序關聯於開啟、關閉或執行一檔案,該輸出入虛擬化方法更包含:匯出一檔案系統,該檔案系統用於提供對該檔案的存取;以及使匯出的該檔案系統與該虛擬機所見的另一檔案系統同步。
- 如請求項22所述的輸出入指令虛擬化方法,其中該輸出入操作係透過該虛擬機與該超管理器共用的一緩衝器進行,該第一程序關聯於通知該超管理器存取該緩衝器。
- 一種電腦程式產品,經由計算機載入該程式執行:接收一虛擬機對一第一程序的呼叫,該第一程序關聯於該虛擬機上的一輸出入操作;選擇性地執行該第一程序;以及依據一外部配置,選擇性地呼叫一第二程序,以取得一執行結果,該第二程序執行於該虛擬機之外;其中當該外部配置指示該第二程序被呼叫時,該第二程序被呼叫,而當該外部配置指示該第二程序不被呼叫時,該第一程序被執行。
- 如請求項29所述的電腦程式產品,其中選擇性地執行該第一程序係依據該執行結果。
- 如請求項30所述的電腦程式產品,其中該輸出入操作關聯於一輸出入物件,該第二程序包含判斷該輸出入物件中有無惡意程式碼,且當該第二程序被呼叫時,選擇性地執行該第一程序包含:若該執行結果指示該輸出入物件中無惡意程式碼,則執行該第一程序;以及若該執行結果指示該輸出入物件中有惡意程式碼,則不執行該第一程序。
- 如請求項31所述的電腦程式產品,其中該輸出入物件係一檔案,該輸出入操作與該第一程序關聯於開啟或執行該檔案。
- 如請求項29所述的電腦程式產品,其中執行該第一程序先於選擇性地呼叫該第二程序。
- 如請求項33所述的電腦程式產品,其中該輸出入操作關聯於一輸出入物件,該第二程序包含判斷該輸出入物件中有無惡意程式碼。
- 如請求項34所述的電腦程式產品,其中該輸出入物件係一檔案,該輸出入操作與該第一程序關聯於關閉該檔案。
- 如請求項34所述的電腦程式產品,其中該虛擬機係一超管理器所管理,該輸出入物件係該虛擬機與該超管理器共用的一緩衝器,該輸出入操作係透過該緩衝器進行,該第一程序關聯於通知該超管理器存取該緩衝器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103112620A TWI507912B (zh) | 2014-04-03 | 2014-04-03 | 輸出入重定向方法、輸出入指令虛擬化系統與方法以及其電腦程式產品 |
CN201410165132.XA CN104978226B (zh) | 2014-04-03 | 2014-04-22 | 输入输出重定向方法、虚拟化系统与方法及内容递送装置 |
US14/304,282 US20150286490A1 (en) | 2014-04-03 | 2014-06-13 | I/o redirection method, i/o virtualization system and method, and content delivery apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103112620A TWI507912B (zh) | 2014-04-03 | 2014-04-03 | 輸出入重定向方法、輸出入指令虛擬化系統與方法以及其電腦程式產品 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201539238A TW201539238A (zh) | 2015-10-16 |
TWI507912B true TWI507912B (zh) | 2015-11-11 |
Family
ID=54209826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103112620A TWI507912B (zh) | 2014-04-03 | 2014-04-03 | 輸出入重定向方法、輸出入指令虛擬化系統與方法以及其電腦程式產品 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150286490A1 (zh) |
CN (1) | CN104978226B (zh) |
TW (1) | TWI507912B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798567B2 (en) | 2014-11-25 | 2017-10-24 | The Research Foundation For The State University Of New York | Multi-hypervisor virtual machines |
CN104980438B (zh) * | 2015-06-15 | 2018-07-24 | 中国科学院信息工程研究所 | 一种虚拟化环境中数字证书撤销状态检查的方法和系统 |
TWI578167B (zh) * | 2016-03-11 | 2017-04-11 | 宏正自動科技股份有限公司 | 虛擬化自攜技術之系統、裝置及方法 |
TWI599905B (zh) * | 2016-05-23 | 2017-09-21 | 緯創資通股份有限公司 | 惡意碼的防護方法、系統及監控裝置 |
CN106844066B (zh) * | 2017-01-22 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 一种应用运行方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998014872A1 (en) * | 1996-10-02 | 1998-04-09 | Trend Micro, Incorporated | System, apparatus and method for the detection and removal of viruses in macros |
TW200937245A (en) * | 2008-02-27 | 2009-09-01 | Asustek Comp Inc | Antivirus protection method and electronic device with antivirus protection |
TW201007590A (en) * | 2008-08-01 | 2010-02-16 | Acer Inc | Method and system for managing multi-antivirus-software |
TW201106190A (en) * | 2009-08-13 | 2011-02-16 | Chunghwa Telecom Co Ltd | Virus detection system and method of notifying detection of viruses for use in instant communication systems |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613930B2 (en) * | 2001-01-19 | 2009-11-03 | Trustware International Limited | Method for protecting computer programs and data from hostile code |
EP1757063B1 (en) * | 2004-05-19 | 2017-02-15 | CA, Inc. | Methods and systems for computer security |
US7908653B2 (en) * | 2004-06-29 | 2011-03-15 | Intel Corporation | Method of improving computer security through sandboxing |
US20100031353A1 (en) * | 2008-02-04 | 2010-02-04 | Microsoft Corporation | Malware Detection Using Code Analysis and Behavior Monitoring |
US9064130B1 (en) * | 2009-02-27 | 2015-06-23 | Symantec Corporation | Data loss prevention in the event of malware detection |
US8893274B2 (en) * | 2011-08-03 | 2014-11-18 | Trend Micro, Inc. | Cross-VM network filtering |
-
2014
- 2014-04-03 TW TW103112620A patent/TWI507912B/zh active
- 2014-04-22 CN CN201410165132.XA patent/CN104978226B/zh active Active
- 2014-06-13 US US14/304,282 patent/US20150286490A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998014872A1 (en) * | 1996-10-02 | 1998-04-09 | Trend Micro, Incorporated | System, apparatus and method for the detection and removal of viruses in macros |
TW200937245A (en) * | 2008-02-27 | 2009-09-01 | Asustek Comp Inc | Antivirus protection method and electronic device with antivirus protection |
TW201007590A (en) * | 2008-08-01 | 2010-02-16 | Acer Inc | Method and system for managing multi-antivirus-software |
TW201106190A (en) * | 2009-08-13 | 2011-02-16 | Chunghwa Telecom Co Ltd | Virus detection system and method of notifying detection of viruses for use in instant communication systems |
Also Published As
Publication number | Publication date |
---|---|
CN104978226A (zh) | 2015-10-14 |
CN104978226B (zh) | 2018-06-15 |
TW201539238A (zh) | 2015-10-16 |
US20150286490A1 (en) | 2015-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11868795B1 (en) | Selective virtualization for security threat detection | |
KR102206115B1 (ko) | 인터프리터 가상 머신을 이용한 행동 멀웨어 탐지 | |
EP3281146B1 (en) | Isolating guest code and data using multiple nested page tables | |
US9436603B1 (en) | Detection and mitigation of timing side-channel attacks | |
US8839228B2 (en) | System and method for updating an offline virtual machine | |
RU2686552C2 (ru) | Системы и способы предоставления результата текущей команды процессора при выходе из виртуальной машины | |
KR101793306B1 (ko) | 가상 애플리케이션 확장 포인트 | |
JP7392775B2 (ja) | 分析システム、方法、及び、プログラム | |
TWI507912B (zh) | 輸出入重定向方法、輸出入指令虛擬化系統與方法以及其電腦程式產品 | |
RU2632163C2 (ru) | Общая распаковка приложений для обнаружения вредоносных программ | |
US8239608B1 (en) | Secure computing environment | |
US8438640B1 (en) | Method and apparatus for reverse patching of application programming interface calls in a sandbox environment | |
US10162657B2 (en) | Device and method for address translation setting in nested virtualization environment | |
US20130297924A1 (en) | Method of running multiple operating systems on an x86-based computer | |
US10025606B2 (en) | Enabling filter-level access to virtual disks | |
JP7410268B2 (ja) | コンテナ・ベースの仮想化システムに関する方法 | |
US10268466B2 (en) | Software installer with built-in hypervisor | |
US10140159B1 (en) | Systems and methods for dynamic creation of container manifests | |
US20130326509A1 (en) | Robust non-shareable resource access under live virtual machine cloning | |
Yehuda et al. | Arm security alternatives | |
US11782754B2 (en) | Repositioning applications from physical devices to the cloud | |
US11907748B2 (en) | Secure graphics processing unit (GPU) virtualization using sandboxing | |
WO2022044021A1 (en) | Exploit prevention based on generation of random chaotic execution context |