|
答辩前一周,信息我把论文里的安全“基于深度学习的入侵检测系统”改成了“一个轻量级日志异常筛查工具”。导师看了一眼,毕业没说话。设计我知道他在忍。信息但我不想再编那些准确率98.7%的安全鬼话了——那是我在KDD Cup 99数据集上跑出来的,那个数据集比很多本科生年纪都大,毕业里面的设计攻击类型早就不存在了。 信息安全毕业设计有个怪圈:选题越吓人越好,信息技术栈越新越牛,安全最后做出来的毕业东西连自己都不敢跑真实流量。我隔壁宿舍做区块链溯源,设计链上存的信息是他自己造的假数据。对面宿舍搞同态加密,安全性能慢到加密一张图片要三秒,毕业答辩时却吹“可应用于医疗云”。这不是个例,是常态。 我的做法很土。实验室有一台旧防火墙,每天吐几十万条日志。我先用Python写了个脚本,把日志按源IP、目的端口、时间戳切成小段。然后统计每个IP在五分钟窗口内的请求频率、端口离散度、失败连接占比。三个特征,一个决策树,代码不到两百行。跑了一周的历史日志,揪出三个内网扫描行为——其中一个来自隔壁实验室的穷举SSH密码,他们自己都不知道。 这玩意儿的检出率当然比不上论文里的Transformer模型。但它有个好处:我能解释每一个报警。为什么这个IP被标红?因为它半夜三点对二十个不同端口发SYN包,失败率百分之百。就这么简单。导师后来问我为什么不用LSTM,我说LSTM调参要两天,我的树模型调参要两分钟,而毕业设计只有八周。 写论文的时候我特意留了一节“局限性与误报分析”。真实日志里有个运维脚本每十分钟扫一次内网存活,被我的工具连续报警。我加了白名单,但白名单本身又成了攻击面——如果有人伪装成那个运维IP呢?这个问题我没解决,老老实实写在“未来工作”里。答辩时一个老师追问:“那你这个系统到底能不能用?”我说:“能帮管理员省掉百分之八十的肉眼翻日志时间,但剩下的百分之二十得靠人。”他点了点头。 做安全的人容易陷入一种技术自嗨。加密要抗量子,检测要上GAN,好像不堆几个前沿名词就不配叫毕业设计。但真实环境里,最有效的防御往往是关掉没用的端口、改掉默认密码、把日志集中存起来。我的毕业设计没碰这些“低级”问题,因为写进论文不够炫。可如果让我给学弟学妹建议,我会说:先花两天看看你们学校机房的真实日志,再决定做什么。别一上来就BERT。 最后提一句查重。我的论文重复率百分之六,因为大部分篇幅在描述那台旧防火墙的日志格式、我的特征怎么算、误报怎么来的。这些内容没人写过,自然不重复。那些用公开数据集跑模型的同学,方法部分和前人论文撞车严重,改得痛苦不堪。真实数据救了我。 毕业设计不是科研突破,它只是一次完整的工程训练。你能把一个具体的小问题从头到尾走一遍,比套一个宏大框架然后编数据强得多。至少你知道自己做的工具在哪个机柜上跑过,报过谁的警。这就够了。 |