我有一个小型 NAS 系统,最近我得到了一个固件来上传其功能。
我有一个图像文件和一个签名文件。
我只是想编辑签名文件并在行尾添加一些垃圾字符。
当我尝试升级它时,升级固件没有任何问题。
因此我联系了 NAS 盒的开发团队并解释了情况。
正如他们所说,他们正在计算符号文件的长度,因此无论最后出现什么,他们都会忽略。
他们要求我采用以下方案。但以下方案运行良好。
1.) 从文件中间/开头/结尾删除一个或多个字符,然后添加相同数量的除删除之外的不同字符。这将保留大小,但字符将被更改。
2.)删除一些内容从而减小尺寸。
3.) 在“between/beginning”中添加更多字符,从而增加尺寸。
所以我的问题是,在签名文件末尾添加一些内容不会有问题吗?任何恶意代码都可以通过签名文件注入吗?
提前致谢。不确定这里是否接受这种类型的问题。
答案1
首先,固件只能由对整个系统有信心的人上传。允许某人上传固件基本上等同于允许他们对系统做任何事情,因为固件可能会被修改以受益罗比·罗顿。
至于您的情况,我无法肯定,因为我不知道您的硬件的具体情况,但我确实知道许多设备需要固件映像具有特定大小才能上传。为了使其适合,额外的数据被填充,但就像您说的那样被忽略。如果这些额外的数据确实被保留,理论上可以将这些数据作为代码,稍后可以通过一些低级编程来调用,但我不认为这是一个真正的威胁,因为攻击者已经需要相当大的访问级别才能被允许 - 要访问隐藏在固件填充数据中的函数,他已经需要运行任意代码。
答案2
不确定,但通过固件肯定是可能的,因此请仅从可信赖的站点下载固件(以及设备附带的应用程序的驱动程序和升级)。但这并不意味着您的 PC(或外部设备)已被感染。这还取决于固件的安装方式——如果您必须在 PC 上执行应用程序才能安装更新,则将恶意软件植入其中会更容易。如果固件是由外部设备安装的(例如,通过将文件复制到存储卡,然后将其插入相机),则不太可能在 PC 上安装恶意软件。
答案3
这是可被利用的场景 #1。如果您可以替换固件和/或签名文件中的某些字符,并且这些文件在固件升级期间不会被拒绝,那么签名检查实际上并没有执行,您可能会被诱骗将恶意代码上传到伪装成固件升级的 NAS 盒上。