今天小编分享的科技经验:从捉 Bug 的人,到被判定为黑客,只因发现一个漏洞,欢迎阅读。
程式员帮捉 Bug 却被判罚 2.3 万元,一切只因帮客户检查出一个恐泄露 700000 条数据的漏洞
作为一名 IT 自由从业者,本是受客户委托去检查軟體安全问题,却最终被定性为黑客,还成为了被告,甚至遭到了处罚,这究竟是怎么一回事?
1 月 17 日,德国于利希地方法院宣布了一项最新判决结果:
" 一位独立程式员帮助一家零售公司检查軟體问题时,发现此軟體存在一个导致近 70 万买家数据会暴露的重大漏洞。
为此,该名程式员联系了开发这款軟體的公司,却遭軟體开发商矢口否认,随后他与一名科技博主将这一漏洞公之于众,受到了广泛的关注。令人没想到的是,后来軟體开发商将相关軟體进行了下线处理后,也向警方举报了该名程式员,并称之为‘黑客’。
由于这种情况,这名程式员现因未经授权访问第三方计算机系统和刺探数据(根据《德国刑法典》(StGB)中所谓的黑客条款 202a 应受到惩罚)而被处以 3,000 欧元(约 2.3 万元)的罚款,同时还必须支付诉讼费用。"
身份的快速转换,这样的处罚,不仅让当事人一脸懵,也让不少开发者感到不解。
前情:一则 70 万条数据泄露事件引出的真相
最初这一事件发生在 2021 年 6 月,彼时有不少外媒报道称,德国一家名为 Modern Solution 公司发生严重的数据泄露事件,其軟體存在的安全漏洞导致 70 万终端用户受到了影响。
根据资料显示,德国 Kaufland 超市、电子商务公司 Otto、互联网金融企业 Check24 和比价网站 Idealo 等公司为小型零售商提供了一个在线平台,方便小型零售商可以在这些网站上提供商品并进行售卖。
作为一家接口服务商,Modern Solution 帮助不想或不能直接连接到平台本身的零售商,并在此过程中将平台的界面与想要通过在线市场销售商品的零售商各自的商品管理系统连接起来。
简单来看,Modern Solution 帮助这些小的零售商将其商品管理系统连接到 Otto、Kaufland 和 Check24 等大公司的在线市场上,同时也保护平台上这些客户的数据。
然而彼时外媒披露的这一漏洞,能够查看自 2018 年夏季以来该平台上的所有交易信息,即谁从哪个零售商、何时购买了什么商品,包括姓名、地址,乃至银行卡等。
泄露事件爆出后,也引起了当地市场的广泛关注,在查证之后,几个大型公司接连出面安抚用户,其中互联网金融企业 Check24 表示,作为安全措施的一部分,他们只使用电子邮件别名,因此不会传递银行详细信息或实际电子邮件地址等个人信息。因此,该公司的客户不会受到数据泄露的影响。
紧接着,追责问题,众人也发现数据泄露是发生在服务提供商 Modern Solution 身上,而探其背后,揭晓这一漏洞的是一名程式员。
从拿钱查 Bug 的第三方程式员,到变成了非法访问后台的黑客
2021 年 6 月,一家零售商发现他使用的軟體产生过多日志消息,填充了整个数据库,于是便花钱聘请这名程式员来帮他们解决问题,也让他有权查看安装在伺服器上的軟體。
起初这名程式员在排查问题时以为,这家零售商伺服器上的軟體连接的是 Modern Solution 公司的一个数据库,而这个数据库只为这一家零售商服务,只包含客户一家的数据。
然而不久之后,该程式员发现了不对劲,因为这一数据库包含的信息要多得多,而他随即也发现 Modern Solution 公司提供的軟體通过互联网与其公司在 Gladbeck 城市的伺服器建立了 MySQL 连接。
后来他惊觉,数据库中包含了 Modern Solution 公司所有其他客户的数据以及其网上商店所有最终客户的数据。
不过,据后来这名程式员的代理律师称," 当他发现自己可以访问其他客户的数据时,他立即断开了数据库连接。"
而回归当时,在发现问题之后,这位程式员第一时间找到了自己熟知的电子商务界知名博主 Mark Steier 简单地透露了自己的发现。Mark Steier 也建议这名程式员首先向 Modern Solution 公司报告他的发现。
第二天早上,这名程式员向 Modern Solution 报告了该漏洞,并提醒对方应该在三天内修复这个漏洞。
不过,后来程式员向媒体透露,他被粗暴地拒绝了,Modern Solution 公司否认存在漏洞。另一边,他发现 Modern Solution 将存在漏洞的系统下线处理。
既然漏洞已经修复,程式员和这位博主决定迅速向公众通报。博主 Steier 在发稿前,再次要求 Modern Solution 公司发表声明,但遭到拒绝。
所以,在 2021 年 6 月 23 日,Mark Steier 发表了关于一篇主题为《警告:JTL 合作伙伴 Modern Solution GmbH & Co. KG 数据泄露》(https://wortfilter.de/warnung-datenleck-beim-jtl-partner-modern-solution-gmbh-co-kg/)的文章,详解了漏洞的详情。
尴尬的披露时间
由于在这篇文章中,提到了超过 700,000 名终端客户受到影响,毫无疑问,此案吸引了公众的关注。
此外,有些尴尬的是,这名程式员和博主 Steier 在向制造商和相关数据保护机构报告数据泄漏和漏洞的当天就向公众公布了消息,也引发了不小的争论。
在很多人看来,有经验的安全研究人员通常会给公司更多的时间来对此事发表评论。
然而,如果 Modern Solution 公司真的粗暴地向这位程式员否认了漏洞,那么也可以理解为他们并不希望得到建设性的合作。
虽然披露的时间过于仓促,但是在不少外媒看来,技术上讲,这名程式员和科技博主已经遵守了负责任地披露信息的基本规则:在他们向公众通报时,漏洞显然已经修复。
不过,Modern Solution 公司并不这么认为,他们也在当天被动地发布了一份有关《数据泄露报告》的声明,分享了他们正在调查这一事件,同时将该程式员描述为 " 道德黑客 "。
https://wortfilter.de/wp-content/uploads/2021/06/moso-1.pdf
遭到反击随后 Modern Solution 以程式员刺探数据、窃取数据和违反联邦数据保护法等罪名向警局报了案。
2021 年 9 月 15 日,德国亚琛警方第 22 刑事调查局的一个搜查小组来到这名程式员的家里。据该程式员称,警察假装是包裹快递员,进入了他的公寓,并将他按在墙上,还没收了一台个人电腦、五台筆記型電腦、一部手机和五个外部存储设备,这是该程式员的全部工作设备。
根据调查檔案,Modern Solutions 告诉警方,程式员只有在掌握内幕知识的情况下才能访问公司的系统。而且他们发现该程式员曾在位于 H ü ckelhoven 的 JTL 公司工作过。JTL 公司生产商品管理系统,Modern Solution 公司的軟體与零售商方面的管理系统相连接。当时,程式员与 JTL 公司的雇佣关系因冲突而终止。
根据 Modern Solution 公司自己提供的信息,该公司专门从事安装和托管 JTL 公司所谓的 WaWi 系统。Modern Solution 公司的代表告诉警方,这名程式员利用他在 JTL 公司获得的内幕消息获取了密码,并通过该密码访问了 Modern Solution 公司的数据。
此外,Modern Solution 公司还称,軟體的编译提供了有效的保护,可以防止诸如读取密码字元串之类的攻击。同时,Modern Solution 认为,该程式员想以公司竞争对手的身份出现,因此试图伤害公司。
如果按照这种解释,倘若这名程式员通过反编译等操作方式获取密码,访问了数据库,那么可能会导致刑事责任。
然而,不少 IT 专家们怀疑编译源代码是否能有效保护密码。在研究过程中,外媒 heise online 使用普通工具从 Modern Solution 的軟體中读取了类似密码的字元串,该軟體可在互联网上免费下载。
对此,这名程式员表示自己受一家零售商的邀请,本来只是来帮助解决问题的,偶然间发现 Modern Solution 軟體的数据交换是通过 SQL 连接进行的,可以用纯文本查看,而且访问数据被牢牢固定在軟體中。这意味着,任何人只要获得一份原则上免费提供的軟體拷贝,就可以访问通过 Modern Solution 系统进行购买的所有客户的数据。
为期三年的调查,现在有了结论
各有各的说法。在被指控期间,检察官花了大量时间试图证明被告程式员为了获取数据库连接密码而反编译了 Modern Solution 軟體的程式代码。
正如上文所述,该程式员在诉讼书中指出,他只是用文本编辑器查看了有关檔案(MSConnect.exe),从而读出了纯文本的数据库密码。他是在他先前观察到的 MySQL 连接的其他已知连接数据的地方发现这一点的。
几经调查,法官也无法证明被告是通过反编译获得密码的。在审判结束时,实则这一点对判决也没有什么影响。因为主审法官指出,仅凭 Modern Solution 軟體設定了连接密码这一事实,就意味着该程式员查看程式的原始数据以及随后与 Modern Solution 的数据库连接,就构成了黑客刑事犯罪。
最终,这名程式员现因未经授权访问第三方计算机系统和刺探数据(根据《德国刑法典》(StGB)中所谓的黑客条款 202a 应受到惩罚)而被处以 3,000 欧元(约 2.3 万元)的罚款,同时还必须支付诉讼费用。
不少开发者为这名程式员叫冤
当然,判决尚未最终确定。双方都有一周的时间对刑事判决提出上诉。在这种情况下,诉讼程式将由地区法院重新审理。
然而,对于这样的初步判罚,不少开发者也觉得这名程式员实属冤枉:
这名程式员的犯罪似乎是 " 使用 " 暴露的数据库凭据登录第三方数据库伺服器。而不是他向外界暴露了凭据,实际上只是利用他们进行了探索。
如果不进入系统四处查看,基本上不可能知道系统是什么。这就好比在一栋大楼里拿到一张安全检查的钥匙卡。你会认为它打开的任何一扇门都是你可以进入的房间。如果保安发现你进入了一个你不该进入的房间,那是你的错吗?还是谁给了你一张权限级别错误的卡?还有,如果你打开一扇门,朝里面看了一眼,马上意识到你不该在那里,然后向保安报告,这种情况又如何?你应该受到惩罚吗?
这更像是你拿到了一张写着 "20 楼 " 的大楼的钥匙卡,但随后发现它可以进入所有楼层,并告诉大楼保安。他们所做的只是 " 打开 " 这里的 " 电梯门 ",暴露了他们错误进入的通道。听起来他们并没有窥探其他客户的数据或下载任何东西。
这就像给某人一本你写的书来校对,而你的密码无意中出现在文本中。他们用它来登录,然后告诉你。当然,他们不应该登录,但感觉不应该受到刑事指控。
看来这些法律需要重写。意图很重要,而且这个 " 黑客 " 似乎并没有试图造成任何伤害。公司被抓了小辫子,他们想惩罚这个揭露此事的人。