被外包程序员植入了后门程序,触发后删除数据库但他们死不承认,求惩治办法?

柒火


你说的这种外包程序员应该不是正规外包公司的,而是那种小作坊或者野路子程序员。

第一件事就是保留现场(代码和日志等),然后请专业的程序员review代码,提取和保留证据。然后报警。

一般外包的程序员水平都比较差,不可能不留下痕迹的,后门都有套路可以寻找,稍微懂行一点的程序员都很容易找到后门所在。

对待没有职业道德的外包人员,一定不能手软。


互联网活化石


1、保留现场:马上把服务器物理切断联网(最简单是拨网线),不对服务器作任何操作(就是啥也别动)。

2、报警

以我对it行业的了解,如果真有人敢用“删数据“这样恶劣的手段破坏,跟假疫苗害人子孙差不多了。

但是也不必过于担心,通常程序员对于数据备份是一种天然本能,对方极有可能做好了备份再删除的,这是一种习惯,剩下的就是如果让对方交出来了。

假如真没备份,也可以请数据恢复公司进行恢复,只是价格比较昂贵,但大多数都能恢复的,时间越短成功率越越高。

还有一点,无论对方用何种方法删除数据,都会留下蛛丝马迹,警方会有专业人员或委托第三方专业机构对服务器中的数据、文件、可执行程序、数据库可执行事务,过程等等分析,试图查出数据被删除的原因,理论上是不可能查不出原因的。


等于五


看你就是个菜鸟 ,谁让你只准备一套服务器?活该………

你要有两套源码,一套做备份,一套上线。

备份那套可以在项目交接后,给第三方机构,做后门检测,一般费用就几千块。如果发现恶意代码,可以起诉,并且要求赔偿。

另外你肯定有欠款,以我多年开发的经验。你没有欠款?我把我的特斯拉都吃了。

为啥有欠款?我估计因为资方要改需求引起的,作为劳方最不能忍受的就是改需求,这肯定要二次报价的,而资方却认为改这么点东西又要收钱?于是矛盾就来了,归根到底,资方自己对自己的项目都模糊不清,想当然,你这种人就看太多了。

还记得前一段时间新闻那个白痴的产品经理吗?居然要求程序员去开发一个APP,可以根据手机外壳而改变颜色,码农不揍死你才怪,同一个公司尚且如此,外包就更加不用谈了。


解开世界公式魔王


首先说下外包,因为以前我就在类似公司待过,大多数外包公司都有个心理,就是实在不行就只拿首款,尾款能不能拿到无所谓。其实可以发现从一开始就根本是没法结项的。

说个案例:

甲方外包给乙,100万项目款同时要求得有后台、前端、移动端App。

乙公司只有后台研发人员,那怎办放弃另外两个吗?显然不会,100万必须全部拿下!

接下来,把前端20万二次外包给丙,同样移动端20万给丁,但是各抽成10万。

丙丁两家公司每人只有10万块钱,那做的东西无非就是应付下。

现在明白了吗?中间所有人都只想着怎么赚钱,最后倒霉的却是甲方,发现项目效果达不到预期,要求乙修改对应内容再结尾款,而丙丁要求乙先结尾款再改,如此恶性循环。


AAENIUNE


被删库了怎么办?

1、首先尝试找回数据,扯皮的事情后面再说。

数据库被破坏的程度,取决于外包恨你的深度。不同的破坏程度有不同的修复方法。如果是逻辑删除,比如删除了某些重要数据或者某几张表,可以通过闪回查询或者回收站找到被删除的数据;如果是物理删除,比如删除表空间或者直接格式化磁盘,那就必须通过备份恢复数据库。这里面的情况比较复杂,简单点说就是:题主必须尽早找一个懂数据库的人检查数据是否能恢复,能恢复到什么程度?

2、如果技术角度无法恢复数据,那就准备谈判吧

外包故意删除甲方的数据库,不外乎两个原因。第一,要挟甲方,催回款或者续保;第二,已经和甲方撕破脸,回款不要了,以后相忘于江湖。外包的老板如果够成熟,一般都不会彻底撕破脸皮,删库只是手段,拿到钱才是目的。他们在删库前肯定会备份数据,或者只是改一下表名。这种情况下,题主应该找领导和外包老板深入交流,达成某些共识,然后外包的工程师会告诉你他们用只可意会不可言传的方法找回了数据。

3、如果谈判破裂,那就准备追责吧。

如果谈判没有效果,那就要通过法律来解决了。从问题看,题主最关心的还是要追究外包方的责任。要从两个角度下手。第一,合同。强势的甲方都会设计对己方有利的合同,一般合同期和质保期内,只要出问题,乙方都要负责解决。第二,问题定位。通过技术手段定位故障源是外包开发的应用或者外包的终端。说实话,这方面我不怎么抱希望,从题主的问题可以看出,题主的单位应该没有采取有效的审计手段。那只能从监听日志和解析归档日志着手了,过程相当复杂,建议找个好的数据库工程师。

4、如果以上都没有效果,那就只能重建数据库了

如果任何手段都试过,实在拿外包公司没有办法,那就只能自己痛苦地重建数据库了。向外包公司要数据字典(对方有这个义务),收集原始数据,手工录入新建的数据库。如果业务流程都有纸质工单保留,可以发挥人多力量大、愚公移山的精神在应用端重新录入业务流程;如果没有保留纸质工单,那就到此为止了,后续数据丢失造成的损失需要通过行政来解决。


太读


先想想为啥删库呢?最大情况无非就是你没有给别人尾款甚至从未支付过任何费用。

