從許多軟體公司和安全顧問的觀點來看,專挑軟體安全漏洞的David Aitel很不負責任。
Aitel只有二十來歲,是資安弱點評估公司Immunity的創辦人。和其他眾多資安研究員一樣,他鎖定使用普及的軟體產品追查其中的安全問題。但不同點在於,Aitel揪出軟體瑕疵之後,並不把他的發現通報程式製造商。
上周,Immunity公布一份資安通告,凸顯蘋果電腦公司的Mac OS X作業系統有四種安全漏洞。該公司早在七個月前就發現這些弱點,但只有公司內部人員和客戶得知此事,並未通知蘋果。
「我不認為任何人有義務代別家公司做品質管制,」Aitel說:「若資訊是你自己尋獲的,依我們之見,你就應該有權隨心所欲使用那些資訊。」
儘管微軟等公司努力宣導安全預警應該如何發布、何時發布才妥當,但像Aitel這樣的獨立的研究員依然堅持自己揭露軟體瑕疵的主張。
對他們來說,軟體公司處理軟體弱點的作法太安逸了,而這種情況已造成從發現安全漏洞到發布修補程式的時間間隔拖長。
問題的癥結是,軟體業者大力推動所謂「負責任的」揭露方式,呼籲研究員暫緩宣布安全漏洞,好讓軟體製造商有時間亡羊補牢。如此一來,按照這種論點來說,即可保護瑕疵產品的使用者免受駭客攻擊。然而,一位安全專家指出,這種作法也便宜了軟體製造商。
網路監測公司Counterpane Internet Security的技術長Bruce Schneier說:「只要一般大眾不曉得有安全漏洞,何必花錢迅速修補漏洞呢?唯有完整的揭露訊息,才能促使軟體業者持續開誠布公。」
安全瑕疵的討論結果要公開到什麼程度才適當,引起各方爭辯,但其實這是老問題。鎖匠社群過去一個半世紀以來,就一直爭論這個議題,到現在仍沒有共識。
賓州大學電腦系教授Matt Blaze第一手見識過此爭議可能引起眾怒。Blaze曾把電腦運算上的安全威脅拿來與現實世界裡的門鎖做比較。他的研究論文曾揭露一些鎖的弱點,而那些弱點卻是專業鎖匠寧可絕口不提的祕密。
一名自稱是退休鎖匠的人士在貼出Blaze文章的布告欄上投書說:「身為保全界的專業人員,對於這麼敏感的資訊到處流傳,可能給客戶的安全和我們的工作帶來傷害,我們怒不可遏。」
Blaze發現,這種反應一點都不稀奇。鎖匠對門鎖的弱點向來守口如瓶,這種傳統可回溯至19世紀中葉,當時有個機械鎖的發明者因為發表這類安全弱點的細節而成為眾矢之的,讓他覺得有必要自我辯護。
Alfred C. Hobbs在1853年出版的一本書上寫道:「早在鎖匠彼此切磋之前,不法之徒就已經對開鎖一事知之甚詳,就像最近他們展現的這般。」
他還說:「不論是在哪一國製造或製造者是誰,倘若鎖不像世人先前以為的那樣無懈可擊,那麼當然正派人士最好知道此事,因為不肖人士相當清楚如何把獲得的知識付諸行動。就此而論,讓這些知識廣為流傳是有必要的,目的在公平對待那些可能因為無知而受害的人。」
以前,許多駭客和安全研究員逕自公布軟體瑕疵,而未考慮到可能對網際網路使用者產生的影響。微軟等公司改變這種情況。微軟三年前推出「可信賴運算」(Trustworthy Computing)計畫,力圖紓解自家軟體的安全問題。其中一項措施,是展開支持資安社群工作的計畫。同時,微軟也開始指責該公司認為太早發布瑕疵細節的研究人員。
權利平衡?
結果是:資安研究員與軟體公司各退一步,據信對產品用戶有利。
舉例來說,蘋果資安小組的工作繼續保密,但大約每個月會發布修補程式。微軟也採納每個月第二個禮拜二發布修補程式的嚴格時間表,若新瑕疵被發現對用戶的系統構成重大威脅,則另當別論。資料庫製造商甲骨文公司採取逐季公布的時間表。
「我們認為,這最符合客戶的利益,」微軟安全應變中心經理Kevin Kean說:「研究社群內一大部分的人士同意我們的看法,並以負責的態度與本公司合作。」
但一些安全研究員認為,這種條件交換太便宜軟體公司了,因為如此一來他們就可以隨自己方便調整修補漏洞的過程,不會為了兼顧推出修補程式而干擾軟體產品開發過程。一些專家指稱,那會導致他們對安全性的鬆懈態度變本加厲。
因此,eEye Digital Security儘管遵照微軟的負責任揭露原則行事,但同時也在自己的網站上開闢專頁,記錄從該公司向微軟通報弱點到軟體巨人回應前的累計時間。eEye網站上被評為最嚴重的瑕疵,早在將近六個月前就已知會微軟。
雙方關係緩和,就瑕疵公諸於世到發布修補程式的時間差縮小而言,也讓軟體製造商顯得大有進步。例如,Forrester Research追蹤一年後發表研究報告,就對微軟努力縮小弱點空窗期表示讚許,同時,大多數Linux軟體在這方面則被微軟給比了下去。這是一大副作用,讓安全研究員相信微軟有合作誠意,儘管一般的看法並非如此。
「開發者社群一般的共識是,他們想對開放原始碼計畫助一臂之力,而不是扯後腿,」Forrester Research副總裁兼研究部經理以及這份報告的作者Laura Koetzle說:「至於對付一家大型的、無人情味的公司,則不由得想提早揭露訊息以傷害他們。」
揭露弱點的爭議直指一個老問題的核心:如果發布詳細的安全威脅警告,會讓更多人暴露於危險之中,那樣做負責任嗎?
這種顧慮元月中旬在一份以Linux核心(kernel)為主題的郵寄名單上引起討論。有人建議建立一個接觸點專門討論Linux核心的安全問題,立刻掀起此郵寄名單應該公開或私下討論此事的論戰。
這場辯論的另一焦點是,鎖定軟體商為討論目標的Vendor-Sec安全郵件名單,是不是花太多時間處理重大瑕疵。
也參與這場討論的Linux創始人Linus Torvalds寫說:「應該釐清的一點是,沒有任一方...可以要求別人閉嘴,或要求除了『讓我們尋求適當解決方法』之外的配合動作。否則,那只會變成爭控制權的權謀罷了。」
然而,一般來說,必須依循公眾開發模式的開放原始碼界,大致已學會如何接納安全研究員。
「若外頭有人向我們通報弱點,那麼接下來該如何處置,得任憑發現者決定,」SuSE Linux安全部負責人Roman Drahtmueller說。SuSE Linux是Novell版的Linux作業系統。
但微軟公司則希望與發現瑕疵的人士祕密合作,以協助準備推出修補程式。隨著微軟的安全弱點成為大眾檢視的焦點,而數億名使用者都倚靠微軟的產品,軟體巨人有一套系統性的修補程式處理方式。
微軟的Kean說:「這樣對用戶最好,因為我們就有機會趕在惡意人士利用弱點為害之前,先提供更新程式。」
不遵照規定行事的人,即使找到瑕疵,不但姓名不會出現在微軟的安全布告欄上,而且還會在微軟發布的新聞稿中受到指責,外加別的制裁。
針對自認為不當的弱點揭露行為,微軟通常會在電子郵件中聲明:「微軟擔心,這項在(產品名稱)發現的新弱點,並未以負責任的作法告知微軟,可能讓電腦使用者暴露於危險之中。」
儘管微軟等公司努力改進,許多研究員仍不覺得這些公司把他們的發現當一回事。雖然有些安全軟體業者稱讚蘋果對新發現的弱點反應快速,但也有獨立研究員對該公司評價不佳。
「這些年來,跟這些公司打交道真的有如拔牙一般,」一位不願具名的研究員說:「我知道有許多人在他們的產品裡發現弱點,但大多拒絕跟他們往來。」
即使安全研究員與軟體製造商攜手合作,暫緩把弱點公諸於世,恐怕也只能營造一絲虛幻的安全感罷了,Aitel說。他表示,仍會有為數雖少、但不容小覷的惡意程式設計師可能自行發現這類安全漏洞,然後加以利用。
他說:「我們不覺得自己發現別人都不得而知的事情。我不因為我會執行除錯程式,而自以為有什麼了不起。別人也會發現這些漏洞,然後加以運用。」



