“黑客”在什么时候成为非法?(我们)

信息安全 渗透测试 合法的
2021-08-24 10:04:01

假设情况: 在我聘请一家网络开发公司之前,我想通过查看他们以前客户的网站来测试他们设计安全网络应用程序的能力。

问题: 这种情况引发了一个很大的危险信号:关于查看网站,什么是法律范围内的,什么不是法律范围内的?或者换句话说:在什么时候浏览网站是非法的

  • 使用 Firebug 查看源代码?这自然是合法的。
  • 但是,如果我更改 HTML(例如提交前隐藏的表单值)怎么办?
  • 也许我然后编辑或删除 JavaScript,就像客户端验证脚本一样。那会合法吗?
  • 如果我将 %3Cscript%3Ealert(1)%3C/script%3E 放在 URL 的末尾会怎样。
  • 或者我输入 URL:example.com/scripts/ 并且由于权限设置错误,我能够查看他们的目录?
  • 如果我操纵 HTTP 标头中传递的数据,例如负的产品数量/价格,以查看它们是否进行服务器端验证(自然,我不会完成结帐)。

对我来说,所有这些似乎都是无害的,因为:

  1. 我不会通过发送垃圾邮件、使用 wget 镜像站点或注入具有潜在危险的 SQL 来给他们的服务器造成过大的压力。
  2. 我不会造成任何潜在的损失或金钱损失,因为我永远不会利用这些漏洞,只测试它们的存在(概念证明)。
  3. 我的任何行为都不会对用户数据隐私产生任何影响。我的任何行为都不会泄露任何人的机密或私人信息。
  4. 如果我确实发现了任何东西,我会立即通知网站管理员潜在的漏洞,以便他们修补它。

但即使我在逻辑上能够证明我测试网站的理由,但这并不一定使我的行为合法。事实上,网络法律在美国是出了名的倒退,即使是最可笑的微不足道的行为也可以被认为是黑客攻击。

问题: 是否有明确的界限将非法黑客行为与“未经许可的测试”区分开来?或者这整个场景是我应该避免的灰色区域(可能是这种情况)。是否有任何可链接的在线资源可以扩展我在这个完全灰色区域的知识?处理此问题的具体行为法律是什么?

请记住,第一个最合乎逻辑的选择是简单地:请求权限。然而,由于时间紧迫,等到我得到许可时,一切都是徒劳的

4个回答

法律不明确。你所做的任何事情,无论多么无辜,都可能被视为犯罪。网站所有者所要做的就是说“我不希望发生这种情况”,您可能会被判有罪。

在向海啸救援网站捐款之前,丹尼尔·卡斯伯特输入../../../了网址。他被判犯有“意图黑客”罪(在英国)。

Lori Drew因入侵 MySpace 而被定罪,因为她违反了 MySpace 的服务条款,创建了一个虚假账户,后来她 14 岁的女儿用该账户骚扰另一个女孩,该女孩后来自杀。这些定罪后来被推翻,政府决定不上诉——但这仍然是一种需要避免的经历。

Andrew "weev" Auernheimer 被判犯有身份盗窃罪,因为 AT&T 在其网站上为早期的 iPad 用户提供了客户帐户信息,并且他编写了一个脚本,仅列举 URL 并下载它们。

布赖恩·K·韦斯特(Brian K. West)因点击报纸网站上标有“编辑”的按钮而受到起诉威胁——他惊讶地发现这使他能够编辑实际网页。在向报纸报告问题后,联邦调查局对他进行了调查(包括搜查韦斯特的工作场所并没收一些材料),一名检察官显然威胁要对他进行重罪起诉。

在最近的一个案例中,发现当您导致收件箱填满垃圾邮件并对其进行 DoSing 时,您就犯了《计算机欺诈和滥用法案》所定义的“入侵”它的罪行。

我做你描述的所有事情。有些线我不会跨越:我将测试 SQL 注入,但我不会访问数据库。但我这样做是因为我能负担得起高价律师为我辩护。另外,我不会做愚蠢的事情。例如,丹尼尔·库斯伯特被判犯有“意图破解”罪,因为当被问及为什么这样做时,他不断改变自己的说法,因此法院不相信任何故事。

不要这样做!不要这样做!如果您在美国,则法律非常广泛。你甚至不想蹑手蹑脚地走到这条线上。

相关法律是《计算机欺诈和滥用法》(18 USC 1030)。简而言之(稍微简化一下),根据 CFAA,“未经授权故意访问计算机或超出授权访问”是联邦犯罪。这种语言非常广泛,我想一个雄心勃勃的检察官可以尝试使用它来追踪您名单上的所有内容,除了#1(查看源代码)。

