我正在使用 App Certification Kit 来验证我使用 InstallShield 2013 构建的一个非常小的安装包。“攻击面分析器”测试失败,并显示安装目录的错误消息
...包含带有允许多个非管理员帐户篡改的 ACL 的文件和/或文件夹。
然后它报告我的三个安装文件具有“错误的 ACL ......可写者:内置用户权限:FILE_WRITE_ATTRIBUTES、FILE_WRITE_EA、FILE_APPEND_DATA、FILE_WRITE_DATA”
安装不需要这些权限,我没有为组件指定任何默认值,除了禁用两个组件的自动 COM 检测。说真的,这个东西应该等同于“XCopy”类型的部署。
我需要寻找什么来通过攻击面分析器测试才能通过像这样的简单 MSI 安装?
安装包括:
一项功能,包含两个组件:
- 我的主 EXE,它是一个 64 位 .NET 编译的应用程序
- EXE 的外部 .manifest 文件
第二个组件包含:
- 一个 64 位 COM DLL,仅供此应用程序免注册执行
.manifest 文件仅包含工作的免注册 COM 服务器数据,指向 DLL:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="MyAssembly" version="1.0.0.0"
type="win32" processorArchitecture="amd64"/>
<file name="MYsideBySide.dll">
<comClass
(working comClass stuff) />
<typelib
(working typelib stuff) />
</file>
<comInterfaceExternalProxyStub
(working ProxyStubStuff) />
</assembly>