兼述:BASIC SECURITY MODEL
苹果Mac OS X系统安全性能的完善是一个长久而持续的过程,在这个过程中,我们还可以从一个侧面回忆一下操作系统安全体系发展的过程。
在80年代初,IBM开创引领了个人计算机时代的开端,80年代中期个人计算机开始逐渐盛行,主流市场上是IBM PC和Macintosh两大阵营的较量。从前在70年代就已经成形的UNIX,到了80年代已经很成熟了,一提到UNIX,大家自然会想到服务器,它本来和PC的交集很少。还记得当初我上大学的时候,学校的PC机房里面只有几个PC-XT,当时来说都是新鲜玩意,后来的一台AT机,大家更是爱不释手都说它那叫一个快。那是上机,是要预定和持上机票的,机房也是特殊装修的,记得当时装修机房也是一大赚钱买卖。我们班有个入门特别早和深入的哥们,他用AT机最多,上了机就输入测试,当时我连键盘字母都找不快,在毕业前的最后一年,我也从图书馆借阅了一些UNIX的外文专著,只是当时学校和后来工作都没有机器可用,后来也就搁下了。学校机房里也有两台Apple II,当时流行的观点是,PC会胜过Apple成为市场的主流,后来市场也证明了这一点。不过,Apple电脑从OS X开始,以UNIX为核心,后来摒弃PowerPC体系拥抱Intel,在加上挟iOS设备的成功,20多年后的现在重返个人电脑主流市场,当初又有谁可以预料到呢?这正如今后的市场走向,谁能说得准呢?
不想那么远了,说到Mac OS X系统,不得不说UNIX,大家都知道UNIX是公认的比较安全的系统,不过可能不知道的是,它的安全性也是经过了曲折的。UNIX的设计之初,并没有把系统安全考虑在内,这正如个人电脑设计之初,从硬件到软件谁都没有认真考虑系统安全问题,这合乎常理。在80年代的时候,个人计算机市场刚刚兴起,IT业也没有如今这样形成一个市场巨大的产业,而当时美国政府部门是计算机的主要消费用户,抓住政府资金就能发展的道理,大家都懂。为了可以把自己的产品销售给政府,就要符合政府采购标准,对于计算机产品,安全性能是一个主要的考核项目。当时,Sun公司早于1991年的时候为它的SunOS4.1.2(就是目前大名鼎鼎的Solaris系统的前身),写了个不太成功的脚本C2Conv,从而使该系统勉强通过美国国家标准,不过C2Conv很简陋也不好用。后来,逐步改善,终于于1994年为新明名的Solaris系统发布了相关安全审计API和相关格式等,定名为基础安全模型(BASIC SECURITY MODEL),简称BSM,这是一个成功的软件规范,一个很好的安全审计框架,不仅小巧、快速、适合各种粒度配置并且可靠快速,通过它可以让操作系统轻松达到美国军方的计算机安全TCSEC的(Trusted Computer System Evaluation Criteria)C2标准,Sun的这个BSM经多多年的发展,现在也成为了业界事实上的安全框架标准。
说到TCSEC,当初是1983年美国安全局下属的国家计算机安全中心NCSC制定发布的,这个标准俗称“橘皮书”(Orange Book)。该标准把安全等级分为A/B/C/D四大类,其中每类又细分小级别,分别是:C1, C2, B1, B2, B3 和A1。C2级别是政府购买的最低级别,持有C2认证也是当时各个系统开发商标榜自己系统安全的一大说辞。后来TCSEC标准在2005年被Common Criteria替代(全称叫:Common Criteria for Information Technology Security Evaluation,简称也叫CC,也是目前的国际标准(ISO/IEC 15408),它是在北约(ITSEC)、加拿大(CTCPEC)和美国(TCSEC)三个相关标准的基础上改进形成的。现在,这个认证的颁发主要由NIAP来管理了,NIAP是美国National Information Assurance Partnership的简称,它是美国国家安全局直属的机构,实施安全检测规则并进行系统安全检测、进行评级认证,现在提供依据CC标准的认证,认证叫EAL证书,分成7级。
原始的UNIX系统也就符合C1标准,而C2和C1的主要区别是审计和存取控制功能。系统审计是系统安全的一个重要方面,而审计的一个重要原则就是可追溯性,也就是随时可以检查系获得哪个人以什么权限何时存取了什么东西,审计也是检测系统是否被入侵的一个重要有效手段。不是老听说,美国爆料五角大楼或者国防部被黑客入侵吗?他们如何得知的呢?手段很多,而计算机系统的审计功能是其中重要的一环。为了获得国家认证,各个系统厂商不得不改进自己的系统安全指标,也有了我们现在所使用的各种比较安全的系统软件。大家可以看到,当时美国国家政府标准也为计算机产业产品的成熟,起到了关键促进的作用。
话说苹果公司,在OS X 10.3系统之前,也就是10年前,它的系统安全架构还不完善。大家都知道,苹果的Mac OS X系统是以Mach为核心的基于UNIX操作系统的一套图形化操作系统。苹果为了能够通过 NIAP的安全认证,自己的操作系统又是源于UNIX,所以就依据Sun的这个比较成熟的BSM基础安全模型,委托McAfee Research公司开发了一套,用在它的Darwin系统上,苹果的BSM使用该模型的函数库和接口定义等,既能记录系统核心事件也能记录应用程序事件轨迹,保存为今后分析使用。后来苹果应要求把它从Darwin中分离出来,并决定以BSD开放源码协议对外开放,改名叫做openBSM,于是它成为了Sun的BSM模型的开源版本,后来TrustedBSD志愿者团队为它的完善和发展作出了重要贡献,这一点从目前openBSM的官方网站的名称依然是用trustedbsd.com就可以看出,TrustBSD的重要性。自此之后,它获得空前的发展,除了被Mac OS X使用之外,也被广泛用于freeBSD和其它的Linux等系统上,也是最为广泛使用的系统审计模块。
看到这里,不由得想到,很多人都埋怨/抨击Apple系统封闭不开放,并预言它今后必在封闭的道路上死去。其实,苹果很久之前就积极参与软件开源活动了,另外一个例子就是GPL和LGPL开放协议下的CUPS(Common UNIX Printing System)系统,它也是苹果OS X和被其它Unix系统所接受的打印系统核心。苹果还支持着OpenDarwin的开发。大家之所以诟病苹果封闭,一个主要原因是因为它的硬件系统没有象PC那样开放标准,想当初IBM把PC的硬件标准公开,也才有了现在红火的个人计算机市场,当初也造就了好多如Intel, Compaq, HP, Dell, 和联想这样的硬件巨头,养活了多少的人员,也有了软件行业的空前进步,要说IBM的贡献还是很大的。苹果硬件不开放,只有它自己可以制造售卖苹果,而且在iOS软件管理售卖方面,苹果的控制手段也是延续强硬封闭套路。这些都是事实,我也希望苹果能够对自己的做法作出一些调整,看看Google的Android项目,开放的结果是虽然市场比较混乱,系统使用也有点不流畅,但是市场占有率在手持移动设备中还是高于iOS系统。不过,他们自己的选择有自己的道理,它的成功是否会因为自己策略的改变与否而延续,我们也不做预测,对它也要从多个侧面进行评判。
再回到正题。最后,Mac OS X 10.3在2005年前后通过了EAL3级别认证(通过顺序测试检查)(参考1),这对于苹果系统算是一个不错的结果。相比较,微软的Windows 2003和XP等系统,2005年通过的是EAL4级别(参考1)。目前没有一个操作系统达到EAL7级,一般都是4级,比如Solaris 10, SUSE Linux, RedHat Linux,以及Windows 7和Windows server 2008啊等,IBM System z servers达到5级,目前可知的最高的是Green Hills Software INTEGRITY公司出的实时系统,达到6级。
openBSM作为操作系统的安全审计部分,在从Mac OS X 10.3到10.5系统中是可选安装部分,也就是说,在需要的场合可以自选安装。到了10.6之后,它成为了随OS X系统一起默认安装的系统核心的一部分,而且在普通客户版和服务器版都存在。目前来说,Mac OS X系统依旧只持有EAL3认证。
待续...
参考:
1. NIAP: Archived Product Compliant List http://www.niap-ccevs.org/vpl/archived/?tech_name=Operating+System
2. openBSM主页:http://www.trustedbsd.org/openbsm.html
3. BSM日志的格式:http://www.gsp.com/cgi-bin/man.cgi?section=5&topic=audit.log
4. 苹果官方文档:Common Criteria
5. Sun的官方文档:Solaris Basic Security Mode (BSM) Auditing,Auditing in the Solaris™ 8 Operating Environment, SunSHIELD Basic Security Module Guide - Oracle Documentation (801-6636/801-6636.pdf), SunSHIELD Basic Security Module Guide (806-1789/index.html)或者 SunSHIELD Basic Security Module Guide - Oracle Documentation(806-1789/806-1789.pdf)
6. FreeBSD的官方文档:Chapter 18 Security Event Auditing