0

我正在使用 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>
4

1 回答 1

0

安装包被配置为安装到已经存在的用于测试的目录中。显然,以前的安装已在该目录上设置了可继承的权限。

当我更改安装包的目标路径(INSTALLDIR 变量)时,攻击面分析器测试通过了。与此类事情一样,不同的软件包会干扰正常操作。

于 2014-07-17T21:20:30.953 回答