作为原型 arch linux 图像生成脚本的一部分(可以看到在这里进行代码审查),我使用普通的 pacstrap 实用程序来使用可引导安装和其他软件包填充文件系统。
有关主机的哪些信息用于此/包含在新文件系统安装中?
我主要担心的是,当我上传或分发生成的文件系统映像时,会无意中释放安全或可识别信息。
我的第二个问题是文件系统映像在某种程度上是针对我的硬件(超出 64 位 amd/intel)量身定制的,因此无法在其他设备上正常启动或运行。
答案1
根据检查使用 pacstrap 生成的最小测试图像并查看 pacstrap 帮助,至少以下信息似乎已转移到新系统上:
- 软件包存储库列表及其身份验证。
- 你吃豆人钥匙圈(这是一种信任网络风格的身份验证。
这两者至少都会泄露一些身份信息,并且密钥环可能包含您的身份,具体取决于您之前的活动。
如果您有一个私人/组织包存储库,该存储库是本地镜像以加快操作/减少互联网流量或包含“已批准”包,那么您的镜像列表将提供内部网络详细信息。
您的 pacman 密钥环可能包含指向您的GnuPG公钥或您组织中其他人的公钥,用于您/您的公司独有的软件包。允许访问和分析您的密钥环可以让攻击者找到不常见的密钥作为图像的可能发起者标识。
其中大部分可能只对制定了攻击缓解策略的组织有意义(作为一种简单的风险降低措施,无论表面风险如何,都减少不必要的信息量,因为很难准确预测什么可能会变得重要)。
pacman 帮助为您提供了一种不移动这些内容的方法:
$ pacstrap -h
usage: pacstrap [options] root [packages...]
Options:
-C config Use an alternate config file for pacman
-c Use the package cache on the host, rather than the target
-G Avoid copying the host's pacman keyring to the target
-i Avoid auto-confirmation of package selections
-M Avoid copying the host's mirrorlist to the target
-h Print this help message
pacstrap installs packages to the specified new root directory. If no packages
are given, pacstrap defaults to the "base" group.
因此 -G 和 -M 选项将阻止复制此信息,但是您必须在新安装上重新填充这些信息。可以使用以下命令生成新的密钥环:
pacman-key --init && pacman-key --populate archlinux
可以准备一个“适当的”镜像列表(无论这对于给定情况意味着什么)并将其放置在 /etc/pacman.d/mirrorlist