程序员的骚操作:写个漏洞让雇主重复支付修理费用近三年

本文主要是介绍程序员的骚操作:写个漏洞让雇主重复支付修理费用近三年,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=jpeg

作者丨小智

一位西门子公司的合同工十年前在给西门子写的电子表格中植入了逻辑炸弹,它会在特定日期之后导致电子表格崩溃,于是西门子就必须再次雇佣该名合同工进行修复,每次都需要重新支付修复费用,持续时间近 3 年。最近他被抓包了,面临最高十年监禁和 25 万美元(约合人民币 172 万)的指控。 1 大龄程序员的“生财之道”

现年 62 岁的大卫·廷利 (David Tinley) 来自匹兹堡附近的哈里森市,如果不是因为出了这档子事,他只是美国众多默默无闻的大龄程序员之一。

640?wx_fmt=jpeg

廷利为西门子在 Monroeville 的办事处工作了将近 10 年的时间,他曾接过一个为西门子公司创建管理订单的电子表格需求,电子表格包含自定义脚本,可以根据存储在其他远程文档中的当前订单更新文件的内容,从而允许公司自动化库存和订单管理。

事实上,这个需求并不算难,廷利写的电子表格程序也正常工作了多年。直到 2014 年,该电子表格开始频繁出现崩溃问题。

起初,西门子公司并不知道故障的具体原因,出于对廷利的信任,该公司要求廷利进行修复。因为廷利是合同工,因此每次进行修复时,西门子都需要跟廷利签订修复合同,并支付费用。这样的情形持续了近三年之久,直到东窗事发。

在又一次电子表格程序崩溃以后,西门子公司仍旧联系其进行修复。但此次程序崩溃时他并不在城里,不得不将电子表格的管理密码交给西门子公司的 IT 工作人员去执行紧急修复。西门子公司的 IT 人员发现,电子表格频繁崩溃的原因在于廷利在其背后植入了一个逻辑炸弹,该逻辑炸弹会导致电子表格在特定日期后崩溃。(所谓逻辑炸弹,指的是在特定条件出现或经过一定时间后,恶意地诱骗软件或系统崩溃或失败。)于是廷利便可以借修复的名义,重复收取西门子公司的修复费用(大概费用在 4.2 万美元)。如果不是因为事情败露,他的“生财之道”似乎可以持续得更久。

廷利在今年 5 月遭到起诉,在庭审中,廷利和其律师表示:

他在代码中放置逻辑炸弹,并不是为了促使西门子重新聘用他来解决这个问题,而是为了保护他的专有代码。 廷利在匹兹堡的法庭上说: “我的动机是高尚的”。 其中一些问题不是他的代码造成的,而是由于对微软 Excel 软件本身进行了修改。

根据此前曾有过的类似案例,廷利无罪的可能性极小:

  • 2006 年,瑞银 (UBS) 前 PaineWebber 员工因在公司网络上植入逻辑炸弹,并押注公司股价将下跌,被判入狱 8 年。

  • 2018 年 9 月,亚特兰大一名男子因在美国陆军工资数据库中植入逻辑炸弹,导致美国陆军预备役工资延迟 17 天支付,被判两年监禁。

匹兹堡法庭曾希望与廷利达成早日认罪、避免全面审判以减轻罪责的协议,但廷利与其律师最终毁了认罪协议。他将面临最高十年的监禁以及 25 万美元(约合人民币 172 万)的罚款。

2 遭到质疑的西门子 IT 能力

此事件遭到曝光后,廷利受到了理所当然的指责,但西门子公司的 IT 能力却遭到了巨大的质疑:

廷利为他们工作了十年,为什么同样的问题持续了近三年之久,都没有研发人员感到奇怪? 而是任由这位合同工一次又一次地收取修复费用?

该案的最终量刑听证会将与 11 月份举办,目前西门子公司未对事件详情进行进一步的披露,从有限的信息中,该公司的 IT 管理能力已经受到了广泛的质疑。

曾经在工业革命中扮演过重要角色的西门子公司,在 2014 年提出了 “2020 公司愿景” 计划,聚焦在电气化、自动化、数字化三个领域。2018 年,该公司进一步提出了“公司愿景 2020+”,再次强调数字化能力。

根据西门子中国官网的描述:

我们丰富的产品应用程序已经帮助各行各业的企业通过产品和流程创新提升了业务水平。 当今智能产品及其相关制造流程的复杂性向企业提出了前所未有的要求,这就要求企业必须深度理解这些多领域系统的交互。 创建和共享各阶段产品流程的准确数字化双胞胎,正是向数字化企业转型的牢固基石。 我们的产品组合能够凭借在各个行业当中的卓越技术来满足各个领域的需求。

