我们公司开发 Windows 桌面应用程序。我们提供现成的解决方案——而不是定制开发。一位潜在的新客户想要在我们的标准合同中添加一个部分,要求我们使用“应用程序扫描”工具。他们特别提到了 IBM 的 AppScan。但是,该工具似乎适用于 Web 应用程序,而不是桌面应用程序。
我们的应用程序是使用 Delphi 开发的(很久以前来自 Embarcadero 以前的 Borland)。我们是一个小型的两个开发商商店。虽然我可以理解为什么客户会在合同中想要这样的东西,但我不确定我如何才能真正做到这一点。
他们的合同语言似乎表明还有其他“行业标准工具”吗?
这是否成为 ISV 中的普遍做法?
是否有任何 ISV 遵守此类安全审查要求的指南?我知道有许多安全编码实践的站点(验证用户输入、缓冲区溢出、SQL 注入等),但我从未见过任何讨论组织安全审查以使最终用户相信程序员做了他们的正确工作。
以下是他们想要添加到合同中的内容:
xx 软件安全审查和测试。在提供此类组件的主要版本之前,将对被许可方根据本协议许可的软件的每个生产版本的应用程序组件执行安全扫描过程。许可方将使用 IBM 的 AppScan 应用程序扫描工具或替代的行业标准工具(“应用程序扫描”)执行此类安全扫描。供应商还将对核心产品的每个主要版本执行手动渗透测试(“渗透测试”)。供应商将按照协议下适用的附表中规定的每个应用程序组件每年至少进行一 (1) 次应用程序扫描。
该应用程序本身是一个标准的 Windows 应用程序。它可以连接到 Access 数据库或 SQL Server 数据库以进行数据存储。担心安全性的用户显然会使用 SQL Server。没有中间层——我直接从应用程序连接到 SQL Server。该连接是使用受信任的连接进行的,所有数据访问都是通过存储过程进行的。
我可以理解在 SQL 数据库上运行某种类型的安全扫描程序。即,将验证表没有留下广泛开放访问的东西。有趣的是,合同中没有涉及数据库。
我可能会提出这个问题并说 AppScan 不能在桌面应用程序上运行并让他们从合同中删除该部分。看到它让我想知道是否有任何桌面应用程序开发人员在他们的软件上运行任何类型的扫描仪。