UOS/麒麟操作系统取证研究

1. 疯狂的国产化:UOS和麒麟的战争

最近,美国政府以所谓“涉嫌威胁美国国家安全”为由对中国实施了一系列制裁措施,比如禁用TikTok,哈工大被禁MATLAB。所以人们又喊出了操作系统国产化的口号,一批号称自主产权安全可控的国产操作系统开始疯狂蹭热度,重点说2个有希望站起来的:UOS和麒麟。
关于UOS:UOS是北京统信(全称统信软件技术有限公司)的产品,而统信成立于2019年11月14日成立,由国内多家长期从事操作系统工作的公司组成,包括武汉深之度科技有限公司、诚迈科技、中兴新支点等。重点是这里面有一家公司叫武汉深之度科技有限公司。深之度有一个大名鼎鼎的英文名叫 deepin。deepin的大名来自于两点:盗版windows操作系统黑历史和deepin linux。关于盗版操作系统的黑历史参考这篇:https://www.bilibili.com/read/cv5708510 ,强烈建议看官好好吃这个瓜。 deepin linux是武汉深之度科技旗下众多产品之一,也是一个在distrowatch常年在榜单靠前的linux发行版。deepin linux基于debian开发,自主研发桌面环境DDE,通过系统自带Wine来实现windows程序的运行。2019年我参加UOS开发者内测时还能见到deepin的logo,可以说deepin和UOS之间存在一种说不清楚的暧昧关系。
关于麒麟:来自百度百科的介绍:2010年12月16日,两大国产操作系统——民用的“中标Linux”操中标麒麟作系统和解放军研制的“银河麒麟”操作系统,在上海正式宣布合并,双方今后将共同以“中标麒麟”的新品牌统一出现在市场上,并将开发军民两用的操作系统。紧接着我在麒麟软件的官网(http://www.kylinos.cn/)中公司介绍部分找到了下面这段话:中标软件有限公司和天津麒麟信息技术有限公司,实现强强整合,打造中国操作系统新旗舰—麒麟软件有限公司(简称“麒麟软件”)。旗下拥有“银河麒麟”、“中标麒麟”两大产品品牌。总结成一句话就是一开始有很多只麒麟,现在都合并了。

2. 国产操作系统:换皮的linux

社会的发展始终的线性的,新产品的产生往往依赖于基础科学的发展。纵观人类的数学,物理,化学的发展都是站在巨人的肩膀上继续前进。在IT行业有一个很神奇的现象就是大家都很喜欢造新的名词。比如之前一段时间很火的docker,但是事实上docker底层是基于chroot实现的。而chroot技术最早出现在1979年,那个时候甚至linux都还没出生。2006年产生了cgroup技术,chroot配合cgroup就形成了docker。
万变不离其宗,目前distro登记的linux发行版接近一千款,找规律每个linux发行版都由以下几个部分组成:一个linux内核,上层软件(至少GNU套件库)。如果是面向普通用户的桌面环境还会带一个桌面环境(比如上面deepin自研了一个DDE桌面)。其中linux的内核只有一家(官网:https://www.kernel.org/),上层套件出名的只有2款:gcc,clang。python基本是现在标配,无非与python2.7和python3.x混带。知名的桌面环境多一点:Gnome和KDE两个占大头,后面还有LXDE,XFCE,LXDE,MATE,Cinnamon(这是Mint的默认桌面环境)。也就是说只要是一个Linux发行版,linux的基础知识都是可以通用的,比如linux标准文件系统结构(Filesystem Hierarchy Standard),上层软件的使用比如gcc,python的使用。

3. 国产操作系统的父亲:UOS(debian10)和麒麟(debian9)

linux发行版众多,根据包管理器划分主要有debian和redhat两大派系。
Debian是一个致力于创建一个自由操作系统的合作组织。debian系最主要的特征是apt和dpkg两个命令。apt全称为Advanced Package Tool,用于软件的安装与卸载,dpkg全称为Debian Package,dpkg是一个比apt更为底层的包管理工具.同时你都可以在/etc/debian_version找到上游版本号。根据distrowatch显示,目前已知基于debian并且存活的linux发行版大概有137个,比较出名的有:ubuntu,Mint,kali,deepin,deft linux.
redhat是一家总部位于美国北卡罗来纳州的罗利市开源解决方案供应商。对应于debian系的apt和dpkg命令,redhat系发行版有yum和rpm命令。Red Hat Enterprise LinuxRHEL)是一个由Red Hat开发的商业市场导向的Linux发行版,因为redhat是商业操作系统,对应有一个社区版的操作系统是CentOS,CentOS是一个依照开放源代码规定发布的源代码所编译而成。同时你都可以在/etc/redhat_version找到上游版本号。
/etc/debian_version这个文件来看,UOS背靠debian10.3,麒麟则背靠debian9。

4. 国产操作系统的应用生态:兼容其他平台app

众所周知,linux主要应用于服务器市场,但是UOS和麒麟一直想把linux带到桌面环境,而且腾讯这些大厂又懒得为QQ,微信适配linux版本。很明显这是个很麻烦的问题,没生态老百姓肯定是不能接受的。
第一种办法是号召企业做linux平台兼容。这件事UOS和麒麟一直都在努力做,官网都可以找到软硬件的适配清单。 UOS在https://www.chinauos.com/ecology/adapt ,麒麟在 http://neocertify.cs2c.com.cn/display/webSoftIndex.do?channelId=71
第二种办法是借windows的app。windows系统生态如此丰富,如果能在linux上直接运行windows的可执行程序不就啥事都没有了么。目前linux上兼容exe运行的主要有2种解决方案: 开源解决方案wine和商业解决方案crossover。我测试过UOS个人版,QQ和微信跑起来没啥问题。
第三种办法是兼容安卓平台app。方案也很多,比如比较知名的anbox,原理类似于wine提供代码兼容层。场景太少,这一条大家知道都行。

5. UOS取证实例:根据app出处找解决方案

UOS/麒麟都是一种基于debian的发行版。那么关于debian的所有取证知识都是可以复用的。比如docker,这属于另外话题,这里直接跳过。

5.1 原生app取证

从趋势看直接兼容linux平台的app会很多。以UOS中自带的UOS浏览器为例,做基础分析。
~/.config/uosbrowser/Default/History找到浏览记录:

UOS浏览器历史记录
~/.config/uosbrowser/Default/Cookies找到Cookie信息:
UOS Cookie信息

5.2 wine兼容方案app取证

上面提到过通过wine或者crossover方案可以在linux上运行windows的应用程序,以微信为例。
UOS运行微信

其形成的文件夹层次结构与windows相同。
UOS微信文件夹层次结构

那么直接按windows取证方案来就可以了。
火眼解析微信

5.3 原生app和兼容方案的区分

一句话,看进程。
wechat进程

后记:

随着时间推进,现有知名产品都会趋于同质化。
我自始至终都是站在linux的角度讨论UOS/麒麟。因为他们两是没有太大区别的。
上升一个高度讲,本质上windows,linux和macOS也是没有太大本质区别的。所以有一门课叫《计算机操作系统原理》,它里面讲述的都是系统无关的知识。
也如同计算机编程语言发展到现在也只是语法不同,0-1是很困难的,但是1-n是很容易的。

你可能感兴趣的:(UOS/麒麟操作系统取证研究)