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

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

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

相关文章

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3