4.ckmagician 於 2008/03/18 00:30 回應
0%的安全在程式設計中本來就是不可能達成的事情,就連每個程式設計師第一次學的C語言程式"印出一個Hello World字串",都可以輕易地被駭掉,而且寫一個程式要去抓出程式中所有的錯誤,已經被電腦科學領域的專家證明為這是一個NP-Complete的問題了。那些發現漏洞而沾沾自喜馬上公佈,或者是自以為懷抱神聖使命感的安全專家們,如果今天你家門口用的鎖頭有漏洞,而早上有人跟全世界公開了這個漏洞,中午你回到家就發現你家被闖入並且東西全被偷光,甚至是被一把火燒了你家,你是會怪房屋建商沒有即時來給你換新鎖頭?還是去怪自己要相信這個建商?還是去怪自己當時在上班沒有馬上請假回來換鎖頭?
還是你會去怪那個在早上跟全世界大大小小的小偷公開了這個漏洞,還自以為是英雄要逼建商去換鎖的人?
這個世界上有的人架網站不是為了營利也不是為了出名還是為了收集別人資訊,只是為了交流感情或者是為了方便或者是為了學業。但是我就曾經看到一個自稱是"安全專家"的義大利人,進來駭掉了我的個人討論板,就只是為了顯示他找到了這個不是我寫的討論區程式的錯誤,顯示他的找錯功力有多厲害,結果討論區上所有的聊天紀錄全部付之一炬。
這樣叫做負責任?這樣叫做為了使用者的安全著想?這樣叫做逼著使用者去跟那些軟體供應商抗議然後逼他們去更新漏洞?
我回信給那位先生,他還用很強硬的措辭告訴我,我使用一個軟體前應該要熟悉它的程式。難道你到麥當勞吃蘋果派之前要先背熟蘋果是怎麼種、怎麼採收還有麵粉是怎麼搓揉以及麥當勞是用什麼油跟多少度去炸的嗎?否則萬一有人拿蘋果派來砸你臉,讓你燙傷了,他就可以跟你說"誰叫你不先了解剛出爐的蘋果派有多燙"?
難道你切菜之前,要先了解你手上用的菜刀是用多硬的鋼作成的?還要背熟裡面的碳跟鐵的成份是多少比多少?不然哪天有人在路上拿菜刀來砍你,他就可以跟你說"誰叫你不先了解這把菜刀有多利"?
這些所謂的"安全專家"只不過是一群自以為是、沒有半點道德標準的惡意程式設計師,就跟那些公然在別的魔術師表演時跟觀眾講要怎麼破解魔術的人一樣,口頭上說是激勵別的魔術師開發出更完美的魔術,但是完全沒有顧慮到有多少觀眾因為這樣再也無法體會到,看魔術時那種神奇的感動。
你可以跟我說"啊,反正我不說的話,遲早也會有奧客自己看破",那你這樣子的說法跟"啊,反正我現在不殺了你的話,遲早也是會有一定的機率有人來殺你"不是一樣的道理嗎?
那些自以為是的安全專家們,不要再拿冠冕堂皇的理由來掩蓋自己的無責任感跟優越心態了,你們不過是一群沒有半點羞恥心跟道德標準的惡霸。有更好以及更顧全軟體、網路使用者的方法不做,只會想著要第一個搶先公佈讓自己出名,這不是自以為是的優越感是什麼?
不要再找藉口,你真的以為你拿菜刀砍路上那些無辜的路人,路人就會跑去對賣菜刀的提告而不是對你嗎?還是你是要他們拿電鋸來取代菜刀來切菜?或者是你要把全世界的菜刀通通消滅,最好大家只能拿著整隻豬串在火上烤?
軟體本身就是有利也有弊,利的是方便性,弊的是各種的漏洞與副作用。程式設計師的天職應該是保護使用者,增進軟體的利、改善軟體的弊。如今你不顧眾多無辜又對程式毫無半點常識的使用者,直接把他們或許只是為了生計而架設的網站曝光在惡意的攻擊者手下,你居何良心?難道一定要等到有人家中賴以生計的訂單因為網路攻擊而不復存在,因此而全家燒炭自殺了,你才肯摸著良心嗎?
程式設計師的後輩們看清楚,這種不問道德,只願在資訊世界中強出名的人,我們不屑當他是個程式設計師!!
(寫於中華民國97年3月18日半夜,作者為國立台灣大學資訊工程研究所碩士生,目前寫畢業論文中)
3.Andy 於 2005/02/17 21:42 回應
姑息養奸??不同意的人是否是姑息養奸的心態?還是同路人?亦或是願意當冤大頭的人??
2.JY 於 2005/02/02 07:16 回應
本來就沒有絕對的安全就像飛在天上的飛機, 失事率並非 0%, 只因它低於某個數值, 人們還是願意冒這個險, 坐飛機到處跑
資安也是一樣, 0% 也只是個神話, 沒有被發現並不表示它不存在.
可悲的是, 天下並沒有白吃的午餐. 當資安公司與軟體公司鬥爭的同時, 開銷成本卻是由消費者買單.
到底要多安全才算安全, 這個循環將永無止境 ...
1.George 於 2005/02/01 14:03 回應
虛幻的安全感"資安研究員與軟體公司各退一步,據信對產品用戶有利。"作為結論其實並不十分妥當, 舉例來說, 微軟一般的更新可能在通報之後一到三個月後釋放更新, 但是對於安全相關資訊收集較齊全, 甚至真正進行研究的人來說, 在被弱點相關資料公開之前取得 exploit (私下交換, 甚至公開取得) 還算是相當常見的事情, 換句話說, 資安研究員的退讓, 是讓"弱點被發現"到"更新檔釋放"的時間延長, 更簡單一點的說, 就是使用者所面的的空窗期更長.
在軟體公司這邊, 如微軟, 在收到通報之後, 可能得等上一到三個月之後, 才會有所反應(釋放更新), 有時這段時間可能長達半年, 一年, 甚至予以忽略(如Office VBA的問題, IE 的問題). 相較於 Linux 套件廠商的一週或更短, BSD 系列的數天, 甚至短至數個小時 -- 這種差異在文中也提到過, 這是廠商的『心態問題』.
以為軟為例, STPP 開始之後, 微軟第一個動作是要求資安廠商不准公開弱點相關資訊, 而後, 甚至以公開姓名與攻訐作為報復手段. 其心態可想而知. 更有甚者, 以延後和合併更新(延遲應釋放的更新), 來降低更新和弱點的計數, 在 2004 年末, 已經可以在更新檔已發展完成後, 仍放任已經被公開的"嚴重"等級更新不予釋放.
如果就數字來看, 也許會產生已經比以前更為安全的虛幻印象, 但是使用者實際面對的是更長的空窗期, 和更危險的漏洞(漂白, 以中等或輕微來描述嚴重的漏洞).
讓使用者暴露在安全風險當中的不是安全研究員, 而正是軟體開發廠商, 心態問題在更新品質上更無疑的被反應出來, 例如unicode和路徑檢查的問題更新的幾次是有目共睹的, 這反應了原始程式碼的品質, 也反應了微軟製作更新檔的心態. 如果沒有充分的揭露, 實際上也將不被重視. 相同的問題, 很少出現在開放原始碼的套件當中, 即使有, 使用者也有機會自行改善, 而非永無止境的等待 -- 或說是坐以待斃.
哪一種狀況對於用戶來有利, 其實是很明顯的. 延遲, 除了製造虛幻的安全感, 還會將用戶置於更嚴重的風險當中.