被外包程序员植入了后门程序,触发后删除数据库但他们死不承认,该怎么办?
以我多年的外包经验,你可能是遇到以下几种情况被删库了。
1.你找的外包公司应该是业务型的外包公司,公司没有技术好的程序员。
现在这样的外包公司太多了,我敢说目前国内百分之八十的外包公司都是没有程序员的,最多是前端套模版的技术员。
以现在外包行业,特别是网站建设这块各种低价竞争,大多外包公司根本没能力养好的技术员。我曾经一个人的开发速度比过五六人的外包团队,可见他们有多水。
所以大部分外包公司接单都是转包,比如从甲方收取10,最后到实际开发者手上可能不到两万。
你想想甲方的需求是十万块的,而开发者以两万的标准去开发,肯定效果是达不到的。
甲方肯定不满意,或提出修改意见,或要求退款,但开发者肯定不愿意继续给你改,因为他收费就这么多。
外包公司也不愿意继续加钱,然后就拖着,拖出纠纷来。开发者两万的报价应该只拿了几千块的定金,这时候能不火么?而且大多又没有签合同的,钱又拿不到了,所以只好删库。
你们现在的办法只能是给外包公司施加压力让恢复数据库,这我估计是行不通,他们根本就没这能力。
另外就是看源码里有没有实际开发的那个程序员的联系方式,把外包公司的尾款直接给他相信很快圆满帮你们解决所有问题。我以前作为个人开发者时也经常遇到这情况。
还有一定得起诉外包公司,不过估计成功性不高,你们公司肯定没有技术员,没留下任何证据。如果产品还没交接完毕,直接起诉对方没有达到合同要求。
外包公司大多是没什么诚信的,上忽悠甲方,下忽悠开发者。把甲方的要求分解弄简单低价转包。
如果只是用开源程序套套模版找外包公司还行,复杂的系统开发最好不要找,要找也得找了解,确实有技术团队的。反正报低价的基本不靠谱的,你想程序员多贵,工资都开不出的价格怎么能做好。一般也就是接来单子转包给兼职下班做了,兼职吗只要有钱赚就行了。
另外兼职各位程序员最好不要去接复杂的二手单,大多拿不到尾款的。
程序员一般都老老实实敲代码,不会恶作剧,也是对职业的一种尊重,如果真有这想法,不妨问问甲方是否按时支付工资或者平时刻意刁难程序员,这样的情况很多甲方都有出现的,特别是拖欠工资。
当然出了这个问题肯定程序员会承担重要责任,可以先和其先沟通,再进行报警或者其他处理方式
被删库了怎么办?
1、首先尝试找回数据,扯皮的事情后面再说。
数据库被破坏的程度,取决于外包恨你的深度。不同的破坏程度有不同的修复方法。如果是逻辑删除,比如删除了某些重要数据或者某几张表,可以通过闪回查询或者回收站找到被删除的数据;如果是物理删除,比如删除表空间或者直接格式化磁盘,那就必须通过备份恢复数据库。这里面的情况比较复杂,简单点说就是:题主必须尽早找一个懂数据库的人检查数据是否能恢复,能恢复到什么程度?
2、如果技术角度无法恢复数据,那就准备谈判吧
外包故意删除甲方的数据库,不外乎两个原因。第一,要挟甲方,催回款或者续保;第二,已经和甲方撕破脸,回款不要了,以后相忘于江湖。外包的老板如果够成熟,一般都不会彻底撕破脸皮,删库只是手段,拿到钱才是目的。他们在删库前肯定会备份数据,或者只是改一下表名。这种情况下,题主应该找领导和外包老板深入交流,达成某些共识,然后外包的工程师会告诉你他们用只可意会不可言传的方法找回了数据。
3、如果谈判破裂,那就准备追责吧。
如果谈判没有效果,那就要通过法律来解决了。从问题看,题主最关心的还是要追究外包方的责任。要从两个角度下手。第一,合同。强势的甲方都会设计对己方有利的合同,一般合同期和质保期内,只要出问题,乙方都要负责解决。第二,问题定位。通过技术手段定位故障源是外包开发的应用或者外包的终端。说实话,这方面我不怎么抱希望,从题主的问题可以看出,题主的单位应该没有采取有效的审计手段。那只能从监听日志和解析归档日志着手了,过程相当复杂,建议找个好的数据库工程师。
4、如果以上都没有效果,那就只能重建数据库了
如果任何手段都试过,实在拿外包公司没有办法,那就只能自己痛苦地重建数据库了。向外包公司要数据字典(对方有这个义务),收集原始数据,手工录入新建的数据库。如果业务流程都有纸质工单保留,可以发挥人多力量大、愚公移山的精神在应用端重新录入业务流程;如果没有保留纸质工单,那就到此为止了,后续数据丢失造成的损失需要通过行政来解决。
事情搞到这份上了中间在合作过程中肯定出现了很多不愉快的事情,但是无论发生什么在程序里面植入后门程序都是不符合职业规范的,更何况还出现删除数据库恶性的事件,说明矛盾已经到了不可调和的地步,针对这种事情可以采集以下的解决方案:
1.首先确认是不是有欠款没有付清,或者在商业合作有违规的操作,先把这块给消除掉,如果是这种状态,外包的公司正常情况下,数据库应该会存有备份,把商业上的误解疏通,后面的还是可以恢复的。
2.如果是上述方案不能解决只能付诸于法律,通过这种方式,让对方想办法补偿自己的损失或者全力恢复数据库。在做这个的同时看看能不能手动恢复数据库,把数据从仅存的残留保留上面录入到数据库中,尽量减少损失,对方的程序员这块的资源要充分的利用好。
正常来讲如果是对方的程序员所为,这是严重违反职业道德的,这种现象多发生在小型外包公司或者小城市的程序员身上,这种都是损人不利己的做法,这种一旦被业内所知晓,大家基本上对这种人绝缘,谁敢用不讲职业道德的程序员,杀伤力那么强。
我认为是甲方没给尾款吧。不然这费力不讨好的事情谁做啊?我们公司也遇见过,有时候甲方客户喜欢玩文字游戏,要在合同里留一些对他们有利对开发公司不利的条款。比如之前我们给一家公司做小程序开发,私单,基于模板二开的8000块钱,服务器还是80块一个月的最低级服务器。功能确认之后,居然要求我先部署到他们的服务器,并且出服务器部署图,架构图,巴拉巴拉反正说了好几个东西出来,我忍辱负重给他们做了并且留了后门,但是最后就是50%的尾款我没拿到。然后我就启用后门了,这个肯定不会认的,我也不认为我做错了。还说要起诉我,反正我是等着他们起诉呢…不过至今2个月过去了,还没收到消息。
垃圾,肯定是扣发工资。或者恶意刁难别人。程序员一般都是挺老实的人。不到万不得已人家不会搞这种事情的。奉劝你们这些垃圾,国内研发人员群里的环境别给弄坏了。我朋友世界500强处理过类似的情况,里面的高手基本无法判断出手法。
你说的这种外包程序员应该不是正规外包公司的,而是那种小作坊或者野路子程序员。
第一件事就是保留现场(代码和日志等),然后请专业的程序员review代码,提取和保留证据。然后报警。
一般外包的程序员水平都比较差,不可能不留下痕迹的,后门都有套路可以寻找,稍微懂行一点的程序员都很容易找到后门所在。
对待没有职业道德的外包人员,一定不能手软。
基本可以说无解,一般程序员留个后门,等时机成熟找个网吧,挂个国外的ip,远程倒计时 90天后触发,再删除痕迹,警方牛逼,就算找到网吧,那么久之前网吧监控记录早没了。所以做人要留有余地,做甲方别觉得给钱就可以把程序员当孙子,程序员也别仗着技术为所欲为。
1、保留现场:马上把服务器物理切断联网(最简单是拨网线),不对服务器作任何操作(就是啥也别动)。
2、报警
以我对it行业的了解,如果真有人敢用"删数据"这样恶劣的手段破坏,跟假疫苗害人子孙差不多了。
但是也不必过于担心,通常程序员对于数据备份是一种天然本能,对方极有可能做好了备份再删除的,这是一种习惯,剩下的就是如果让对方交出来了。
假如真没备份,也可以请数据恢复公司进行恢复,只是价格比较昂贵,但大多数都能恢复的,时间越短成功率越越高。
还有一点,无论对方用何种方法删除数据,都会留下蛛丝马迹,警方会有专业人员或委托第三方专业机构对服务器中的数据、文件、可执行程序、数据库可执行事务,过程等等分析,试图查出数据被删除的原因,理论上是不可能查不出原因的。
赶紧把尾款给人家结了吧