应用安装程序的安全性分析
1. 卸载程序相关情况
部分安装程序会为应用设置卸载程序,但识别安装程序是否定义了卸载例程是一项艰巨的任务。在测试程序中,仅有 1% 的程序基于特定参数定义卸载例程,示例代码如下:
1
C:\ Program
Files (x86)\GUM5D5C.tmp\fmanUpdate.exe|
SetValueKey ||HKU\<userid >\ Software\fman\Update|
UninstallCmdLine |"C:\ Users\Win7\AppData\Local\fman\
Update\fmanUpdate.exe" /uninstall
这种基于参数的卸载程序,是通过定义命令行参数来进行软件移除,对用户而言操作难度较大,而非提供一个独立的卸载程序。
2. 安装程序版本比较
- 同一仓库内安装程序的差异 :对同一仓库中同一程序的二进制文件随时间的变化进行评估。最初假设这些二进制文件可能会有显著修改,但发现总体上修改更多是结构性的而非行为性的,这表明差异更多是由于安装程序的演变,而非其他代码插入机制。
当安装程序被修改以嵌入额外应用时,最常见的有效负载是工具栏和浏览器插件。例如,所有二进制文件中有 1% 是之前安装程序的版本,被修改以包含谷歌工具栏,代码示例如下:
1
C:\ installer \3 rdPartyApp\ GoogleToolBar \
GoogleToolbarInstaller_zh -TW.exe