【第四节】 TOS5.0.58用户手动加载Bootloader页面的安全漏洞测试
测试步骤设计:为了测试用户手动加载Bootloader页面有无安全上的漏洞,笔者需要制作一个可以在任何机器硬件上用的TOS5.0.58启动盘,模拟攻击Bootloader页面。(包括虚拟机,例如:VMware,和实体机,例如:“蜗牛星际矿渣机”等等。)根据【第一节】介绍的必要知识,制作铁威马系统的启动盘只需要两个文件即可,bzImage和grub.cfg。获取的方法也非常简单,可以直接从TOS_X642.0_5.0.58_Beta_00071_2203221829.ins 这个安装包中提取。命令如下:
tar -xf TOS_X642.0_5.0.58_Beta_00071_2203221829.ins ./boot/bzImage ./boot/grub.bz2
tar -xf grub.bz2 ./boot/grub/grub.cfg
拿到了bzImage和grub.cfg文件后,把它们放入GUN GRUB 2.02引导之中,启动盘就做好了。笔者打算使用“蜗牛星际矿渣机”实施验证这个测试设计,因此,做了一个USB启动盘。本文的目的是测试,关于具体启动盘的制作细节,已经超出了本文的范畴,就不在此介绍了。有兴趣的读者可以参考笔者在“那是云”论坛中的相关文章。
测试观察分析:在“断网状态”下,使用笔者制作的TOS5.0.58系统USB启动测试盘,启动“蜗牛星际矿渣机”。打开Firefox浏览器,输入IP地址,浏览器出现了一个30秒倒计时的从服务器加载Bootloader的画面,倒计时结束后出现了用户手动加载Bootloader的画面,继续手动加载common_bootloader_V5.1.5.img这个文件。则出现了如下截图画面:
不容许继续在“蜗牛星际矿渣机”进行安装过程了。
测试结论:TOS5.0.58的用户手动加载Bootloader测试过程“看似”没有安全漏洞。可是仔细思索一下呢?笔者认为还是有些问题的。例如:如果把这个common_bootloader_V5.1.5.img文件修改一下呢?谁能保证这个地方不出问题呢?对比TOS4.2.30的启动安装盘的Bootloader“X64.tar”,不论在“联网状态”和“断网状态”都没有开放这个界面,因此也没有这个安全漏洞的顾虑。
为了检验笔者的关于安全漏洞的猜想,笔者分析了一下common_bootloader_V5.1.5.img这个Bootloader version: 1.0.1。真是“不看不知道,一看吓一跳”哎呀妈呀!!!。这个Bootloader中的文件都没有做任何加密处理,全部都是明码的执行脚本。笔者轻松修改了一下,轻易就可以实施在“蜗牛星际矿渣机”上安装TOS5.0.58系统了。因为笔者撰写本文是为了帮助厂家众测TOS5.0系统,对于披露如何利用“安全漏洞” 超出了本文的范畴,暂不在此讨论。对于有兴趣研究,学习有关这个问题的朋友,可以另行讨论研究。
笔者记得曾经在“那是云”的“铁威马”版块发表过一篇关于“群晖,威联通,铁威马,华芸的漏洞分析比较;与CVE公共漏洞和暴露机构”的文章[2]。有兴趣的读者可以看一看作为参考。
“浏览器管理这一部分”向来是各类NAS系统的薄弱环节。世界上各种网站被黑客攻击的新闻层出不穷。就连“那是云”论坛网站前些日子也被攻击过。相对于网站这样完全不透明的黑匣子,NAS的浏览器管理这一部分可以说是一个灰匣子,是半透明的,因为不止一个人拥有相同品牌的NAS系统。如果黑客想要查找某个品牌NAS系统的漏洞,他只要买一个就可以拆开分析研究。因此攻击NAS系统比攻击网站更容易。
对于TOS5.0.58这个Bootloader的改动,铁威马厂家内测时QA的技术人员有没有提出过“内部质疑”,有没有对用户手动加载Bootloader页面测试过模拟攻击?有没有详细的QA技术报告?厂家可以内部调查一下。
细极思恐,铁威马TOS5.0.58的这个“安全漏洞”,不只是可以轻松修改了一下Bootloader,轻易实施在“蜗牛星际矿渣机”上安装TOS5.0.58系统这么简单的问题。这里笔者想再引申一步讨论一下这个问题,因为在启动安装阶段的权限往往非常高,通常是root权限运行状态。如果此时向系统中安装一个木马呢?那么你的这个NAS系统日后就会变成任人宰割的“肉鸡”。
关于初始化安装NAS系统,笔者更倾向于“断网状态”下来做。举一个简单易懂的例子解释笔者的观点,初始化时你要输入账号,密码吧,如果处在“联网状态”,账号,密码被偷偷传递出去了呢?这种担心在“断网状态”是绝对不会发生的吧。
评论与建议:笔者在众测时为厂家发现了这个“重大的安全漏洞”隐患。建议厂家尽快修补该漏洞。选项包括:可以对Bootloader version: 1.0.1中的明码的执行脚本实施加密处理。关闭Bootloader version: 1.0.1的用户手动加载界面。恢复成TOS4.2.30的启动安装盘那样的Bootloader,等等。
【第五节】 TOS5.0.58安装过程的密码设定Bug
测试步骤设计:在安装过程的密码设定页面中,根据现在流行的趋势:密码长度,字符组成的要求规定:长度至少8个字符,至少包括1个大写字母,1个小写字母,一个数字,以及一个特殊字符。设计输入Az1$kill。该页面的截图如下:
测试观察分析:输入Security Email地址后,输入获取的验证码。但密码设定页面不接受Az1$kill这个密码。如果把它换成Az12kill去掉特殊字符,就可以执行下一步了。但安装完成后,运行过程中的安全检查会提示“密码有风险”,要求修改密码。这时可以改成Az1$kill这个密码。系统是可以接受该密码。
测试结论:笔者认为这是TOS5.0.58过程的一个Bug。猜想问题出在前台的javascript程序中。
评论与建议:这不是一个非常严重的Bug。但会影响用户体验,希望尽早修复。
【第六节】 TOS5.0.58安装过程不能100%稳定成功
测试步骤设计:测试分两种情况:(1)用TOS4.2.30系统做升级安装TOS5.0.58,(2)用TOS5.0.58系统做恢复出厂设置后重新安装。
测试观察分析:(1)用TOS4.2.30系统做升级安装TOS5.0.58的测试笔者重复做了两次,每次都能完美成功。但(2)用TOS5.0.58系统做恢复出厂设置后重新安装时,笔者的第一次安装到74%时失败了。但不用重启系统,只是在浏览器上点击刷新,就可以回到进入初始化安装界面,继续再次安装,直至成功,如果还是不成功,可再次重复此过程。为了确认测试的可重复性,笔者再次做重复测试,但这次安装到90%时失败了,再次安装才成功完成。笔者观察发现,失败点是随机的,不可重复。
测试结论:笔者认为用TOS4.2.30系统做升级安装TOS5.0.58可以稳定成功。但用TOS5.0.58系统做恢复出厂设置后重新安装时。不能保证100%稳定成功。笔者猜想这个bug可能又是与Bootloader version: 1.0.1。但笔者无法验证自己的猜想。因为失败点是随机的,不可重复。
评论与建议:根据笔者的经验,这个bug是比较难修复的。建议厂家对Bootloader version: 1.0.1进行更细致的QA测试。
【第七节】 检查TOS5.0.58运行环境的内核版本
测试步骤设计:在【第一节】测试前的准备以及必要的知识中,我们已经检查了TOS4.2.30运行环境的内核版本。TOS4.2.30内核是4.19.165+。那么TOS5.0.58运行环境的内核版本是什么呢?让我们执行uname -r 命令检查一下吧。检查的结果是:TOS5.0.58内核也是4.19.165+。也就是说:“TOS5.0.58”没有升级Linux的内核。版本TOS5.0仅仅是升级“浏览器管理这一部分”。
测试观察分析:本节内容一目了然,分析就省略了。
测试结论:似乎应当把TOS5.0.58改为TOS4.3.58更符合铁威马的版本命名规律,笔者为自己的观点提出如下论据,此结论仅仅是笔者的观点而已,不妥之处敬请批评指正。
历史的回顾:让我们来观察一下铁威马的TOS系统的版本及升级历史:
TOS4.0.X的Linux内核版本是4.4.59。
TOS4.1.X的Linux内核版本是4.13.16。
TOS4.2.X的Linux内核版本是4.19.165+
TOS5.0.X的Linux内核版本是4.19.165+
以上述观察为依据,让我们分析一下铁威马的版本命名规律:
- 主版本号对应Linux内核主版本号。
- 次版本号对应铁威马的“浏览器管理部分”。例如:4.0.X的Web管理界面与4.1.X就明显不同。4.1.X与4.2.X也是这种情况。这是大家用目共睹的。但TOS5.0.X可能要打破这个规律了。
- 第三版本号对应铁威马厂家的TOS系统修补的升级。
请恕笔者“直言不讳”,以下的评论可能会让铁威马厂家感到不愉快。但“忠言逆耳”,笔者参加众测的目的,是为了帮助厂家对新产品把关,对广大消费者负责。对厂家的新产品“阿谀奉承,溜须拍马”是不负责任的众测行为。笔者不记得了,哪位伟人曾经说过一句名言:“科学来不得半点虚伪和骄傲”,笔者参加众测也是这个态度。
这个“TOS 5.0众测”版本能称之为“5.0”吗?该TOS 5.0.X没并有升级Linux内核版本,仅仅给TOS4.2.X换了一个Web界面。换汤不换药,这种新瓶装旧酒的方法。是不是有点“自欺欺人”的感觉呢?笔者帮助厂家查了一下当前可以稳定运行的Linux发布的最新内核版本。情况截图:
现在已经有Linux 5.17.1的稳定内核发布了。如果铁威马不想打破自己的版本命名规律,完全可以选用Linux 5.x 内核啊。换句大白话说,与4.2.X使用完全相同的Linux内核,尽管叫做TOS5.0.X,其核心部分并没有升级。当然打破自己的版本命名规律,给新系统起什么名字那是厂家的权力,笔者无权说三道四。只能感叹一声,呵!呵!但愿消费者不要把TOS5.0.X 视为假冒伪劣产品。
其实消费者的眼睛是雪亮的,并不会受到新产品的华丽名字和推销广告词的迷惑。但如果众测人员不负责任,为新产品推销做“托儿”,就会极大地损害厂家和消费者的利益。也不符合专业精神。
【第八节】 回顾参加众测的历史事件和厂家的态度
笔者若干年前曾准备在“那是云”论坛发表“【老骥伏枥-猪年大礼包】嵌入式Linux逆向工程,剖解铁威马教程 ”。但后来仅仅是发布了一个“摘要”[3]。因为与厂家沟通发表全文时,被厂家一直拒绝至今。
这次厂家终于容许笔者发表本文了。但是笔者还是要吐槽几句,请看如下截图:
那次也是为了配合铁威马NAS新产品抢先内测的官方活动,有此截图可以证明。“那是云”网站的文章还在,也可以证明。不论文章的题目如何,从哪个角度和侧面观察评测系统,其目的都是帮助厂家检验新产品的性能,找出存在的问题,让厂家修补漏洞,改进产品。更何况笔者专门撰写了“【第四讲】关于铁威马TOS系统的优缺点和改进建议”。铁威马厂家直接枪毙了文章。根本没有机会了解笔者对产品评论。铁威马厂家的这种固步自封的傲慢态度,能开发出一流的产品吗?伟人说过“百花齐放,百家争鸣”让别人讲话,天塌不下来。在NAS产品领域的一流产品中,也有像“群晖”,“威联通”知名度很高的大厂家这样活生生的例子。它们都没有枪毙过笔者的文章啊。
因此笔者这次参加众测之前,就向厂家事先提交了沟通报告“铁威马TOS 5.0众测以及分析它的启动安装过程的写作计划”[4]。并请求“那是云”论坛与厂家联系沟通。铁威马厂家的技术水平是大家有目共睹的,笔者估计这次发表的“众测结果报告”可能不会令厂家满意。所以采取了事先沟通的方法,在得到厂家同意后发表后,才参与众测的。笔者以前曾经是专业技术人员,“实话实说”是笔者的做人准则。
|