作者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