array(5) { ["chapterid"]=> string(8) "49409208" ["articleid"]=> string(7) "7300050" ["chaptername"]=> string(8) "第15章" ["content"]=> string(4793) "五个人陆续走出办公室。走廊里的日光灯比办公室亮,白得有点刺眼,赵一鸣眯了一下眼睛。他往楼梯口走,步子很大,运动鞋在地砖上发出橡胶摩擦的吱声。周可然跟在他后面,步伐安静,帆布包在肩上轻轻晃。她把笔记本合上了,笔夹在封面和第一页之间。

陈逸飞走在最后。经过林墨身边时他停了一步,压低声音,只有林墨能听到。

"你出的Pwn题里那个栈对齐的改动。你是故意测我会不会发现,还是随手改的?"

"你觉得呢。"

陈逸飞看了他两秒,然后笑了一下。那种笑不太好读,不是自信也不是谦虚。"你是故意改的。你改了编译参数,但没有改源代码——你想看谁会从汇编层面发现差异,而不是从源码层面。你在筛选思维方式,不是筛选技术能力。"

他说完就走了,没等林墨回应。脚步很轻,跟苏晚晴一样不出声。走廊里的声控灯在他经过时一盏一盏亮起来,又在他走远后一盏一盏熄灭。

苏晚晴从办公室出来,站在林墨旁边。两个人看着陈逸飞的背影消失在楼梯拐角。

"他看出来了。"苏晚晴说。

"他看出来的比我以为的更多。"

林墨转身走向窗户。走廊的窗户跟办公室的窗户朝向一样,能看到法国梧桐的树冠和一小块被树叶切割的天空。七月末的夜晚闷热而安静,远处操场的灯还亮着,有人在夜跑,灯光把人影拉得很长。楼下的路灯照着停车场,几棵梧桐树投着大片暗影。

"你查到什么了?"苏晚晴走到他旁边。

"2019年,华清大学网络安全学院办了一个高中生信息安全夏令营。陈逸飞在那届夏令营的学员名单里。学校写的是华清附中。"

苏晚晴没有马上说话。走廊里某个实验室的门没关好,传来一阵键盘敲击声,大概是哪个研究生还在赶论文。

"华清附中。"她说,"他高中就接受了华清的安全训练。"

"不止。他在夏令营里做的项目是基于机器学习的异常流量检测。这不是高中生的水平。"

"所以他不是普通的高中生。是被华清体系重点培养的苗子。"

"但他最后来了苏科大,不是华清。"林墨说,"一个被华清体系培养了好几年的人,高考的时候没有去华清——这不正常。要么成绩不够,要么主动选择。"

"如果是主动选择——为什么?"

"这就是我想查的。"

苏晚晴靠在窗框上,看着远处的操场灯光。有个夜跑的人停下来弯腰系鞋带,影子在灯光下缩成一团。"你怀疑他是华清派来的?"

"我不排除任何可能。但我也不急于下结论。一个人的过去决定他的动机,但他的行为决定他的价值。目前为止,陈逸飞在选拔赛里的行为没有暴露任何恶意——除了来历不明。"

"方老师看他的眼神不太一样。"

"你也注意到了。"

"你觉得方老师知道他的来历?"

林墨没有回答。他想起方远行在说"无正式记录"时的那个停顿——那个停顿像是故意的,像是在等陈逸飞自己补充什么。但陈逸飞没有补充,方远行也没有追问。两个人之间的那个沉默,可能是默契,也可能是博弈。

"有一件事我需要你帮我做。"林墨转过身来,"陈逸飞在选拔赛里尝试了Docker容器逃逸。他把靶场的容器环境信息——包括capability配置和文件系统结构——暴露在了他的本地终端里。我想知道他逃逸失败之后,有没有把那些信息传出去。"

"你怀疑他在收集我们靶场环境的信息?"

"我在确认。如果他把靶场的环境信息传给了外部——不管是传给谁——那他的动机就不是参加CTF比赛这么简单。"

"我来查他的网络流量。"苏晚晴说,"选拔赛用的网络是实验室的独立网段,我可以调出口路由器的流量日志。"

"小心点。别让他发现。"

苏晚晴点了一下头,走向楼梯口。走了几步她停了一下,手搭在楼梯扶手上。

"林墨。"

"嗯。"

"你觉得我们这五个人——能成一支队伍吗?"

林墨看着窗外的夜色。法国梧桐的叶子在路灯下微微晃动。操场上最后几个夜跑的人陆续离开了,灯光开始一盏一盏熄灭。先是跑道四周的,然后是看台下面的,最后只剩场地中央的一盏,照着空荡荡的绿色人造草坪。

"不知道。"他说,"但方老师把我们放在一起,不是因为他觉得我们能成。是因为他觉得我们该试试。"

苏晚晴没有再说什么,走下了楼梯。她的帆布鞋踩在水磨石台阶上,声音很轻,到第三层就听不见了。" ["create_time"]=> string(10) "1785963697" }