網路城邦
上一篇 回創作列表 下一篇  字體:
分享ClearView修復技術 增加程式免疫力 等兩篇文章
2009/11/02 10:49:26瀏覽286|回應0|推薦0
ClearView修復技術 增加程式免疫力
聯合新聞網 2009/11/02
【聯合報╱特約撰述那福忠】
美國麻省理工學院和華盛頓大學研究團隊近來發表一套技術,可在幾分鐘之內修復電腦程式的錯誤,讓程式永遠運轉。研究結果在最近的ACM電腦作業系統原理會議發表,成品取名ClearView,使運轉中程式增加免疫力,來應付程式的錯誤或外力惡意攻擊。
ClearView的偵測與修復,完全自動,不但不需人力介入,也不用修改程式的原始碼,而是直接從程式的運轉碼(解譯後的原始碼,稱為 Object Code),分析程式的行為。
ClearView 首先觀測程式的正常運轉,從中制訂一些規則,一旦偵測到異常狀況,特別是來自外力的惡意侵入,就辨識程式的運轉違反了哪些規則,然後發展出幾種俗稱「補丁」(Patch)的修補方式,再進一步分析每一種補丁的適合性,找出機率最高的補丁,直接置入程式運轉碼,進行修補,並檢驗修補效益,如果發現補丁違反另外的規則,或是可能導致當機,則放棄這一補丁,改用下一個。
為了驗證功能,研究小組把 ClearView安裝在在一批使用 Firefox瀏覽器的電腦上,然後雇用一群人扮演駭客,用10種不同的攻擊方法進行破壞,結果駭客攻擊全都被ClearView偵測到,在電腦遭到破壞之前,停止了瀏覽器的運轉。在10種攻擊之中,ClearView製造了7種補丁,修正了瀏覽器的運轉程式碼,也同時刪除了有副作用的補丁。從偵測攻擊到瀏覽器恢復正常,不到5分鐘。
領導這項研究的麻省理工教授瑞納德(Martin Rinard)說,他的研究小組可以導向大家朝另一方向思考,因為軟體會這麼脆弱,是因為我們讓它脆弱的。


電腦程式 自動維修
那福忠 2009/11/03
電腦卡住不動,唯一的辦法就是重新開機,想大家都有過這樣的經驗。個人電腦可以這麼做,資料的損失或不嚴重,但主機電腦、伺服器卡住關機,後果就可能嚴重。最好不必關機,更好是自動找出問題解決,恢復正常運轉。專業安全的塞門鐵克 (Symantec) 公司 2006 年的報告指出,電腦程式的運轉一旦發出可疑症狀,工程師從找出原因、經修正、測試、安裝,到恢復正常運轉,平均需要一個月的時間。
美國麻省理工學院 Martin Rinard 教授,會同華盛頓大學的 Michael Ernst 教授,率領一個研究團隊,可以在幾分鐘之內修復程式的錯誤,讓電腦程式永遠運轉、無懈可擊。研究結果在最近的 ACM 電腦作業系統原理會議發表,這個團隊同時與欣興公司 Determina 合作,積極把研究成果發展為成品,取名 ClearView,使運轉中程式增加免疫力,來應付程式的錯誤,或者遭受外力的惡意攻擊。
電腦的工作不論簡單或是複雜,都是按著設計師事先寫好的指令依序運作,也就是俗稱的「程式」,中國大陸稱作「程序」,更是明確。人的腦子很簡單,不善處理複雜的事,所以寫的程式必然有錯,也就是俗稱的「臭蟲」(Bug) ,運轉的時候遇到臭蟲,小則運算出錯、大則資料損毀當機,所以必需要捉臭蟲 (Debug),才能恢復正常運轉,成為程式設計的一大困擾。
ClearView 的偵測與修復,完全自動,不但不需人力介入,也不用修改程式的原始碼(人寫的稱為 Source Code),而是直接從程式的運轉碼(解譯後的原始碼、供電腦運轉、稱為 Object Code),來分析程式的行為。ClearView 首先觀測程式的正常運轉,從中制訂一些規則,一旦偵測到異常狀況,特別是來自外力的惡意輸入,就辨識程式的運轉違反了哪些規則,然後發展出幾種俗稱「補丁」(Patch) 的修補方式,再進一步分析每一種補丁的適合性,找出機率最高的補丁,直接置入程式運轉碼,進行修補,並檢驗修補結果的效益,如果發現補丁違反另外的規則,或是可能導致當機,則放棄這一補丁,改用下一個。
ClearView 對多個電腦使用同樣軟體的環境,最為有效,因為一台電腦發生的問題與處理方式,可以用到所有的電腦。另外因為不涉及程式的原始碼,直接在電腦裡的運轉碼上修正,所以不必與原始碼的供應商聯繫,而特別對一些老舊程式有用,因為原始碼可能遺失或未能更新,甚至原供應廠商已經停止營業,ClearView 不再維護原始碼的理念,在此特別發揮效用。
為了驗證功能,研究小把 ClearView 安裝在在一批使用 Firefox 瀏覽器的電腦上,然後雇用外界一群人扮演駭客,用十種不同的攻擊方法,進行破壞,結果百分百被 ClearView 偵測,在電腦遭到破壞之前,停止了瀏覽器的運轉。在十種攻擊之中,ClearView 製造了七種補丁,修正了瀏覽器的運轉程式碼,也同時刪除了有副作用的補丁。從偵測到攻擊、到瀏覽器恢復正常,不到五分鐘。
Richard 教授說,他的研究小組可以導向大家朝另一方向思考,因為軟體對錯誤的警覺並非天生脆弱,其所以這麼脆弱是因為我們讓它脆弱的,大家普遍認為如果程式發生問題,就不應該再繼續運轉。但有一些軟體工程理念,像「忽略略錯誤運算」(Failure-Oblivious Computing),就同意 Richard 教授的說法,認為不必製造人為的脆弱。「忽略錯誤運算」是電腦程式到錯誤仍應繼續運算,再從錯誤運算的結果,尋求問題的根源與解決方法,一反傳統顯示錯誤、甚至停機的作法,這一概念正是 Richard 教授在 2004 所發表的。
學界對 Richard 教授的研究團隊有也很肯定,美國加州大學聖地亞哥分校的華裔教授周圓圓 (Zhou Yuanyuan),從事電腦軟體可靠度的研究,對 ClearView 的成果頗為認同,但希望進一步看到 ClearView 在更廣泛的應用領域試驗。紐西蘭 Wellington 大學的 David Pearce 博士,認為遇到問題製造補丁解決,特別是遇到破壞性的攻擊,優於傳統的關機保護,但 ClearView 也可能帶給使用人困擾,例如網頁瀏覽器發生錯誤,僅允許特定長度的網址,ClearView 就會把過長的網址切斷,固然防止了當機,卻找到了錯誤的網頁,但這樣的情節並不嚴重。
會修理自己的東西不多,設計也相當複雜。電腦軟體得天獨厚,有足夠的機制、不需額外的材料,有機會達到 Richard 教授的理想,讓程式永遠運轉、無懈可擊。
( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=wenxing&aid=3459145