虛擬編譯器

虛擬編譯器可以處理非編譯代碼或任何項目的子集,並且通過補償語法錯誤和補齊遺失的連線部分來對其進行虛擬編譯。此外,它以已公布的用來確定計算機語言確切的背景和行為的標準為基礎。使用這種方法,編譯器就能夠使用原始碼本身來進行分析,並且繞過正式的編譯和連結程式,使編譯器與平台不產生關聯,避免所有的兼容性問題。它可以輕鬆地關聯到需要補救的代碼,同時也很容易增加語言和方言來創建真正的語言不可知平台。

什麼是虛擬編譯器?
虛擬編譯器可以讀取任何原始碼,並把它轉換為一種常見的程式語言形式,然後對漏洞進行徹底的掃描。虛擬編譯器可以處理非編譯代碼或任何項目的子集,並且通過補償語法錯誤和補齊遺失的連線部分來對其進行虛擬編譯。此外,它以已公布的用來確定計算機語言確切的背景和行為的標準為基礎。使用這種方法,編譯器就能夠使用原始碼本身來進行分析,並且繞過正式的編譯和連結程式,使編譯器與平台不產生關聯,避免所有的兼容性問題。
虛擬編譯器採用了Java虛擬機創新的概念,並且更進了一步。在Java中,對於操作環境來說,語言是不可知的,虛擬編譯器中對於語言的複雜性也是不可知的。它處理所有的語言和方言的方法是一樣的,都把它們變成常見的語言形式。二進制級別上實現的常見語言形式,現在已經被成功地轉化為原始碼級別語言形式。值得注意的是,來源不需要完全一樣,甚至不完整也可以。虛擬編譯器可以接受開發人員在編譯和連結方面出現錯誤,此外,標準編譯器所展現的旁路缺陷加強了代碼,這也提高了分析的準確性。雖然對不完整代碼進行掃描之初,不能發現後期可能出現的所有問題,但事實證明已經能夠發現很大一部分問題,並且被用於開發周期的初期,也使得效率被提高的優點顯現出來。
它是如何工作的?
虛擬編譯器可以處理任何原始碼,並將其轉換成統一的形式,然後進行漏洞掃描。
以下是虛擬編譯器的圖解:
虛擬編譯器按以下步驟工作:
1. 語言適配器—第一步基於市場上所有編譯器所使用的出版標準分析原始碼。
2. 語法補償CheckMarx識別出語法錯誤並且將程式里附近未被解決的那部分隔離出來,同時促使進行全面處理。
3. 連結分解—Checkmarx識別出遺失的及尚未解決的連結,補充遺失的連結部分,促使對整個已解決流程進行檢測。
4. 代碼增強器—編譯是運行時刻所專有的過程,並且要在此時最佳化,因此要在問題解決過程中創建Checkmarx代碼增強器所避免的缺陷:
o 增加遺失的控制流元素
o 區別歧義性數據元素
o 避免由編譯器最佳化所造成的曲解
o 解決運行時刻虛擬函式的調用
5. 常見的語言形式-將語言虛擬成為一種包含到結構和數據流屬性的常見形式。
6. 詳盡的流掃瞄器(EFS-最終,掃描的複雜性和精度與應用程式圖表的深度相關聯。Checkmarx正在申請專利的算法,通過詳盡的流掃瞄器來執行,從而在一個流程圖內掃描所有路徑的缺陷,避免其他代碼分析儀從中途簡化操作。因此,除了一般優點之外,EFS的做法還具有精準的優勢。Checkmarx代碼分析器是當今唯一的幾乎為零誤報的產品。雖然其他產品用起來有衝擊治療的表現,但由於其較高的配置和較低的誤報率,Checkmarx用戶的體驗將在較短時間內就能夠上手,並且使用開銷也較低。
來源掃描一經完成,所有代碼和流動特性都被存儲在一個資料庫中,可以通過開放的查詢語言來檢查漏洞。現成的查詢再加上為企業標準和業務邏輯的量身定做,確保會對整體進行全面的漏洞檢查。
虛擬編譯的影響
以編譯器為基礎的方法其主要風險是:第一,構建可能經常會失敗,關鍵的安全漏洞沒有報告;第二,靜態分析沒有在開發的初期被部署到桌面上。虛擬編譯器為在開發過程中影響安全性的所有利益相關者提供了妥善的解決辦法。
·審查人員:虛擬編譯意味著審計師能夠在任何時候對任何代碼庫進行檢查。審計師應當有能力迅速進入代碼級審查,隨後審查高級別的趨勢。由於不對以編譯器為基礎的辦法存在依賴,審計師就不會受到編譯器或平台兼容性問題的阻礙,他們所需要的就是來源。較快的審計指的是在較短的時間內審查較多的代碼。最後,審計師很少會訪問一個完整項目的所有代碼,對於虛擬編譯器來說,這就不再成為障礙。
· 安全負責人:靜態分析儀的存在使開發人員更關注其採用的技術和生產力問題。虛擬編譯器的出現意味著代碼分析將被更廣泛地使用,來使首席信息安全官更快速更準確地了解其“危險的工廠”,使他們能夠實施有效管制來遏制危險。
·開發人員:掃描未構建代碼的能力會把靜態分析進一步推回到開發生命周期,在這種能力有用的時候,虛擬編譯對開發人員和審計師的桌面可用性影響最大。代碼分析就是為了在開發過程中最便宜的階段削減錯誤的發生。此外,由於代碼增強和詳盡的流掃描程式,用戶可以獲得更為準確的結果。
結論:虛擬編譯器以顯著降低的總成本提供了一個堅實的投資回報率,虛擬編譯為企業組織提供了最佳途徑來實施安全開發,同時系統地消除了軟體的風險。虛擬編譯簡化了在軟體開發過程中的關鍵利益相關者的工作流程,提高其發現問題的效率,並減少對昂貴的專業服務的需求。虛擬編譯器,使開發人員和審計師能夠隨時隨地掃描代碼。對於首席信息安全官而言,這意味著在企業中保障應用程式的安全終於是實際可行的了。java的編譯器,或者說jdk,是用來將源碼編譯成class位元組碼的,是java的開發環境;虛擬機就是裝有jre的可以運行class位元組碼的東東,可以是手機、電腦、和其他,只要能安裝上java的運行環境jre,就能在其上面運行class,這就構成了一個jvm。java虛擬機,是java的運行環境。
另外,兩者是分開的,但是jdk上自帶有jre,因為要開發java的話就必須有jdk和jre;如果純粹只要能運行java程式的話,就只要安裝jre就好了!

相關詞條

熱門詞條

聯絡我們