對於一個久經考驗的大型系統,開源對於發現漏洞的幫助有多大?

譬如說五百萬行代碼起算的。


沒人會傻到去看,除了openbsd那幫人


開源使得不同的人可以用各式各樣的代碼漏洞自動檢測工具進行檢測,有利於用戶從感情上相信生產組織沒有植入後門的惡意;開源同時使得不同的人使用各式各樣的代碼漏洞自動挖掘工具進行漏洞挖掘,有利於攻擊者發現可利用的漏洞。

對於用戶數有限的大規模代碼而言,僅限於安全性這個方面,開源比閉源要更危險。


還是得有利益驅動,沒利益,誰挖?

不過既然是久經考驗的大型系統,那一般會有很多利益,包括那種灰色的…


很多人都想當然的在討論,開源 是否等於 更多人審核代碼,其實(人工)審核代碼只是發現漏洞的一種方式而已。當然更多的的人審核會發現更多的漏洞,但是不是說一定要用審核來發現漏洞。還可以Fuzz,可以動態/靜態分析,可以形式化證明。

實際上,在人工審核代碼上,開源並不見得有多大的優勢,這和開發是一個道理,開源理論上可以有更多的人審核(開發),但實際上並不一定。這個問題可能是個管理問題,可能是人力管理問題,可能是資本運作問題,可能公關問題,但是反正絕對不是一個技術問題。但是,對於其他方法,開源(我認為)的確有優勢。

比如Fuzz,Fuzz的問題在於時間,如何高效的生成test case。如果能看到代碼,程序就不再是完全的黑盒,自然生成的更有針對性,更接近極端情況。

比如動態分析,現在有很多動態分析工具,但是都依賴源碼重新編譯,比如KLEE、KINT之類。如果開源了,自己編譯就是。比如這個OpenSSLNull pointer dereference就是用Klee

形式化證明不懂不瞎說。但是前幾天這個java和python的bug就是用形式化證明發現的,不知不開源難度會大多少Proving that Android』s, Java』s and Python』s sorting algorithm is broken (and showing how to fix it)

但是還有個但是,目前發現的漏洞,(據說)75%來自Fuzz,至少20%來自盯著代碼看。其他方法還不夠成熟。

總之,

『開源對於發現漏洞的幫助有多大?』

有幫助,但是絕對沒有發現漏洞能變現對發現漏洞的幫助大

外行,瞎說的,巨巨們多多指教。


一個自2009年以來隱藏5年之久的的Linux內核嚴重安全漏洞被發現,雖然目前該問題已經修復。卻著實讓Linux用戶感到害怕,這樣一個嚴重的漏洞居然五年才被發現,這種情況在Windows系統下是不敢想像的。

此bug是一個本地許可權提升漏洞,管理員和用戶都需要儘可能快的將系統更新到包含修正的最新版本。該bug是在2009年發布的2.6.31-rc3中被引入到內核的,它存在於控制Linux偽tty設備的n_tty_write函數中,允許無特權的用戶執行惡意代碼。

--------------------------------------------------------------------------------------------------------------------------------

近日,美國國家漏洞資料庫公布了一份調查數據,報告顯示,一直以來給人印象漏洞很多的Windows操作系統,在這個問題上現在已經有很大改善,漏洞總量、高危漏洞數量同期數據都少於OS X、iOS與Linux。

數據表明,漏洞最多的操作系統其實是OS X,去年共出現了147個漏洞,其中包含64個高危漏洞和67個一般性漏洞,iOS的一般漏洞也高達127個,高危漏洞32個。

相比較而言,Win8.1去年總共爆發36個漏洞,Win8和7的數據也差不多,對於企業用戶而言,Windows Server 2003和2008去年都出現38個漏洞。總體而言,美國人電腦中的安全漏洞大幅增加,2013年為4794,2014年就沖高至7038,並且依然有加速的趨勢。


雲?debug


大家還是答很有幫助吧,說不定有生之年能看到微軟源代碼呢。(逃


很大


類似像烏雲平台這種以組織白帽子發現bug獲取一定利益,項目的開源有利於發現bug


個人認為要看本平台在開源社區的知名度,不然的話幫助也不會比私有黑箱的方式好所少


有一個不幸的事實是,我司參考開源代碼做商業用途,拿下來之後會用商業工具做漏洞掃描,有些情況會有安全員看代碼有無多餘的東西,經常發現漏洞,做法有兩種:

1、改了不能用,不會改好,然後不敢改,保留漏洞

2、改了就改了

沒有哪一種是去參與維護開源代碼,公司相關制度也不允許把改過的代碼回饋回去

我知道有違開源精神,但是現實如此,且無約束力。所謂久經考驗,我不信。匿了


其實很多人對開源軟體的理解都有偏差,認為有一幫專業高手整天沒事幹就在檢查開源軟體的源代碼,查Bug。

一款用戶很多的開源軟體,用戶各自會發現各自的Bug,然後就會向官網提交。這時參於存在Bug的模塊的開發人員才會來檢查。而更多的情況是有些會寫代碼的用戶在調試、使用過程中發現了其中的Bug,改正後直接提交。還有一些人是想學習實現方法,參考源代碼,偶爾會發現Bug並提交。

誰一天沒事去查代碼玩啊?調了n遍的代碼多看一眼都想吐


大型系統開源什麼意思?


不知道題主如何定義【大型系統】與【久經考驗】

私以為沒有任何一份代碼敢說是沒有漏洞的

至於開源、本人一直都很支持

至於開源後發現漏洞、本人認為像coreclr那樣已經算是開源後很有收穫了

眾人拾柴火焰高嘿喲


很有可能的結果就是水土不服。俺覺得只有開源世界的原住民(項目啟動時就是開源的,或者小項目)才適合開源。這麼大的項目中途開源,弊大於利。


題主是在說xp嘛!


首先假設這個系統有廣泛的用戶,並且自稱自己久經考驗,而外界對此猜測紛繁。

那麼可能會吸引到能力強的人去攻擊你的系統,這個是真金白銀的好處。畢竟有些人就是為未知和挑戰而工作,用錢人家未必去呢。

如果說之前有某些公司或政府以有後門而拒絕使用,開源了,他們只能從性價比和其他地方做文章了。要麼就承認自己不承認權威機構的審計,自己也沒有審計能力。

是不是有個問題要跟上,微軟家有這麼大魅力的系統是哪些?


首先 從邏輯上來說 信任不等於安全

大型系統更加值得信任 往往是它的體系從更宏大的外部做了一些工作從而使得它更值得信任

開源更安全首先就是個坑 開源比閉源更安全的邏輯 似乎是來源於開源能夠接收更多的更多維度的攻擊跟反饋 從而改正缺陷

另外更高尚的邏輯 不客氣的說 是更高級的邏輯 閉源系統的開發者 往往是某方面知識匱乏的 而開源則不這樣

這真不是個好的問題

黑客只需要找出某個系統的某個漏洞從而沾沾自喜


推薦閱讀:

C++有哪些NOIP中適用的能大幅簡化編碼及調試難度的內置函數/數據結構?
說下近些年來你認為最強的OI選手?
什麼樣的C++代碼不開O2沒事,一開O2就會出錯?
有哪些這樣的圖片或句子?
獲得IOI金牌是怎樣的一種體驗?

TAG:互聯網 | 編程 | 信息安全 | 漏洞挖掘 |