该领域的主要法律学者之一奥林克尔称这座雕像“含糊不清”和“异常宽泛”,并表示“没有人真正知道它禁止什么”

而且,正如@Robert David Graham 解释的那样,在某些情况下,人们被起诉、威胁要起诉或被起诉,因为他们只需在文本框中输入一个单引号、../在 URL 中添加一个或注册 Facebook一个化名。即使没有恶意,仅此一项就构成联邦犯罪是非常疯狂的。但这就是我们生活的法律环境。

我会说,不要冒险。从您要测试其网站的公司获得书面授权。

许多司法管辖区的一个不变因素似乎是,您的清单上唯一安全的行动是第 1 项。

在某些领域,您可以修改数据,但实际上您不应该冒险。

我什至会说你以完全错误的方式处理这个问题。

更好的方法:

通知 Web 开发公司,如果他们想要您的业务,他们必须提供证明该应用程序已根据特定标准进行测试。在英国,您可以通过要求 CREST 或 CHECK 批准的个人或团队进行测试来做到这一点。或者,您可以通过使用四大审计公司之一获得保证。如果他们进行了测试,您可以请求查看方法和结果。

最佳方法:

要求他们展示其开发生命周期中的安全和治理控制。安全性成熟的组织将使用完整的 SDLC,这将降低漏洞的可能性,甚至消除所有类别的漏洞。渗透测试几乎只是过程结束时的确认。

警告:我不是律师,只是一个建议谨慎的极客。

是否有明确的界限将非法黑客行为与“未经许可的测试”区分开来?或者这整个场景是我应该避免的灰色区域(可能是这种情况)。是否有任何可链接的在线资源可以扩展我在这个完全灰色区域的知识?处理此问题的具体行为或法律是什么?

没有。甚至没有就哪些司法管辖区适用更不用说这些司法管辖区内的哪些法律适用达成一致。即使无视刑事处罚,您也应该避免仅仅因为民事处罚而这样做。

如果您做了该列表中一半的事情,您很可能违反了服务条款,并且任何非善意使用计算机资源的行为都可能使您面临民事诉讼的危险。您关于您没有使用不当资源的论点是基于对工程师如何合理地设计/部署系统的推测。你很可能是对的,但你没有也不能事先验证这些断言或对它们投保。如果他们的服务器机房崩溃只是与您的探测相吻合,那么您不希望处于证明您没有造成它的位置。

看似无害的有效载荷在被许多访问者乘以时可能会成为问题。例如,您注入的alert(1)有效负载可能看起来无害,但如果您发现一个持久性 XSS 漏洞,并且它显示在主页上,x 潜在客户在 d 天内可以看到它。对于 x 和 d 的某些值,它不是无害的,并且您无权减轻这些变量。

根据“渗透测试:第三方黑客” ,即使是合同渗透测试人员在获得许可工作时也应该有责任保险

所有渗透测试服务提供商都应有足够的责任保险,以支付与丢失客户专有信息的风险相关的成本,以及由于其活动导致的意外停机可能导致的任何潜在收入损失。如果服务提供商没有责任保险,请注意他们如何在“条款和条件”中指定责任。管理层还必须通过在测试开始前制定并验证足够的事件响应和灾难恢复计划来确保它可以在测试期间从数据丢失中恢复。

如果您与公司签订了合同,那么当您的探测导致生产系统中断时,您可能需要为数据/业务丢失承担责任。如果您在没有合同或先前关系的情况下行事,并且为了您自己的利益,如果他们的系统(在您开始调查之前他们不知道要备份)存在您觉得痒痒的缺陷,那么您将面临更大的诉讼风险。

假设您继续进行,并且确实会导致民事诉讼。如果他们想迫使您解决问题,他们可能会引发刑事处罚的幽灵,或者通过将您的行为与受到刑事处罚的行为相提并论来试图获得惩罚性赔偿。法官和陪审团可能容易受到以下基于“网络破坏行为和互联网‘黑客行动’”的松散论点的影响:

“想象一下,一个锁匠想决定买哪把锁,所以他向锁匠索要一份顾客名单。锁匠去了一家使用他的锁的便利店,发现这家店晚上关门了。他摆弄着锁, 并损坏它。店主第二天早上到达时发现锁坏了,所以他不能打开它,所以那天早上不卖咖啡。大多数司法管辖区都有禁止破坏者的法律,它们可以用来对付锁匠。惩罚性赔偿应该适用于锁匠,因为社会有兴趣惩罚破坏者。”

无论您是否发现想要购买锁具的锁匠对您来说都是一个很好的类比,法官和陪审团可能会,并且在不精通技术的人中存在一种迷因,即“黑客”(定义松散)是破坏者,如上面的链接。

TLDR:不要因为做牛仔而让自己陷入昂贵的诉讼。