是否開源軟體比閉源軟體更安全?
原問題為 為什麼說開源軟體比閉源軟體更安全?
也就軍工等敏感部門才會覺得開源一定會比閉源安全。對於一般人來說,沒有開閉源的區別,只有優秀產品和垃圾產品的區別。
覺得開源一定比閉源安全的人,心血漏洞的教訓還不夠大么?個人認為,開源與否和安全性沒有必然聯繫。那種因為看代碼的人多了所以就更安全的說法沒有科學依據,那種因為代碼會被黑客看到所以就不安全的說法也沒有科學依據(安全性並不能建立在混淆的基礎上)。比如你不能因為別人看不到源碼就在源碼裡面藏一個key什麼的,這樣無論開源閉源都是極為不安全的,這種代碼根本不應該存在。
當然在某些特定場景下,比如單機版遊戲破解,開源肯定更容易被破解。不過,既然是開源了,別人也不用破解,直接fork一下去掉驗證機制就好了。所以我不覺得這個屬於安全性的討論範疇。如果你沒辦法確保可執行程序是不是用你(開源)的代碼編譯出來的,那你執行的時候就沒辦法確保它是安全的,即使是你自己寫的也不一定安全,舉個栗子:XcodeGhost 事件,編譯後被注入第三方惡意代碼
經典的開源經過長期不停的攻擊然後漏洞修復才會更安全。閉源受攻擊的門檻高一些,也由於受攻擊相對少最終達到的安全高度一般不及開源。 簡而言之,開源的安全上下限範圍更廣。 從實際來講,當前多數開源產品的安全性還沒到閉源產品的下限值,也就是,還沒可比性,需要大量時間的繼續積累。 最後一句瞎扯,如果一個產品對別人來講根本沒什麼攻擊的價值,那麼它似乎是最安全的。
代碼功力一樣的情況下,閉源軟體比開源軟體多個後門的可能性。特別是國內的流氓公司。
都沒說安全性指什麼。。
要是指軟體可信性,就是軟體沒有被篡改(包括源碼和二進位是否一致的問題),那跟開不開源沒關係,只跟分發途徑有關。
要是指開發者有沒有埋後門,那這個開源確實比閉源有優勢。。你看win10不讓中國政府審核以及tcm/tpm的事多麻煩。
要是指軟體本身的質量,其實不是跟開源閉源有關係,是和收不收費/開發組有沒有錢/開發方式等等有關係,但是一般來說收費/有錢集中在閉源廠商。但這並不是絕對的,比如開源但收費的redhat比adobe啥的產品軟體質量好多了。。。mozilla這種免費但開發流程比較規範的看你和比,比如和育碧的遊戲啥的比。。。
注意,開源和自由軟體還不一樣,這倆安全性還要分開討論。可能會更不安全,就像給了你一把所謂安全的鎖和一張設計圖紙,你可以研究他,別人也可以研究他,萬一這個鎖真有一個缺陷那就不好了……但是大多數愛好者都是使用,發現錯誤,提交官方修復,簡稱人多力量大
開源,起碼埋不了後門
至於其他的安全方面,則不是全是代碼能控制的攻擊方式不一樣而已 好不到哪裡去
開源代碼可見 攻擊方式用代碼分析 靜態分析閉源用Fuzzing,都一樣的安全漏洞無止境,各有千秋,手法不一樣。不一定,看關注度所佔比。如果安全研究人員關注的少,漏洞利用人員關注的多,那開源會更危險。
但是開源軟體可以更受信任,因為開源杜絕了軟體本身偷偷做不好的事情。
安卓和ios?
不一定吧,對黑客來講開源做白盒測試,閉源做黑盒測試。並沒有必然聯繫
軍工、政府、科研:用開源的安全,因為對這些組織來說,安全意味保密。信息安全上的安全,系統有了bug,馬上找人看源碼,馬上修!如果是閉源軟體,系統除了bug,就算公司願意修,你敢把電腦拿過去嘛?你敢讓對方連線嘛?民用、個人:就算你找到了bug,你修的了嘛?又不是人人都是程序員(而且還有段位要求)。好好用商品軟體,等補丁吧...
opensource 安全性上面並不是以漏洞多少來衡量的. 而是漏洞響應的時間. 早期的閉源代碼漏洞響應時間很長, 漏洞披露之後一般要一個多月的響應時間. 比如windows xp 定期更新機制. 而opensource 代碼的響應時間幾乎是滾動的. 0day的持續時間更低. 從這個層面上更加安全.
我們所有人都可以審計我們的開源代碼是否存在安全風險. 比如用一些開發工具和CWE等手段. 這樣就可以把風險降低到一定級別. 安全總有滯後性.
只要寫軟體的是人,就不可能沒有漏洞. 只要軟體有漏洞, IT行業就能生存.跟開源、閉源沒關係,關鍵看能不能吸引到黑客去尋找安全問題。
開源代碼也沒幾個人看完
本科作文題
安全不安全都是相對的,
其餘評論里拿有沒有後門 去跟 容不容易被攻擊,作比較
這樣去比較,個人覺得沒有可比性啊(」゜ロ゜)」如果某閉源代碼有後門,無論容易還是不容易被攻擊,這對用戶來說都是隱患吧。如果建立在均無後門的基礎上,代碼的安全性 在被攻擊過後,應該是越來越高吧。當然也有可能越多的攻擊,這段代碼就徹底掛了。個人是比較傾向於開源,越多的人找漏洞,越能暴露出越多問題,iOS不也是鼓勵開發者報bug的么?
個人拙見,不喜勿噴,順帶膜一下輪子哥。得看是誰
我想說的是另一種安全----後門。
這事難道不是要看看你所謂的安全是指哪個方面?有源碼更為容易攻擊,但是常規運行bug很容易就會被開源社區的其他使用者發現。反之源碼保護倒是好了,不過一般來說就算內部技術體量再大,也沒法和開源社區比啊
推薦閱讀: