TWI423040B - 一種用於藉由一安全性虛擬機器執行一安全政策的方法以及系統 - Google Patents

一種用於藉由一安全性虛擬機器執行一安全政策的方法以及系統 Download PDF

Info

Publication number
TWI423040B
TWI423040B TW094106137A TW94106137A TWI423040B TW I423040 B TWI423040 B TW I423040B TW 094106137 A TW094106137 A TW 094106137A TW 94106137 A TW94106137 A TW 94106137A TW I423040 B TWI423040 B TW I423040B
Authority
TW
Taiwan
Prior art keywords
security
instruction
computing device
virtual machine
instructions
Prior art date
Application number
TW094106137A
Other languages
English (en)
Other versions
TW200617702A (en
Inventor
Arthur H Baker
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of TW200617702A publication Critical patent/TW200617702A/zh
Application granted granted Critical
Publication of TWI423040B publication Critical patent/TWI423040B/zh

Links

Classifications

    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01HSTREET CLEANING; CLEANING OF PERMANENT WAYS; CLEANING BEACHES; DISPERSING OR PREVENTING FOG IN GENERAL CLEANING STREET OR RAILWAY FURNITURE OR TUNNEL WALLS
    • E01H5/00Removing snow or ice from roads or like surfaces; Grading or roughening snow or ice
    • E01H5/04Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material
    • E01H5/06Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material dislodging essentially by non-driven elements, e.g. scraper blades, snow-plough blades, scoop blades
    • E01H5/065Apparatus propelled by animal or engine power; Apparatus propelled by hand with driven dislodging or conveying levelling elements, conveying pneumatically for the dislodged material dislodging essentially by non-driven elements, e.g. scraper blades, snow-plough blades, scoop blades characterised by the form of the snow-plough blade, e.g. flexible, or by snow-plough blade accessories
    • E01H5/066Snow-plough blade accessories, e.g. deflector plates, skid shoes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Architecture (AREA)
  • Storage Device Security (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

一種用於藉由一安全性虛擬機器執行一安全政策的方法以及系統
本發明之技術大致關於執行一安全性政策以攔截一電腦程式所造成之不友善行為。
軟體系統,如作業系統與檔案系統,提供了應用程式介面讓應用程式可以存取該軟體系統的服務。一應用程式介面可提供帶有參數之函數以執行特定之服務。舉例來說,檔案系統可以有建立檔案之函數(也可以稱之為「系統呼叫」)。在檔案建立的時候,該函數可利用參數來指定檔案路徑、檔案名稱、檔案型態、檔案大小等等。當應用程式呼叫一函數時,會傳遞符合該函數定義之正規參數的實際參數值。該函數也可以對實際的參數執行一些檢驗以確保其有效性。舉例來說,該檔案建立函數可以確保該特定的檔案型態是有效的。如果是一無效之參數,該函數就會回傳錯誤訊息給該應用程式。
有許多原因會讓軟體系統變得極端複雜。軟體系統可能會嘗試與之前所有版本相容(backward compatible)。在這種情況之下,該軟體系統可能需要支援之前版本之應用程式介面的所有函數。由於典型而言各版本都會加入新函數,所以函數的數目會變得很大,而其間之互動會非常複雜。一些軟體系統也可以納入相同公司的不同部門或不同公司所開發的軟體元件。這些元件的互動也會變得非常複 雜。
對於軟體系統而言,確保其應用程式介面不會因不經意的誤用或刻意的攻擊而受到傷害,變得越來越重要。軟體系統的某一弱點可能就是因其應用程式介面參數所造成。當先前版本的函數與新版本函數結合時,以及將來自不同開發者之元件整合時,現行透過函數來執行參數驗證可能不足以確保該函數能正確地執行。舉例來說,由一家公司開發的檔案系統應用程式介面可能會被整合到由另外一家公司所開發的檔案伺服器中。該應用程式介面之最大檔案大小參數可能會大於該檔案伺服器所支援的大小。在此例中,該應用程式介面可接受的檔案大小可能會對該檔案伺服器造成問題。在另一例中,系統管理員可能會進一步限制最大的檔案大小,但是該系統管理員可能沒有可用的方法來執行該限制。
綜上所述,提出一執行安全性政策的機制將有其意義,特定言之,是用以指出應用程式介面參數有效條件的安全性政策。
一安全性虛擬機器提供一種用於執行一安全性政策的方法與系統。該安全性虛擬機器包含一處理引擎、一指令儲存庫、一資料儲存庫及一指令指標。該安全性虛擬引擎利用特定的中介語言(intermediate language)執行一安全性程式,該中介語言是由安全性政策高階語言表示法所編 譯。且該安全性程式在執行前會被載入到該指令儲存庫中。當一安全性強制執行事件(security enforcement event)發生時,例如呼叫一應用程式介面的函數,該安全性強制執行事件的資料會被儲存在資料儲存庫,而處理引擎會開始從該指令儲存庫取得安全性程式的指令並執行之。該指令會根據安全性強制執行事件的資料來確認執行該安全性政策所要採取的動作。
本發明提供在一電腦系統內,一種用於執行編碼在一安全性虛擬機器指令集之安全性政策的方法與系統。在一具體實施例中,一安全性系統提供一安全性虛擬機器來執行以安全性虛擬機器指令集(如:中介語言)所呈現之安全性程式。該安全性系統可能包含一編譯器以用來接收以高階語言所表示之安全性政策,並產生安全性虛擬機器中介語言之安全性程式,以表示該安全性政策。該安全性系統會將該安全性程式儲存在安全性虛擬機器的指令儲存庫中。當發生一安全性強制執行事件時(即,一需要被檢驗以確保其遵守該安全性政策之動作),該安全性虛擬機器會利用安全性強制執行事件之資料,執行來自其指令儲存庫之安全性程式指令,以執行該安全性政策。如果該安全性強制執行事件顯示出一不友善的行為有執行的可能時(如,一可能利用作業系統弱點的動作),該安全性程式就會防止該行為的發生。在一具體實施例中,該安全性系統 的安全性虛擬機器會在作業系統核心模式下執行,以辨別及預防應用程式及外部系統對正執行安全性系統的電腦系統執行不友善的行為。
在一具體實施例中,該安全性系統會辨識出一應用程式對系統服務(如:檔案系統及記憶體管理系統)所發出之系統呼叫參數在何時會造成一不友善的行為。該安全性政策包含複數規則,每一規則指定一依據該系統呼叫參數之條件以及指定當符合該條件時所執行之動作。舉例來說,當一檔案建立系統呼叫產生,其參數指定大於1GB的檔案大小時,則可能滿足某一規則的條件。與該規則相關聯之動作可能會阻止該檔案的建立。該高階語言可以是一XML型態的語言,且每一規則也可以根據規則、條件及動作標記(action tags)來辨別。當以高階語言所表示之安全性政策規則被編譯時,每一條規則都會被轉換成為中介語言指令以形成該安全性程式。舉例來說,一規則可能會被轉換成為一系列的指令。其中一者會比較該系統呼叫與表示該函數為「建立檔案」之數值,其中一者會比較檔案大小參數與1GB常數值,並且其中一者會輸出一指示以攔截該系統呼叫。
在一具體實施例中,該安全性虛擬機器包含一處理引擎、一指令儲存庫、一指令指標及一資料儲存庫。當初始化該安全性虛擬機器來執行該安全性政策時,該安全性系統會載入具有安全性程式的指令儲存庫以實施安全性政策。該安全性系統也會將該安全性程式的資料載入到資料 儲存庫中。當接收到一系統呼叫時,該安全性系統會將該系統呼叫的參數(包含一辨別該系統呼叫的值)儲存到該資料儲存庫中。該安全性系統也會將系統呼叫送至資料儲存庫中之程序的處理控制資訊(process control information)儲存起來。該安全性系統會初始化該指令指標,將其指向一安全性程式的啟始指令。處理引擎會取得及執行由指令指標所指向之啟始指令來啟動該安全性程式。所執行之每一指令都會修改該指令指標以指向下一要被執行之指令。該指令參照該資料儲存庫的資料來執行該安全性政策。執行該安全性程式會產生一輸出行動集(an output action set),以指定要執行哪些動作(如:攔截系統呼叫)以執行該安全性政策。
在一具體實施例中,該安全性政策可能至少包含每一系統呼叫(其參數將會被檢查)的子政策(sub-policy)。該安全性系統可將每一子政策編譯成為一個別的安全性子程式,而該安全性子程式可獨立於其他安全性子程式載入到該指令儲存庫中。每一子政策可與單一系統呼叫的安全性強制執行相符。該安全性系統可維持每一系統呼叫與指令儲存庫中的啟始指令指標間之對應關係,以及一啟始資料指標與安全性子程式之資料儲存庫中的資料之對應關係。當根據一系統呼叫執行安全性政策時,該安全性系統會將該指令指標初始化成為相對應之啟始指令指標,並將該資料指標初始化成為相對應之啟始資料指標。該安全性子程式可以使用與該指令指標與資料指標相對應的指令與 資料索引技術。在此方法之下,每一安全性子程式的指令與資料都可再重新定址(relocatable)。在以下的說明中,單一的安全性程式會將每一系統呼叫解碼並跳至適當之指令位置,來處理該每一系統呼叫,藉此控制所有系統呼叫。習知技藝人士皆明瞭可調整所述之系統以支援每一系統呼叫之子程式。
第1圖為說明一具體實施例中安全性系統元件的區塊圖。該安全性系統包含在使用者模式100下執行的一些元件與在核心模式120下執行的其他元件。政策編譯器(policy compiler)102為一在使用者模式下執行的元件,用來將政策儲存庫103中的安全性政策編譯成可由安全性虛擬機器執行的安全性程式。該核心模式元件包含一系統呼叫攔截元件(system call intercept component)121、一載入程式元件122及一安全性虛擬機器125。該安全性虛擬機器包含一指令指標(ip)126、一處理引擎127、一指令儲存庫128及一資料儲存庫129。該載入程式元件會將經由政策編譯器編譯的安全性程式載入到安全性虛擬機器之指令儲存庫中、儲存程式資料到資料儲存庫中,並設定啟始指令指標。系統呼叫攔截元件會攔截由應用程式101所發出的系統呼叫並將每一系統呼叫之參數及應用程式之處理控制資訊儲存到資料儲存庫中。在攔截一系統呼叫並儲存其參數之後,該系統呼叫攔截元件會命令處理引擎去執行該指令儲存庫中的安全性程式。而為了執行該安全性程式,該處理引擎會取得指令指標所指向的指令並實施該指 令所指定之作業。該作業包含儲存所要採取之行動,以執行在資料儲存庫之輸出行動集中的安全性政策。在安全性程式執行完成之後,系統呼叫攔截元件會執行輸出行動集之行動。
在該安全性系統上的計算裝置(computing device)可能包含一中央處理單元、記憶體、輸入裝置(如:鍵盤及指向裝置)、輸出裝置(如:顯示裝置)及儲存裝置(如:磁碟機)。該記憶體與儲存裝置都是電腦可讀取媒體,其可儲存實施安全性系統的指令。另外,該資料結構及訊息結構也可以透過一資料傳送媒體儲存或傳送,如:通訊連結之訊號。至於其他的通訊連結也可加以利用,例如:網際網路、區域網路、廣域網路或點對點的撥接連線。
第1圖說明實現該安全性系統之合適作業環境實施例。該作業環境為其中一種合適的作業環境實施例,其不應視為對安全性系統的功能或使用範圍構成任何限制。其他適合使用並為人所熟知的電腦系統、環境及設定組態,包含個人電腦、伺服器、手持式或膝上型設備、多處理器系統、微處理器型之系統、可程式化消費型電子、網路電腦、迷你電腦、大型主機、包含以上任何一種系統或裝置的分散式電腦環境…等。
該安全性系統大致可以由一或複數電腦或其他裝置執行之電腦可執行指令(例如:程式模組)說明。一般來說,程式模組包含常式、程式、物件、元件、資料結構等,以用來執行特定的工作或實行特定的抽象資料型態。典型而 言,該程式模組的功能可以依照需要結合或分散在各種實施例中。
第2圖為一區塊圖,其說明一具體實施例中資料儲存庫的資料結構。該資料儲存庫包含一文字資料結構(literal data structure)201、一動態資料(dynamic data)結構211、一系統呼叫參數資料結構221、一程序控制區塊資料結構231及一行動輸出集241。該文字資料(literal data)結構包含一文字資料表202及一文字資料儲存庫203。該文字資料表包含固定大小的項目(entries),其會索引存放在文字資料儲存庫中的文字資料。「文字資料」會參照至該安全性程式的資料,其在目前已載入安全性政策存在期間固定不變。而文字資料只可以藉由載入新安全性政策的方式做變動。動態資料結構具有一與該文字資料結構相類似之組織,但其是儲存「動態」資料而非「文字資料」。參照到該安全性程式資料的「動態資料」無需載入一新的安全性政策就可修改。舉例而言,動態資料可能包含該應用程式的名稱,其無需經安全政策之檢驗。文字及動態資料表的每一項目會指向其相對應資料儲存庫中的資料。該文字及動態資料儲存庫的資料都是使用自我解釋格式(self-describing format)來呈現。該格式包含資料型態與資料大小資訊。在一具體實施例中,該安全性虛擬機器支援布林(Boolean)、整數、字串及原始二位元資料(也可稱為二進位大型物件(blob)),並支援整數、字串及二進位大型物件(blobs)之陣列資料型態。指令利用索引將該 文字及動態資料參照至該文字及動態表中。當在一指令執行時,安全性虛擬機器會檢索索引項目,並利用其值作為該文字或動態資料儲存庫中資料項目(data item)起始之指標,藉此存取(dereference)該文字及動態表索引所指位址中之資訊。因為資料為自我解釋,所以該資料的型態與大小就可以確定出來。該系統呼叫參數的資料結構包含一字串表222、一整數表223、一原始二位元表224。該系統呼叫的參數會根據其資料型態儲存在這些表中。該程序控制區塊資料結構為一資料表,該資料表包含每一可供安全性虛擬機器使用之程序控制資訊的項目。在一具體實施例中,該程序控制資訊包含一應用程式識別碼(application identifier)及一執行緒識別碼(thread identifier)。該行動輸出集可能是一行動旗標(action flags)的集合,該行動旗標於安全性程式執行時產生,並且會指出執行該系統呼叫之安全性政策所必須實施的行動。該行動可能包含攔截該系統呼叫並通知使用者。
第3圖為說明在一具體實施例中安全性虛擬機器指令的配置方式。每一指令都包含一作業欄位310、一參數1欄位320、一真分支欄位(tb,true branch field)330、一假分支欄位(fb,false branch field)340及一參數2欄位350。參數1欄位會參照與該系統呼叫相關聯的資料(即儲存在該系統呼叫資料結構或程序控制資料結構中的資料),而且參數2欄位會參照與安全性程式相關聯的資料(即即時資料或儲存在文字或動態資料結構的資料)。作業 欄位包含一參數2之敘述元311(「m」)及一運算碼(opcode)312。參數2敘述元會指出如何轉譯參數2。參數2可以包含立即(immediate)資料、動態資料的參照或文字資料的參照。當某一參照被確定時,該安全性虛擬機器會在執行該指令的作業之前存取參數2所指位址中之資訊。該運算碼會識別該指令之作業(詳如下述)。參數1欄位包含一參數1敘述元321(「s」)及一索引322。該參數1敘述元會指出參數1要參照到系統呼叫參數或是參照到程序控制資訊。如果該參數1敘述元是顯示一系統呼叫參數,則該索引的高位(high-order)位元會指定該系統呼叫參數資料結構的字串資料表、整數資料表或原始二位元資料表中何者會被編入索引,而低位(low-order)位元會指定該資料表的索引項目。如果參數1敘述元顯示有處理控制資訊,則該索引會指出該特定的處理控制資訊。真分支欄位與假分支欄位包含位移量(offsets),其根據該指令之條件碼(cc,condition code)為真或假,指出下一個要執行的指令。該位移量會被加入到目前的指令指標以指向下一要執行的指令。
表1與表2描述一具體實施例中安全性虛擬機器的指令。這些指令可以歸類成哪些是用來測試資料而哪些不是。表1列出了所有非測試用的指令。
表2列出了測試指令。該型樣指令(pattern instruction)可能定義一規則表示法(regular expression)來比較兩字串,其在以萬用字元比較檔案名稱(如:「*.DAT」)時頗為有用。
第4圖為一流程圖,其說明一具體實施例中載入程式元件之程序。該元件會在安全性程式載入到該安全性虛擬機器時啟動。一安全性程式包含虛擬指令、一文字資料區塊及一動態資料區塊。該文字資料區塊包含文字資料表的資訊,其後為文字資料儲存庫的資訊。該元件會複製該文字資料區塊到從啟始位置開始起算的文字資料儲存庫。該元件接下來會將該基準位置加到文字資料表內的每一位移量,以將該位移量轉換為指標。該元件也會使用類似的方法來處理動態資料區塊。虛擬指令包含相對於文字儲存庫及動態儲存庫起點之位移量。在區塊401中,該元件會識別該文字儲存庫的啟始位置並從啟始位置複製該安全性程式的文字資料區塊。在區塊402中,該元件會將文字資料表中的每一位移量加上啟始位置,以將該安全性程式的位移量轉換成為指標。在區塊403中,該元件會識別動態儲存庫的啟始位置,並從啟始位置複製該安全性程式之動態資料區塊。在區塊404中,該元件將動態資料表的每一位移量加上啟始位置,以將該安全性程式的位移量轉換成為指標。在區塊405中,該元件會將該安全性程式的虛擬指令複製至指令儲存庫,然後結束流程。
第5圖為一流程圖,其說明在一具體實施例中系統呼 叫攔截元件之處理流程。該元件係於一系統呼叫被攔截時被啟用。該元件會先初始化該系統呼叫參數之資料結構與程序控制之資料結構,然後再啟動該安全性虛擬機器。該元件也可能提供該指令的指令指標以啟動執行程序來處理該系統呼叫。當用到安全性子程式時,該元件可能會將系統呼叫對應至啟始指令指標,以及對應至指向該系統呼叫之文字與動態資料結構的啟始資料指標。該載入程式元件可被多次呼叫以載入不同之安全性程式的子程式來處理不同的系統呼叫。因為該指令與資料係根據位移量決定,所以該指令與資料可以儲存在該指令儲存庫與資料結構的下一個可用位置裡。在區塊501中,該元件會設定目前的指令指標(ip)成為安全性程式的啟始指令指標,並將行動輸出集重設為初始狀態(如,空白(empty))。在區塊502-504中,該元件會重複地儲存該系統呼叫的參數到該系統呼叫參數資料結構中。在區塊502中,該元件會選取該系統呼叫的下一參數。在判斷區塊503中,如果該系統呼叫的所有參數都已經被選取,則該元件會執行區塊505,否則執行區塊504。在區塊504中,該元件會儲存選取的參數到適當的系統呼叫參數資料結構表中,然後重複回到區塊502選取該系統呼叫的下一個參數。在區塊505-507中,該元件會反覆儲存處理控制資訊到處理控制資料結構中。在區塊505中,該元件會選取處理系統呼叫之程序的下一筆處理控制資訊。在判斷區塊506中,如果所有處理控制資訊都已經被選取,則該元件會執行區塊508,否則執行 區塊507。在區塊507中,該元件會儲存所選取之處理控制資訊到處理控制資料結構中,然後重複回到區塊505以選取下一筆處理控制資訊。除了使用並初始化內部程序處理資料結構外,當需要的時候,該安全性系統也可直接從一處理控制區塊取得處理控制資訊。習知技藝人士皆明瞭,當一程序產生時,作業系統即產生處理控制區塊。在區塊508中,該元件會啟動該安全性虛擬機器以對被攔截的系統呼叫執行安全性政策。在該安全性虛擬機器執行完安全性程式之後,該元件會實施行動輸出集的行動。
第6圖為一流程圖,其說明在一具體實施例中,該安全性虛擬機器處理引擎之處理流程。該處理引擎根據攔截到的系統呼叫初始化系統呼叫參數資料結構,啟動該安全性虛擬機器,並執行該輸出行動集之行動。在區塊601-607中,該處理引擎會重複載入並執行儲存在指令儲存庫中的安全性程式指令,直到執行中斷指令為止。在一具體實施例中,該安全性政策也可以定義為,當滿足某一規則之條件時,即不會再測試其他規則。在區塊601中,該處理引擎取得目前指令指標所指向之指令。在區塊602中,該處理引擎呼叫一元件,將參數1與參數2所指位址中的資訊取出。在判斷區塊603中,如果該指令的運算碼為一測試作業,則程序引擎會執行區塊604。如果該指令的運算碼為一非測試作業(除了中斷作業之外),則處理引擎會執行區塊608。如果該指令的運算碼為中斷操作,則程序引擎會執行區塊609。在區塊604中,處理引擎會啟動評估測 試元件(evaluate test component)來確定該測試作業評估結果為真或假。該已啟用的元件會將一條件碼旗標設定為真或假。在判斷區塊605中,如果該條件碼為真,則處理引擎會執行區塊607,否則處理引擎會執行區塊606。在區塊606中,處理引擎會將目前的指令指標加上假分支欄位的位移量,然後回到區塊601來取得下一指令。在區塊607中,處理引擎將目前的指令指標加上真分支欄位的位移量,然後回到區塊602取得下一指令。在區塊608中,處理引擎會啟用執行非測試元件(perform nontest component),然後回到區塊601取得下一指令。該執行非測試元件會執行該指令之作業,並將目前的指令指標設定為指向下一要執行的指令。該執行非測試元件會將指令指標加上該指令的真分支位移量(或者是跳躍指令的參數2)。在區塊609中,該元件會執行中斷指令然後完成執行動作。
第7圖為一流程圖,其說明在一具體實施例中,安全性虛擬機器取值元件(dereference component)之處理流程。該元件會對所取得指令的參數1與參數2進行取值。在區塊701-708中,該元件會對參數1取值。在判斷區塊701中,如果參數1為參數1敘述元所指定之系統呼叫參數,則該元件會執行區塊703,否則該元件會執行區塊702。在區塊702中,該元件會將已被取值的參數1設定成該參數1之索引所指定的程序控制資訊,然後執行區塊709。在判斷區塊703中,如果參數1的索引顯示系統呼叫 參數為一整數值,則該元件會執行區塊704,否則就執行區塊705。在區塊704中,該元件會將該已被取值的參數1設定成該索引所指定的整數,然後執行區塊709。在判斷區塊705中,如果該參數1的索引顯示出該系統呼叫參數為一字串,則該元件會執行區塊706,否則就執行區塊707。在區塊706中,該元件將已被取值的參數1設定成該索引所指定的字串,並執行區塊709。在判斷區塊707中,如果參數1的索引顯示出該系統呼叫參數為一原始二位元值,則該元件會執行區塊708,否則就會發生一錯誤。在區塊708中,該元件會將已被取值的參數1設定成為該索引所指定之原始二位元值,並執行區塊709。在區塊709-714中,該元件會對參數2取值。在判斷區塊709中,如果該參數2敘述元顯示為立即資料時,則會執行區塊710,否則執行區塊711。在區塊710中,該元件會將已被取值的參數2設定成為在所取得指令中之參數2的值,然後轉回。在判斷區塊711中,如果該參數2敘述元顯示為文字資料時,則會執行區塊712,否則執行區塊713。在區塊712中,該元件會將已被取值的參數2設定成所取得指令之參數2指定的文字資料,然後返回。在判斷區塊713中,如果該參數2敘述元顯示為動態資料(dynamic data)時,則會執行區塊714,否則就會產生一錯誤。在區塊714中,該元件會將該已被取值之參數2設定成所取得指令之參數2所指定之動態資料,然後返回。
第8圖為一流程圖,其說明在一具體實施例中,安全 性虛擬機器評估測試元件之處理流程。該元件會將已載入指令之運算碼解碼,並啟用一元件以對該運算碼進行測試。該被啟用的元件會將條件碼設定成真或假。在判斷區塊801-803中,該元件會將已載入指令的運算碼解碼。在區塊804-806中,該元件會啟用其他元件來執行已解碼的運算碼,然後返回。
第9圖為一流程圖,其說明在一具體實施例中,安全性虛擬機器測試元件之處理流程。該測試元件會執行測試運算碼。在區塊901中,該元件將條件碼(cc)設定成已被取值參數2之值,然後返回。
第10圖為在一流程圖,其說明在一具體實施例中,安全性虛擬機器核對字串元件(match string component)之處理流程。該元件會確認該已被取值之參數1與已被取值之參數2是否符合。在一具體實施例中,該安全性虛擬機器可能會使用型樣比對(pattern matching)。舉例來說,一參數可能包含一「萬用字元」格式,或一般常用的規則表示法。在判斷區塊1001中,如果參數1與參數2的長度相符合,則該元件會執行區塊1003,否則執行區塊1002。在區塊1002中,該元件會設定條件碼(cc)為假(false),然後返回。在區塊1003-1006中,該元件會反覆檢查該已被取值參數之字串的每一字元。在區塊1003中,該元件會選取每一字串的下一字元。在判斷區塊1004中,如果該字串所有字元都已被選取,則該元件進行至區塊1008,否則進行至區塊1005。在區塊1005中,該元件會將所選取的字 元作正規化(normalize)處理。舉例來說,該元件可能會將每一字元轉換成小寫來執行與大小寫無關的比較。在判斷區塊1006中,如果所選取的字元相符,則該元件會重覆執行區塊1003,以選取字串的下一字元,否則進行至區塊1007。在區塊1007中,該元件會設定條件碼為假,然後返回。在區塊1008中,字串中所有字元都相符,且該元件會設定條件碼為真(true),然後返回。
第11圖為一流程圖,其說明在一具體實施例中,安全性虛擬機器非測試元件之處理流程。該元件會執行所取得指令之非測試運算碼的作業,包含將目前指令指標設定為指向下一要執行的指令。在判斷區塊1101中,如果該運算碼為一行動作業(action operation),則該元件進行至區塊1102,否則進行至區塊1103。在區塊1102中,該元件會將所取得指令之參數2加至動作輸出集,然後進行至區塊1107。在判斷區塊1103中,如果該運算碼為一重置作業(reset operation),則該元件進行至區塊1104,否則進行至區塊1105。在區塊1104中,該元件會將動作輸出集清空,然後進行至區塊1107。在判斷區塊1105中,如果該運算碼為一跳躍作業(jump operation),則該元件會執行區塊1106,否則該元件持續解碼另外的運算碼。在區塊1106中,該元件會將參數2加至目前指令指標,然後返回。在區塊1107中,該元件將真分支欄位之值加至目前指令指標,然後返回。
雖然此處已描述該安全性系統之特定實施例,但習知 技藝人士皆明瞭,在不逾越本發明範圍與精神之情況下,可進行各種修改。習知技藝人士皆明瞭,一使用安全性虛擬機器的安全性系統可用以執行各種不同的的安全性政策。舉例來說,該安全性系統可以用來執行透過網路接收之訊息的安全、由交易處理器接收之交易的安全,及一般常見之任何提供應用程式介面之應用程式的安全。因此,於申請專利範圍內,本發明並不被任何條件所侷限。
100‧‧‧安全性系統
101‧‧‧應用程式
102‧‧‧政策編譯器
103‧‧‧政策儲存庫
110‧‧‧使用者模式
120‧‧‧核心模式
121‧‧‧系統呼叫攔截
122‧‧‧載入程式
125‧‧‧安全性虛擬機器
126‧‧‧指令指標
127‧‧‧處理引擎
128‧‧‧指令儲存庫
129‧‧‧資料儲存庫
201‧‧‧文字資料結構
202‧‧‧文字資料表
203‧‧‧文字資料儲存庫
211‧‧‧動態資料結構
212‧‧‧動態資料表
213‧‧‧動態資料儲存庫
221‧‧‧系統呼叫參數
222‧‧‧字串表
223‧‧‧整數表
224‧‧‧原始二位元資料表
231‧‧‧程序控制區塊表
241‧‧‧動作輸出集合
310‧‧‧作業欄位
311‧‧‧敘述元
312‧‧‧運算碼
320‧‧‧參數1欄位
321‧‧‧參數1敘述元
322‧‧‧參數1索引
330‧‧‧真分支欄位
340‧‧‧假分支欄位
350‧‧‧參數2欄位
401‧‧‧複製文字資料到文字資料儲存庫
402‧‧‧轉換文字資料位移量到指標中
403‧‧‧複製動態資料到動態資料儲存庫
404‧‧‧轉換動態資料位移量到指標中
405‧‧‧複製指令到指令儲存庫中
501‧‧‧指令指標等於啟始指令指標
502‧‧‧選取下一筆參數
503‧‧‧所有參數是否都已選取
504‧‧‧儲存到參數表
505‧‧‧選取下一筆處理控制資訊
506‧‧‧所有參數是否都已選取
507‧‧‧儲存到處理控制資訊表
508‧‧‧啟動虛擬機器
601‧‧‧載入下一虛擬指令
602‧‧‧將指令參數取值
603‧‧‧運算碼
604‧‧‧評估測試
605‧‧‧條件碼為真
606‧‧‧將假分支欄位加至指令指標
607‧‧‧將真分支欄位加至指令指標
608‧‧‧執行非測試
609‧‧‧執行中斷指令
701‧‧‧s==系統呼叫參數
702‧‧‧data1=pcb[index]
703‧‧‧索引==整數
704‧‧‧data1=integer[index]
705‧‧‧索引==字串
706‧‧‧data1=string[index]
707‧‧‧索引==原始二位元值
708‧‧‧data1=raw[index]
709‧‧‧m==立即資料
710‧‧‧data2=p2
711‧‧‧m==文字
712‧‧‧data2=literal data[literal table[p2]]
713‧‧‧m==動態值
714‧‧‧data2=dynamic data[dynamic table[p2]]
801‧‧‧運算碼==測試
802‧‧‧運算碼==cmpeq
803‧‧‧運算碼==核對字串
804‧‧‧測試
805‧‧‧cmpeq
806‧‧‧字串核對
901‧‧‧條件碼==資料2
1001‧‧‧長度相符
1002‧‧‧條件碼==假
1003‧‧‧選取下一字元
1004‧‧‧全部都已選取
1005‧‧‧正規化字元
1006‧‧‧字元相符
1007‧‧‧條件碼==假
1008‧‧‧條件碼==真
1101‧‧‧運算碼==行動
1102‧‧‧將參數增加至行動輸出集
1103‧‧‧運算碼==重置
1104‧‧‧清除行動輸出集
1105‧‧‧運算碼==跳躍
1106‧‧‧指令指標=指令指標+參數2
1107‧‧‧指令指標=指令指標+真分支欄位
第1圖為一區塊圖,說明一具體實施例之安全性系統元件。
第2圖為一區塊圖,說明一具體實施例之資料儲存庫的資料結構。
第3圖說明一具體實施例之安全性虛擬機器指令的配置。
第4圖為一流程圖,說明一具體實施例之載入程式元件之處理流程。
第5圖為一流程圖,說明一具體實施例之系統呼叫攔截元件之處理流程。
第6圖為一流程圖,說明一具體實施例之安全性虛擬機器處理引擎之處理流程。
第7圖為一流程圖,說明一具體實施例之安全性虛擬機器取值元件之處理流程。
第8圖為一流程圖,說明一具體實施例之安全性虛擬 機器評估測試元件之處理流程。
第9圖為一流程圖,說明一具體實施例之安全性虛擬機器測試元件之處理流程。
第10圖為一流程圖,說明一具體實施例安全性虛擬機器核對字串元件之處理流程。
第11圖為一流程圖,說明一具體實施例安全性虛擬機器非測試元件之處理流程。
1001‧‧‧長度是否符合
1002‧‧‧條件碼==假
1003‧‧‧選取下一字元
1004‧‧‧全部都已選取
1005‧‧‧正規化字元
1006‧‧‧字元核對
1007‧‧‧條件碼==假
1008‧‧‧條件碼==真

Claims (20)

  1. 一種用於在一計算裝置中強制執行一安全性政策的方法,該計算裝置具有一第一指令集,該方法至少包含:以一高階語言形式提供一安全性政策,該安全性政策指示可能導致一不合需要行為的系統呼叫之參數;根據一安全性虛擬機器之一第二指令集,將該高階語言形式之該安全性政策編譯成為一安全性程式,該安全性虛擬機器之該第二指令集不同於該計算裝置之該第一指令集,該安全性虛擬機器係使用該計算裝置之該第一指令集的指令所實現;由該計算裝置將該安全性程式載入到該安全性虛擬機器的一指令儲存庫中;以及在該計算裝置上正在核心模式中執行之一作業系統的控制下,由該作業系統從在該計算裝置上正在使用者模式中執行的一應用程式接收一指示,該指示係用一參數來調用該作業系統的一系統呼叫,該調用係在該應用程式於該安全性虛擬機器之外執行期間所發生的一安全性強制執行事件;以及在接收該調用時,並且在該第一指令集的指令正在核心模式中由該計算裝置執行之同時,在該安全性虛擬機器的控制下,由該安全性虛擬機器根據該安全性強制執行事件之資料來執行該指令儲存庫的該安全性程式,以 確保該安全性強制執行事件符合該安全性政策,該安全性強制執行事件之該資料包括該系統呼叫及該參數的一指示;當該安全性強制執行事件符合該安全性政策時,允許該系統呼叫之調用;以及當該安全性強制執行事件不符合該安全性政策時,封鎖該系統呼叫之調用。
  2. 如申請專利範圍第1項所述之方法,其中發出該系統呼叫之一應用程式的處理控制資訊為該安全性強制執行事件之該資料。
  3. 如申請專利範圍第1項所述之方法,其中該安全性程式之資料係儲存在一文字資料結構中。
  4. 如申請專利範圍第3項所述之方法,其中一指令包含對於儲存在該文字資料結構中的文字資料之一參照。
  5. 如申請專利範圍第1項所述之方法,其中該安全性程式之資料儲存在一動態資料結構中。
  6. 如申請專利範圍第5項所述之方法,其中該第二指令集的一指令包含對於儲存在該動態資料結構中的動態資料之一參照。
  7. 如申請專利範圍第1項所述之方法,其中該第二指令集的一指令識別下一要執行指令的位置。
  8. 如申請專利範圍第1項所述之方法,其中該安全性虛擬機器支援了布林(Boolean)、整數、字串及原始二位元(raw binary)資料型態。
  9. 如申請專利範圍第1項所述之方法,其中該安全性虛擬機器支援規則表示法型樣配對比較(regular expression pattern matching comparisons)。
  10. 如申請專利範圍第1項所述之方法,其中該安全性程式的執行建立一輸出行動集,其指定如何處理該安全性強制執行事件。
  11. 如申請專利範圍第1項所述之方法,其中該第二指令集之一指令包含一運算碼、參數及分支欄位。
  12. 如申請專利範圍第11項所述之方法,其中該分支欄位包含:一真分支欄位,該真分支欄位指定當該指令的一條件評估為真時的下一指令;以及一假分支欄位,該假分支欄位指定當該指令的該條件評估為假時的下一指令。
  13. 一種用於在一計算裝置中強制執行一安全性政策的方法,該計算裝置具有一第一指令集,該方法包含下列步驟:以一高階語言形式提供一安全性政策,該安全性政策指示可能導致一不合需要行為的系統呼叫之參數,該安全性政策根據一安全性虛擬機器之一第二指令集而被從該高階語言編譯成為一安全性程式,該安全性虛擬機器之該第二指令集不同於該計算裝置之該第一指令集,該安全性虛擬機器係使用該計算裝置之該第一指令集的指令所實現,該計算裝置之該第一指令集的該等指令由該計算裝置的一中央處理單元所直接執行;由該計算裝置將該安全性程式載入到該安全性虛擬機器的一指令儲存庫中;在該計算裝置上的一應用程式的控制下調用一作業系統的一系統呼叫,該應用程式正在該計算裝置之使用者模式中執行並且在該安全性虛擬機器之外,該作業系統係使用該計算裝置之該第一指令集的指令所實現,該計算裝置之該第一指令集的該等指令由該計算裝置的一中央處理單元所直接執行,該中央處理單元在該計算裝置上執行,該系統呼叫包括一參數;以及當在該計算裝置之核心模式中且在該作業系統的控制下,由該作業系統從該計算裝置上正在使用者模式中執行的該應用程式接收一指示,該指示係以一參數調 用該作業系統之該系統呼叫,該調用係在該應用程式執行期間發生的一安全性強制執行事件,該應用程式係使用該計算裝置之該第一指令集的指令所實現,該計算裝置之該第一指令集的該等指令由該計算裝置的一中央處理單元所直接執行;以及在接收該作業系統之該系統呼叫之該調用之後,立刻在核心模式中啟動該安全性虛擬機器的執行;在該安全性虛擬機器在核心模式中執行期間,根據該安全性強制執行事件之資料來執行該指令儲存庫的該第二指令集之該等指令以確保該安全性強制執行事件符合該安全性政策,該安全性強制執行事件之該資料包括一參數;以及在該安全性虛擬機器的執行被中止後,當該安全性強制執行事件符合該安全性政策時,進行該系統呼叫;以及當該安全性強制執行事件不符合該安全性政策時,封鎖該系統呼叫之進行。
  14. 一種儲存電腦可執行指令的電腦可讀取儲存裝置,該等電腦可執行指令用於藉由一方法來控制一計算裝置以強制執行一安全性政策,該計算裝置具有一第一指令集,該方法包含下列步驟:存取一高階語言形式的一安全性政策,該安全性政 策指示可能導致一不合需要行為的系統呼叫之參數;根據一安全性虛擬機器之一第二指令集,將該高階語言形式的該安全性政策編譯成為一安全性程式,該安全性虛擬機器之該第二指令集不同於該計算裝置之該第一指令集,該第二指令集包括具有一運算碼欄位、一第一參數欄位及一第二參數欄位的指令,該第一參數欄位參照關聯於一系統呼叫的資料,該第二參數欄位參照關聯於該安全性程式的資料,該安全性虛擬機器係使用該計算裝置之該第一指令集的指令所實現;載入該安全性程式到該安全性虛擬機器的一指令儲存庫中;當正在該計算裝置之核心模式中,並且在該計算裝置上執行中之一作業系統的控制下,從正在該計算裝置上在使用者模式中執行的一應用程式,接收以參數對該作業系統的一系統呼叫的調用,該調用係在該應用程式在該安全性虛擬機器之外執行期間發生的一安全性強制執行事件;以及在接收該調用之後,並且在該第一指令集的指令正由該計算裝置執行之同時,在該安全性虛擬機器的控制下,根據該安全性強制執行事件之資料來執行該指令儲存庫的該第二指令集之該等指令,以確保該安全性強制執行事件符合該安全性政策,該安全性強制執行事件之該資料包括一參數; 當該安全性強制執行事件符合該安全性政策時,允許該系統呼叫之調用;以及當該安全性強制執行事件不符合該安全性政策時,封鎖該系統呼叫之調用。
  15. 如申請專利範圍第14項所述之電腦可讀取儲存裝置,其中發出該系統呼叫的一應用程式的處理控制資訊係為該安全性強制執行事件的該資料。
  16. 如申請專利範圍第14項所述之電腦可讀取儲存裝置,其中該安全性程式之資料係儲存在一文字資料結構中。
  17. 如申請專利範圍第16項所述之電腦可讀取儲存裝置,其中該第二指令集的一指令包含對於儲存在該文字資料結構中的文字資料之一參照。
  18. 如申請專利範圍第14項所述之電腦可讀取儲存裝置,其中該安全性程式之資料儲存在一動態資料結構中。
  19. 如申請專利範圍第18項所述之電腦可讀取儲存裝置,其中該第二指令集的一指令包含對於儲存在該動態資料結構中的動態資料之一參照。
  20. 一種儲存電腦可執行指令的電腦可讀取儲存裝置,該 等電腦可執行指令用於藉由一方法來控制一計算裝置以強制執行一安全性政策,該計算裝置具有一第一指令集,該方法包含下列步驟:儲存一安全性程式到一安全性虛擬機器的一指令儲存庫中,該安全性虛擬機器具有不同於該第一指令集的一第二指令集,且該安全性程式具有該第二指令集之指令;攔截由一應用程式針對一作業系統之一系統服務所發出的一系統呼叫,該應用程式正在該計算裝置之使用者模式中執行,該發出動作係在該應用程式在使用者模式中且在該安全性虛擬機器之外執行期間發生的一安全性強制執行事件;以及當在該計算裝置的核心模式中時,接收該安全性強制執行事件的一指示;由該安全性虛擬機器執行被儲存在該指令儲存庫中的該安全性程式之該等指令,以決定該安全性強制執行事件是否符合該安全性政策;當該安全性強制執行事件符合該安全性政策時,允許該系統呼叫繼續進行;以及當該安全性強制執行事件不符合該安全性政策時,封鎖該系統呼叫。
TW094106137A 2004-04-27 2005-03-01 一種用於藉由一安全性虛擬機器執行一安全政策的方法以及系統 TWI423040B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/832,798 US8607299B2 (en) 2004-04-27 2004-04-27 Method and system for enforcing a security policy via a security virtual machine

Publications (2)

Publication Number Publication Date
TW200617702A TW200617702A (en) 2006-06-01
TWI423040B true TWI423040B (zh) 2014-01-11

Family

ID=34939240

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094106137A TWI423040B (zh) 2004-04-27 2005-03-01 一種用於藉由一安全性虛擬機器執行一安全政策的方法以及系統

Country Status (17)

Country Link
US (1) US8607299B2 (zh)
EP (1) EP1596298B1 (zh)
JP (1) JP4902129B2 (zh)
KR (1) KR101143154B1 (zh)
CN (1) CN1690957B (zh)
AU (1) AU2005200911B2 (zh)
BR (1) BRPI0501171A (zh)
CA (1) CA2499688C (zh)
CO (1) CO5680123A1 (zh)
MX (1) MXPA05003403A (zh)
MY (1) MY147383A (zh)
NO (1) NO336813B1 (zh)
NZ (1) NZ539022A (zh)
RU (1) RU2390837C2 (zh)
SG (1) SG116580A1 (zh)
TW (1) TWI423040B (zh)
ZA (1) ZA200502451B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI567558B (zh) * 2014-03-27 2017-01-21 英特爾股份有限公司 用於虛擬機器的安全分享互連的處理系統、晶片上系統及方法

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469346B2 (en) * 2003-06-27 2008-12-23 Disney Enterprises, Inc. Dual virtual machine architecture for media devices
US8607299B2 (en) 2004-04-27 2013-12-10 Microsoft Corporation Method and system for enforcing a security policy via a security virtual machine
CN100481013C (zh) * 2004-08-03 2009-04-22 索芙特瑞斯提股份有限公司 用于经由上下文策略控制来控制应用程序间关联的系统和方法
US7913092B1 (en) * 2005-12-29 2011-03-22 At&T Intellectual Property Ii, L.P. System and method for enforcing application security policies using authenticated system calls
US7725614B2 (en) * 2006-08-08 2010-05-25 Sandisk Corporation Portable mass storage device with virtual machine activation
US20080127142A1 (en) * 2006-11-28 2008-05-29 Microsoft Corporation Compiling executable code into a less-trusted address space
US20080250407A1 (en) * 2007-04-05 2008-10-09 Microsoft Corporation Network group name for virtual machines
US8365149B2 (en) * 2008-02-29 2013-01-29 International Business Machines Corporation Debugger for a declarative event-driven programming model
US8627299B2 (en) 2008-02-29 2014-01-07 International Business Machines Corporation Virtual machine and programming language for event processing
US8397216B2 (en) * 2008-02-29 2013-03-12 International Business Machines Corporation Compiler for a declarative event-driven programming model
US8533833B2 (en) * 2008-07-14 2013-09-10 Nyotron Information Security Ltd. System, a method, and a data-structure for processing system calls in a computerized system that implements a kernel
US9940181B2 (en) * 2008-07-14 2018-04-10 Nyotron Information Security Ltd. System and method for reacting to system calls made to a kernal of the system
EP2194456A1 (en) * 2008-12-05 2010-06-09 NTT DoCoMo, Inc. Method and apparatus for performing a file operation
US20100162240A1 (en) * 2008-12-23 2010-06-24 Samsung Electronics Co., Ltd. Consistent security enforcement for safer computing systems
US8561090B2 (en) * 2009-02-26 2013-10-15 Red Hat, Inc. Method and an apparatus to implement secure system call wrappers
EP2237200A1 (en) * 2009-04-01 2010-10-06 Alcatel Lucent Method for filtering the streaming of virtual environment content assets, a related system, network element and a related virtual environment content asset
US8429648B2 (en) * 2009-05-28 2013-04-23 Red Hat, Inc. Method and apparatus to service a software generated trap received by a virtual machine monitor
US8813069B2 (en) * 2009-05-29 2014-08-19 Red Hat, Inc. Migration of functionalities across systems
KR101113820B1 (ko) * 2010-03-16 2012-02-29 소프트캠프(주) 응용프로그램의 파일 입출력 보안방법과 보안시스템
JP2012084071A (ja) 2010-10-14 2012-04-26 Toshiba Corp デジタルコンテンツの保護方法、復号方法、再生装置、記憶媒体、暗号装置
US9129138B1 (en) * 2010-10-29 2015-09-08 Western Digital Technologies, Inc. Methods and systems for a portable data locker
US8566899B2 (en) * 2011-03-16 2013-10-22 Symantec Corporation Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure
US8661527B2 (en) 2011-08-31 2014-02-25 Kabushiki Kaisha Toshiba Authenticator, authenticatee and authentication method
JP5275432B2 (ja) 2011-11-11 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
AU2012337403B2 (en) 2011-11-16 2015-04-30 V-Key Inc Cryptographic system and methodology for securing software cryptography
JP5204290B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、システム、及び装置
JP5112555B1 (ja) 2011-12-02 2013-01-09 株式会社東芝 メモリカード、ストレージメディア、及びコントローラ
JP5204291B1 (ja) 2011-12-02 2013-06-05 株式会社東芝 ホスト装置、装置、システム
JP5100884B1 (ja) 2011-12-02 2012-12-19 株式会社東芝 メモリ装置
JP5275482B2 (ja) 2012-01-16 2013-08-28 株式会社東芝 ストレージメディア、ホスト装置、メモリ装置、及びシステム
US9137261B2 (en) 2012-02-03 2015-09-15 Apple Inc. Centralized operation management
CN102831342B (zh) * 2012-07-28 2016-01-06 北京深思数盾科技有限公司 一种提高安卓系统中应用程序保护强度的方法
US9087191B2 (en) * 2012-08-24 2015-07-21 Vmware, Inc. Method and system for facilitating isolated workspace for applications
US9201811B2 (en) 2013-02-14 2015-12-01 Kabushiki Kaisha Toshiba Device and authentication method therefor
US8984294B2 (en) 2013-02-15 2015-03-17 Kabushiki Kaisha Toshiba System of authenticating an individual memory device via reading data including prohibited data and readable data
US10402584B1 (en) * 2015-10-01 2019-09-03 Hrl Laboratories, Llc System and method for translating security objectives of computer software to properties of software code
US10289853B2 (en) * 2016-03-31 2019-05-14 Microsoft Technology Licensing, Llc Secure driver platform
US10650138B2 (en) * 2017-01-27 2020-05-12 Hewlett Packard Enterprise Development Lp System call policies for containers
US11831655B2 (en) 2017-10-02 2023-11-28 Qualcomm Incorporated Incorporating network policies in key generation
CN109639449B (zh) * 2017-10-09 2021-09-03 中兴通讯股份有限公司 虚拟化流镜像策略自动化管理的方法、设备及介质
CN109992974B (zh) * 2017-12-29 2023-04-14 中兴通讯股份有限公司 虚拟机字节码文件的保护方法、设备及可读存储介质
US10747711B2 (en) * 2018-03-20 2020-08-18 Arizona Board Of Regents On Behalf Of Northern Arizona University Dynamic hybridized positional notation instruction set computer architecture to enhance security
US11108823B2 (en) 2018-07-31 2021-08-31 International Business Machines Corporation Resource security system using fake connections
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US11481241B2 (en) * 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11500665B2 (en) * 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
US11182507B2 (en) * 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors
US11880422B2 (en) 2019-02-04 2024-01-23 Cloudflare, Inc. Theft prevention for sensitive information
US10452868B1 (en) * 2019-02-04 2019-10-22 S2 Systems Corporation Web browser remoting using network vector rendering
US11698980B2 (en) * 2019-09-12 2023-07-11 Arm Limited System, devices and/or processes for secure computation on a virtual machine
US11588859B2 (en) * 2021-03-15 2023-02-21 Zscaler, Inc. Identity-based enforcement of network communication in serverless workloads
JP7489548B2 (ja) 2021-06-22 2024-05-23 デジタル・インフォメーション・テクノロジー株式会社 プログラム、情報処理装置、方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546546B1 (en) * 1999-05-19 2003-04-08 International Business Machines Corporation Integrating operating systems and run-time systems
TW575827B (en) * 2001-04-23 2004-02-11 Atmel Corp Microprocessor for executing byte compiled Java code

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
EP0953172B1 (en) * 1997-01-17 2001-08-29 International Business Machines Corporation Protecting resources in a distributed computer system
US6370571B1 (en) * 1997-03-05 2002-04-09 At Home Corporation System and method for delivering high-performance online multimedia services
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
US6125447A (en) * 1997-12-11 2000-09-26 Sun Microsystems, Inc. Protection domains to provide security in a computer system
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6505300B2 (en) * 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6170009B1 (en) 1998-07-17 2001-01-02 Kallol Mandal Controlling devices on a network through policies
US6658571B1 (en) * 1999-02-09 2003-12-02 Secure Computing Corporation Security framework for dynamically wrapping software applications executing in a computing system
US6560774B1 (en) * 1999-09-01 2003-05-06 Microsoft Corporation Verifier to check intermediate language
GB2365561B (en) 1999-12-14 2004-06-16 Ibm Conditional access control
US6567974B1 (en) * 2000-02-25 2003-05-20 Sun Microsystems, Inc. Small memory footprint system and method for separating applications within a single virtual machine
US20010037450A1 (en) 2000-03-02 2001-11-01 Metlitski Evgueny A. System and method for process protection
US6973493B1 (en) * 2000-05-09 2005-12-06 Sun Microsystems, Inc. Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment
CA2315449A1 (en) * 2000-08-10 2002-02-10 Ibm Canada Limited-Ibm Canada Limitee Generation of runtime execution traces of applications and associated problem determination
KR20020033859A (ko) 2000-10-30 2002-05-08 송영호 리눅스 보안 커널
US20020184520A1 (en) * 2001-05-30 2002-12-05 Bush William R. Method and apparatus for a secure virtual machine
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
GB2376761A (en) 2001-06-19 2002-12-24 Hewlett Packard Co An arrangement in which a process is run on a host operating system but may be switched to a guest system if it poses a security risk
US7698713B2 (en) 2001-09-20 2010-04-13 Google Inc. Altered states of software component behavior
GB2381092B (en) * 2001-10-19 2005-10-19 Ibm Object locking in a shared VM environment
JP2003173301A (ja) * 2001-12-07 2003-06-20 Hitachi Ltd ネットワーク,サーバおよびストレージのポリシーサーバ
CA2469633C (en) 2001-12-13 2011-06-14 Japan Science And Technology Agency Software safety execution system
US7536181B2 (en) * 2002-02-15 2009-05-19 Telefonaktiebolaget L M Ericsson (Publ) Platform system for mobile terminals
US7415270B2 (en) * 2002-02-15 2008-08-19 Telefonaktiebolaget L M Ericsson (Publ) Middleware services layer for platform system for mobile terminals
US7178049B2 (en) 2002-04-24 2007-02-13 Medius, Inc. Method for multi-tasking multiple Java virtual machines in a secure environment
US20030204500A1 (en) * 2002-04-25 2003-10-30 Jean-Francois Delpech Process and apparatus for automatic retrieval from a database and for automatic enhancement of such database
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7082598B1 (en) * 2002-07-17 2006-07-25 Vmware, Inc. Dynamic driver substitution
US7149510B2 (en) * 2002-09-23 2006-12-12 Telefonaktiebolaget Lm Ericsson (Publ) Security access manager in middleware
JP2004126854A (ja) 2002-10-01 2004-04-22 Mitsubishi Electric Corp 攻撃対策装置
US7117481B1 (en) * 2002-11-06 2006-10-03 Vmware, Inc. Composite lock for computer systems with multiple domains
US7657937B1 (en) * 2003-01-02 2010-02-02 Vmware, Inc. Method for customizing processing and response for intrusion prevention
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US7478388B1 (en) * 2004-04-21 2009-01-13 Vmware, Inc. Switching between multiple software entities using different operating modes of a processor in a computer system
US8607299B2 (en) 2004-04-27 2013-12-10 Microsoft Corporation Method and system for enforcing a security policy via a security virtual machine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546546B1 (en) * 1999-05-19 2003-04-08 International Business Machines Corporation Integrating operating systems and run-time systems
TW575827B (en) * 2001-04-23 2004-02-11 Atmel Corp Microprocessor for executing byte compiled Java code

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI567558B (zh) * 2014-03-27 2017-01-21 英特爾股份有限公司 用於虛擬機器的安全分享互連的處理系統、晶片上系統及方法

Also Published As

Publication number Publication date
NO336813B1 (no) 2015-11-02
US20050257243A1 (en) 2005-11-17
CO5680123A1 (es) 2006-09-29
MXPA05003403A (es) 2005-10-31
EP1596298A1 (en) 2005-11-16
KR20060044764A (ko) 2006-05-16
JP4902129B2 (ja) 2012-03-21
RU2390837C2 (ru) 2010-05-27
NZ539022A (en) 2007-05-31
EP1596298B1 (en) 2017-02-08
CA2499688A1 (en) 2005-10-27
ZA200502451B (en) 2006-12-27
KR101143154B1 (ko) 2012-05-08
BRPI0501171A (pt) 2006-01-10
RU2005107408A (ru) 2006-08-27
SG116580A1 (en) 2005-11-28
US8607299B2 (en) 2013-12-10
NO20051525D0 (no) 2005-03-22
TW200617702A (en) 2006-06-01
CA2499688C (en) 2014-02-25
JP2005316964A (ja) 2005-11-10
AU2005200911B2 (en) 2010-10-21
AU2005200911A1 (en) 2007-02-15
CN1690957A (zh) 2005-11-02
NO20051525L (no) 2005-10-28
CN1690957B (zh) 2010-06-09
MY147383A (en) 2012-11-30

Similar Documents

Publication Publication Date Title
TWI423040B (zh) 一種用於藉由一安全性虛擬機器執行一安全政策的方法以及系統
Tikhomirov et al. Smartcheck: Static analysis of ethereum smart contracts
US12008386B2 (en) Conservative class preloading for real time java execution
Schlich Model checking of software for microcontrollers
US9329887B2 (en) System and method for controlling multiple computer peripheral devices using a generic driver
US8984502B2 (en) Systems and methods for composing or decomposing a composite image for firmware update images
US6131187A (en) Method and system for translating exception handling semantics of a bytecode class file
US20080120604A1 (en) Methods, Systems, And Computer Program Products For Providing Program Runtime Data Validation
US9003367B2 (en) Specific debug trace collecting
AU2004232058A1 (en) Method and system for detecting vulnerabilities in source code
US8020141B2 (en) Operating-system process construction
US20080168432A1 (en) Quality assurance in software systems through autonomic reliability, availability and serviceability code generatioin
EP2434399A1 (en) Inter-process interference elimination
US6564374B1 (en) Method and apparatus for employing cognitive compares in compare statement sequences
Vanegue et al. Next generation debuggers for reverse engineering
Al-Shammari et al. Smart parser for identifying and detecting insecure functions
Wielemaker SWI-Prolog 5.1
Wielemaker SWI-Prolog 4.0
Both Command-Line Programming
Stroschein Binary Analysis Framework
Tromey GNU gcj
BRPI0501171B1 (pt) Method in a computing device to enforce a security policy
Wielemaker J. Wielemaker@ vu. nl
Schmidt et al. User’s Guide to gperf 3.1
Loftin et al. Solaris to HP-UX 11.0 Porting Guide

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees