我正在使用应用程序认证工具包来验证我用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>
安装包被配置为安装到测试中已经存在的目录中。显然,以前的安装已经在该目录上设置了可继承的权限。
当我改变安装包的目标路径(INSTALLDIR变量)时,攻击面分析器测试通过了。这类事情很常见,一个不同的软件包干扰了正常的操作。