甲乙方合作的基础很简单,甲方付钱,乙方收钱做开发。

甲方给多少钱,乙方做多少事,别老想着小两千就要求做出淘宝,要不甲方自己做呗还一分钱不花。乙方需要严格按照难易度和工期敲定价格,才会规避甲方的各种不合理要求难以收到尾款。

良好的沟通才是双赢的保证。


阳光友华


不用说,肯定是你没给够钱。

说实话,这种事你连工钱都给不起,报警都没用。不是黑客入侵就不是刑事犯罪,立不了案。民事纠纷打官司,讲证据,你有什么证据证明是程序员删的?系统自动删的,什么条件会触发?程序员只要说是个bug你一点辙没有。

所以请人外包事先订好需求,签合同,按合同执行。让人做事还不给够钱,程序员有很多办法让你之前花的都打水漂,善待技术人员!


自由践行


给您提供建议如下:

(1)如果是测试环境,影响较小

如果是测试环境,影响较小,删除数据库的事情可以通过重建测试数据库重建。然后如果确认是外包程序员做的,可以通过公司对外包公司施压,要求以后加强管理,毕竟是甲方和乙方的关系。

(2)有可能是病毒程度?

如果是网上下载的数据库连接工具,如pl/sql developer,有可能被植入了病毒程序。如之前遇到过的勒索病毒,删数据病毒等。这样就要加强软件的管理,不允许使用互联网下载的非正版程序,以免间接引入病毒。

(3)是否有数据库审计,堡垒机等

通过技术手段,能否对登陆用户的行为进行审计、判断和分析,由此来找到具体的操作命令是什么,什么用户操作的,通过哪台PC机连入数据库操作的,通过这些线索大概判断是谁操作的。

(4)如果是生产环境,先恢复数据

通过您的描述,只是数据库被删除。如果生产环境管理规范,一般会有定期的逻辑备份、RMAN备份、异地备份等,通过这些数据,先重新安装数据库,然后恢复到最近的数据状态,将损失降到最低。

(5)责任是否清晰,问题定责

如果是生产环境,或者比较重要的其他数据库。那么数据库的运维工作是否外包,工作的职责是否也该由外包公司承担?如果能明确责任,那么就可以按照规章制度以及合同要求,进行问题的定责了。

(6)责任不清晰,终极方案

如果责任不能明确,但又确实造成了损失。当务之急就是让生产/测试环境恢复正常,力所能及的通过可行的技术方案(比如直接读硬盘恢复数据等强力技术手段),让业务先恢复正常,降低事故造成的影响。商务上面的事情,上报领导,由领导出面与对方公司协商处理。


希望对您有帮助,谢谢!


话入神机


如果严重造成了公司的经济损失,那就报警;什么事情都要自己沟通解决,还要警察做什么。

当然,在报警前,一些必要的事情还是要做的,说不定可以降低已有的损失。

先反思自己

至少我还没见过估计给程序留后门,删除客户数据的乙方;但是我见过很多拖着尾款不给的客户。

发生这样的事情,先反思一下自己对乙方是否有以下行为:项目开发过程中增加很多额外的需求,但是没有增加费用;项目验收过程中,是否“鸡蛋里挑骨头”,扣除了开发费用;项目已经交付,故意拖着尾款不给;

如果有的话,那么先和外包公司沟通,该给的钱给了,然后让对方看看数据能否恢复。

开始沟通千万别说“就是你们删的,快给我弄好”,是谁也不会承认的。

可以先礼后兵:“(装作什么都不明白)不知道什么问题,数据都没了,你们比较专业,帮忙看看有没有办法恢复,我们可以加一些费用”。


恢复数据

比找外包理论之前,还有更重要的事儿,就是想办法恢复数据了。

一些公司,数据库都会设置设置成主从模式,这种情况的话是好办的,不过大部分公司,还是单台数据库运行。

如果是单台数据库的话,也是有可能找回数据库的,例如MySQL,可以使用数据库备份+binlog日志的方式恢复数据库:时间起点=最近一次备份数据库的时间,时间终点=DROP操作前的一个操作,然后将binlog中的操作重新执行一遍。


如果数据没找回来,并且造成严重经济损失的话,那么该报警就报警吧,下一次,记得对外包好一些。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。


会点代码的大叔


一,厘清责任,是外包的问题还是你们内部本身管理的问题。不是说外包删的,运维团队就没有责任的,这要看你们运维团队的构成和运作形式。

二,保留现场,责任厘清之前不要做任何操作。因为这可能导致二次伤害,而只要你操作并造成二次伤害了,则责任百分百在你!如果你操作成功恢复了,则责任不一定就在外包,这点请深刻体会!

三,责任明确后,保留现场的情况下做损坏评估,切记先有预案再动手,不要盲目的尝试。如果有条件尽量通过dd或者快照的方式,再造一个现场环境出来进行测试。

四,最后才是追究责任,法律程序和赔偿问题是最后才进行讨论的。

五,数据无价!有些数据一旦丢失仔也找不回来,尤其是关系型数据!重要的生产环境不要让非运维人员轻易用高权限帐户进行操作!

六,通过这次事件提高安全等级,要预算,要编制,把坏事转化成教训,以期在将来运维上能有实质性进步,从而成为一件好事!

七,运维有风险,一次就足够葬送职业生涯,要保守谨慎,不要把开发思维带到运维上,千万要警惕那些开发转运维的人员!!尽量使用专业的运维人员。


分享到:


相關文章: