TWI682323B - 伺服器及其設定方法 - Google Patents
伺服器及其設定方法 Download PDFInfo
- Publication number
- TWI682323B TWI682323B TW106140913A TW106140913A TWI682323B TW I682323 B TWI682323 B TW I682323B TW 106140913 A TW106140913 A TW 106140913A TW 106140913 A TW106140913 A TW 106140913A TW I682323 B TWI682323 B TW I682323B
- Authority
- TW
- Taiwan
- Prior art keywords
- language program
- executed
- document language
- virtual machine
- recorded
- Prior art date
Links
Images
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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/45587—Isolation or security of virtual machine instances
-
- 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/4401—Bootstrapping
-
- 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/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
一種伺服器設定方法,適於設定用於運行虛擬機器的伺服器,所述方法包括下列步驟:於虛擬機器的啟動程序中,取得虛擬機器中第一服務函式被呼叫時所執行的第一記憶體位址。對第一記憶體位址所對應的記憶體區塊進行修正,使記憶體區塊被虛擬機器呼叫時,中斷虛擬機器的運行。當虛擬機器的運行被中斷時,判斷呼叫第一服務函式的文稿語言程式是否可以被執行。若文稿語言程式不能被執行,管理程序中斷文稿語言程式對第一服務函式的呼叫。並且若文稿語言程式可以被執行,管理程序允許第一服務函式執行文稿語言程式。
Description
本揭露係關於一種伺服器及其設定方法,特別關於一種用於運行虛擬機器的伺服器及其設定方法。
虛擬機器是在一台計算裝置(個人電腦或伺服器)的底層作業系統中所運行的第二層作業系統。其好處之一是可以讓使用者自由地在底層作業系統與第二層作業系統之間自由切換,以處理多種有不同需求的任務。其另一個好處是可以讓多個使用者在互不干擾的狀況下,分享同一台伺服器而每個使用者可以使用自己專屬的作業系統。
虛擬機器由於也是一種作業系統,其運行中也會使用到各種不同的軟體,也可能因為開啟特定的網頁而自動地讀入特定的指令集。從而虛擬機器本身實際上也曝露在被攻擊的風險中。為了降低這樣的風險,現有的虛擬機器通常設置有白名單/黑名單,或僅允許特定的程式/指令被執行,或者防止特定的程式/指令被執行。然而,在現行的虛擬機器管理之白名單/黑名單機制中,都只針對一般二進位之執行檔,並無法直接檢查文稿語言(script)程式,因此只要使用文稿語言程式,就可以直接繞過白名單/黑名單機制的保護。
鑒於上述問題,本揭露旨在提供一種能檢查虛擬機器所執行的文稿語言程式的方法與應用這種方法的伺服器。
依據本揭露一實施例的伺服器設定方法,適於設定用於運行虛擬機器的伺服器,所述方法包括下列步驟:於虛擬機器的啟動程序中,取得虛擬機器中第一服務函式被呼叫時所執行的第一記憶體位址。對第一記憶體位址所對應的記憶體區塊進行修正,使記憶體區塊被虛擬機器呼叫時,中斷虛擬機器的運行。當虛擬機器的運行被中斷時,虛擬機器的管理程序判斷呼叫第一服務函式的文稿語言程式是否可以被執行。若文稿語言程式不能被執行,管理程序中斷文稿語言程式對第一服務函式的呼叫。並且若文稿語言程式可以被執行,管理程序允許第一服務函式執行文稿語言程式。依據本揭露一實施例的伺服器,具有非揮發性儲存媒介、記憶體與處理器。非揮發性儲存媒介儲存有用於運行虛擬機器之指令集。並且當處理器執行前述指令集時,執行前述伺服器設定方法。
綜上所述,依據本揭露一實施例的伺服器設定方法,藉由修改特定記憶體區塊,使得當虛擬記憶體要執行文稿語言程式時,會中斷運行,並對造成此中斷事件的文稿語言程式進行檢查。藉以在不需要更新虛擬機器指令集的前提下,實現了對於文稿語言程式的攔查。
以上之關於本揭露內容之說明及以下之實施方式之說明係用以示範與解釋本揭露之精神與原理,並且提供本揭露之專利申請範圍更進一步之解釋。
以下在實施方式中詳細敘述本揭露之詳細特徵以及優點,其內容足以使任何熟習相關技藝者了解本揭露之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本揭露相關之目的及優點。以下之實施例係進一步詳細說明本揭露之觀點,但非以任何觀點限制本揭露之範疇。
請參照圖1與圖2,其中圖1係依據本揭露一實施例的伺服器的功能方塊圖,圖2係依據本揭露一實施例的伺服器運行虛擬機器的架構示意圖。如圖1所示,依據本揭露一實施例的伺服器1000例如具有實體上的非揮發性儲存媒介(硬碟)1100、記憶體1200與處理器1300。而如圖2所示,當本揭露一實施例的伺服器1000讀取非揮發性儲存媒介1100中所儲存的虛擬機器指令集而運行虛擬機器時,伺服器1000中運行有一個邏輯上的伺服器系統2000,伺服器系統2000中具有虛擬機器2100、管理程序2200與資料庫2300。邏輯上的資料庫2300具體來說例如為非揮發性儲存媒介1100中儲存的一筆獲多筆資料。而虛擬機器2100與管理程序2200均例如存在於記憶體1200(佔有記憶體1200中的特定區塊),並且持續被處理器1300讀取而運行其特定的功能。其中,虛擬機器2100在執行文稿語言程式時,會呼叫執行非核心空間程式系統呼叫服務函式,而以下以第一服務函式來指涉執行非核心空間程式系統呼叫服務函式。所謂的執行非核心空間程式系統呼叫服務函式,在UNIX作業系統架構中例如為execve函式,而在微軟作業系統架構中例如為CreateProcess函式,然而所屬領域具有通常知識者當能自行創造功能類比於execve函式及/或CreateProcess函式的其他函式。所述的管理程序2200例如是UNIX作業系統架構中的hypervisor程序。
接下來說明本揭露一實施例的伺服器設定方法,請參照圖3,其係依據本揭露一實施例的伺服器設定方法流程圖。如步驟S310所示,於虛擬機器2100的啟動程序中,處理器1300運行管理程序2200取得虛擬機器2100中第一服務函式被呼叫時所執行的第一記憶體位址。接著如步驟S320所示,處理器1300直接或者透過運行管理程序2200來對記憶體1200中,第一記憶體位址所對應的記憶體區塊進行修正,使此一記憶體區塊被虛擬機器呼叫時,中斷虛擬機器2100的運行。因此,當虛擬機器2100要執行文稿語言程式時,因為會呼叫第一服務函式,所以前述記憶體區塊被呼叫,從而虛擬機器2100的運行被中斷。此時,如步驟S330所示,管理程序2200判斷呼叫第一服務函式的文稿語言程式是否可以被執行。
若文稿語言程式不能被執行,則如步驟S340所示,管理程序2200中斷文稿語言程式對第一服務函式的呼叫,再讓虛擬機器2100繼續運行。若文稿語言程式可以被執行,則如步驟S350所示,管理程序2200允許第一服務函式執行文稿語言程式。
於一實施例中,步驟S320的詳細步驟可以參照圖4,其係依據本揭露一實施例的步驟S320的方法流程圖。如步驟S321所示,處理器1300對記憶體1200中,第一記憶體位址前插入一個管理程序呼叫指令(hypercall)。在如步驟S323所示,處理器1300將第一記憶體位址修正為管理程序呼叫指令的起始位址。具體來說,請參照圖5A與圖5B,其係用以理解步驟S321與S323實作方式的示意圖。如圖5A所示,虛擬機器2100在執行時,虛擬機器2100的虛擬記憶體VMEM對應到伺服器1000的記憶體1200的記憶體區塊A。具體來說,虛擬機器2100自定義有一個函式表,函式表中紀錄了呼叫每個函式所需要執行的虛擬記憶體VMEM的一個虛擬記憶體位址,其中函式表中預設定義呼叫第一服務函式所需要執行的虛擬記憶體VMEM的第一虛擬記憶體位址VADDR1。而第一虛擬記憶體位址VADDR1即對應於記憶體1200中的記憶體區塊A中的第一記憶體位址ADDR1。因此,在記憶體1200中的記憶體區塊A中,第一記憶體位址ADDR1開始的記憶體區塊B1就是儲存有第一服務函式。
接下來如圖5B所示,在伺服器1000的記憶體1200的記憶體區塊A中,處理器1300在第一記憶體位址ADDR1之前的一個記憶體區塊B0中,寫入了一個管理程序呼叫指令。而記憶體區塊B0的起始點為第二記憶體位址ADDR2,因此處理器1300運行管理程序2200來修改虛擬機器2100的函式表,將前述第一虛擬記憶體位址VADDR1修正為第二虛擬記憶體位址VADDR2,其中第二虛擬記憶體位址VADDR2即對應於伺服器1000的記憶體1200的記憶體區塊A中的第二記憶體位址ADDR2。
如此一來,當虛擬機器2100執行了文稿語言程式時,虛擬機器2100實際上對於記憶體1200的第二記憶體位址ADDR2進行執行,管理程序呼叫指令會先被執行,從而使虛擬機器2100中斷運行而由管理程序2200來主控,而管理程序2200接著執行前述步驟S330乃至步驟S340或步驟S350。之後管理程序2200根據執行該些步驟的結果允許或不允許造成觸發管理程序呼叫指令的物件-於此就是文稿語言程式-被執行,並讓虛擬機器2100繼續運行。因此,如果虛擬機器2100的使用者想執行被允許的文稿語言程式,則管理程序2200放行虛擬機器2100執行該文稿語言程式。反之,如果虛擬機器2100的使用者想執行不被允許的文稿語言程式,則管理程序2200阻止虛擬機器2100執行該文稿語言程式。
於又一實施例中,前述步驟S320中,處理器1300運行管理程序2200並非在第一記憶體位址ADDR1之前插入管理程序呼叫指令。管理程序2200係將記憶體區塊B1中的程式代碼,也就是第一服務函式,連同管理程序呼叫指令一起重新寫入記憶體區塊B1以覆蓋原有的內容。並且,其中管理程序呼叫指令被寫入記憶體區塊B1的起始位址,第一記憶體位址ADDR1。換句話說,當虛擬機器2100藉由透過執行第一虛擬記憶體位址VADDR1來試圖執行第一服務函式時,首先被執行的會是管理程序呼叫指令,從而虛擬機器2100的運行被中斷,而管理程序2200被呼叫。
於另一實施例中,前述步驟S320可以藉由將記憶體區塊B1的屬性修正為不可執行。其中一種實施方式中,處理器1300在運行管理程序2200執行到步驟320時,係藉由將第一記憶體位址ADDR1的屬性修正為不可寫入。虛擬機器2100要執行文稿語言程式時,會先試圖執行記憶體1200中不可執行的第一記憶體位址ADDR1,因此產生了例外事件(exception event),此時必須由管理程序2200來進行例外控制(exception handle),因此虛擬機器2100會暫時停止運行而等待管理程序2200完成例外控制(也就是步驟S330以及後續步驟)。
另一實施方式中,處理器1300在運行管理程序2200執行到步驟320時,係藉由將第一虛擬記憶體位址VADDR1的屬性修正為不可寫入。虛擬機器2100要執行文稿語言程式時,會先試圖執行虛擬記憶體VMEM中不可執行的第一虛擬記憶體位址VADDR1,因此產生了例外事件(exception event),此時必須由管理程序2200來進行例外控制(exception handle),因此虛擬機器2100會暫時停止運行而等待管理程序2200完成例外控制(也就是步驟S330以及後續步驟)。
於一實施例中,其中關於步驟S330的實施方式,請參照圖6A,其係依據本揭露一實施例中步驟S330的方法流程圖。如步驟S331所示,管理程序2200首先從虛擬機器2100的虛擬硬碟中抓取造成虛擬機器2100中斷運行的物件,也就是文稿語言程式。接著如步驟S333A所示,管理程序2200檢查此一文稿語言程式是否被記錄於儲存於資料庫2300的白名單。當文稿語言程式被記錄於白名單時,如步驟S335A所示,管理程序2200判斷文稿語言程式可以被執行。當文稿語言程式未被記錄於白名單時,如步驟S337A所示,管理程序2200判斷文稿語言程式不可以被執行。
其中,關於前述步驟S333A,具體來說,管理程序2200首先解析此文稿語言程式整體以得到關於此文稿語言程式的一個校驗和(checksum)。此處在得到校驗和時,必須把文稿語言程式所執行的內容全部加以解析以得到校驗和。接著,管理程序2200搜尋資料庫2300的白名單,以判斷白名單是否有記錄前述校驗和。具體來說,如果一個文稿語言程式的校驗和被記錄於白名單,則此文稿語言程式可以被執行。
於另一實施例中,請參照圖6B,其係依據本揭露另一實施例中步驟S330的方法流程圖。如步驟S331所示,管理程序2200首先從虛擬機器2100的虛擬硬碟中抓取造成虛擬機器2100中斷運行的物件,也就是文稿語言程式。接著如步驟S333B所示,管理程序2200檢查此一文稿語言程式是否被記錄於儲存於資料庫2300的黑名單。當文稿語言程式被記錄於黑名單時,如步驟S335B所示,管理程序2200判斷文稿語言程式不可以被執行。當文稿語言程式未被記錄於黑名單時,如步驟S337B所示,管理程序2200判斷文稿語言程式可以被執行。
其中,關於前述步驟S333B,具體來說,管理程序2200首先解析此文稿語言程式以得到關於此文稿語言程式的多個特徵區塊。接著管理程序2200解析每個特徵區塊以得到對應於前述多個特徵區塊的多個校驗和。接著,管理程序2200搜尋資料庫2300的黑名單,以判斷黑名單是否有記錄任何一個校驗和。具體來說,如果一個文稿語言程式的多個特徵區塊所對應的多個校驗和有任何一個被記錄於黑名單,則此文稿語言程式不可以被執行。
透過上述各實施例,當虛擬機器2100的使用者執行一個指令中有文稿語言程式,或是虛擬機器2100收到其他的指令來源(例如網頁或是電子郵件)需求要執行特定指令且其中有文稿語言程式,則當執行到文稿語言程式的時候,會對函式表中所定義的虛擬記憶體位址,也就是第一虛擬記憶體位址VADDR1或是第二虛擬記憶體位址VADDR2,進行執行。而這樣的執行會使虛擬記憶體2100的運行中斷,並使管理程序2200被呼叫來進行例外控制。如此,管理程序2200得以解析造成此中斷事件的文稿語言程式是否被一個白名單定義或被一個黑名單所定義,而據以決定此文稿語言程式是否可以被執行。
由於白名單/黑名單的檢查並非由虛擬機器2100所執行,而是由管理程序2200所執行,因此當有新的文稿語言程式要被加入白名單或黑名單時,伺服器1000的維護者不需要對每一個虛擬機器進行更新,而僅需對於管理程序進行更新,如此可以降低維護的複雜度。
此外,依據本揭露各實施例的伺服器設定方法,係藉由管理程序將虛擬記憶體VMEM或是記憶體1200的特定位址/區塊進行修改,因此不會暫用硬體除錯資源。具體來說,無論有多少個虛擬機器在伺服器1000上運行,藉由本揭露的方法/伺服器,這些虛擬機器當要執行文稿語言程式時,都會觸發前述的中斷事件使管理程序介入進行例外控制。
綜上所述,依據本揭露至少一實施例的伺服器設定方法,藉由修改特定記憶體區塊,使得當虛擬記憶體要執行文稿語言程式時,會中斷運行,並對造成此中斷事件的文稿語言程式進行檢查。藉以在不需要更新虛擬機器指令集的前提下,實現了對於文稿語言程式的攔查。
雖然本揭露以前述之實施例揭露如上,然其並非用以限定本揭露。在不脫離本揭露之精神和範圍內,所為之更動與潤飾,均屬本揭露之專利保護範圍。關於本揭露所界定之保護範圍請參考所附之申請專利範圍。
1000‧‧‧伺服器1100‧‧‧儲存媒介1200‧‧‧記憶體1300‧‧‧處理器2000‧‧‧伺服器系統2100‧‧‧虛擬機器2200‧‧‧管理程序2300‧‧‧資料庫VMEM‧‧‧虛擬記憶體VADDR1、VADDR2‧‧‧虛擬記憶體位址ADDR1、ADDR2‧‧‧記憶體位址A、B0、B1‧‧‧記憶體區塊S310、S320、S321、S323、S330、S331、S333A、S333B、S335A、S335B、S337A、S337B、S340、S350‧‧‧步驟
圖1係依據本揭露一實施例的伺服器的功能方塊圖。 圖2係依據本揭露一實施例的伺服器運行虛擬機器的架構示意圖。 圖3係依據本揭露一實施例的伺服器設定方法流程圖。 圖4係依據本揭露一實施例的步驟S320的方法流程圖。 圖5A與圖5B係用以理解步驟S321與S323實作方式的示意圖。 圖6A係依據本揭露一實施例中步驟S330的方法流程圖。 圖6B係依據本揭露另一實施例中步驟S330的方法流程圖。
S310、S320、S330、S340、S350‧‧‧步驟
Claims (14)
- 一種伺服器設定方法,適於設定用於運行一虛擬機器的一伺服器,所述方法包括:於該虛擬機器的一啟動程序中,取得該虛擬機器中一第一服務函式被呼叫時所執行的一第一記憶體位址;對該第一記憶體位址所對應的一記憶體區塊進行修正,使該記憶體區塊被該虛擬機器呼叫時,中斷該虛擬機器的運行;當該虛擬機器的運行被中斷時,一管理程序判斷呼叫該第一服務函式的一文稿語言程式是否可以被執行;若該文稿語言程式不能被執行,該管理程序中斷該文稿語言程式對該第一服務函式的呼叫;以及若該文稿語言程式可以被執行,該管理程序允許該第一服務函式執行該文稿語言程式。
- 如請求項1的方法,其中對該第一記憶體位址所對應的該記憶體區塊進行修正的步驟包含:於該第一記憶體位址前插入一管理程序呼叫指令(hypercall);以及將該第一記憶體位址修正為該管理程序呼叫指令的一起始位址。
- 如請求項1的方法,其中對該第一記憶體位址所對應的該記憶體區塊進行修正的步驟係將該記憶體區塊的屬性修正為不可執行。
- 如請求項1的方法,其中該管理程序判斷呼叫該第一服務函式的該文稿語言程式是否可以被執行的步驟中包括:檢查該文稿語言程式是否被記錄於一白名單;以及 當該文稿語言程式被記錄於該白名單時,判斷該文稿語言程式可以被執行,否則判斷該文稿語言程式不可以被執行。
- 如請求項4的方法,其中於檢查該文稿語言程式是否被紀錄於該白名單的步驟中,包括:解析該文稿語言程式整體以得到一校驗和(checksum);以及判斷該校驗和是否被記錄於該白名單。
- 如請求項1的方法,其中該管理程序判斷呼叫該第一服務函式的該文稿語言程式是否可以被執行的步驟中包括:檢查該文稿語言程式是否被記錄於一黑名單;以及當該文稿語言程式被記錄於該黑名單時,判斷該文稿語言程式不可以被執行,否則判斷該文稿語言程式可以被執行。
- 如請求項6的方法,其中於檢查該文稿語言程式是否被紀錄於該黑名單的步驟中,包括:解析該文稿語言程式以得到多個特徵區塊;解析該些特徵區塊以得到多個校驗和(checksum);以及判斷該些校驗和是否被記錄於該黑名單。
- 一種伺服器,適於運行一虛擬機器,包括:一非揮發性儲存媒介,儲存用於運行該虛擬機器之一指令集;一記憶體;以及一處理器,電性連接該非揮發性儲存媒介與該記憶體,當執行該指令集時,執行下列步驟: 於該虛擬機器的一啟動程序中,取得該虛擬機器中一第一服務函式所指向的一第一記憶體位址;對該記憶體中,該第一記憶體位址所對應的一記憶體區塊進行修正,使該記憶體區塊被該虛擬機器呼叫時,中斷該虛擬機器的運行;當該虛擬機器的運行被中斷時,一管理程序判斷呼叫該第一服務函式的一文稿語言程式是否可以被執行;若該文稿語言程式不能被執行,該管理程序中斷該文稿語言程式對該第一服務函式的呼叫;以及若該文稿語言程式可以被執行,該管理程序允許該第一服務函式執行該文稿語言程式。
- 如請求項8的伺服器,其中當該處理器對該第一記憶體位址所對應的該記憶體區塊進行修正時包含:於該第一記憶體位址前插入一管理程序呼叫指令(hypercall);以及將該第一記憶體位址修正為該管理程序呼叫指令的一起始位址。
- 如請求項8的伺服器,其中當該處理器執行對該第一記憶體位址所對應的該記憶體區塊進行修正的步驟時,包括將該記憶體區塊的屬性修正為不可執行。
- 如請求項8的伺服器,其中當該處理器執行該管理程序判斷呼叫該第一服務函式的該文稿語言程式是否可以被執行的步驟時,包括:檢查該文稿語言程式是否被記錄於一白名單;以及 當該文稿語言程式被記錄於該白名單時,判斷該文稿語言程式可以被執行,否則判斷該文稿語言程式不可以被執行。
- 如請求項11的伺服器,其中當該處理器執行檢查該文稿語言程式是否被紀錄於該白名單的步驟時,包括:解析該文稿語言程式整體以得到一校驗和(checksum);以及判斷該校驗和是否被記錄於該白名單。
- 如請求項8的伺服器,其中當該處理器執行該管理程序判斷呼叫該第一服務函式的該文稿語言程式是否可以被執行的步驟時,包括:檢查該文稿語言程式是否被記錄於一黑名單;以及當該文稿語言程式被記錄於該黑名單時,判斷該文稿語言程式不可以被執行,否則判斷該文稿語言程式可以被執行。
- 如請求項13的伺服器,其中當該處理器執行檢查該文稿語言程式是否被紀錄於該黑名單的步驟時,包括:解析該文稿語言程式以得到多個特徵區塊;解析該些特徵區塊以得到多個校驗和(checksum);以及判斷該些校驗和是否被記錄於該黑名單。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106140913A TWI682323B (zh) | 2017-11-24 | 2017-11-24 | 伺服器及其設定方法 |
CN201711327743.XA CN109840408A (zh) | 2017-11-24 | 2017-12-13 | 服务器及其设定方法 |
US16/150,172 US20190197235A1 (en) | 2017-11-24 | 2018-10-02 | Server and setting method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106140913A TWI682323B (zh) | 2017-11-24 | 2017-11-24 | 伺服器及其設定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201926033A TW201926033A (zh) | 2019-07-01 |
TWI682323B true TWI682323B (zh) | 2020-01-11 |
Family
ID=66882879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106140913A TWI682323B (zh) | 2017-11-24 | 2017-11-24 | 伺服器及其設定方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190197235A1 (zh) |
CN (1) | CN109840408A (zh) |
TW (1) | TWI682323B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW538376B (en) * | 2000-10-24 | 2003-06-21 | Vcis Inc | Analytical virtual machine |
US6961930B1 (en) * | 1999-09-22 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Efficient, transparent and flexible latency sampling |
TW201118739A (en) * | 2009-11-30 | 2011-06-01 | Inventec Corp | A management system of the virtual machine for the application and a method therefore |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006101549A2 (en) * | 2004-12-03 | 2006-09-28 | Whitecell Software, Inc. | Secure system for allowing the execution of authorized computer program code |
US8381284B2 (en) * | 2009-08-21 | 2013-02-19 | Mcafee, Inc. | System and method for enforcing security policies in a virtual environment |
US8973144B2 (en) * | 2011-10-13 | 2015-03-03 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
US9256552B2 (en) * | 2011-11-21 | 2016-02-09 | Cisco Technology, Inc. | Selective access to executable memory |
CN103377149B (zh) * | 2012-04-16 | 2016-05-11 | 群联电子股份有限公司 | 保护数据的方法、存储器控制器与存储器储存装置 |
CN106599683B (zh) * | 2015-10-16 | 2019-10-22 | 华为技术有限公司 | 一种确定隐藏的内核模块的方法、装置及设备 |
CN106227671B (zh) * | 2016-08-05 | 2018-10-26 | 网易(杭州)网络有限公司 | 程序运行性能分析方法及装置 |
-
2017
- 2017-11-24 TW TW106140913A patent/TWI682323B/zh active
- 2017-12-13 CN CN201711327743.XA patent/CN109840408A/zh active Pending
-
2018
- 2018-10-02 US US16/150,172 patent/US20190197235A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961930B1 (en) * | 1999-09-22 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Efficient, transparent and flexible latency sampling |
TW538376B (en) * | 2000-10-24 | 2003-06-21 | Vcis Inc | Analytical virtual machine |
TW201118739A (en) * | 2009-11-30 | 2011-06-01 | Inventec Corp | A management system of the virtual machine for the application and a method therefore |
Also Published As
Publication number | Publication date |
---|---|
TW201926033A (zh) | 2019-07-01 |
CN109840408A (zh) | 2019-06-04 |
US20190197235A1 (en) | 2019-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9454676B2 (en) | Technologies for preventing hook-skipping attacks using processor virtualization features | |
KR102206115B1 (ko) | 인터프리터 가상 머신을 이용한 행동 멀웨어 탐지 | |
KR102255767B1 (ko) | 가상 머신 감사를 위한 시스템 및 방법들 | |
US10545851B2 (en) | Breakpoint insertion into kernel pages | |
KR102189296B1 (ko) | 가상 머신 보안 어플리케이션을 위한 이벤트 필터링 | |
US7996836B1 (en) | Using a hypervisor to provide computer security | |
US8924922B2 (en) | Pre-compiling hosted managed code | |
US8826269B2 (en) | Annotating virtual application processes | |
JP5571201B2 (ja) | ハードウェアモードおよびセキュリティフラグに基づく、読み出される命令用のメモリエリアの制限 | |
JP7432586B2 (ja) | スタック・ポインタを検証すること | |
AU2013219875A1 (en) | Generating and caching software code | |
TW200813838A (en) | Method and apparatus for handling exceptions during binding to native code | |
CN113826072B (zh) | 系统管理模式中的代码更新 | |
TWI682323B (zh) | 伺服器及其設定方法 | |
CN109388948B (zh) | 一种基于虚拟化技术的潜在恶意软件分析方法及相关装置 | |
Zhan et al. | SAVM: A practical secure external approach for automated in‐VM management | |
KR101961818B1 (ko) | 프로세스 중단 없는 메모리 랜덤화 방법 및 이를 수행하기 위한 컴퓨팅 장치 | |
JP7444610B2 (ja) | コンテキスト・データ管理 | |
US20240070260A1 (en) | Process Credential Protection | |
JP2008305016A (ja) | 情報処理装置 |