May 03, 2006

software validation 小記

"software validation" 是非常複雜的領域,但邁入更廣泛的應用時,是不可忽略的重要議題。今年農曆年間 (Feb 2),跟 ghost 兄在聊天,提到 software validation 的議題。我是這個領域的門外漢,於是當作作業,回家找了一個晚上。雖然我的想法不太符合 ghost 兄預期,不過這個主題該用力思考,特別像是我現在已經很少需要寫 code (定義是,不需要從零寫到有、不需要一手包辦提案、系統分析、設計、實做,以及驗證的種種程序),反倒是問題在於:
  • Optimization Approaches
  • Testing Plans & Verifications
  • Software Validation
  • Integrating & Re-usabilty
  • Value-added
第三項絕對是很重要的議題,並且我對於這方面的理論沒有高度的認知,這是相當嚴重的問題。

早上讀 LinuxDevices.com 的新聞 [Major X security hole found, plugged],提到 [Coverity Inc.] 針對 X Window System 做了軟體品質與安全性的分析,詳情可參考 Daniel Stone 的 post [X.Org Security Advisory: privilege escalation and DoS in X11R6.9, X11R7.0],節錄該 vulnerability 的原理:
    When parsing arguments, the server takes care to check that only root can pass the options -modulepath, which determines the location to load many modules providing server functionality from, and -logfile, which determines the location of the logfile. Normally, these locations cannot be changed by unprivileged users.

    This test was changed to test the effective UID as well as the real UID in X.Org. The test is defective in that it tested the address of the geteuid function, not the result of the function itself. As a result, given that the address of geteuid() is always non-zero, an unpriviliged user can load modules from any location on the filesystem with root privileges, or overwrite critical system files with the server log.
即便是發展二十餘年的軟體計畫,還是有此安全性缺陷,同時,我們也可以發現,從 X.org 在 2004 年重新組織後,許多新式的安全性或軟體品質的議題被提出,很多已經不是典型的模式,[Coverity Inc.] 公司著墨於 Software Validation 領域有不錯的建樹,現在隨便一個知名的軟體專案,程式碼都已經跨越百萬行的門檻,面對這些大怪物,要如何證明並在有限條件內檢驗,就是當今最重要的課題之一。

此外,University of Szeged 的 [Open Source Quality Measurements] 則以 Mozilla 為探討對象,發展一系列驗證軟體品質的技術,其論文 [Extracting Facts from Open Source Software] (PDF 格式) 提及 Columbus Framework 這個 reverse engineering framework,這是 University of Szeged 與 Nokia Research 合作發展以 C/C++ preprocessor/Linker/Filter 為基礎的 static analysis,包含 CANPP、CAN、CANLink,以及 CANFilter 等工具,論文中也提到 Mozilla 1.0 (Aug 2002) 到 Mozilla 1.6 (Jan 2004) 這些版本更動中,透過 Columbus Framework 的實驗與分析結果,並且引入若干指標作探討。其實,在這之前,Mozilla Milestone-9 發展時,M. W. Godfrey 與 E. H. S. Lee 就作過類似的分析,可參考論文 [Secrets from the Monster: Extracting Mozilla’s Software Architecture] (PDF 格式),標題真是取得貼切,M. W. Godfrey 與 E. H. S. Lee 兩人的途徑是透過 PBS 與 Acacia 來作 fact extraction 與 virtualization,在他們規範的 11 個 top-level system 又切割成若干子系統,並且還對軟體元件的相依性做了分析與品質方面的探討。
由 jserv 發表於 May 3, 2006 01:29 PM
迴響
發表迴響









記住我的資訊?