作者ggg12345 (ggg)
看板NetSecurity
標題Re: [文章] 大家都看不見 世界就很安全?(轉錄)
時間Sat Jan 29 20:46:11 2011
※ 引述《DCaty (狹義的和平 廣義的戰爭)》之銘言:
: 大家都看不見 世界就很安全?
: Security by Obscurity 的資訊安全觀無法解釋 Windows 僵屍網路的泛濫
: By HUNG Chao-Kuei on Saturday, January 15 2011, 21:42
: http://blog.ofset.org/ckhung/index.php?post/111c
: 趨勢科技張明正董事長日前接受彭博訪問時 表示: Android 因為開放原始碼,所以沒
: 有蘋果來得安全。這和幾年前 李家同校長發表的看法 類似: 「開放型的操作系統雖
: 然有很多優點, 但極容易被人不法侵入, 而且侵入以後, 常可以通行無阻, 如入無人
: 之境。」這種 "security by obscurity" 的資訊安全觀,不僅挑戰著資訊安全專家和
: 美國白宮的智慧, 也挑戰著事實。
: 資訊安全專家的看法, 與臺灣資訊界兩位大老正好相反。他們認為: 好的演算法, 應
: 該攤在陽光下, 讓所有資訊專家檢驗。如果沒有專家看得出漏洞, 那麼這個演算法才
: 比較可能是安全的。這個資訊安全的基本原則, 叫做 Kerckhoffs' principle。
:
==============
在敵我爭戰的戰場裡, 不論是攻擊與防禦的任何一方, 一個很有利的準則
就是出其不意, 攻其不備. 也就是對最沒有防備, 最薄弱的部份進行打擊.
即使是人與病毒間的狀況也是如此, 病毒或病菌總是在人體最薄弱的地方
發生作用, 所以入侵與繁殖的關健是找到可突破的弱點.
作業系統對共用變數或資源進行同步或依序使用, 進行保護不被誤用的方
式, 就是 Monitor 模式. 她把共用資源與相關的動作函數封存在 Monitor
裡面, 只能經特定單一入口進入取用, 以今天的 Object 說法就是封裝
(Encapturation). 在以前還沒有硬體記憶體對應(mapper)保護與特權指令
的時代, 提出的建議就是 information hidden. 以孫子兵法來說就是藏於
九地之下, 讓想破壞的攻方挖得很辛苦又不容易找得到.
就防備的一方言, 不暴露是遮住弱點的方法之一.
: 這個例子除了說明使用開放原始碼的 linux 遠比使用封閉原始碼的 windows 安全之
: 外, 還提醒我們三件事。第一, 大多數諸如網路分享器之類的裝置, 之所以採用開放
: 原始碼的 linux, 而不是採用封閉原始碼的 windows, 資訊安全當然也是重要的考量
: 之一。如果 linux 不安全, 資訊廠商當然寧可花錢取得授權, 改用 「比較安全的
: windows」。第二, 系統再怎麼安全, 產品再怎麼優, 如果用戶沒有資訊安全意識
: -- 例如連密碼都沒設定 -- 那麼一樣會曝露在風險當中。 一位負責任的資訊安全專
: 家, 會提醒大眾要提高資訊安全意識, 不要仰賴任何產品 -- 防毒軟體也好、 linux
: 也好 -- 而不是淡化嚴重的資安問題, 甚至扭曲事實, 找不相關 (甚至正好顛倒是非)
: 的藉口來搪塞。第三, 在這個案例裡面, 只有特定型號的分享器受害。這再次驗證了
: 資安專家早就提出的建議: 類似生物多樣性的 「作業系統/瀏覽器多元化」, 有助於
: 提升網路社會整體的資訊安全。 詳見 Schneier 的專訪 與 O'Donnell 與 Sethu 的
: 學術論文摘要。一位真正關心社會整體資訊安全的專家, 必須要關心這個議題。
==========================================================================
開放源碼的自由軟體之所以會被認為 "比較安全", 是因為隱藏的莫明其妙程式會被
挑出來質疑, 不合理的會被捨棄或改正. 經由多數人公開的查證是一個避免有錯誤隱
藏在內的一種辦法. 當然, 如果有心人因為可以看見原始碼就找漏洞先下手為強, 反
面言就是很快被攻破, 但正面言就是又找到一個錯可以去除. 至於是否越來越強固,
漏洞弱點越少, 此時就要看入侵方是否將企圖隱藏或暴露, 防守方是否能察覺又能去
除漏洞而定. "隱藏" "不暴露" 本來就是 "安全" 的一種手段, 作用就是遲滯入侵方
的及時攻擊.
開放源碼的自由軟體其優點就是依賴眾多高手來消除源碼或架構的漏洞, 一旦穩定強
固之後, 同樣地也能改裝一部份進行隱藏不公開的手段. 這時的開源軟體可能就被買
斷隱藏變成不公開.
自由軟體裡也有那種如果引入借用自由源碼, 其餘整個與之相關的源碼都必須公開的
要求與限制, 此時如何找出借用又不肯公開的程式碼就變得很重要, 此時在程式碼裡
會出現莫明其妙的埋入程式或標記可能就又會發生了. 不過, 一般的開放源碼都基於
可使用的開放工具來製作, 這些工具(如 compiler)不論開放與否都會在程式碼裡加
上標記.
公開接受大眾的檢驗, 如同 "民主" 的訴求, 是對程式設計師近乎土皇帝行為的質疑
, 要求程式供應方提供 "可信任" 的關係是同樣的訴求. 但如果對開放源碼者的軟體
無法提供智財權的保護, 開放源碼社群就會很難生存, 就會落入"不公開"的祖傳祕方
的圈圈.
軟體病毒的出現, 一直就是軟體壟斷行為造成的人為行動, 背後是一種生存競
爭的活動. 一般人如何監督有能力有權力者使之不太過於獨霸又腐敗, 一直就
是生物群的存續問題.
Botnet 的遙控操作 與 微軟os 或 防毒軟體 的自動下載更新與安裝, 在方法
上差異不大. 多數病毒軟體都是使用者 "按下去同意" 的, 或者說是自行接觸
的, 這些小小的修補程式很少是經過檢驗的開源軟體.
若說作業系統或瀏覽器漏洞太多, 防備不週, 不是一種可靠的 "產品". 那就
落入安全是一種可買來的產品這種誤解了.
安全是一項處理的過程, 其作用是減少漏洞弱點, 強化防衛固守的能力, 至少,
加密的企圖就是一種隱藏資訊的手段.
當然, 隱藏保護不同於矇朧(Obscurity).
就某種方面言, 開源程式可以被公開檢視與學習, 她的安全漏洞容易暴露而隨
之被取代或改善, 接受檢驗之後的程式碼因之可以變得更強固.
開元碼變成機器碼執行時, 依舊是可以分散隱藏甚至是置於硬體保護之下.
隱敝與開源的矛盾是能統一的.
※ 編輯: ggg12345 來自: 140.115.5.210 (01/30 09:53)
1F:推 pichubaby:推 02/01 00:19
2F:推 xatier:push 02/22 18:12