开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。
阿里中台搞了3年,搞凉了?网传:副总裁玄难“背锅”,辞职创业!字节跳动的面试算法题,实在太变态了
求求你!别再这样用 HashMap 了好吗?
刷题一个半月,一口气拿下腾讯、华为、Oppo、微软7个大厂offer,字节跳动薪资涨幅60%!IDEA 2020汉化版发布, 9个新特性曝光,程序员:追不上了...
点击“开发者技术前线”,选择“星标🔝”
在看|星标|留言, 真爱
图片来自 Pexels
出处:云头条,知乎综合整理, 51CTO
链接:https://www.zhihu.com/question/389167387/answer/1170852426
近日,云头条发布的“一个违规操作、损失 800 万、被判五年半:运维夏某某致郑大一附院智慧医院系统瘫痪 2 个小时,判破坏计算机信息系统罪”一文引发了技术圈的热议。
事件经过
2017 年 10 月 31 日 20 时许,夏某某参与并直接操作了郑大一附院“HIS 数据库”的账号密码修改仪式,夏某某在未经授权或许可的情况下,私自记录了该账号密码。
后夏某某在未经授权或许可的情况下,私自编写了“数据库性能观测程序”和锁表语句,并利用私自记录的账号密码将该程序私自连接郑大一附院“HIS 数据库”,导致该锁表语句在“HIS 数据库”运行。
2018 年 12 月 24 日 8 时 13 分至 9 时 47 分期间,夏某某先后六次利用“数据库性能观测程序”连接“平台数据库”的“锁定平台挂号表”功能,将数据库执行锁表命令。
该命令执行后锁定 fin_opr_register 表,使其不能进行其它活动,并导致“HIS 数据库”锁定。造成郑大一附院郑东院区、惠济院区、医学院院区所有门诊、临床计算机业务受到恶意语句攻击,门急诊挂号、门急诊叫号、门急诊支付、门急诊药房、门急诊检查、门急诊检验等业务系统均无法正常操作,所有门诊相关业务停止服务,造成该医院三个院区门诊业务停滞近两个小时,造成大量患者积压在门诊无法就诊,严重影响医院的正常医疗工作。
案发后,夏某某对其工作数据日志、办公电脑进行了清理。2019 年 5 月 22 日,经民警电话通知后被告人夏某某到郑州市公安局郑东分局投案。
经郑大一附院出具证明:由于恶意锁表行为遭受损失等相关情况,包括:
从当日收入来测算。当日收入损失约为 800 万元。
郑东院区门诊楼有 380 台电脑无法进入医生工作站正常工作,72 台自助挂号机和 49 台报到机无法正常工作;河医院区门诊楼有 1027 台电脑无法正常进入系统,86 台自助挂号机和 55 台报到机无法工作;惠济院区门诊部有 82 台电脑无法正常进入系统,11 台自助挂号机和 4 台报到机无法工作。
对该院智慧医院项目造成巨大影响。
被害单位委托代理人杨某的陈述:
2018 年 12 月 24 日 8 点 17 分,我在郑大一附院河医院区办公,我看到微信上三个院区的服务群里说门诊业务系统卡住了,无法进行其他任何业务。
我和同事以及东区的技术人员一起通过工作电脑查询门诊业务系统卡机的原因和查询数据库。在查到 82 号和 89 号这两个接口服务器时,发现数据包拥塞严重。
在 9 点的时候,我在我们的 PL/SQL 里面发现了一条锁表语句(LOCKTABLE+表名字,也是挂号业务表),然后我们就执行了终止语句(KILL)。
我们一共执行了 6 次终止语句,门诊业务才恢复正常,这个时候时间是 10 点左右。
后来我们将服务器工作日志导出发到东软公司总部进行分析,分析的结果是发现那个锁表语句是非程序中的运行语句,怀疑是人为操作,操控门诊业务系统。
我们又请了郑州市信大天瑞信息技术有限公司的技术人员进行了日志分析,分析的结果与东软一致。
这 6 次锁表语句的总共执行时间是 1 小时 34 分,从 2018 年 12 月 24 日上午 8 点 13 分开始到 9 点 47 分结束。
这个锁表语句影响了郑大一附院的三个院区,分别是郑东院区、河医院区和惠济院区门诊的所有业务。
在这 1 小时 34 分的时间内三个院区的 15300 多个门诊业务量无法工作,24 号当天的业务量是 25528 个。这次的恶意锁表现象严重影响了我们的日常门诊工作。
据当事人解释:
2018 年 12 月 24 日 8 点左右,我在北京家中用公司给我配备的联想电脑,远程登录到郑大一附院的数据库和小型机的数据库,查看数据库的运行情况。
大概 8 点 30 分,我看到微信群里河医的门诊系统卡顿,我担心公司的综合信息运用平台也会出问题,就启动了我自己编程的一个程序(程序名称:数据库性能观测软件)对我们公司的系统进行查看。
在我运行系统的时候发现我运行的这个程序在报错,我就更改了几次数据参数,一直没有运行成功我就主动放弃了,整个操作过程大概 20 分钟。大概在 10 点多的时候微信群说河医系统运行正常,我就去公司上班了。
12 月 25 日我们公司将小型机的数据库的性能报告导出来,同事张某 2 将报告发给我一份,让我帮忙分析问题出现的原因。
26 日我分析的时候发现小型机分析报告中第 9 条语句看着有点眼熟,拿出来跟我自己做的编程进行了比对,结果和我运行程序的语句一样。
我自己推断可能是我运行的程序和性能报告第九条重叠,这个运行语句会造成锁表。
接下来我就对我自己做的程序进行分析,发现自己写的程序是有问题可能会将锁表语句执行到 HIS 数据库中。
附录要点如下:
①编写的“his.exe”软件(数据库性能观测软件)没有得到中科弘睿公司或者郑大一附院的授权。
②从郑大一附院授权角度讲,我是没权利使用上述账号和密码的。2017 年 10 月 31 日,郑大一附院网络安全加密实施仪式我在场,修改的 zdhis 的密码由 3 个院领导分别掌握各自的部分,我当时写了个修改密码的语句。这个语句在我电脑里有保存,我当时存到一个 txt 文档里。我存这个密码的时候是我私下偷偷存的。
法院裁定
关于被告人夏某某及辩护人辩称其没有破坏计算机信息系统的主观故意的意见,经查,根据被告人夏某某供述、证人张某 1、张某 2、周某的证言可知,夏某某并无知晓使用郑大一附院东软 his 数据库“zdhis”账号和密码的权限,其工作内容并不需要登录上述帐号。
裁判结果
被告人夏某某犯破坏计算机信息系统罪,判处有期徒刑五年零六个月。(刑期从判决执行之日起计算。判决执行以前先行羁押的,羁押一日折抵刑期一日,即自 2019 年 5 月 23 日起至 2024 年 11 月 22 日止。)
这里给大家普及一下破坏计算机信息系统罪,它是 IT 从业人员必须了解的安全守则:
《中华人民共和国刑法》第二百八十六条第一款:
【破坏计算机信息系统罪】违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行,后果严重的,处五年以下有期徒刑或者拘役;后果特别严重的,处五年以上有期徒刑。
违反国家规定,对计算机信息系统中存储、处理或者传输的数据和应用程序进行删除、修改、增加的操作,后果严重的,依照前款的规定处罚。
故意制作、传播计算机病毒等破坏性程序,影响计算机系统正常运行,后果严重的,依照第一款的规定处罚。
单位犯前三款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照第一款的规定处罚。
如何看待“郑大一附院”系统违规操作损失 800 万,肇事者被判五年半?我们先看看网友的评论:
这个语句的功能是用来锁综合信息平台 fin_opr_register 这个表的。锁表的目的是为了模拟一下在高并发情况下的死锁情况,测试一下我们公司综合信息运用平台的性能。
这操作,如果智商正常,恐怕是想黄了公司吧?
这里普及下 Oracle 的锁类型:
在业务系统中,我确实极少见到主动排他锁表的,一般在生产库上使用 select for update 就已经需如履薄冰了,夏同学这样的 SQL 使用可以说是罕见的存在。
这样的写法会让事务串行执行,对于有并发的系统尤其是大型生产库,还是业务高峰期,简直是灾难性的“自杀式袭击”,一旦执行,故障的结局早已经注定无可避免。
这已经不是一个低智商的事故个例,很明显是公司层面的整体意识问题,是安全意识和安全规范远低于及格线的企业能力问题。
开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。