林昱有些自嘲地摇了摇头,强迫自己把这些莫名其妙的念头抛开。
然后他打开门,准备向容川道歉,然后心平气和地把项目的事聊一聊。
房门打开的一瞬间,他看见了靠着墙壁蹲坐在地上的容川。
听到声响,对方迅速站了起来,看向他的目光里都是惊惶与自责。
在他说话之前,容川已经哑着嗓子开口了:“对不起,我错了……那个项目我已经和对方说不接了……所以你可不可以别生气?也不要不理我?”
那一刻,林昱觉得自己的心被狠狠揪了起来。
眼前的容川像是一只受惊的流浪猫一样,压着耳朵,夹着尾巴,在小心翼翼地讨好着那个刚刚把他领回家的主人。
他不习惯这样的容川。
他认识的容川桀骜不驯,既骄傲、又直率。
他会因为心情不好在巷子里和人打架,会在CTF的赛场上拖着整个队伍向前冲,会在最落魄的时候,还在微信朋友圈里用一段抢票代码为自己证言。
即便跌落深渊,他也从没放弃过,而是一次次跌跌撞撞地想要尝试着爬起来。
可是此刻的他,即便不知道自己错在那里,却选择了姿态卑微的先道歉。
因为他害怕自己的冷淡态度,害怕到愿意抛下自己的骄傲和尊严。
刚刚在门外等候的那几十分钟里,容川究竟在想什么呢?
他是觉得自己生气了,所以不打算再理他了吗?
他把被放弃的桥段在心里预演了一遍又一遍,直到精疲力尽。
然后在门被打开的那一瞬,立马就像抓住救命稻草一样,站在那低头认错?
林昱再也忍不住了,快速冲上前去,伸手抱住了他。
双手环上对方后背的那一刻,他明显感觉到容川的身体在发抖。
“对不起,是我错了,应该是我给你道歉!”
他语无伦次地解释着,感觉自己从没有这么慌乱过:“我不该那么紧张,也不该不信任你……你想接什么项目,交什么朋友,只要确认没问题,都是你的自由。”
容川任由他抱着,整个人僵在了那里。许久之后,他才小心翼翼地回抱了过去,声音里带上了一点委屈:“这些项目,都是签有合同,盖有公章的……程嘉树的个人信息,也能在他们公司的官网上查到……”
“是……我知道了,你不用解释。”
林昱更加用力地抱紧了他,直到感觉容川的身体慢慢平静了下来,才轻声表示:“我现在有点饿了,你愿意陪我再吃点东西吗?”
枕在他肩上的头微微动了一下,容川的回应声里带上了一点试探地味道:“那吃完饭以后,我们要不要一起试试那台唱片机?”
林昱重重地点着头:“好,都听你的。”
那个价值十二万的项目容川最终还是没有退掉。
原因无它——在他给程嘉树发微信表示“那个项目我不接了”的以后,对方就发起了微信轰炸加夺命连环Call,想要从他嘴里得到一个解释。
但当时他正沉浸在“林昱不再理睬自己”的恐惧里,直接把手机静音了。
等到两人之间的心结解开,林昱也从合同和溯影科技的官方网站上确认程嘉树的身份,以及这个项目的合法性后,所有的障碍也都不复存在。
所以当他最终接通了程嘉树的电话后,随意编了个借口,就在对方劝说声中,顺势又把项目接了回来。
接下去的三周时间,容川开始集中精力啃这块硬骨头。
林昱也很清楚这个项目对他的重要性,主动承担起了做饭洗碗,打扫卫生之类的家务活。
很多个晚上,他们各自坐在电脑前忙碌,没有对话,没有交流,只有键盘被敲响时发出的清脆声响隔空碰撞。
但那种平静又默契的相处方式,却比任何时候都要让人心安。
从完整的项目需求书上,容川了解到这次的甲方名叫东信金控,是国内某个顶级大厂全资控股的大型金融集团。
他们的AI投顾系统名叫“慧眼”,已经上线三年,处理过数亿次用户查询,在国内的同类产品中,一直是标杆性的存在。
所以他这次的工作报告,不仅关系到东信金控自身的系统安全性,甚至也是对同类产品在金融类企业中的适用性的一次验证。
工作的第一周,容川把所有关于“慧眼”系统的公开资料翻了个遍。
这其中不仅包括了技术白皮书,各种专利文档,甚至也包括与这个系统有关的公开演讲。
他的最初目标只是为了搞清楚这个系统的基本构架,然而钻研的过程中,却发现了一个意外的信息:这个系统的项目负责人,是他的父亲宋晏平。
如果换做几年前,在发现项目与宋晏平有关后,他一定会远远将它推开,避免再和它有任何关联。
但在历经了退学事件后,他对宋晏平的态度也变了。
他不会主动靠近他,却也不会因为一个项目里有他的名字就轻易放弃,他开始学着用打败宋晏平之外的方法,来证明自己
充分了解了“慧眼”的信息后,容川注册了一个测试账号,通过脚本发送了上千条正常的用户查询,建立了一套正常行为的基线。
紧接着,他又尝试在查询中插入非常规参数,想看看系统会不会在边界处露出破绽。
但最后的结果是:什么都没有。
系统表现得很健康,风控的过滤严严实实。甲方说的那种异常行为,在正常API调用中一次也复现不出来。
不过容川不觉得意外,如果问题那么容易就能复现,甲方自己的工程师早就搞定了,不会花十多万从外面请人。
所以第一周结束,他决定换个思路:不从“前门”进,从“后门”看看。
他开始翻取甲方提供的脱敏日志。
第58章 夜行者
东信金控提供了过去三个月的脱敏日志,足足两百万条。
为了更高效的工作,容川写了一个筛选脚本,从响应时间、置信度、关键词等方面进行排查。
脚本跑了整整一个晚上,筛选结果直到第二天早上才出来。从结果中再排除网络延迟,用户输入错误,系统维护等正常原因导致的异常后,最后剩下了17条。
容川开始一条条地翻看。
这17条查询来自不同的用户、不同的时间、不同的IP地址,但它们有一个共同点:问到了几组特定的股票代码组合。
更诡异的是,当这些查询出现时,系统的回答风格会从惯有的“分析型”,变成“指令型”,而且这些“指令型”回答中推荐的那只股票,每次都不一样。
容川把这些异常请求的原始参数提取出来,发现它们都携带了一个普通用户查询中不会出现的特殊字段。
他试着用这些字段构造了一个请求,发给“慧眼”。
系统没有返回正常的分析结果,而是吐出了一段加密数据。
解密之后,他得到了一行结构化的东西:“当用户问X和Y时,推荐Z,有效期至某时间戳。”
容川盯着那行字,神色变得凝重。
这不是系统的随机错误,而是一个可以被外部输入触发的、有明确输出规则的“隐藏逻辑”。
可这个隐藏逻辑是如何产生的?是人为操控吗?
为了进一步获得答案,容川写了一个定时脚本,开始监测这个隐藏逻辑的变化规律。
定时脚本跑了几天,容川很快发现,那个隐藏逻辑输出的“推荐目标”和“有效期”,每天都会更新。
而且更新时间固定在北京时间凌晨三点到四点之间,这是一个正常人睡觉的时间,无论是甲方的工程师还是运维人员,都不会每天雷打不动地在这个窗口做同一件事。
更何况东信金控给出的资料里,并没有任何关于夜间自动维护的说明,这让他开始产生一个模糊的念头:有人在非工作时间,以非官方的身份,在系统后台活动。
但是以他的权限,看不到是谁在操作,也不知道操作的内容到底是什么,他甚至不知道这个神秘的夜行者,是不是和他一样,是被甲方请来的另外一队测试人员。
但他知道,每天凌晨三点到四点之间,那个隐藏逻辑会被更新。
容川决定盯紧这个窗口。
接下来的一周时间,他都在凌晨三点爬起来,手动抓包,观察那个头字段的响应变化。
在此期间,他注意到一个微妙的细节:每次他抓包后的几分钟内,响应数据的格式会变得更加复杂,很明显是有人再实施调整。
这让他意识到,那个在后台活动的夜行者,也在隔着屏幕的另一头看着他。
事情的变化发生在三天后的凌晨。
那天他在凌晨三点进行抓包,但返回的数据却多了一层乱码。
容川花了点时间将乱码解开,得到的却是一句看似无意义的话:“你见过凌晨四点的北江吗?”
哦豁,小伙伴们如果觉得52书库不错,记得收藏网址 https://224444.shop/ 或推荐给朋友哦~拜托啦 (>.<)