如果一个应用程序的代码甚至包含细微的不准确之处,它可能会将整个数据库开放给 SQL 注入。在此示例中(请参阅“删除所有方法”部分),整个用户表通过简单的 SQL 注入 ( "1) OR 1=1--"
) 被删除。
这让我想知道,是否有任何白帽/赏金猎人(也许是业余爱好者)寻找漏洞并意外地对网站/应用程序/业务造成了巨大的、真正的损害?赏金计划如何应对这样的风险?
如果一个应用程序的代码甚至包含细微的不准确之处,它可能会将整个数据库开放给 SQL 注入。在此示例中(请参阅“删除所有方法”部分),整个用户表通过简单的 SQL 注入 ( "1) OR 1=1--"
) 被删除。
这让我想知道,是否有任何白帽/赏金猎人(也许是业余爱好者)寻找漏洞并意外地对网站/应用程序/业务造成了巨大的、真正的损害?赏金计划如何应对这样的风险?
当然。正如您所指出的,某些 SQL 注入向量可能会无意中导致数据删除。同样,持久性 XSS 攻击可能会在真实用户的浏览器中触发。或者用户名中的异常字符可能会由于未处理的编码错误而导致 Web 应用程序后端崩溃。
更一般地说,黑盒渗透测试的很大一部分涉及对目标应用程序的意外/无效输入进行试验。某种程度的模糊测试通常是不可避免的——这总是存在导致破坏应用程序或破坏数据的行为的风险。因此,虽然盲目地尝试DELETE
查询可能是鲁莽且可以避免的,但供应商必须面对即使是良性的错误搜寻有时也会影响服务的完整性或可用性。
该报告是研究人员通过提交无效数据导致 DOS 的示例。我完全确定还有更严重的例子,其中许多根本没有公开。有趣的是,我记得有几次错误猎人被禁止参加程序,因为他们使用的工具太具有破坏性。
一个测试环境。虽然一些漏洞赏金假设您正在针对生产进行测试,但许多漏洞提供了一个单独的沙箱,并且只允许您在那里进行测试。例如,Bitmex 的程序包括以下规则:
仅在 testnet.bitmex.com 上进行测试。
一项“负责任的研究”政策,要求猎人努力避免损坏。规则将包括不访问真实用户数据、限制自动化测试工具等。例如,Facebook 的程序要求:
您真诚地努力避免侵犯隐私和对他人造成干扰,包括(但不限于)未经授权访问或破坏数据,以及我们服务的中断或降级。您不得故意违反任何适用的法律或法规,包括(但不限于)禁止未经授权访问数据的法律和法规。
紧急联络点。一些供应商会指示猎人如何在他们的行为导致服务中断时立即通知他们。来自Exodus 的程序:
如果您不小心造成了一些明显的服务中断,请立即给我们发送电子邮件,以便我们进行相应处理 h1@exodusmovement.opsgenie.net 并请附上主题标题“HackerOne 中断:”以触发警报。
如今,许多计划政策都带有安全港条款。这是为了保护猎人在善意行事时免于承担责任,即使他们的行为已经造成损害。自 IANAL 以来,我无法评论此类政策的有效性,但这是一种既定做法。以下是Dropbox 程序中安全港条款的示例:
我们不会就意外、善意违反本政策的行为提起民事诉讼或向执法部门提出投诉。我们认为根据本政策开展的活动构成《计算机欺诈和滥用法》下的“授权”行为。如果您的活动与我们的可接受使用政策中的某些限制不一致,我们出于允许根据本政策进行安全研究的有限目的而放弃这些限制。我们不会因您规避我们用于保护范围内应用程序的技术措施而对您提出 DMCA 索赔。
您会在大多数大型程序的规则中找到类似的段落。
您的问题似乎假设有问题的攻击者正在针对生产系统工作。就 Fire Quacker 而言,如果您破坏了某人的生产系统,那么无论您的白帽意图如何(假设它不允许作为错误赏金计划的一部分),您都与任何其他攻击者一样承担责任。这就是为什么错误赏金计划应该设置特殊的测试实例来进行非生产环境的测试。
健壮的系统不仅应该抵抗攻击,而且应该展示可行的恢复机制。错误的成本可能低于糟糕的设计。你有日志吗?你能用它们快速恢复吗?生产系统可能存在测试系统缺乏的 DOS 等漏洞!