在西门子的数字化战略中,既有自己做平台的内线发展,也有在外部做收购的外部拓展。其中的外部收购近年来更是动作不断:

  • 2014 年,西门子收购 Camstar,强化其在工业数字化领域的领导地位;

  • 2016 年,西门子以近 10 亿美元收购工业软件开发商 CD-adapco;

  • 2016 年底,西门子 45 亿美元收购半导体软件公司 Mentor Graphics。

西门子表示,过去的二十年间,该公司在软件方面投入了超过 100 多亿美元,获得了在工业软件方面的领先地位。该公司表示,现在拥有客户开发飞机、火车和汽车等复杂电子机械所需的所有软件。随着收购的持续进行,西门子成为了 SAP 后的欧洲第二大软件公司,世界十大软件供应商。

但西门子的 IT 能力,真的就随着一路并购的规模扩充得到了相匹配的提升吗?类似的批评声一直不断。

此前,西门子公司的过程监视系统 WinCC 曾被俄罗斯技术团队爆出充满漏洞。WinCC 应用是由西门子开发的一种 SCADA 程序,用于许多行业的进程可视化,并且被认为是行业标准。该俄罗斯团队在当年 WinCC 的最新版本中发现了超过 50 多个漏洞,数量多到西门子公司制定了一个路线图来修补所有漏洞。其中的大多数问题都允许攻击者远程接管 WinCC 系统。

该团队负责人接受采访时不无讽刺地说道:“在 WinCC 中找出漏洞简直太容易了,你可以随便一指(就能发现漏洞)”。

3 合同工、外包、程序员的权限问题?

合同工、外包在软件开发的世界里必不可少,在传统企业比如波音、西门子等公司数量更是众多,即便对于大型的互联网企业来说,外包员工数量同样不少。比如谷歌就有规模庞大的“隐形员工”,再比如阿里巴巴的 Lazada 同样有很多外包员工等。

在很多公司的软件开发流程中,对于合同工、外包人员的权限问题都很谨慎。事实上,类似西门子合同工这样通过植入漏洞非法获利的新闻不在少数,许多公司在核心的数据库、后台系统、账户等关键位置的权限进行严格的限制。

不仅对于合同工、外包是这样,对于许多离职员工同样如此。InfoQ 此前曾采访过一位离职程序员,他表示:

在我签字交接完以前,技术团队的老大防我就像防贼一样。

读者朋友应该还记得今年 1 月份,曾发生过一起闹得满城风雨的大新闻:

一篇名为《告游戏行业全体同仁书》的文章中声讨了一位离职主程:这篇文章指责主程燕某在就职深圳螃蟹网络科技有限公司 3 个月期间,出于报复心理,于游戏上线测试当天无故失踪并锁死电脑和服务器,最终导致公司开发两年的项目失败,损失惨重,创始人尹某背上百万债务开始打工之路。

无独有偶,近日一名微软程序员利用测试账户套现千万美元,购置了一辆特斯拉与价值 160 万美元房产的新闻同样引起了我们的注意。

对于合同工、外包乃至正式员工来说,IT 系统的权限问题该如何关注?安全问题、删库问题、套现问题背后折射的究竟是职业道德问题还是监管不利的原因?各位未来的 CTO 们,你怎么看?



有道无术,术可成;有术无道,止于术

欢迎大家关注Java之道公众号


640?wx_fmt=png


好文章,我在看❤️

这篇关于程序员的骚操作:写个漏洞让雇主重复支付修理费用近三年的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/161620

相关文章

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

Java Multimap实现类与操作的具体示例

《JavaMultimap实现类与操作的具体示例》Multimap出现在Google的Guava库中,它为Java提供了更加灵活的集合操作,:本文主要介绍JavaMultimap实现类与操作的... 目录一、Multimap 概述Multimap 主要特点:二、Multimap 实现类1. ListMult

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Python使用Code2flow将代码转化为流程图的操作教程

《Python使用Code2flow将代码转化为流程图的操作教程》Code2flow是一款开源工具,能够将代码自动转换为流程图,该工具对于代码审查、调试和理解大型代码库非常有用,在这篇博客中,我们将深... 目录引言1nVflRA、为什么选择 Code2flow?2、安装 Code2flow3、基本功能演示

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

Java Stream.reduce()方法操作实际案例讲解

《JavaStream.reduce()方法操作实际案例讲解》reduce是JavaStreamAPI中的一个核心操作,用于将流中的元素组合起来产生单个结果,:本文主要介绍JavaStream.... 目录一、reduce的基本概念1. 什么是reduce操作2. reduce方法的三种形式二、reduce